- 打卡等级:初来乍到
- 打卡总天数:1
- 最近打卡:2024-10-23 20:16:19
新手上路
- 积分
- 40
|
我用32G12K128芯片做同步通信。原来打算用该芯片的内部现有的SPI外设,因为速度要求原因,不能用中断方式进行多字节通信,而是用DMA_SPI,发现这种方式,字节间隔也有约600nS,一组数据发完后,发生DMA_SPI中断,中断响应时间也有快1us,这对于我的快速通信来说是承受不了的,快有20多个指令周期了,我只能放弃。于是我改用USART来设置成SPI模式,用这个模式后字节间隔约为400nS,一组数据发完后,发送中断的响应时间也只有约400nS。中断响应变快,我估计是发送中断的发生时间点,是在把数据放入到发送缓冲区后就触发,而SPI是在数据的比特流发完后触发,也就是说USART发送的触发时间点提前,是造成“中断响应变快”的原因所在。USART设置成SPI模式后,又带来新的问题,就是在设置速率时,有些速率一个字节都发不出去,有些速率能发送数据,但未能全部发送,而又有些速率,是可以发送,也能全部发送,但速率又不符合我的要求。如果改变输出脚的位置,情况又会发生变化,而且USART1与USART2的表现也不一样。我换了一片芯片情况依旧!所以我想来问问大家,你们有没有遇到过这个问题?怎么解决?是芯片的缺陷还是我买到的是beta版的问题?也请厂方验证指导,谢谢!我芯片的主频是35MHZ,把主频降下来后,情况并没有改善,也就是说跟主频无关。
|
|