Stm8s 之 Swim 调试

2019-12-15 11:16发布

本帖最后由 12tangyang12 于 2014-11-22 20:31 编辑

这段时间研究了下Stm8的Swim接口协议,下面将自己的一些见解和大家分享。(在此感谢有如此好的平台)
SWIM接口干嘛的,就不多说了,下面直接进入主题:SWIM接口分析心得
1、SWIM接口协议由三条基本指令组成:SRST----000 复位指令、ROTF------001读指令、WOTF------010写指令
     每一段数据由             数据方向+数据+奇偶校验+ 应答           
        数据方向:0表示主机向从机、1表示从机向主机
        数据:     通过不同的低电平时间表示0还是1,每八位一组
        奇偶校验:通过数据位中1的个数是奇数还是偶数觉定
        应答:        若主机向从机发送数据则由从机发出应答,反之由主机发出应答。
    由若干段数据组成一帧,如写数据帧 由   指令+ 字节数+目标地址+数据 组成。
单片机上电后SWIM接口处于OFF模式,要想让其进入活动模式需要发送特定的数据序列,即为4个1K方波+4个2K方波如下图: SMEOZE5QKRDN563VVEHIMNR.jpg (78.45 KB, 下载次数: 0) 下载附件 7 2014-11-22 20:04 上传
从机返回的数据这里出错了,,,,这是怎么回事??
问题解决,,,,由于没有加上拉电阻导致,加了个上拉电阻便能正确回复
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
34条回答
teamworker
1楼-- · 2019-12-18 08:28
MARK 谢谢楼主
brbl
2楼-- · 2019-12-18 11:48
理解透彻,写得明白,谢谢分享...
秽土转生
3楼-- · 2019-12-18 14:28
12tangyang12 发表于 2014-11-22 12:27
正在搞。。。。

大神,问你个事。我公司最近在做一个项目,需要用到到STM8的在线升级。

我们这边的基本思路是:通过网络,将最新固件发送给Linux,然后是Linux给STM32。最后是通过swim烧录到STM8s。该过程,用户无需任何操作,我们就把固件升级了。

请问STM32将数据通过SWIM发送给STM8真的行得通吗?速度快不快。能不能加一下你的QQ或者其它的交流方式?(有偿询问)
lsls666888
4楼-- · 2019-12-18 18:11
楼主分析的比较精辟,谢谢楼主。
12tangyang12
5楼-- · 2019-12-18 23:39
 精彩回答 2  元偷偷看……
秽土转生
6楼-- · 2019-12-19 00:27
12tangyang12 发表于 2016-11-16 12:55
完全行得通,因为 stm8的仿真器就是stm32芯片。也可以在stm8上加Bootloader啊

请教一些问题,就是SWIM协议在往SWIM_CSR寄存器写配置的时候遇到的问题。

手册上面是这俩句
3.  Activate the SWIM_CSR register by writing 1 to the DM bit in SWIM_CSR
4.  Disable interrupts by setting the SAFE_MASK bit in SWIM_CSR

配置第SWIM_CSR_7和SWIM_CSR_5         也就是1010  0000      写入0xA0     我这边分开写才有应答   而且还是 第一次写入  0010 0000     第二次写入  1000 0000        如果直接写入0xA0  则没有应答   是不是很奇怪




还有一个请教的   就是SWIM的读函数怎么写     我试过  因为电平时间太短的原因完全就是失效了,你有什么好的算法分享一下。

一周热门 更多>