问题1:在配置SPI模块时,QSPI的时钟源怎么选择,EB配置中,McuClockSettingConfig_0的General中有McuQspiClockSourceSelection 选项,但是McuClockReferencePoint中也有一个MCU_QSPI_FREQUENCY的可选项,这两个的区别是什么
问题2:
TIDLEA,B 的怎么去测试,不太明白这个时间指的是什么,是不是我得发连续帧才能测出来
问题1:在配置SPI模块时,可以选择QSPI的时钟源。在EB配置中,McuClockSettingConfig_0的General部分有一个选项叫做McuQspiClockSourceSelection,它用于选择QSPI的时钟源。而McuClockReferencePoint中的MCU_QSPI_FREQUENCY选项则是用于定义QSPI的时钟频率,这两个选项的作用有所不同。
问题2:TIDLEA和TIDLEB是指SPI通信中的空闲时间。TIDLEA指的是主设备发送完一个字节数据后,到下一次发送一个新字节数据之间的时间。TIDLEB则是从从设备接收到一个字节数据后,到下一次接收一个新字节数据之间的时间。
测试TIDLEA和TIDLEB时,你需要发送一系列连续帧,然后通过测量接收到的数据的间隔时间来确定TIDLEA和TIDLEB的值。你可以通过改变发送数据的频率或者发送不同长度的数据来观察TIDLEA和TIDLEB的变化。
可以参考iLLD里面如下代码:
IfxScuCcu_getQspiFrequency
这个函数里面有频率的选择
IfxQspi_SpiMaster_setChannelBaudrate
及IfxQspi_calcRealBaudrate
这个函数里面有计算方法(关于fQspi和ECON[cs].B.Q, A, B, C)
float calculateRealBaudrate(Ifx_QSPI *qspi, IfxQspi_ChannelId
channelId){
// Extracting relevant parameters int cs = channelId % 8;
float fQspi = IfxScuCcu_getQspiFrequency();
// Set fQspi to the base QSPI frequency (e.g., 200MHz)
// Configuring QSPI parameters:
// TQ is 0,
// Q is 24,
// A is 3,
// B is 3,
// and C is 1.
// Adjusting fQspi for TQ fQspi = fQspi / (qspi->GLOBALCON.B.TQ + 1);
// Adjusting fQspi for Q
// Example: fQspi = 200M fQspi = fQspi / (econ[cs].B.Q + 1);
// Example: fQspi = 8M
// Further adjustments for A, B, and C fQspi = fQspi / ((econ[cs].B.A + 1) + econ[cs].B.B + econ[cs].B.C);
// Example: fQspi = 1M return fQspi;}
打赏帖 | |
---|---|
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 | |
【nRF7002DK】基于sht30的温湿度计被打赏20分 | |
【nRF7002DK】日志打印被打赏20分 | |
rtthread硬件加密-5hash加密分析被打赏10分 | |
【STM32F769】SD卡驱动及其调试经验分享被打赏32分 | |
【分享开发笔记,赚取电动螺丝刀】使用看门狗降低系统隐藏bug触发概率被打赏18分 | |
【STM32F769】调试SD驱动,由于其时钟配置不对引起的错误以及排查记录被打赏35分 | |
【分享开发笔记,赚取电动螺丝刀】MCUXpressoConfigTools配置外设时的异常解决被打赏24分 | |
C语言函数宏的三种封装方式被打赏50分 | |
【换取手持示波器】NUCLEO-F429ZI Mongoose移植被打赏30分 |