MSP430学习(二)——BSL标准接口
MSP430的烧录,即把我们的代码写入到芯片上去的办法,感觉比其他的单片机都要复杂一点儿。
最简单的芯片烧录,当然是Arduino,设计者早就已经把烧录的硬件连接提前帮我们做完了,我们要做的,就是在IDE里面选一下板子类型,然后告诉IDE我们要使用什么烧录器,插上USB线,完事儿。架构在Arduino IDE下的ESP8266、ESP32和Arduino Nano BLE都是这一样的做法。再复杂一点点,便是我们熟悉的STC 51单片机,需要自己接USB2TTL上面的4条线。再再复杂一点,是AVR,即Atmega那些类型芯片,很象SPI的连接。后来不小心接触C8051F系列芯片,如果不使用专门的JTAG而是自己接线,又比AVR麻烦一些;最麻烦,我看以当前所见,非MSP430莫属。若百度过去,熔丝已烧断、忘记烧写密码、串口同步错误等等疑难,不一而足。百度上面的。我们使用百度搞学术和贴近学术的事情,确实是难于理解的奇迹。百度没有学术水平。长期使用百度,有损智商,可你没得选择。
MSP430烧录有3种方式,在原厂的仿真器下,下载烧录和在线调试仿佛PC上的本地程序一样。反而BSL值得记一记。
BSL是MSP430专有的烧录方式。它会通过检测两个上升沿信号判断要不要进入BSL烧录。没有专门的烧录器时,只要迅速通断电两次,就能进入BSL。所以MSP430上简陋的BSL就是按两下开关。专门的烧录器,其实就是CH340g,注意这个g,只有ch340g才有相应引脚,比如MSP430F149,接线:
USB2TTL <------> MSP430F149
TXD <------> P2.2(RXD)
RXD <------> P1.1(TXD)
DTR <------> RST
RTS <------> TCK
有的USB2TTL直接就以MSP430 BSL烧录器售卖,这个时候DTR和RTS引脚可能直接就被标记为RST和TCK。网上有人问,STC烧录器能不能当BSL烧录器使用吖?实际ch340g芯片引脚图很常见,我们会在STC烧录器上看到两种情形,一种是ch340芯片不是g版,压根儿就没有DTR和RST引脚,另一种是STC的51单片机烧录时,不需要这两个引脚,于是这两个引脚也就没有引出。有心的PCB设计者留了这几个引脚的排针孔,我们自己焊上就行,有的没留孔,不知能不能引出了。
BSL引脚排列是一种标准。所以符合标准的BSL烧录器,在没有说明书的情况下,我们也是能够识别引脚并正确使用的。标准引脚排列:
这样,我们用示波器一点接地,一点测试引脚,就找出了TX和RX,同时把两个3.3V和一个5V找出来,余下的直接排过去就行了。只是山寨品目较多,比如有的2号标RTS、9号、10号互相颠倒、9号GND的都有。
另外就是TXD和RXD标记混乱的事情是时时都有的事情,如果烧录失败,换一下这两根线,多数情况下可以解决问题。此外,不同型号的MSP430的TXD和RXD往往不同,查芯片手册能找到的。
最后,有些专门给AVR使用的烧录器,往往在没有引出ch340g的情况下,自己能看着电路图尝试引出DTR和RTS:
已经被设计成型的开发板上如果有BSL烧录电路,那么,我们用外部的BSL接过去,可以脱离开发板上的BSL进行烧录,把开发板上的BSL引脚连接到其他MSP430上去,这个开发板就可以当成是BSL烧录器了。这很省钱,因为原厂BSL烧录器好象90元左右。不便宜。