Miniprog4 Plus


MiniProg4 Plus

承接上一篇 《Clone MiniProg4》,最近它弟弟也出生了,虽然有些难产加不足,但丝毫不影响使用 ~ MiniProg4 Plus,如下图示:

MiniProg4 Plus

先说它的不足:相比官方的MiniProg4,它阉掉了如下功能:

  1. 不支持电压输出调节:本来只支持3.3V输出,后来应观众要求,增加跳线选择输出3.3V或5V。
  2. 不支持USB转SPI及GPIO功能,IO不够用了。
  3. 目前只支持PSoC4、PSoC6,其他器件是否能支持还有待测试.
  4. 接口部分官方版可能会有更多的保护,还没舍得扒了它的外衣看看
  5. 比官方的胖 … …

再来它的优点,首先它是一个精简版的MiniProg4,支持功能如下:

  1. 接口:TypeC,高速USB(480Mhz),输出是2.54间距的针(牛角座),官方的是孔,捅多了松松垮垮的很容易接触不良
  2. 支持USB转UART、USB转I2C、SWD - DAPLink V2 - WINUSB模式。
  3. Reset支持Power Cycle模式和Reset模式,同时支持Soft reset.
  4. 支持PSoC Creator下载、仿真调试、debug等等。
  5. 支持PSoC Programmer下载,读取固件,校验等。
  6. 支持Bridge Control Panel.
  7. 输出电压限流300mA.
  8. 它像普通daplink一样,支持其他家的MCU,比如stm32…

同时,我MiniProg4 Plus的Plus也绝非浪得虚名,借助iTuner上位机软件,它还支持:

  1. 支持通过SWD直接读取target 内存数据:
    调过Cypress触摸的小伙伴们都晓得Tunner软件,通过它可以方便的查看波形曲线调试触摸参数,可惜可惜:它使用I2C接口!而用户的板子一般都会留出SWD接口用于下载、调试,但不会再多留出一路I2C用于触摸调试,每次遇到没外接I2C而需要飞线来调触摸的板子时,心中总会有一万只动物跑过…
    MiniProg4 SwD读数据
    通过SWD接口直接读取内存中的buffer,解析Baseline和RawCount数据,计算信号量大小等,数据有了,波形自然也不会缺席:
    MiniProg4 SwD画波形
    波形支持鼠标滚轮放大缩小,支持拖动查看历史曲线,支持单次读取,也支持连续读取(默认100mS读一次),同时还支持点一下CapPicture按钮就可以将该Frame存储为png文件,方便出报告、后期查询。还支持Mi4的I2C读取,这样方便某些4014的板子,SWD和I2C复用并且SWD配置成了I2C接口。贴心吧?还是电工更懂电工~。

  2. 支持通过SWD读取target CPU寄存器:
    有了它,当Hardfault时,就可以实现目标芯片一行代码都不加而读取寄存器解析定位发生Hardfault的地址了,从此CmBackTrace成路人了~ 示例如下:
    MiniProg4 commands
    MiniProg4 hardfalt

    尤其某些bug隐藏的很深,运行很长时间后才会偶然产生,仿真器又不可能一直连着,当进入hardfault时往往傻眼,有了它,就可以轻松加愉快的来解决它了:仿真器连接时,只连接,然后halt,不要reset。实现方式依然参考Cmbacktrace实现的,当hardfault时,通过swd读取cpu寄存器,读出栈地址,然后读取栈内容,然后通过add2line工具解析,并获取add2line输出的数据,就可以了。
    站在巨人的肩膀上,感谢巨人~

  3. 支持elf文件解析,方便查询变量、数组等在内存中的地址,需要在ini配置文件中指定elf文件。
    ELF

  4. 支持USB MSC Bootloader,硬件固件支持拖曳更新,并且可以查看Boot和APP的版本信息,注此功能是用于更新调试器的固件,并非用于更新目标芯片的固件,
    usbMscBoot

  5. 目前只是初版,日后慢慢埋bug~

某些问题
参考MiniProg4,USB设备为复合设备,端点共使用了7个:DAP使用了2个,CDC使用了3个,Bridge使用了2个,usb驱动使用winusb模式,win10下都是免驱的,但是在某些电脑或者win7系统下可能无法识别,可参考文档 KitProg3 User Guide.pdf 第七章 TroubleShooting 章节,里面有一些 driver 问题的解决方法。

TODO List:

  1. 通过软件下载hex、bin文件至MCU,这样就不需要再打开PSoC Programmer了,ALL In One!
  2. 实现RTT读取功能,跟uart debug说拜拜。
  3. 实现JScope功能,目前已部分实现。
  4. 实现离线烧录功能,支持不大于256KB Flash Target的离线烧录。

也欢迎留言提出其他功能,只有电工才更懂电工的需求,感谢~


文章作者: xArm
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xArm !
评论