硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3078|回复: 3
收起左侧

[客户分享] 自制烧录器踩坑

[复制链接]

48

主题

46

回帖

190

积分

初级会员

积分
190
发表于 2020-8-26 17:10:12 | 显示全部楼层 |阅读模式
最近一直在折腾烧录器,目前折腾出来了stm32的F0,F2,stm8s,以及瑞萨的RL78,stm32和瑞萨的都是按照协议来就行了,stm32主要参考了H7,感谢大神的分享,stm8s的就有些区别了,采用的是DMA+定时器的方式,会用到两个定时器器,定时器A用两个通道捕获, 定时器B,输出PWM模拟SWIM协议,定时器A两个通道合作捕获低电平的时间,ch1配置为下降沿复位定时器,ch2配置为上升沿捕获,ch2捕获的数据就是低电平的时间,这里遇到的是坑,最开始在stm32103上弄swim协议,用到两个DMA,而且DMA同时工作,偶尔会遇到协议通讯失败,后来跟踪发现DMA没有传输数据到PWM输出,但是DMA 的计数值缺减1,不确定在103平台上两个DMA同时传输,会不会产生冲突,配置DMA的优先级也不行,现在换到F4平台,同样是双DMA同时传输(一个DMA捕获,一个DMA传输占空比到CCR),连续测试下来没有再出现问题,可以参考https://bbs.21ic.com/icview-1719412-1-7.html?_dsign=4c98fc94,再传一个采用单DMA的实现SWIM的例子,只采用了DMA捕获低电平,使用GPIO模拟SWIM协议

SWIM_2016-10-30.zip

303.05 KB, 下载次数: 48

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107852
QQ
发表于 2020-8-26 17:15:54 | 显示全部楼层
谢谢分享
回复

使用道具 举报

10

主题

140

回帖

170

积分

初级会员

积分
170
发表于 2020-8-27 13:15:00 | 显示全部楼层
CC2541、TLSR8250F512等蓝牙芯片的烧录器有没有打算搞搞?
回复

使用道具 举报

48

主题

46

回帖

190

积分

初级会员

积分
190
 楼主| 发表于 2020-9-1 18:09:44 | 显示全部楼层
lvehe 发表于 2020-8-27 13:15
CC2541、TLSR8250F512等蓝牙芯片的烧录器有没有打算搞搞?

不打算的,没用过这些芯片
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-16 04:13 , Processed in 0.167836 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表