硬汉嵌入式论坛

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

求助F429使用I2S做从机,DMA接受数据异常

[复制链接]

9

主题

25

回帖

52

积分

初级会员

积分
52
发表于 2024-11-30 17:12:48 | 显示全部楼层 |阅读模式
现象如下:使用CUBEMX生成工程,F407做I2S主机发送,如图一图二,DMA周期发送256个相同的字节:0x1234;F429做I2S从机接受,如图三图四,DMA循环模式,开启半半传输完成和传输完成中断;发现从机上电后有时收到的数据不是0x1234,如0x4123,0x1A09,有时又是正常的。推测是从机在检测ck时出问题,ck不一致,但我配置i2sclock都是一样的。请教大佬这会是什么导致的

图一主机时钟

图一主机时钟

图二i2s配置

图二i2s配置

图三从机时钟

图三从机时钟

图四从机i2s配置

图四从机i2s配置
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-1 09:36:44 | 显示全部楼层
帮顶,没用过I2S从机
回复

使用道具 举报

9

主题

25

回帖

52

积分

初级会员

积分
52
 楼主| 发表于 2024-12-6 11:29:54 | 显示全部楼层
已定位问题,数据错位时SR寄存器会检测到FRE帧错位;可以通过关闭DMA和复位SPI外设重启;但如果使用24bit/32bit通讯时,如果刚好高16位和低16位错位的话是无法检测到FRE错误的,其他bit错位能检测到
回复

使用道具 举报

2

主题

25

回帖

31

积分

新手上路

积分
31
发表于 2024-12-17 10:59:29 | 显示全部楼层
你在初始化时,先初始化IIS从机,再初始化IIS主机。我记得F4系列做IIS从机时,只会根据clk来采数。如果clk发生错误,之后所有的帧数据就全是错的。
回复

使用道具 举报

0

主题

40

回帖

40

积分

新手上路

积分
40
发表于 2024-12-19 17:12:10 | 显示全部楼层
做从机一般要检查外设寄存器的状态的,不是简单的读取,接收而已,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 07:32 , Processed in 0.042391 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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