3244|7

1381

帖子

2

TA的资源

五彩晶圆(初级)

楼主
 

nRF51822 开撸之二 [复制链接]

本帖最后由 cruelfox 于 2021-4-17 15:49 编辑

  上次拆废的 Vidonn 手环虽然板子上带的元件多,但是空的GPIO也少。一时也用不起来那么多片外东西,我来想起来还有当研究品买的某手环可以作为精简开发板……

  这个叫做“敏狐”的手环,带原装表带、纸盒,两块钱一个买的(公司倒闭,APP没有,当废品)。使用一只CR1625供电,电池负极就直接接触PCB背面的圆形大块铜(原来周围有绝缘纸,被我为了看测试点揭掉了)。元件面也简单,中间盖着的主芯片,旁边晶振和加速度计。

  看下主芯片——nRF51822, 不利于DIY的WLCSP封装。所以也要GPIO只能从背面那6个测试点找,以及LED、空缺的元件焊盘。加速度计是 MMA8451.

 

  为了找下那6个测试点当中是否有 SWDIO, SWCLK (否则就没法玩了),将它的电源接上,然后用示波器测量一下测试点的状态。

  这个板子电路简单,电池直接接nRF51芯片的电源脚了,没有LDO,没有开关电源。我串了个电流表监测电流,发现过一会儿会跳动一下,说明程序还在运行。

简单判断,6个测试点有两个是高阻,两个是高电平,两个是低电平。再用电流表短路法测试(也可以断电测下通断),发现有两个分别是VDD和GND.

  这样剩下的最多只有4个是GPIO了。如果存在 SWDIO, 那就必然是唯一的高电平那个,因为 nRF51xxx 的 SWDIO 和 RESET# 是同一个脚,运行状态必须高电平。我测得这个脚接地会有大约60微安电流,像是内部上拉的作用。

  于是,将这个脚当作 SWDIO 焊上线,接到 ST-Link. 然后把 ST-Link 的 SWCLK 拉过来,接触测试另外三个测试点之一进行尝试。

  先试的是低电平那个测试点,运气好,OpenOCD 已经连接成功 MCU:

  这样就成功获得又一块 nRF51822 开发板(模块)。 在 OpenOCD 的终端里面操作一下看:

  这个产品的代码都没有加读保护呢(生产方也没有想去防别人破解抄袭),轻松把 Flash 内容 dump 出来:

> dump_image band.bin 0 262144
dumped 262144 bytes in 4.250000s (60.235 KiB/s)
 

  现在重点是找下有什么 GPIO 可以利用。看下 GPIO 的寄存器,配置情况:

> mdw 0x50000700 32
0x50000700: 00000002 00000002 00000002 00000002 00000002 00000002 00000002 0000060c
0x50000720: 00000002 00020000 0000060c 00030000 00000002 00000002 00000002 00000002
0x50000740: 00000002 00000002 00000002 00000002 00000002 00000002 00000002 00000002
0x50000760: 00000002 00000002 00000002 00000002 00000002 00000002 00000002 00000002
  看起来是 GPIO0.7, GPIO0.9, GPIO0.10 和 GPIO0.11 是必然使用了的,因为不是默认配置。其它的暂时还不能确定。

  因为加速度计是I2C接口的,故需要检查一下 TWI 设备的配置,发现:

> mdw 0x40004500 4
0x40004500: 00000000 00000000 00000007 0000000a
> mdw 0x40003500 4
0x40003500: 00000000 00000000 ffffffff ffffffff
  TWI1设备的 SCL 选择了 GPIO0.7,  SDA选择了 GPIO0.10

 

  这个封装无法用万用表量引脚,需要写段程序放进去翻转GPIO(加上拉或下拉并有规律地切换), 然后量板子上疑似GPIO的焊点。用此法,可以确定背面另外两个空的测试点分别是 GPIO0.15 和 GPIO0.16. 可以方便引出UART来调试了。PCB元件面,双色LED用了 GPIO0.4, GPIO0.6.  还有一个未焊接元件的焊盘是 GPIO0.3.  I2C的SDA和SCL在加速度计的旁边引出到上拉电阻。如下图:

  GPIO0.11 和 GPIO0.9 像是连接在加速度计的 INT1, INT2 脚上,因为这两脚被驱动了,我在 NRF51822 GPIO 加上拉下拉并未影响引脚电压,因此是猜测的。

 

此帖出自单片机论坛

最新回复

楼主你好!这个OpenOCD是咋整的?   详情 回复 发表于 2021-4-27 10:43
点赞(1) 关注
 

回复
举报

1942

帖子

2

TA的资源

版主

沙发
 

手环都满大街了~杂牌的一大堆!我们公司就有做手环。

此帖出自单片机论坛
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 

这个开发板不错

此帖出自单片机论坛
 
 
 

回复

3225

帖子

0

TA的资源

五彩晶圆(中级)

4
 

楼主厉害了。特别喜欢看楼主这样的贴子,楼主分析能力一流,MMA8451要是不用的话可以吹下来,然后引出IO另做它用。

此帖出自单片机论坛
 
 
 

回复

693

帖子

7

TA的资源

版主

5
 

分析能力一流,想问一下,GPIO0.7, GPIO0.9, GPIO0.10 和 GPIO0.11 是必然使用了在哪个位置看的,想了解一下

此帖出自单片机论坛

点评

0x50000700 地址开始的32个寄存器,是NRF51的GPIO0的 PIN_CNF[n],每个口对应一个寄存器。默认值是2. 若被修改了,就说明有所用途。  详情 回复 发表于 2021-4-27 09:18
 
 
 

回复

1381

帖子

2

TA的资源

五彩晶圆(初级)

6
 
bqgup 发表于 2021-4-27 08:14 分析能力一流,想问一下,GPIO0.7, GPIO0.9, GPIO0.10 和 GPIO0.11 是必然使用了在哪个位置看的,想了解一 ...

0x50000700 地址开始的32个寄存器,是NRF51的GPIO0的 PIN_CNF[n],每个口对应一个寄存器。默认值是2. 若被修改了,就说明有所用途。

此帖出自单片机论坛
 
 
 

回复

217

帖子

0

TA的资源

一粒金砂(高级)

7
 

楼主你好!这个OpenOCD是咋整的?

此帖出自单片机论坛

点评

OpenOCD是软件,开源的。windows下有编译好的可以下载,解开就能用。 调试器(硬件)我用的是ST-Link.  详情 回复 发表于 2021-4-27 20:34
 
 
 

回复

1381

帖子

2

TA的资源

五彩晶圆(初级)

8
 
LuJianchang 发表于 2021-4-27 10:43 楼主你好!这个OpenOCD是咋整的?

OpenOCD是软件,开源的。windows下有编译好的可以下载,解开就能用。

调试器(硬件)我用的是ST-Link.

此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表