OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6370|回复: 24

关于用F4的SPI写LD3320程序的时序问题

[复制链接]

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
发表于 2018-3-16 09:59:24 | 显示全部楼层 |阅读模式
50金钱
搞了一天,发现移植官方的程序一直读LD_ReadReg(0x35)LD_ReadReg(0x1b)
LD_ReadReg(0xb3)
这几个寄存器都得到的是0,一直卡在LD_Check_ASRBusyFlag_b2()这个函数中的LD_ReadReg(0xb2)的值一直也是0,为繁忙
应该是时序问题导致的读写寄存器都出错,但是查了半天没查出来哪里的时序错误,官方源码是F1的,要移植到F4,不清楚两个关于SPI有什么注意的地方,有空的大神麻烦帮比较一下两者的初始化,要是有已经做过F4的LD3320,指点一下小的吧。

LD3320_ASR(F4程序).zip

4.48 MB, 下载次数: 177

官方源码(F1).zip

4.43 MB, 下载次数: 165

最佳答案

查看完整内容[请看2#楼]

感谢楼主,让我发现了问题所在。我使用的stm32f407vet6,官方文档的SPI初始化函数多了一个WR的GPIO的初始化,要把那个WR GPIO的初始化,拿出来另外再另外初始化。开始看的时候也觉得写在一起应该没什么问题,但是调试了一个星期就是一直打印错误码0x31。拿出来了以后就可以识别成功了。不过有点不明白为什么在一起初始化就不行了?还有一个就是SPI_InitStructure.SPI_BaudRatePrescaler 不能太高,太高也会出问题,我试过SPI_Bau ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-1-3
在线时间
1 小时
发表于 2018-3-16 09:59:25 | 显示全部楼层
本帖最后由 soymilk 于 2019-1-3 10:43 编辑
142zjb 发表于 2018-3-16 18:31
换了一个全新的F4板,发现程序直接卡死在我移植程序SPI的初始化中, 因为WR的IO口初始化和SPI无关(但是F1 ...

感谢楼主,让我发现了问题所在。我使用的stm32f407vet6,官方文档的SPI初始化函数多了一个WR的GPIO的初始化,要把那个WR GPIO的初始化,拿出来另外再另外初始化。开始看的时候也觉得写在一起应该没什么问题,但是调试了一个星期就是一直打印错误码0x31。拿出来了以后就可以识别成功了。不过有点不明白为什么在一起初始化就不行了?还有一个就是SPI_InitStructure.SPI_BaudRatePrescaler 不能太高,太高也会出问题,我试过SPI_BaudRatePrescaler_128 SPI_BaudRatePrescaler_256 都没问题。需要源码的可以找我。
回复

使用道具 举报

22

主题

117

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
798
金钱
798
注册时间
2015-10-24
在线时间
160 小时
发表于 2018-3-16 10:33:27 | 显示全部楼层
帮顶
回复

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2180
金钱
2180
注册时间
2014-6-30
在线时间
341 小时
发表于 2018-3-16 11:52:59 | 显示全部楼层
初始化时候SPI速度给慢点,播放语音的时候在给高就可以了
在电路上充实自己
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-16 12:09:50 | 显示全部楼层
greatxiaoguzi 发表于 2018-3-16 11:52
初始化时候SPI速度给慢点,播放语音的时候在给高就可以了

SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
256分频也试过了,我还没做到语音播报,单纯语音识别,你有用F4移植成功的程序吗
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-16 17:40:21 | 显示全部楼层
F1和F4在SPI时序这方面还需要注意什么,或者有什么办法可以直观看到两个程序的时序差别吗?用F1板子测试过,模块和官方程序都是可以用的
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-16 17:40:44 | 显示全部楼层
绝望啊,两天没调出来,毕业设计最重要的一环
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-16 18:31:07 | 显示全部楼层
换了一个全新的F4板,发现程序直接卡死在我移植程序SPI的初始化中, 因为WR的IO口初始化和SPI无关(但是F1官方源码那里是放在和SPI初始化一起的),我将程序对WR初始化移到了GPIO初始化那里,发现居然读写寄存器居然终于成功了,虽然整个识别没进入中断,这个后话,明天再研究。
下面总结一下,
1,经过这个操作,我发现F4对SPI初始化居然会因为在函数里对其他IO口初始化就影响了时序。。。。看起来完全不科学啊。
2,我再试了其他旧的F4板,发现就同一个程序,读写寄存器还是不行,电压不稳?电源适配器也接上了,但是还是不稳,是不是用久了板子对时序影响会很大啊,这个问题返修能解决吗?大概是晶振还是哪里的问题。
3,我用那旧的F4板,去下载原子“实验25 SPI实验”,完全没有问题,难道对这个LD3320模块特别严格吗?
@正点原子
上述类似的问题不知道有没有其他人遇到过,原子哥,这个如果对SPI时序真的很严格,只能新板才能实现,那我这个旧板返厂涉及到哪部分重新维修就可以正常使用回呢?
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-16 18:34:16 | 显示全部楼层
新板大约是17年9月份实验室统一购买的(背板写的是“Explorer STM32F4 BOARD V2.6”),旧板是我16年7月买的(背板写的是“Explorer STM32F4 BOARD V2.4”),这两个板有过什么小改动吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2018-3-17 01:31:25 | 显示全部楼层
142zjb 发表于 2018-3-16 18:34
新板大约是17年9月份实验室统一购买的(背板写的是“Explorer STM32F4 BOARD V2.6”),旧板是我16年7月买 ...

没什么太大变化,原理图是一样的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-17 09:56:58 | 显示全部楼层
正点原子 发表于 2018-3-17 01:31
没什么太大变化,原理图是一样的

那我的问题会出在哪?用久了MCU对时序的处理没有那么精准?还是晶振或别的什么问题?
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-17 11:08:54 | 显示全部楼层
正点原子 发表于 2018-3-17 01:31
没什么太大变化,原理图是一样的

又借到一个V2.4的板,这次的又没问题,大部分时候寄存器读写正确,有时候不行,应该还和接线有关,可能接线那边不稳,但是昨天发现经常用的旧板可能电压频率不稳也是有可能的
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-1-15
在线时间
5 小时
发表于 2018-3-18 18:07:41 | 显示全部楼层
调出来没,我能识别,但是不能播放语音
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-18 20:48:59 | 显示全部楼层
k60ads 发表于 2018-3-18 18:07
调出来没,我能识别,但是不能播放语音

调出来了,语音可以了,播报还没空,过几天再弄吧
回复

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2180
金钱
2180
注册时间
2014-6-30
在线时间
341 小时
发表于 2018-3-18 22:05:50 | 显示全部楼层
142zjb 发表于 2018-3-16 12:09
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
256分频也试过了,我还没做到 ...

F4我没移植过。我搞的是F3的
在电路上充实自己
回复

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2180
金钱
2180
注册时间
2014-6-30
在线时间
341 小时
发表于 2018-3-18 22:06:26 | 显示全部楼层
142zjb 发表于 2018-3-16 17:40
F1和F4在SPI时序这方面还需要注意什么,或者有什么办法可以直观看到两个程序的时序差别吗?用F1板子测试过 ...

基本没啥差别吧,你的SPI时钟一样应该就可以啊
在电路上充实自己
回复

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2180
金钱
2180
注册时间
2014-6-30
在线时间
341 小时
发表于 2018-3-18 22:07:26 | 显示全部楼层
142zjb 发表于 2018-3-16 17:40
绝望啊,两天没调出来,毕业设计最重要的一环

我在f103上做的效果还可以,环境检测用的,可以看我以往发的帖子
在电路上充实自己
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-1-15
在线时间
5 小时
发表于 2018-3-18 23:17:15 | 显示全部楼层
142zjb 发表于 2018-3-18 20:48
调出来了,语音可以了,播报还没空,过几天再弄吧

我也都调出来了,F4的,可以识别也可以播放语音
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2018-3-19 10:31:46 | 显示全部楼层
k60ads 发表于 2018-3-18 23:17
我也都调出来了,F4的,可以识别也可以播放语音

好,后面调不出来再找你请教!
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-1-19
在线时间
3 小时
发表于 2019-4-16 15:58:51 | 显示全部楼层
soymilk 发表于 2018-3-16 09:59
感谢楼主,让我发现了问题所在。我使用的stm32f407vet6,官方文档的SPI初始化函数多了一个WR的GPIO的初始 ...

发一下源码吧!
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2019-10-20
在线时间
2 小时
发表于 2019-10-22 18:00:08 | 显示全部楼层
soymilk 发表于 2018-3-16 09:59
感谢楼主,让我发现了问题所在。我使用的stm32f407vet6,官方文档的SPI初始化函数多了一个WR的GPIO的初始 ...

大哥给个源码
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2019-10-20
在线时间
2 小时
发表于 2019-10-22 20:32:09 | 显示全部楼层
k60ads 发表于 2018-3-18 23:17
我也都调出来了,F4的,可以识别也可以播放语音

请教一下。。。
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6412
金钱
6412
注册时间
2018-6-27
在线时间
543 小时
发表于 2019-11-20 17:23:35 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

3

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2019-10-3
在线时间
42 小时
发表于 2020-2-8 11:20:47 | 显示全部楼层
有大佬发个源码吗
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-9-2
在线时间
3 小时
发表于 2020-9-2 20:23:26 | 显示全部楼层
楼主可以发一下程序吗?我也在做语音识别
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 11:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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