MSP430在Energia上的使用(上)
MSP430在Energia上的使用(上)
说实话我也不确定会不会有后面的笔记,但是这次实验的确相当于没有做完。
准备工作
终于狠下心花了百元大洋买了块MSP430F5529LP板子,准备研究一下板载仿真器在Energia中是如何进行烧录的。
通过TI公司的官方文件《MSP430F5529 LaunchPad Development Kit……》,我们其实可以得到LaunchPad的原理图,因为整个原理图用了四页,这里就不详细展示了,有需要可以在TI官网找。我只截取板载仿真器和MSP430F5529芯片的接口部分的图
其中板载仿真器被TI公司命名为ezFET,应该是简版仿真器的意思,除去电源线部分,我们可以看到信息传输分为两部分——SBW和UART。其中SBW相当于两线JTAG,可以当做仿真器接口,而UART则是使用的MSP430的BSL接口,其只能作为烧录口。
那么看到这其实问题就很简单了,我们需要确定Energia在烧录的时候具体是用的哪个接口。
问题意义
一般情况下,我们在使用LaunchPad时,是不需要管这个仿真器是如何工作的,但是如果当我们手里只有一块没有板载仿真器的开发板或者甚至只有一块芯片的时候,我们又该如何对其使用Energia呢,是应该用JTAG连接吗,还是使用SBW,亦或是使用BSL?我们是否能将EnergiaIDE的移植到ArduinoIDE上呢(因为Energia事实上能够使用的资源远远不及Arduino,而且无法用VSCode这个大杀器)?
实验一:测试传输接口
这个工作其实很简单,因为板子在设计的时候就是通过跳线进行连接的,所以我们只需要调整跳线位置即可进行测试。
实验现象:
- 在安装好Energia以及板子驱动等之后,连接电脑USB与ezFET的MicroUSB接口,选择好端口和板子型号,选择示例程序blink,直接点击上传程序。(上传成功,红灯闪烁)
- 取下RX和TX跳线,剩下SBWTCK和SBWTDIO,然后再次上传。(上传成功,红灯闪烁)
- 取下SBWTCK和SBWTDIO,剩下RX和TX跳线,然后再次上传。(上传失败,显示未检测到链接报错)
实验结论:
在Energia中,默认通过板载仿真器ezFET得SBW接口对MSP430芯片进行烧录。
实验二:移植到ArduinoIDE
ArduinoIDE本身自带了非常多的库,但是因为兼容性问题,并不支持直接移植到Energia上,所以Energia上目前可以直接使用的库可谓是非常少。而且无论是ArduinoIDE还是EnergiaIDE的代码辅助功能都非常垃圾,而如果能使用VSCode的Arduino插件就可以大大减轻这一问题。
移植方法很简单,打开Energia的目录,找到hardware,把其中Energia文件夹复制到ArduinoIDE目录的hardware文件夹里。再把Energia的tools里的东西放在ArduinoIDE的hardware-tools里即可。这里需要说明的是,在复制完后可以点开ArduinoIDE,简单做个demo或者直接用energia的blink作为测试,如果出现
exec: "/bin/msp430-g++": file does not exist
为开发板 MSP-EXP430F5529LP 编译时出错。
需要修改hardware-energia-msp430文件夹里的Platform.txt文件,这个文件定义了CPU 体系结构等(包括编译器、生成过程参数、用于上载的工具等),可能和ArduinoIDE无法直接兼容。
具体修改规范可以参考Arduino官方的这个网址(需要*):https://arduino.github.io/arduino-cli/platform-specification/
如果暂时不想看这么麻烦的东西(像我一样),可以参考这个帖子:[MSP]将MSP430 纳入 ARDUINO IDE: 让arduino支持MSP430F5438A
不过他里面给出的Platform.txt有点古老,ArduinoIDE可能会给出警告,不过警告一般也可以不听,所以凑合着用吧。同时按照他的方法,可能无法完成直接烧录,因为我试了一下报错了。
移植并不算很成功,然后在VSCode里试了一下,一些定义会有点问题,暂时不确定是什么原因……说实话这个实验有点失败,还是能力欠缺了。
另外我也看了看PlatformIO,里面对MSP430的支持同样很差,果然MSP430这种老古董还是有点过气了吗……
关于移植的方法我后面会再详细研究的(大概),如果研究好了再写这一篇的下章吧(意思是可bi能si会qiang没po有zheng)。
备注
关于仿真器的问题,如果买到了没有仿真器的板子或者自己做板子,而手里又没有仿真器,除了BSL烧录的方法以外,也可以通过用LaunchPad板子直接把跳线那里外接出去,也可以当仿真器用。另外,ezFET是一个开源硬件,详情可以参考官方文件,当然网上也有一些帖子讲了这个玩意的做法,同样可以参考。
上一篇: php中字符串比较函数使用方法
推荐阅读
-
js动态在form上插入enctype=multipart/form-data的问题
-
Android开发笔记之:在ImageView上绘制圆环的实现方法
-
在Android 模拟器上安装和卸载APK包的方法
-
如何在日语键盘布局上使用正确的按键顺序
-
pyqt5 从本地选择图片 并显示在label上的实例
-
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
-
UG怎么使用投影曲线在圆柱上形成封闭的曲线?
-
笔记本上可以看到红外线的发射窗口,却无法使用红外线的设备的解决
-
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
-
在windows上安装不同(两个)版本的Mysql数据库的教程详解