OpenEdv-开源电子网

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

请教原子哥,关于I2S的时钟配置寄存设置的疑问?

[复制链接]

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-3-9
在线时间
42 小时
发表于 2023-8-4 14:36:48 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 蓝贝壳蜗牛 于 2023-8-4 14:41 编辑

原子哥你好,目前我使用的是stm32F407最小系统板调试I2S程序,参照例程是F407探索者开发板录音机实验的寄存器版本程序,但按照例程中时钟配置表配置后却发现实际输出的时钟频率和表中不一致,且只有当PLLI2SN配置为小于256时输出时钟才和理论计算公式符合,请问这是什么原因呢。
数据位数是32位,I2S模式是主机接收,硬件晶振是8M,程序中PLLM是8,即PLL中I2SVCO输入频率是1MHz,我一度怀疑是PLLCVO输出时钟最大不能超过256M,但手册中写的是100~432MHZ之间,也并没有超的。。

PS:我在PLLI2SN数值小于256的情况下更改其它参数测试了不同的频率,输出都是正确的,应该能说明计算公式没问题。。


222.jpg
111.jpg

最佳答案

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

找到原因了,RCC_PLLI2SCFGR寄存器复位后是0x20003000,但是我赋值时是直接按位与的,所以倍频值大于256后,赋值移位后结果就会出错
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-3-9
在线时间
42 小时
 楼主| 发表于 2023-8-4 14:36:49 | 显示全部楼层
本帖最后由 蓝贝壳蜗牛 于 2023-9-19 16:37 编辑

找到原因了,RCC_PLLI2SCFGR寄存器复位后是0x20003000,但是我赋值时是直接按位与的,所以倍频值大于256后,赋值移位后结果就会出错

QQ截图20230919163730.jpg
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-3-9
在线时间
42 小时
 楼主| 发表于 2023-8-4 14:38:01 | 显示全部楼层
为什么图片被吞了呢
回复

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2023-4-17
在线时间
7 小时
发表于 2023-8-6 15:47:43 | 显示全部楼层
帮顶一下
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2023-8-9 00:34:06 | 显示全部楼层
我们这个设置是没问题的,你有我们开发板可以测试下不?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 05:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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