Microchip的AN851和AN1310两个应用笔记里提供了2个通过Bootloader实现串口下载程序的解决方案。AN851看样子只是一个简单的演示,仅支持PIC16和PIC18的部分单片机,上位机程序不完善,Bootloader方面因为占用了前512byte空间,Reset Vector和中断向量都要重映射,所以要使用特殊的Linker Script文件,且中断响应要延迟2个周期。
相对而言,AN1310提供的方案就完善多了,几乎所有支持FLASH self-program功能的PIC16、PIC18单片机都可以使用这个方案。AN1310的Bootloader放在FLASH的末尾,通过向0x0000写一个GOTO语句跳转到Bootloader,中断向量并不受影响。
Bootloader在FLASH的位置
启动时,如果RX脚检测到低电平则进入Bootloader模式。
具体支持的器件可以看Firmware源代码目录下的devices.inc文件。我在PIC18F6720上测试成功。
PC端程序的截图,可以看到支持写配置位和EEPROM
AN1310的PC端程序、Firmware及源代码 点击此处下载
ourdev_595373G1F54I.zip(文件大小:4.01M) (原文件名:Serial Bootloader AN1310 v1.04.exe.zip)
AN1310 点击此处下载
ourdev_595374LF8DNM.pdf(文件大小:482K) (原文件名:01310a.pdf)
AN1310有中文的文档,但是今天不知道为什么下不了。
另外,Microchip网站上还有A Serial Bootloader for PIC24F Devices(AN1157),Bootloader for dsPIC30F/33F and PIC24F/24H Devices(AN1094)。
这是中文版的,我试了,很好用(按文档电路接下RTS),串口下载程序时,单片机还可以自动匹配上位机波特率,但是这个上位机 是QT 环境下写的,先装个Qt 4.6.1 SDK学学
一周热门 更多>