PSoC离线烧录工具
Infineon提供了PSoC4完整的离线烧录的源码,参考文档 Infineon-AN84858-ApplicationNotes,可以很容易的实现,于是就做了一个PSoC4的离线烧录工具,并做了稍许优化:
目前支持如下功能:
- 主控MCU使用CY8C4148AZI-S453,256KB Flash,32KB SRAM,所以支持的目标芯片的flash不会大于256KB。
- TypeC USB,支持cc线,通过usb转串口,最高支持2000000波特率,通过USB完成离线固件的下载。
- 支持蜂鸣器,当触摸按键按下及烧录成功后会beep提示,如果烧录失败也会通过beep的不同响声提示。
- 支持两个WS2812的全彩LED,用于指示烧录状态。
- 支持两个LED,其中一个做呼吸灯效果,另一个通过闪烁指示烧录过程中。
- 支持两个TouchPad,一个接近感应。
- 支持对外供电的输出控制,支持Power Cycle模式。
- 支持接口buffer…
Infineon提供的上位机软件C#开发的,针对每种芯片生成相应的HexImage.c及HexImage.h文件,然后参与编译后方可使用,而且如果实际目标程序很小,但是hex文件中却包含了大量的无效的0数据,于是就用QT做了个小工具来解决这问题:(基于之前开源的P4UartBtl的小工具上修改过来的)
- 根据USB转串口芯片的VID和PID,自动识别USB的插入及断开,连接后自动打开串口。
- 串口波特率默认配置为2000000,支持常见的几种波特率配置。
- 支持目标芯片的选取,目前支持CY4104、CY4025、CY4126、CY4127、CY4148等芯片,其他芯片未测试。
- 支持程序版本号的配置,支持读取。
- 支持Power Cycle模式的配置,不勾选默认为Pin Reset。
- 打开Hex文件,处理Hex数据,移除无效的0数据,减小烧录的代码,所以使用4148也可以烧录4148。
- 支持另存为Bin文件,bin文件可同时存储为纯bin文件及添加了配置头的bin文件,方便后期导入miniprog4 plu中离线下载。
- 支持查询命令,可查询目前存储于芯片中的固件信息。
- 支持ping、reset等命令,后期可增加bootloader,支持更新App功能。
离线烧录操作:
上电后,呼吸灯会呼吸,说明板卡正常工作。
左边小鲨鱼图标的touch pad,单击会打开对外供电,再次单击会关闭对外输出的供电。
需要离线烧录目标芯片时,先关闭对外供电,连接好接线,然后双击右边的触摸按键。1秒钟内需要连点两下才会对外烧录。避免误触误烧。
离线烧录时需要经过如下完整的步骤:
Device Acquire
Verify Silicon ID
Erase all Flash
Checksum Privileged Calculation
Program Flash
Verify Flash
Program Protection Settings
Verify Protection Settings
Verify Checksum
Exit HSSP Programming mode
每一步操作都会由左边的WS2812显示一种颜色指示当前的烧录状态,操作完成后会变为绿色,如果烧录失败后,右边的那颗2812会显示红色。如果待烧录的目标芯片教大时,DispLed会闪烁指示当前仍在正常烧录。
注:Program Flash和Verify Flash时间有时会较长,其中需增加喂狗操作,否则很容易重启。
支持Power Cycle模式,尤其是对于无Reset脚引出的CY8C4014等芯片,同时SWD又被复用为GPIO或IIC功能时,Power Cycle模式特别有用。
TFT功能,为尽可能的缩小app的flash占用,暂时先不上tft了。
上位机软件下载地址: https://gitee.com/xarm/iTuner ,OffLineTools.exe即是。
也欢迎留言提出其他功能,只有电工才更懂电工的需求,感谢~