发 帖  
原厂入驻New
[问答] 怎么将PWM微调至特定频率
244 PWM PIC32
分享
我用PIC32 MZ来驱动另一个芯片的MCLK。所需的MCLK有点挑剔。它需要“死在”8.192 MHz或12.288兆赫。我使用的是PIC32的PWM,但是我在使PWM的频率足够接近另一个芯片的工作频率方面遇到了问题。以下是我的设置,它给出~12.6MHz,这对另一个芯片的MCLK.PR2=1;//.=PRy+1OC5RS=1;//Duty.OC5R=1;//Duty.OC5CONbits.OCTSEL=0;//timer2 OC5CONbits.OCM=0b110;T2CONbits.TCKPS=0b010;//1:8 T2CONbits.ON=1;OC5CONbits.ON=1;我看到的方法大约有三个选择:1)如果有人知道如何调整PIC32的PWM以获得奇怪的频率。(我希望)2)由于这个应用程序处理I2S,我已经有一个输出引脚提供了32千赫。在技术上使用X256或X38 4乘法器可以实现正确的频率。(如果你有干净的电路或乘法器芯片,请让我知道)3)是的,我可以买一个晶体只是为了这个。可能是最好的选择。4)另一个时钟生成芯片。任何建议都将得到赞赏。谢谢。
0
2019-9-9 13:28:53   评论 分享淘帖 邀请回答

相关问题

19个回答
是的,它可能不容易取决于您的振荡器灵活性(PLL,前/后定标器…)和PWM精度,你可能能够得到你所需要的…
2019-9-9 13:34:48 评论

举报

我一直在玩电子表格中的数字,到目前为止还不太好。FRIQ足够高,中断也不是一个好的选择。
2019-9-9 13:43:28 评论

举报

啊,是的,有时候我也这么做了……你不能摘一颗合适的水晶吗?
2019-9-9 13:57:46 评论

举报

是的,水晶可以做到。希望我错过了什么,可以用我手中的东西。有一个200兆赫的微控制器,不能切换一个引脚在给定的FRQ,呃。我正在作出水晶秩序现在。
2019-9-9 14:05:57 评论

举报

让我下载这个数据表PS:AHAH“梦想模式”的振荡器!这是什么??
2019-9-9 14:13:35 评论

举报

好的,我正在看PIC32 MZ2048 ECG100(刚刚选了一个):也许你已经尝试过这一切,但是…PLL乘法器和除法器?奥斯科特?RIFFLK分频器(配平)?…听起来足够灵活…
2019-9-9 14:22:03 评论

举报

嗯,我还有几个外设,时间敏感的通信正在进行中。所以我不能大修时钟设置(多个SPI,I2S)。如果无法在PBDIV或TMR或PWM设置或中断内完成,那么我的选择可能是在芯片外完成。我原本希望PWM可以在TMR中断内稍微修改一下,但是当我在中断中修改TMRx值时,代码会崩溃。ET到PWM。感谢您的输入,虽然:
2019-9-9 14:39:58 评论

举报

在许多PIC32MZ控制器中有四个RFCLKO功能块。以下是根据您的特定系统时钟频率生成请求频率的两种方法。要为SPLL频率为200MHz的8.192MHz输出设置RFCLKOx,请将ROTRIM设置为106,将RODIV设置为12。对于12.288 MHz输出的PrFrCKOx,将180 MHz的SPLL频率设置为166,将RODIVI设置为7。
2019-9-9 14:54:04 评论

举报

听起来你在48kHz和32kHz下做音频。如果你使用48x锁相倍增器,2xdiv给出192MHz的系统信号,96MHz PBclk,设置RODIV=3,ROTRIM=464给出12.288MHz的REFCLKOSETETETET RODIV=5,ROTRIM=440给出确切的8.192MHzREFCLKOIF,如果你使用REFCLK1,同样的时钟可以用来驱动信号。e与SPIxBRG为3同步的SPI模块(SPIxCON.MCLKSEL=1)将给出16位/chan I2S的正确BCLK和L_R。1BRG将给出32位/chan的正确BVLK和L_R。
2019-9-9 14:59:51 评论

举报

我的意思是我知道它可以工作!
2019-9-9 15:08:25 评论

举报

伟大的反馈!这就是我要找的。我会读数据表的这一章来弄清楚这对程序其他部分的影响。是的,我在32kHz下做音频。我用的是SPI(I2S)外围设备。BCK/LRYWS/DATA 3所有数据在范围上都很好。它只是芯片需要一个特定的MCLK。再次感谢。我会在执行和测试后发布。
2019-9-9 15:26:10 评论

举报

MCLK通常是BCK的倍数。在我目前设计的系统中(使用PCM1770 DAC),我通过REFCLK1OUT提供12.288MHz的MCLK,加上通过SPI模块的BCLK/LR_WS/Data。它工作正常,但是必须注意,由于REFCLK模块如何划分时钟(任何非零的R),所以存在相当多的时钟抖动。OTRIM值引入抖动-参阅数据表)。我个人不能听到任何音频伪影由于这一点。一种可能性是使用49.152MHz的振荡器作为REFCLK1IN,因为这将分为12.288MHz和8.192MHz,只使用RODIV,ROTRIM=0。我在设计中已经考虑到了这一点,不过我可能会使用11.2896MHz振荡器的输入来得到44.1kHz/20.5kHz,因为这些是一个bug程序来得到完全任何其他方式:)
2019-9-9 15:42:33 评论

举报

PIC32MZ的差错表有一部分解决了主振荡放大器电路的问题。数据表DS60001191D-page150中的例子是错误的。勘误表表明非常具体的部件价值和水晶制造商。如果计划使用USB功能模块,就不可能使用12MHz以外的晶体。好消息是,即使相当大的抖动也不能产生明显的音频伪影,因为抖动是短期随机高斯分布的。如果你愿意购买定制水晶而不使用USB功能模块,你可以得到来自整数除数的时钟。
2019-9-9 15:57:15 评论

举报

我说的是ReFo1Cl,而不是主振荡器。
2019-9-9 16:08:20 评论

举报

嘿,伙计们,非常感谢。它工作!如上所述,我使用REFO1CON作为REFCLKO1和I2S。模块的MCLK产生它需要的时钟,作为奖励,它与I2S通信很好地同步。由于我想保持我的200 MHz时钟相同,所以我使用StestsRoTrimm=106,RoDiV= 12。
2019-9-9 16:14:42 评论

举报

我想问一下,为什么我会有这么多静态的来往?这是激烈的。
2019-9-9 16:31:46 评论

举报

定义“静态”。噪音地板?杂散信号?阻抗失配反射?你是如何测量的?方波往往会有更高的谐波,但你可能不是那个意思。
2019-9-9 16:48:15 评论

举报

2019-9-9 17:02:55 评论

举报

2019-9-9 17:19:33 评论

举报

只有小组成员才能发言,加入小组>>

65个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

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