基于PSoC Creator Bootloader更新PSoC?3固件程序
可以直接使应用于项目开发,图 3是PSoC3 I2C Bootloader的工作流程图。 图 3 PSoC3 I2C Bootloader 工作流程图 PSoC3内部有一个8位寄存器,其最高2位只能通过上电复位清除,软件复位不影响其数值,因此可以用作运行类型标志位,每次系统上电或软件复位后都会检查此标志位,以决定是直接运行应用程序还是进入Bootloader更新固件。PSoC3 Bootloader已经定义一组用于更新固件的通讯协议,其中PSoC3作为从设备,接收主设备发送的命令数据包,处理后回复主设备状态数据包,表 1是两种数据包的格式定义。 表 1PSoC3 I2C Bootloader通信数据包格式 表 2列出了PSoC Creator 1.0 Bootloader通讯协议支持的命令,开发者如果直接使用该协议更新固件,在设计主机更新程序时需参考此表中内容,更详细的命令定义可以参考PSoC Creator 1.0帮助文档中的系统参考指南(System Reference Guide)。 表 2 PSoC Creator 1.0 Bootloader内嵌通讯协议命令列表 4. PSoC3 Bootloader二次开发 PSoC Creator 1.0现提供基于I2C或USB的Bootloader实现,开发者若想使用其他的通讯接口,或者修改通讯协议和更新流程,可以在Bootloader框架基础上进行快速二次开发。cybtldr.c 是Bootloader核心功能层的实现代码,其中两个关键函数覆盖了Bootloader主要功能: · CyBtldr_Start函数 该函数实现了执行Bootloader更新前的所有检查流程,如果需要修改图 3中的工作流程,可以修改此函数中代码。 · CyBtldr_HostLink函数 该函数是Bootloader的核心功能函数,实现了数据包的解析,命令的处理,更新Flash,以及发送状态数据包的功能。修改此函数,可以添加新命令数据包,修改数据包结构等。 CyBtldr_HostLink通过调用CyBtldrCommRead函数接收数据,调用CyBtldrCommWrite函数发送数据,这两个函数都属于通讯协议处理层,由Bootloader使用的通讯接口模块独立维护,不同的通讯接口模块具有不同实现。若使用专有通讯接口时,还需实现上述两函数以便CyBtldr_HostLink能够收发数据。 5. 总结 使用PSoC Creator 1.0的Bootloader开发框架,开发者可以通过I2C或USB轻松更新基于PSoC3的应用产品固件程序,即使针对不同的应用需求,开发者只需较少的开发投入,就可以在Bootloader框架基础上进行二次开发,实现多样的产品特性。 参考文献 [1]. PSoC3 Architecture Technical Reference Manual, Cypress Semiconductor Ltd. [2]. PSoC Creator: Timer Component Datasheet, Cypress Semiconductor Ltd. [3]. PSoC Creator: Interrupt Component Datasheet, Cypress Semiconductor Ltd. [4]. PSoC Creator: System Reference Guide, Cypress Semiconductor Ltd. [5]. AN60317, PSoC 3 / PSoC 5 I2C Bootloader, Cypress Semiconductor Ltd.
Cypress PSoC3 PSoC Creator Bootloader I2C 相关文章:
- 基于PSoC?4 的PMSM无传感器矢量控制(09-23)
- 基于CY8C3866的无线脑电信号采集检测系统设计(06-24)
- 解读USB控制器芯片及其在图像采集中的应用(06-06)
- 基于PSoC?4的矢量控制方案 :电流采样(06-04)
- 基于CYUSB3014高速实时数据采集系统的设(04-23)
- 一款基于CYPRESS的USB3.0总线设计(03-19)