正常工作的样机,原来采用8M晶体,I2S2输出给DAC,32k采样率,DMA方式,MCLK采用I2S2_MCK(PC6)正常运行,频率误差跟官方资料一致2.3%,为了提高精度,断开I2S2_MCK,将MCU的MCO(PA8)与DAC的MCLK_IN连接,这个时候出现一个问题:
1:如果MCU的I2S2_MCK设置为输出时(SPI_I2SPR的MCKOE位),也就是MCO给DAC提供主时钟同时I2S2_MCK也输出(悬空不用),样机能正常工作,但是误差精度还是2.3%。
3:如果将MCU的I2S2_MCK设置为关闭不用时,LRCK、BCK输出正常,但是DAC会输出一个不受音量控制的单频声音,此单频声音不是正常的数据,DAC的操作状态正常,但MCU传数据不正常。
想请教一下:从官方资料看,MCKOE只会打开或者关闭MCU的I2S2_MCK输出与否,但从结果看,似乎不是,不知道是哪个地方出问题了? 非常感谢! |