打印
[MM32软件]

MM32F0010A1T SWDIO引脚设为UART_RX后怎么恢复联机(已解决)

[复制链接]
1289|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ZG11211|  楼主 | 2021-2-5 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ZG11211 于 2021-2-7 15:22 编辑

调试芯片时,将MM32F0010的编程引脚SWDIO设定为UART-RX编程(之前用J-LINK和ST-LINK都没问题)后,再次编程失败,无法连接,用ST-LINK或J-LINK,请问大家有遇到过吗?有什么办法解砖,其实也不算砖,之前刷进去的程序还在跑AD采集然后UART2-TX输出。

使用特权

评论回复
沙发
zhu^zhu| | 2021-2-6 22:28 | 只看该作者
可以由MM32-LINK的编程器软件恢复。可能有些麻烦。

使用特权

评论回复
板凳
huangzushuimd| | 2021-2-7 10:26 | 只看该作者
在TSSOP20的PIN4与QFN20的PIN1支持通用GPIO功能PA14,复用功能SWDCLK,MM32F0010在上电复位后,默认是SWDCLK功能的,通过对相关寄存器的配置,可以实现通用GPIO功能PA14,UART1_TXD,附加功能nRST之间的切换。
在Datasheet中,有提供了相关的描述;
但使用中可能会遇到把该I/O配置为PA14/UART_TX,需恢复为SWDCLK功能
        nRST/PA14/SWCLK Pin被配置为PA14或UART1_TXD后,如果需要再次通过SWD接口连接目标MCU,可做如下动作:
1)        因为程序配置为PA14或UART1_TXD后, 会使该I/O无法再成为SWCLK,但只要进入RESET(内部软件复位, IWDG 复位, Standby 唤醒,Power Reset等,都会先把该IO切换为SWCLK功能;
2)        但上述时间窗口比较不好掌握,最好是在程序中进入main()程序后,配置该PIN为PA14或UART1_TX前,有预置较长时间的延时等待(>100ms),可通过重新上电MCU,立刻执行Erase Chip功能,擦除目标MCU中Main Flash空间的程序;
3) 使用MM32LINK工具尝试进行恢复。


使用特权

评论回复
地板
ZG11211|  楼主 | 2021-2-7 11:22 | 只看该作者
huangzushuimd 发表于 2021-2-7 10:26
在TSSOP20的PIN4与QFN20的PIN1支持通用GPIO功能PA14,复用功能SWDCLK,MM32F0010在上电复位后,默认是SWDCL ...

1方案,用JLINK的控制电压输出给芯片供电,JLINK设定供电延迟20ms(最小可设1ms,但实际示波器观察供电和CLK波形,延迟时间最少不低于20ms)还是未能联机,失败。
2方案,初始化代码加入延迟后再初始化IO口配置,还没试,一旦失败,又得换芯片,等后面方便动硬件时再试。
3方案,使用MM32LINK也无法联机,或者可能是我不太会用,能否请FAE根据反馈信息验证是否可行?

使用特权

评论回复
5
ZG11211|  楼主 | 2021-2-7 15:21 | 只看该作者
已解决,用MM32-LINK,接4根线,Vref->VDD,GND->GND,SWCLK->PA14,SWDIO->PA13,电路板上PA14什么也没接,既没有对地接电容,也没有接上拉电阻,直连无法联机,连空白芯片MM32-LINK也无法联机,把示波器探头勾上去(探头和板子共地)空片就能联机了,遇到我这种上电即配置了IO口的情况时,点联机时再Vref->VDD,控制好上电节奏,就能联机,再擦除,搞定。

使用特权

评论回复
6
zhu^zhu| | 2021-2-7 19:50 | 只看该作者
哈哈,这是运气!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

1113

帖子

8

粉丝