目的是用STM32做一个STM8烧录器, STM32只用到两个GPIO,一个用做SWIM, 一个用做RESET;
目前碰到以下问题:
1.SWIM 脚上拉电阻问题, 我是用10K, 看过网上别人的ST-LINK图,是680欧,我改成680欧,还是不成功;
2.MCU电平兼容问题, STM32是3.3V供电, STM8是5V供电,没有用到电平转换, 不成功; 将STM8是改成3.3V供电,还是不成功;
3. SWIM协议上说: 主机发送"进入系列" ,MCU将会回应128个HSI周期波形, 目前没有量到此波形;
用ST-LINK工具升级MCU, 示波器能量到主机发送"进入系列" ,MCU会将SWIM脚拉低,拉高几次,
虽然没有协议中说的那么多(128次),但至少还是送了几个高低出来;
我写的STM32升级程序, "进入系列"的波形和ST-LINK的一模一样,但MCU就是不回应;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
刚好我个弄个离线下载,还没完工,没时间弄了,回128个HSI周期波形,只有一个波形,是128个HSI周期(这个是目标芯片是时钟周期)不是回你128个波形,弄个分板仪看下,就清楚了
多谢楼主的分析, 我用ST-LINK升级 ,量到确实只送了一个波形出来;
奇怪的是, 我用STM32送出一模一样的 "进入序列" 给STM8 , STM8始终不会回应一个波形出来 , (即一个脉冲);
搞了几天, 一直是这样,
搞不清楚和ST-LINK的区别在哪里,
试过5V 和 3.3V , SWIM上拉电阻试过 10k, 680欧, 都不成功,
能否请问一下楼主的硬件连接关系是怎样的了?
我是只用到STM32的一个GPIO连接到SWIM引脚上去, 此GPIO做输出又做做输入;
看过网上的SWIM升级原理图: 竟然用到三个GPIO口 连接到SWIM上去(1个输出用, 2个做输入用)
我也是抄别人的电路,坛里高手的电路拼的,一个IO口输入确实不好用,两个基本不会误判,高速读操作时(低速一个基本没问题),刚刚弄好写跟校对,这个电路基本没什么问题,3.3-5V互换电路也很好使,这得谢谢坛里的这些大大们!
多谢楼主分享的资料,
因工程进度原因, 暂时放弃了自制STM8烧录器, 已购买了 离线烧录器 ,
改天有空拆开来看看 里面有硬件是怎么连的;
SWIM一个脚看上去简单,
搞过才知道, 其实不简单, 很多地方还是没有想明白.
希望大家继续讨论, 多交流知识, 谢谢!
一周热门 更多>