最近在使用IIS(CPU STM32F407IG)进行录放音的设计测试,发现调节FSMC(挂接SRAM)中的值会影响录放音。 p.FSMC_AddressSetupTime = 2; p.FSMC_AddressHoldTime = 1; p.FSMC_DataSetupTime = 4; 经过测试,具体表现为:调节上面的三个值要不就是录音录的是杂音,要不就是放音是杂音。对于放音,通过示波器查看,发现从内存出来的数据和到IIS引脚的波形上输出的数据发生了移位,数据的数据量是一致的。并且,若上面三个值的大小变化,数据移的位数,也跟着发生改变。录音正好反过来。我们的程序中IIS都是工作在从模式,两边的IIS接口采用的协议都是标准的IIS PHILPS标准协议。从测试来看,因为放音的时候从外部RAM的值通过过DMA到IIS寄存器,然后引脚输出的时候发生了变化,可以排出编解码芯片的问题。
一直没有搞清楚为什么FSMC中的时序会对IIS接口的时序产生影响,有人遇到过吗,有高手可以帮忙给点建议吗,谢谢! |