等待DUT在该网段发送第一帧报文,将此刻记为T2;
检查是否(T2-T1) < TPowerWakeUp。
在这里分享一个工程Bug实例:测试 TPowerWakeUp时,在没有security boot情况下,TPowerWakeUp高达200ms,远大于150ms。实际测试TPowerWakeUp<165ms即可,要考虑10%偏差。
1、SPI速率使用不当带来的延时
CAN模块对应的收发器使用的是NXP TJA1145,该收发器需要通过SPI控制其模式切换。问题出现前使用的波特率是100Kbps,通过提高通信速率,优化了>30ms时间。NXP TJA1145速率提升到4Mbps,查阅其用户手册可以看出,NXP TJA1145在Normal/Standby模式下,其时钟周期可以配置为4Mbps(1/250ns = 4000000Hz)。如果考虑Sleep Mode,至少也可以配置1Mbps,这样也能提升10倍通信速率。
2、PORST Pin配置参数修改
综上所述,带来的思考点有:
使用了SPI的外围器件,先确定其最大支持的通信速率,横向对比,使用UART的地方是否也可以提高通信速率;
特定器件的配置是否设计时间配置。
最后说一下,这些时间是如何测量的,本文在目标代码位置反转IO电平状态,使用示波器测量,这样即可知道代码,函数耗费时间情况,进而针对性的优化。
联系客服