完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
我正在研究将PIC32MX1xx系列芯片与Cirrus CS4344 I2S DAC接口,用于立体声44.1K输出,其中一个要求是,我需要提供一个主时钟,它是串行数据时钟的一些整数倍,也是LR时钟的整数倍,以及所有3个时钟信号必须是同步的。由于PIC将充当I2S主机,它将是提供这些时钟,这基本上意味着我需要以44.1KHz的整数倍运行我的SYSCLK。由于这些芯片上的最大速度是50MHz,所以最有意义的值是44.1kHz×1024=45.1584MHz。我可以在那个频率下得到晶体,但它们很少,而且相距很远,所以我研究了用内部FRC振荡器达到这个频率的数学方法。在默认的8.000MHz下,我能用PLL得到的最接近的值是24:2或21:2(8.000/2)*24/2=48.000MHz(默认的8.000MHz)。8.000/2)*21/2=42.000MHz现在,45.1584距离48.0只有5.92%,距离42.0只有7.52%,这两者对我来说都太远了,但它们*在+/-12.5%的振荡器调谐范围内,所以我想把FRC振荡器调谐到-5.92%/+7.5%,以便得到必要的SYSCLK。显然,这可能不是正确的方法(t m),但是这个设计不会大批量生产或任何东西,所以我对此很满意。我也不会使用USB,所以我不担心把它扔掉。我所处理的唯一与时间相关的外围设备是第二个SPI模块上的I2S流媒体和microSD读卡器。因此,我猜我的两个问题是:1)我没能在数据表或家庭参考指南中找到内部振荡器的精度(我确信它在那里,仍然挖掘,但是除非你确切知道应该在哪里找,否则要经历很多事情,而我不知道),但是我已经读到它们通常是+/-5%。如果这是真的,如果我的数学正确,我最多需要+7.5%,调谐寄存器达到12.5%,那么即使最坏的情况,我也应该能够达到我的目标频率,对吧?2)有没有一种很好的方法来实现对已知频率源的自校正?我看过一些项目,你可以把GPS PPS信号或外部晶体之类的东西连接到I/O引脚上,让它静置一段时间,然后它会自我调谐,并将结果值保存到其内部NV存储中,比如内部EEPROM或程序闪存(后者必须是这种情况)。在这里,由于PIC32 MX1XX系列没有EEPROM)。有没有什么方法可以解决这个问题呢?还是仅仅是你自己的交易?有人做过这件事吗?或者有人能提出一些建议吗?对于原型,我可以手动进行调整,但是在最终产品上,我希望有一些可以在电路中校正而不需要完全重新闪烁新参数的东西。
|
|
相关推荐
7个回答
|
|
|
+/- 5%是基于器件的整个温度范围。在工厂生产过程中,FRC调谐到8MHz,所以漂移主要发生在降到-40C或升到+85C时。在室温下你不能指望那么大的漂移。如果你有外部时钟源,自调谐是可能的。我们对使用SOSC的算法进行了实验,将它与附在PBCLK上的一个定时器进行比较,并计算SOSC的漂移。其思想是当定时器到期时,您将从定时器获得PBCLK计数的计数(使用DMA来传输准确的计数)。您可以使用REFCLK来生成时钟吗?应该有可能接近44.1千赫的时钟速率,但是它会有一些抖动。
|
|
|
|
|
|
为什么不使用11.2896 MHz晶体(44.1 kHz×256)?使用PLL产生更高的核心频率。
|
|
|
|
|
|
这当然是一种选择。我查看了几个不同的整数倍数,并没有发现很多具有广泛可用的晶体,但是似乎我错过了那个,看起来确实很常见。如果可能的话,我仍然喜欢更少的外部组件的想法。
|
|
|
|
|
|
看起来,OSCTUN甚至不能像广告那样工作。使用以下代码:我尝试了极限调优值0b100000和0b011111,它们应该分别给出-12.5%和+12.5%,但是它们给了我更像1.5%的值。测量的CKO引脚,我得到了120MHz,没有OSCTUN,122MHz与0B011111,和1185兆赫与0B100000。测量手动切换IO引脚RA2给出类似的结果,不到12.5%。我在这里做错事了吗?
|
|
|
|
|
|
我前面有PIC32 MX1XX/2XX 28/36/44引脚族数据表,它指定了+/-12.5%。具体来说,我现在正在使用250F128B,因为这是我手头上的,但是一旦我能够掌握它,我可能会切换到非USB版本。我想知道,也许USB版本有较低的范围,以便获得更精确的步骤,USB自调整?因为我猜这是有道理的。至于没有描述和测试的注释,确切的线指的是步长,而不是范围,所以我认为可能单个步长不一定在整个范围内是线性的,但我猜我本可以关于这一点。
|
|
|
|
|
|
这是数据表中的一个错误。我们最近发现,范围从+/- 12.5%变为+/- 1.5%。我们一直在努力更新文档。只有+/-12.5%FRC的是最早的部分,MX320/340/360/420/440/460和MX57x/67x/69x/77x/79x。
|
|
|
|
|
|
好的,谢谢你的明确说明。这绝对有助于知道何时退出死胡同:编辑:我想我错过了使用RIFCK的建议。一些快速计算表明,我应该能够达到0.04%的目标频率RIFLK与一个8MHz的SysCLK。更重要的是,REFCLK既可以使用PPS输出,也可以馈送到SPI模块,两者都是我需要的,因此这也是值得研究的。谢谢你的帮助。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
508 浏览 0 评论
5813 浏览 9 评论
2351 浏览 8 评论
2238 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3545 浏览 3 评论
1163浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1122浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
890浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
508浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-15 11:37 , Processed in 0.865175 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3238