打印
[STM8]

STM8--通过SWIM协议--可以对寄存器(0x7F80)写入,但是内存空间写不进

[复制链接]
3203|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dddingjianlin|  楼主 | 2013-4-14 17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近小弟在研究stm8的SWIM协议,现在可以通过SWIM协议对stm8内存空间的读操作,但是对内存空间的写操作还是不行;
问题最纠结的是:发现可以对寄存器SWIM_CSR(0x7F80)可以写入读出,写入读出数据都比对ok!
但是对内存地址0x9000或0x4000(E2起始地址),发现写入无效,所以小弟在这里请教一下高手们,
SWIM协议中对写寄存器和对内存地址写有区别吗?还是我理解有误!!
我捕捉过写过程中的时序,从机ACK也正确回复1了,但是对内存地址就是写不进去,真伤!
沙发
IJK| | 2013-4-14 17:39 | 只看该作者
走得太快了。
应该先写、读RAM,看是否行。
然后才能写、读FLASH/E2

使用特权

评论回复
板凳
dddingjianlin|  楼主 | 2013-4-14 18:22 | 只看该作者
IJK 发表于 2013-4-14 17:39
走得太快了。
应该先写、读RAM,看是否行。
然后才能写、读FLASH/E2

好,非常感谢!我好像在swim参考手册没发现这样的说明!
明天早上试一下先对RAM的写读,
我走完reset低电平需要处理的流程之后,就去读flash和E2发现是ok的!
按理说,写和读是同一等级别的,可以读就可以写的,难不成被写保护了,需要
特殊处理一下才能可以写》?这是我现在的疑问!

使用特权

评论回复
地板
cjhk| | 2013-4-14 20:05 | 只看该作者
应该问题不大吧   呵呵   这个很简单吧   应该不熟悉寄存器的设置而已   呵呵

使用特权

评论回复
5
dddingjianlin|  楼主 | 2013-4-15 08:57 | 只看该作者
今天早上试过了,对RAM是可以正常读和写的,对flash和E2还是不行。
4L说的对寄存器不熟悉,我想也是!我在仔细看看...
哪位大神可以指导一二!感激不敬..

使用特权

评论回复
6
IJK| | 2013-4-15 09:54 | 只看该作者
对flash和E2不行,是正常的。对flash和E2写,其实是进行编程操作,需要走编程流程的----要操作几个flash相关的寄存器,可以看相应的flash编程手册。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
dddingjianlin + 1 15
7
dddingjianlin|  楼主 | 2013-4-15 11:12 | 只看该作者
IJK 发表于 2013-4-15 09:54
对flash和E2不行,是正常的。对flash和E2写,其实是进行编程操作,需要走编程流程的----要操作几个flash相 ...

是的,的确如此。
我早上想到了,已经测试程序成功了!

使用特权

评论回复
8
desertsailor| | 2013-4-17 12:15 | 只看该作者
没仔细看手册,flash编程手册上有讲到写入步骤。

使用特权

评论回复
9
大秦正声| | 2013-4-17 15:58 | 只看该作者
很不错!用在脱机编程器吗?

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝