你好,我们项目中mcasp做主,ES8328做从。mcasp向ES8328提供主时钟,帧同步时钟和位时钟。ES8328的主时钟是12.288MHz,而mcasp的AHCLKX只有20MHz,请问如何对AHCLKX分频使得AHCLKX输出12.288MHz?(我是新手)
Louis:
你好,
请参考DM385的TRM手册中的15.2.2.1,通过配置Transmit High-Frequency Clock Control Register 来实现。另外,需要确认AHCLKX的时钟源来源于外部时钟源还是内部的AUXCLK。如果使用内部时钟源无法分频出12.288MHz,就需要考虑使用外部时钟源,也就是AHCLKX做为输入。
Robin Edson:
请学习
http://blog.csdn.net/crushonme/article/details/10012051
时钟部分。
biao lin:
回复 Louis:
Louis你好,确认好了AHCLKX和AHCLKR都是使用内部时钟,分频后输出给ES8328。位时钟和帧同步时钟也是mcasp输出给ES8328。现在情况是这样子,mcasp1要是使用sysclk22做时钟源,它只有20M,分不出12.288MHz;要是使用sysclk20做时钟源,它是250M,分20频得到12.5MHz给ES8328,那么位时钟就是520KHz,要是把sysclk20变成196.608(12.288的整数倍),那网卡就掉线,查看内核代码发现网卡也使用sysclk20时钟。请问在不更改硬件下能不能有其他时钟源能产生12.288MHz给ES8328?
我现在使用sysclk20(250MHz)作为mcasp1的时钟源,回放时mcasp的EDMA中断能连续产生,但采集时只产生一次EDMA中断,这会不会与MCASP输出的AHCLKRCTL不是12.288MHz有关?mcasp的采集时寄存器配置我都检查过了,还没发现什么问题。
biao lin:
回复 Robin Edson:
谢谢你的资料,讲得很详细!
Robin Edson:
回复 biao lin:
DM385不知道有没有配置时钟输出这么个引脚,反正DM8168和DM8107都有。你自己找找看,实在不行找TI FAE。385俺还没开始做,不太清楚。