OpenEdv-开源电子网

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

I2S外部时钟与SDIO冲突

[复制链接]

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2015-5-29
在线时间
22 小时
发表于 2016-4-20 22:05:22 | 显示全部楼层 |阅读模式
10金钱
我在做I2S与外部通信,通信的数据写入SD卡中,由于对时钟的要求,需要外部时钟作为I2S的时钟输入,但是I2S的外部时钟脚I2S_CKIN与SDIO_D1冲突,请问如何解决?



QQ截图20160420220449.png

最佳答案

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

这个可以实现。 按照下图的配置,系统时钟也接近168M,如果考虑功耗,建议降低一半频率或者更低。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1730
金钱
1730
注册时间
2016-3-8
在线时间
678 小时
发表于 2016-4-20 22:05:23 | 显示全部楼层
本帖最后由 adlu 于 2016-4-22 10:31 编辑
川草 发表于 2016-4-22 08:57
谢谢,我想了一个方案,麻烦你帮我看一下可不可以
stm32使用12.288MHz外部晶振作为HSE,设置MCO1输出HSE ...

这个可以实现。
按照下图的配置,系统时钟也接近168M,如果考虑功耗,建议降低一半频率或者更低。
QQ截图20160422102807.jpg
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
发表于 2016-4-20 23:11:44 | 显示全部楼层
sdio使用1bit模式,否则无解。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-4-20 23:35:37 | 显示全部楼层
换引脚多的MCU吧。。。。没办法。或者不用SD卡了。
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2015-5-29
在线时间
22 小时
 楼主| 发表于 2016-4-21 08:37:26 | 显示全部楼层
jinggx 发表于 2016-4-20 23:11
sdio使用1bit模式,否则无解。

1bit存储速度不够啊。。。。
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2015-5-29
在线时间
22 小时
 楼主| 发表于 2016-4-21 08:39:01 | 显示全部楼层
正点原子 发表于 2016-4-20 23:35
换引脚多的MCU吧。。。。没办法。或者不用SD卡了。

F407就算换到I系列也是冲突啊,不用SD卡数据怎么存啊,最少要96K的I2S速率的数据啊
回复

使用道具 举报

12

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1730
金钱
1730
注册时间
2016-3-8
在线时间
678 小时
发表于 2016-4-21 09:07:03 | 显示全部楼层
这确实是STM32设计上考虑不周的一个地方。

事实上,I2S_CKIN不是必须的。
STM32作为I2S从机的时候不需要I2S_CKIN。
STM32做I2S主机的时候,I2S的主时钟有两种可选的来源。
QQ截图20160421085226.jpg
一是直接来自I2S_CKIN引脚输入,此时需要在I2S_CKIN引脚输入音频主时钟,如12.288M。
二是来自PLLI2S,该时钟由主时钟源经过PLLI2S倍频分频得到。用这种方式就不需要I2S_CKIN输入。但是如果要得到标准的44100或者48000采样率,就必须将主时钟晶振(如常用的8M)换成音频晶振22.5792M或者12.288M。
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2015-5-29
在线时间
22 小时
 楼主| 发表于 2016-4-21 11:36:09 | 显示全部楼层
adlu 发表于 2016-4-21 09:07
这确实是STM32设计上考虑不周的一个地方。

事实上,I2S_CKIN不是必须的。

我还想问一下,我的I2S外设要求MCLK是128fs,但是stm32是256fs,如果我以外设为主模式,stm32为从模式,同事STM32发送MCLK给外设,是不是可以忽略掉这个问题?
回复

使用道具 举报

12

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1730
金钱
1730
注册时间
2016-3-8
在线时间
678 小时
发表于 2016-4-21 16:04:52 | 显示全部楼层
川草 发表于 2016-4-21 11:36
我还想问一下,我的I2S外设要求MCLK是128fs,但是stm32是256fs,如果我以外设为主模式,stm32为从模式, ...

STM32只有作为I2S主机的时候,才能输出MCLK。

STM32作为从机的时候是不需要MCLK的,搭建的电路满足外部I2S的工作条件即可。

如果你想省一个晶振,可以使用音频有源晶振如12.288M,同时供MCU和外部I2S主机。
回复

使用道具 举报

12

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1730
金钱
1730
注册时间
2016-3-8
在线时间
678 小时
发表于 2016-4-21 16:21:59 | 显示全部楼层
本帖最后由 adlu 于 2016-4-21 16:28 编辑
adlu 发表于 2016-4-21 16:04
STM32只有作为I2S主机的时候,才能输出MCLK。

STM32作为从机的时候是不需要MCLK的,搭建的电路满足外 ...

上一帖有问题。

我重新看了一下,完全可以解决你提出的问题。

QQ截图20160421162117.jpg

按照上图的配置,12.288M作为主时钟输入。
经过分频,在经过PLLI2S倍频和分频,得到24.576M给STM32的I2S模块。
另外配置将PLLI2SCLK进行2分频之后,输出到MCO2引脚,这样就得到12.288M给外部设备了。

回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2015-5-29
在线时间
22 小时
 楼主| 发表于 2016-4-21 16:31:56 | 显示全部楼层
adlu 发表于 2016-4-21 16:21
上一帖有问题。

我重新看了一下,完全可以解决你提出的问题。

你这个图上是时钟树的软件?还是什么?看起来好高大上!
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-4-21
在线时间
1 小时
发表于 2016-4-21 16:48:32 | 显示全部楼层
1111111111111
回复

使用道具 举报

12

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1730
金钱
1730
注册时间
2016-3-8
在线时间
678 小时
发表于 2016-4-22 08:34:43 | 显示全部楼层
川草 发表于 2016-4-21 16:31
你这个图上是时钟树的软件?还是什么?看起来好高大上!

STM32CubeMX
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2015-5-29
在线时间
22 小时
 楼主| 发表于 2016-4-22 08:57:15 | 显示全部楼层

谢谢,我想了一个方案,麻烦你帮我看一下可不可以
stm32使用12.288MHz外部晶振作为HSE,设置MCO1输出HSE,作为外部I2S芯片的MCLK,设置STM32为I2S从机,外部芯片为I2S主机,这样就可以精确输出时钟,又不与SD卡冲突
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2015-5-29
在线时间
22 小时
 楼主| 发表于 2016-4-22 10:37:57 | 显示全部楼层
adlu 发表于 2016-4-22 10:28
这个可以实现。
按照下图的配置,系统时钟也接近168M,如果考虑功耗,建议降低一半频率或者更低。

谢谢!
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-12-10
在线时间
1 小时
发表于 2019-12-23 17:19:33 | 显示全部楼层
adlu 发表于 2016-4-21 09:07
这确实是STM32设计上考虑不周的一个地方。

事实上,I2S_CKIN不是必须的。

回复楼上,这种方案还是行不通的。
SDIO 4bit模式下,MCO2是不能配置 的。只能用MCO1,但时钟源用的是PLCLK而不是PLLI2SCLK
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-12 09:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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