问题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;}
我要赚赏金打赏帖 |
|
|---|---|
| 28BYJ-48机械臂实现人脸跟随被打赏¥24元 | |
| 基于RK3506B的片温识读功能的实现被打赏¥25元 | |
| 【瑞萨RA8D1测评】基于FreeRTOS的lvgl移植教程被打赏¥29元 | |
| 电子价签墨水屏开发被打赏¥35元 | |
| 【Ozone】RTT 打印终端使用被打赏¥29元 | |
| BMS保护板绝缘检测功能-不平衡电桥技术绝缘电阻检测设计与实现被打赏¥34元 | |
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |