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

对于很多新手朋友们,或许可能还不是很了解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. 【JS】使用变量作为object的key-方法汇总

    1.方法一 var a = 'id'; var str = '{'+a+' : 12}' var obj = eval("("+str+")"); 结果: ob ...

  2. JavaScript数据类型检测 数组(Array)检测方式

    前言 对于确定某个对象是不是数组,一直是数组的一个经典问题.本文专门将该问题择出来,介绍什么才是正确的javascript数组检测方式 typeof 首先,使用最常用的类型检测工具--typeof运算 ...

  3. Ext.net按钮事件中使用Response.Redirect的一个问题

    今天遇到一个Response.Redirect问题 通过Ext.net按钮写发送事件时,连接中会多出一个&amp,如果后台不进行UrlEncode操作的话,就会出问题,可是很不幸的是,有些跳转 ...

  4. 虚拟云主机创建多个站点方法(.htaccess实现)

    阿里的普通版虚拟云主机最多只能建一个站点,但可以绑定多个域名.如果我们想创建2个或3个主机怎么办呢?难道需要再另外购买一台主机? 其实我们可以通过.htaccess文件来定义相关域名绑定对应的网站目录 ...

  5. Swift 4 Hex Color

    上点干货,写个extension, 可以通过hex值去设置Color,以及通过UIColor的color case 去得到hex值. extension UIColor {     var toHex ...

  6. IntelliJ IDEA中项目报错org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 8 或maven操作compile报resource使用utf8这样的编码错

    问题:项目开发工具已经setting成utf-8 并且项目各方面的配置文件包括maven这些的pom.xml里的配置都已经设置为utf-8 但是还报错 IntelliJ IDEA中项目报错org.xm ...

  7. R猜拳游戏解释

    R猜拳游戏解释 作者:梁 蓉 猜拳游戏大概解释: 搜集齐数据框,for循环在三个随机数里抽俩个,抽出的数据放回,继续抽取剪刀石头布,机器人出剪刀石头布,我出对应压制机器人的方法来赢取胜利,我给机器人发 ...

  8. c\c++里struct字节对齐规则

    规则一.: 每个成员变量在其结构体内的偏移量都是成员变量类型的大小的倍数.   规则二: 如果有嵌套结构体,那么内嵌结构体的第一个成员变量在外结构体中的偏移量,是内嵌结构体中那个数据类型大小最大的成员 ...

  9. 3D Slicer中文教程(八)—导出STL文件

    一.STL文件简介 STL(立体平版印刷术的缩写)是由3D Systems创建的立体平版印刷CAD软件原生的文件格式STL有“标准三角语言”和“标准镶嵌语言”等几个事后回溯.这种文件格式是由许多其他软 ...

  10. 示波器X1探头和X10探头

    示波器探头有X1和X10档,当测量一个信号时应该如何选择? 1.先我们看它们的区别? X1档,表示信号没有经过衰减进入示波器 X10档,表示信号衰减10倍进入示波器(当示波器也设置为X10档,直接读数 ...