本次要开发的是硅传公司的CC1310无线测温低功耗模块,由于硅传公司为CC1310的Flash烧入了AT指令程序,并且对Flash进行了锁定保护,因此我们无法直接往Flash中烧录程序。
但是硅传公司在声称该模块是支持二次开发的,经过一番询问后才明白,若我们要进行二次开发,需要对CC1310的Flash进行解锁后才能完成Flash擦除操作。
本次实验我们使用TI提供的Uniflash进行本次的Flash解锁和擦除操作,因为它功能足够强大,还可以读取内存空间。
如果是遇到Uniflash无法擦除CC1310的情况,可以直接跳转到“Uniflash无法正常擦除怎么办”
如果遇到Uniflash无法识别到板子的情况,我们可以换用Flash Programmer 2,对芯片进行强制擦除,并且Flash Programmer 2还可以看查我们的CC1310是否又被软件识别到。
目录
硬件介绍
要保证CC1310与XDS110采用2-Wire JTAG接线方式连接,接线方式大致如下,就是CC1310的JTAG接XDS110的JTAG,然后给XDS110供电。
这里有几个注意事项,也算是给硬件排坑了:
- 确保CC1310有稳定的供电,也就是确保CC1310是可以正常工作的,一般来说使用JTAG供电后,用示波器查看电压稳定情况,波动在100mV以内就是可以的,如果实在不行,也可以拿直流电源给CC1310供电,确保供电这一块不会有问题。
- JTAG的引脚是不是连接上了,因为杜邦线本身就会存在连接稳定的问题,这一问题可能出现在电压上,也可能出现在JTAG接口上。
- CC1310有没有与其他芯片相连,其他芯片的输出会不会影响到CC1310的启动,其实这一点一般情况下不会出现,但是这种问题要考虑的情况复杂多样,在给CC1310解锁之前,最好还是保证CC1310与其他设备是退耦合的情况。
解锁和擦除步骤
本次操作使用的软件是Uniflash,它可以在TI官网下载,并且TI提供了安装和使用手册,安装一路默认就可以
安装完成后打开Uniflash,输入CC1310,会弹出CC1310 LAUNCHPAD,选中该选项后Start
注意这里是选择的On Chip模式,因为我们没有接串口线,使用JTAG连接的
在第二栏Setting&Utilities中搜索erase,会看到下面这个Manual erase选型,选择第一项
如果是对CC1310模块第一次擦除的话,软件会询问你芯片Flash已被锁定,是否解锁,点击确定
擦除后结果如下:
烧录程序测试
保持上述的硬件连接, 打开CCS,选择一个CC1310的例程,进行编译烧录,若能正常烧录则说明Flash解锁成功
Uniflash无法正常擦除怎么办
首先,你得保证上面说的硬件连接都没有问题!!!
之后可以用TI的另外一块软件 Flash Programmer 2,连线方式还是和上面说的一样
可以正常识别到CC1310设备
在连接好设备,打开软件后如下图所示:
可以看到左侧连接设备处是可以识别到CC1310的,我们选择CC1310,勾选Erase的第一项,点击运行。如果设备的Flash处于锁定的状态下,应该是无法被擦除的。
这时我们需要点击右上角的小工具图标,选择其中的CC13xx Forced Mass Erase,对其进行强制擦除,强制擦除完成后,设备就会被解锁了
识别不到CC1310设备
造成这种问题的原因就很多了,最简单的方法就是找一块空板子,仅焊CC1310进行测试
这样做的目的是为了排除:
- CC1310所在的电路板的其他电路对其的影响
- 存在个别模块无法正常使用的情况,换一块芯片试一试就好了
如果问题还是没有解决,那就只能去硅传公司的官网,去寻求它们的技术人员的帮助了
注意事项
最后记录一些该CC1310模块使用注意事项:
- 模组从上电到初始化完成大概有 30 毫秒的延时,建议上电后,外部 MCU 延时一定时间后再进行串口通 信或者使能操作
- 透传数据的吞吐量与射频的空中波特率和串口的波特率有关,不同串口波特率帧与帧之间的间隔时间不 同(3 毫秒~20 毫秒),若需要提高吞吐量,需配合好空中波特率和串口波特率