我知道没图是没人看的,所以随便瞎截图了几张。

对于很多新手朋友们,或许可能还不是很了解jtag相关的一些调试所需的必须电路,就像很多人不喜欢用stm32的硬件i2c,而是喜欢软件io模拟,就算是使用了硬件i2c,也是阻塞式等待,和软件模拟并无二,也许会说硬件i2c那么多bug,为什么还要用它?那么i2c从机模式可能就没法好好用了~也许有人还会反驳说用io中断也依然可以模拟出i2c从模式,嗯,那就当我啥也没说。

其实我想说的是,就像i2c一样,很多情况下,芯片会选择将总线上拉电阻外置,所以就像stm32的i2c,即使选择了复用推挽输出,依然还是需要上拉电阻的。不扯远了,上面的只是一个伏笔,接下来是正题。

最近想研究一下蓝牙,我关注nordic 公司已经有一段时间了,出了nrf51之后接着是nrf52,蓝牙5.0,低功耗,很不错,今年又上市了iot的芯片nrf9160,公司也有过要做iot的想法,不过就是太贵了,前两天做了一块nrf51822的pcb,准备试试水,焊完一片之后,怀着激动心情连接上jlinkv8,但是很遗憾,一盆冷水就泼过来了,芯片无法被识别,然后就开始研究为什么swd模式不能被识别,去nordic 官网下载了nrf go studio,最新的1.6,也是无法识别,旧版本1.21也是无法识别,mdk5中也是根本不识别,还以为是没焊接好,所以拆下来再焊接了两边,依然不行,怀疑是不是芯片被焊坏了,,,无奈之下又焊了一片,但是依然还是无法识别,然后开始检查电路设计是不是有错误,反复检查之后确认无误,百思不得姐~~

无奈之下打开示波器,开始观察示波器捕获到的总线波形,发现swclk始终处于低电平(0.1v以下)swdio在未连接jlink时是3.3v,连接jlink后是1.6v左右,不管jlink如何扫描,总线上没有任何波形,严重怀疑jlink是不是有问题,所以又下单购买了一个stlink,到货之前在网上搜索时有人就说stlink无法烧写nrf51822,又后悔一秒钟。

但是再难也不能放弃,既然swdio电压下降,就用一个3.3k的电阻上拉到3v左右,swclk也是用3.3k电阻上拉到1.6v左右,这时jlink的红灯亮起表示芯片复位了,再扫描jlink时,总线终于有信号了,但是信号并不正常,swdio上的信号幅度从3.3v到2.4v左右,这和没信号没区别,swclk上的信号幅度是从1.2v到0.1v,或许这信号对某些芯片是可以识别的,但是,依然无法识别,所以这么做并不能解决问题。

随后找来10k的电阻,分别上拉,下拉,均无效,一直不见起色,几乎没有破解的办法,再上网搜索一波,偶然间发现有人提到jlink的1脚并不是输出,而是输入参考,给内部jtag io的电平提供参考,将信将疑的将1脚短接到2脚上,再加上swdio上加上拉10k,果不其然,毫无悬念的识别了。

上面说了一大堆,重点其实是:

标准jtag的管脚部分可参考如下,下图是标准stlink的管脚定义:

参考如下,正常情况下,一般clk应为是主机发出的信号,单片机作为从机,clk线是无权控制的,而jlink等编程器,对clk线有所有权,所以不需要上拉电阻,可以适当添加旁路电阻。其他信号线,尤其是io信号线,因为控制权可变,所以就像i2c的情况一样,需要外部上拉,否则可能无信号。

在具备了上拉条件时无法识别情况,除了检查线序是否错误以外,尤其关注一点是jtag20pin接口上的1脚,他是jtag输出信号的参考电压输入,并不是输出脚,所以需要将其接到目标板上的与芯片一同供电的vcc上,一般是3.3v,如果采用jlink2脚往外供电,也可将1和2脚直接短接!

至于之后的烧录s110等,网上一大把,就不再说了,主要是先解决识别问题,另外进过验证还发现一件事:

使用nrf go studio时,使用stlink连接nrf51822时,nrf go studio软件是不能识别到芯片的,主要原因是软件并没有stlink的驱动,如果烧录协议栈,选择用nrf go studio烧录时务必使用jlink烧录,而用mdk5等烧录程序等时,可以使用stlink,选择sw模式即可识别并烧录芯片。撸主已经验证!

NRF51822模块无法识别问题解决办法的更多相关文章

  1. python各个模块循环引用问题解决办法

    当项目中的模块过多,或功能划分不够清晰时会出现循环引用的问题,如下 有两个模块moduleA 和 moduleB: #moduleA from moduleB import b def a(): pr ...

  2. python 调用pymysql模块遇到\转义问题解决办法

    1.问题情况 本来存入mysql的是字典,有汉字,由于python版本是2.7,所以在json的时候把我的值变成了unicode,那么在调用pymysql的时候,mysql给我转义取消了. 存之前: ...

  3. Open Sans字体兼容问题解决办法[font-face]

    参考:http://www.tantengvip.com/2014/11/open-sans/ 1.font-face使用方法 font-face是CSS3中的一个模块,主要是把自定义的Web字体嵌入 ...

  4. Windows XP系统下添加任务计划常出现问题解决办法

    Windows XP系统下添加任务计划常出现问题解决办法 计划任务就是让电脑在指定的时间内执行指定的动作(计划动作),这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的(通俗一些就是双击 ...

  5. ASP+Access UTF-8 网页乱码问题解决办法

    用ACCESS数据库和ASP做网站时用UTF-8编码有时会出现乱码,再者网页出错或者刷新页面后就是乱码,如果数据库取值乱码在开头加上<%@LANGUAGE="VBSCRIPT" ...

  6. 易通电脑锁2007V6.3.3.3无法卸载问题解决办法

    易通电脑锁2007V6.3.3.3无法卸载问题解决办法把原版文件拷贝回去.bat@echo offcolor 2Fecho 该批处理会把易通电脑锁2007版原文件拷贝回去,解决易通电脑锁卸载时出现的运 ...

  7. Sublime Text 3 若干问题解决办法

    1.在高分屏下中文文件夹名显示异常问题解决办法 新买了个2K的屏,有些中文文件夹名全部变成了“口口”. 在“preferences” - "设置-用户" 添加 "dpi_ ...

  8. C盘不能新建文件的问题解决办法

    C盘不能新建文件的问题解决办法 主要症状: 1.C 盘文件不能修改2.C 盘不能新建文件3.总之就是只能读取不能,写入和修改这样对于平时操作造成了极其的不方便~~~复制文件到C 盘会提示:错误0×80 ...

  9. iOS常见异常Exec_Bad_Access问题解决办法

    iOS常见异常Exec_Bad_Access问题解决办法     在iOS开发中,经常遇到Exec_Bad_Access异常,导致程序奔溃问题,一般这个问题都是因为过早的release对象,然后又对该 ...

随机推荐

  1. ./runInstaller: Permission denied

    一:问题描述 安装oracle过程中出现 二:解决 /usr/local/Oracle11./database/runInstaller /usr/local/Oracle11./database/i ...

  2. 彻底解决MacOS上应用程序快捷键冲突的问题,自定义快捷键设置

    1看图操作 上面选择好你要修改的应用程序的快捷键 ,我以Chrome为例子 最后点击下ADD 然后回到Chrome的菜单,发现刷新页的快捷键变成了F5 注意,快捷键的名字要和你Chrome菜单上的名字 ...

  3. JSP循环缓存列表

    两种方法: 例如,有下拉框 <select></select>其中选项需要循环显示 1.JAVA代码循环 <% for(int i=0;i<list.size(); ...

  4. AtCoder Grand Contest 030题解

    第一次套刷AtCoder 体验良好 传送门 Poisonous Cookies cout<<b+min(c,a+b+); Tree Burning 难度跨度有点大啊 可以证明当第一次转向之 ...

  5. Python:正则表达式(一):search()、match()、findall() 的区别

    以前一直觉得正则很难,不会用,今天试验了几个方法,整理总结了一下,简洁明了. 简单来讲,正则就是 提取一段特征数据,用(.*?)代替. 自己总结的特点&区别: (.*) 贪婪匹配,会尽可能的往 ...

  6. css 实现加载中3个点跳动

    <style type="text/css">.loading:after { overflow: hidden; display: inline-block; ver ...

  7. 题解 洛谷P3936 Coloring

    考虑搜索,发现复杂度爆炸        贪心,正确性过低(~~实测爆炸~~) 于是,~~发现~~这题是模拟退火 这里不讲解退火的定义了,初学退火可以去平衡点 退火本身维护一个答案图像,答案的q,当前图 ...

  8. Python爬虫之12306-买票器小白源码

    研究不易 import requests import re import urllib.parse import json import datetime from collections impo ...

  9. java -jar和hadoop jar的区别

    hadoop jar可以看做是java -jar的升级,可以和它一样带参数,程序一样的解析 不同的是hadoop jar运行的jar包他会依赖于hadoop安装目录下面的一些环境,并且你jar包里指定 ...

  10. js 个人笔记

    /* * Created by lsw 2018-06 */ ; (function (window) { //js ready var ie = !!(window.attachEvent & ...