NRF51822模块无法识别问题解决办法
我知道没图是没人看的,所以随便瞎截图了几张。
对于很多新手朋友们,或许可能还不是很了解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模块无法识别问题解决办法的更多相关文章
- python各个模块循环引用问题解决办法
当项目中的模块过多,或功能划分不够清晰时会出现循环引用的问题,如下 有两个模块moduleA 和 moduleB: #moduleA from moduleB import b def a(): pr ...
- python 调用pymysql模块遇到\转义问题解决办法
1.问题情况 本来存入mysql的是字典,有汉字,由于python版本是2.7,所以在json的时候把我的值变成了unicode,那么在调用pymysql的时候,mysql给我转义取消了. 存之前: ...
- Open Sans字体兼容问题解决办法[font-face]
参考:http://www.tantengvip.com/2014/11/open-sans/ 1.font-face使用方法 font-face是CSS3中的一个模块,主要是把自定义的Web字体嵌入 ...
- Windows XP系统下添加任务计划常出现问题解决办法
Windows XP系统下添加任务计划常出现问题解决办法 计划任务就是让电脑在指定的时间内执行指定的动作(计划动作),这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的(通俗一些就是双击 ...
- ASP+Access UTF-8 网页乱码问题解决办法
用ACCESS数据库和ASP做网站时用UTF-8编码有时会出现乱码,再者网页出错或者刷新页面后就是乱码,如果数据库取值乱码在开头加上<%@LANGUAGE="VBSCRIPT" ...
- 易通电脑锁2007V6.3.3.3无法卸载问题解决办法
易通电脑锁2007V6.3.3.3无法卸载问题解决办法把原版文件拷贝回去.bat@echo offcolor 2Fecho 该批处理会把易通电脑锁2007版原文件拷贝回去,解决易通电脑锁卸载时出现的运 ...
- Sublime Text 3 若干问题解决办法
1.在高分屏下中文文件夹名显示异常问题解决办法 新买了个2K的屏,有些中文文件夹名全部变成了“口口”. 在“preferences” - "设置-用户" 添加 "dpi_ ...
- C盘不能新建文件的问题解决办法
C盘不能新建文件的问题解决办法 主要症状: 1.C 盘文件不能修改2.C 盘不能新建文件3.总之就是只能读取不能,写入和修改这样对于平时操作造成了极其的不方便~~~复制文件到C 盘会提示:错误0×80 ...
- iOS常见异常Exec_Bad_Access问题解决办法
iOS常见异常Exec_Bad_Access问题解决办法 在iOS开发中,经常遇到Exec_Bad_Access异常,导致程序奔溃问题,一般这个问题都是因为过早的release对象,然后又对该 ...
随机推荐
- 我的python中级班学习之路(全程笔记第一模块) (第一章)(第2部分:如何设置python中的字体颜色,猜年龄练习题解答,while else语句,pycharm的使用)
第一章: python 基础语法 第 2 部分: 一.猜年龄练习题解答 直接上代码 >>> age = 26 >>> count = 0 >>&g ...
- vue-输入框change事件并获取值
1.html <input type="text" @change="specifiName($event)" /> 2.js var vm = n ...
- 001 Unity学习大纲
- Apicloud学习第三天——获取云数据库的数据方法
apicloud学习30天中的对用进行注册和登录以及数据的获取的代码,在apicloud中有单独的api对用户的增删查改进行操作,这里写下增加和查询. 增加用户数据 var model=api.req ...
- XGBboost 特征评分的计算原理
xgboost是基于GBDT原理进行改进的算法,效率高,并且可以进行并行化运算,而且可以在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练的重要性, 调用的源码就不准备详述,本文主要侧重的是 ...
- Jupyter Notebook中的快捷键
1.快捷键 Jupyter Notebook 有两种键盘输入模式.编辑模式,允许你往单元中键入代码或文本:这时的单元框线是绿色的.命令模式,键盘输入运行程序命令:这时的单元框线是灰色. 命令模式 (按 ...
- 移动开发常用head部分
<!--[viewport] 设置布局viewport的各种信息: width=device-width:布局viewport宽度等于设备宽度 initial-scale=1.0:默认缩放比为1 ...
- <发条游戏设计>粗翻——第一部分 理论(一)
段落1 游戏 游戏设计定义 相对而言,游戏设计是一个新的学科,专业的作曲家.画家.作家.建筑师已经至少存在了500多年,然而游戏设计师只在最近50年才被特分出来单作一类.然而这个类别仅仅在最近20-2 ...
- ”dpkg: 处理归档 /var/cache/apt/archives/XXXXXX(--unpack)时出错“的解决方法
在安装ROS时出现了下面的问题: 解决方法: sudo dpkg -i --force-overwrite <filename> 在我的问题中我的解决方法是: sudo dpkg -i - ...
- eclipse快速查看工程代码行数
1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expression),并在搜索文本框输入\n ;3.在文件名中输入*或*.jav ...