了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序)。
PIC16 bootloader之I2C bootloader, 是使用I2C通信接口的I2C bootloader。由于电脑只有USB接口,所以需要用USB-to-I2C的适配器来转发数据,将电脑端的数据转发到PIC16单片机,或者将PIC16单片机的数据转发到电脑。系统接线图如下:
PC端运行的上位机程序目前最新版本是V3.0。上位机目前只在Win7电脑上测试过。上位机使用时,需要选择I2C端口,Bit Rate选择100KHz,从地址0xA8,由于我的硬件板子的SDA脚没有外接上拉电阻,所以上位机需要设置上拉使能,这样USB-2-I2C适配器会在SDA脚上拉到VCC。见下图:
USB-to-I2C适配器,使用的是Microchip PICKit Serial。这个工具可以配置成I2C Master,I2C Slave,或SPI Master。在这里需要由上位机配置它为I2C Master (I2CM)。
PIC16 I2C bootloader 和PIC16 SPI bootloader 一样软件构架也是分三层,应用层和驱动层完全分离,如果换用其他芯片,移植非常容易。软件架构见下图:
PIC16 I2C bootloader 是为工业产品设计的bootloader, 是一个工业级bootloader。 工业产品大多有LCD屏幕。PIC16 I2C bootloader 可以通过LCD实时地显示应用程序升级的进度,这是一个独创性的功能。LCD 屏自带的字库只有0~9,a-z, A~Z的ASCII 字码, 以及一些通用符号的ASCII 字码,没有进度条需要的字码。为此我自定义了以下字码:
LCD 一行有16个5*8的点阵,每个点阵都跟随升级的进度依次显示上面5个自定义的字符,就可以实时显示应用程序升级的进度。我录制了一个PIC16 I2C bootloader 升级应用程序的完整过程,右边为视频链接:工业级I2C接口PIC16 Bootloader 应用程序升级视频-科技-高清完整正版视频在线观看-优酷 (youku.com)