有一片STM32F103RBT6的SPI出现了神奇现象

[复制链接]
4162|17
 楼主| zhaoyu2005 发表于 2012-12-18 16:33 | 显示全部楼层 |阅读模式
今天发现手头的一个手持仪表有故障,明明所有记录已经清除,重新上电后记录就满了,并且所有记录一样。另外一台正常。
记录存在AT25256(使用硬件SPI2通讯)里,每条记录16字节,最先4字节组成32bits整形数据,表示记录的时间点,每次上电搜索整个记录存储区,确定记录条数。
开始以为AT25256坏了,换了个,故障依旧,最后上jlink,发现读出的数据错误,最后一位固定为0,最先是模式3(CPOL = SPI_CPOL_High,CPHA = SPI_CPHA_2Edge),然后改成模式0(CPOL = SPI_CPOL_Low,CPHA = SPI_CPHA_1Edge),仍旧不行,重新焊了块板子,烧上新程序,之前不行的AT25256数据读取正常,所以可以确认故障是由STM32F103RBT6引起的
而这个程序之前已经还几台机器山用过,一直正常,很是纳闷,怎么会最后一位固定为0,其他位正常。
不知道有其他人遇到没?
补充下:系统供电3.3V,这个供电范围AT25256的时钟可以达到10MHz,AT25256支持SPI模式0 和 3
uet_cache 发表于 2012-12-18 16:55 | 显示全部楼层
这么神的问题没遇到过。
不过,你可以多读一位。把最后一位,丢掉。不过,这不是根本解决办法。
 楼主| zhaoyu2005 发表于 2012-12-18 17:11 | 显示全部楼层
uet_cache 发表于 2012-12-18 16:55
这么神的问题没遇到过。
不过,你可以多读一位。把最后一位,丢掉。不过,这不是根本解决办法。 ...

用的是硬件控制的,不是软件模拟的,所以不能多读多一位。暂时还没试软件模拟的
uet_cache 发表于 2012-12-18 17:14 | 显示全部楼层
噢,对呦。那就不清楚了。
 楼主| zhaoyu2005 发表于 2012-12-19 09:23 | 显示全部楼层
顶一下,希望大侠看到
 楼主| zhaoyu2005 发表于 2012-12-20 10:45 | 显示全部楼层
不知道是就我一个人遇到了还是大侠么看到
55854234 发表于 2012-12-20 13:48 | 显示全部楼层
帮顶 学习
 楼主| zhaoyu2005 发表于 2012-12-22 14:56 | 显示全部楼层
再顶几天
拿起书本 发表于 2012-12-24 09:03 | 显示全部楼层
跟着标题进来的,没遇到过这情况,帮顶一下,希望楼主早日解决问题,记得分享哦
 楼主| zhaoyu2005 发表于 2012-12-24 09:36 | 显示全部楼层
再顶顶,忙完了,写个程序,测试下发送的数据是否正常
seawwh 发表于 2012-12-24 22:41 | 显示全部楼层
建议这样分别测试一下:
1. SPI 时钟降速;
2. 使用另一个SPI口试验
 楼主| zhaoyu2005 发表于 2012-12-26 15:46 | 显示全部楼层
预计下个月中旬写程序验证
hsbjb 发表于 2012-12-26 16:00 | 显示全部楼层
的确是很奇怪的问题
火箭球迷 发表于 2012-12-26 16:19 | 显示全部楼层
很神奇
dfsa 发表于 2012-12-26 16:31 | 显示全部楼层
这个问题LZ是如何解决的
 楼主| zhaoyu2005 发表于 2013-1-16 16:48 | 显示全部楼层
今天用两块板子写测试程序测试了下。
测试程序及结果如下:
1.SP2为主模式,SPI1为从模式,互传6个数据00 55 5a a5 aa ff,有问题的板子只有00正确,正常的板子数据全部正确
2.正常的板子SP2为主模式,有问题的板子SPI1为从模式,仍旧传输6个数据,全部正确
3.正常的板子SP2为主模式,有问题的板子SP2为从模式,传输6个数据,全部正确
4.正常的板子SP2为从模式,有问题的板子SPI2为主模式,仍旧传输6个数据,全不正确

结论:有问题板子的STM32F103RBT6的SPI2主模式发送数据异常,但是不能确定是时钟线有问题还是数据线有问题,怀疑数据线有问题的可能性大
 楼主| zhaoyu2005 发表于 2013-1-16 16:52 | 显示全部楼层
很郁闷的是这个片子坏的莫名其妙
hwboy05 发表于 2015-3-23 00:28 | 显示全部楼层
试试在写的间隔增加延时。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

2940

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部