全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 测量仪表 >

如何设置TC397的QSPI模块工作在CPH =1协议模式?

时间:2023-05-17 09:29

人气:

作者:admin

标签: 示波器  QSPI  CPOL 

导读:客户在调试QSPI模块过程中,将TC397的QSPI模块的CPOL位设置为1...

问题描述

客户在调试QSPI模块过程中,将TC397的QSPI模块的CPOL位设置为1,但是示波器显示时钟引脚输出信号的空闲状态并不是高电平,在debug模式下,可观察到CPOL位已设置为1,这是怎么回事呢?

2a359828-f410-11ed-90ce-dac502259ad0.png

图1

设置TC397的QSPI模块工作在CPOL=1, CPH =1协议模式

解决过程

SpiIf_initChannelConfig()函数在初始化QSPI channel时,提供了很多配置参数项,其中就有clockPolarity,但是单单设置clockPolarity= SpiIf_ClockPolarity_idleHigh,虽然会将CPOL位设置为1,但是捕获的波形显示空闲状态电平并未变成高电平。

这是由于SpiIf_initChannelConfig()函数的默认参数项设置IDLE时序阶段时长为0,使得帧传输间隙缺少IDLE时序阶段,所以需要设置csInactiveDelay > 0(如下所示)来插入IDLE时序阶段,如下图所示。

voidSpiIf_initChannelConfig(SpiIf_ChConfig*config,SpiIf*driver)
{
config->driver=driver;
config->baudrate=0;
config->mode.enabled=1;
config->mode.autoCS=1;
config->mode.loopback=0;
config->mode.clockPolarity=SpiIf_ClockPolarity_idleHigh;
config->mode.shiftClock=SpiIf_ShiftClock_shiftTransmitDataOnLeadingEdge;
config->mode.dataHeading=SpiIf_DataHeading_msbFirst;
config->mode.dataWidth=8;
config->mode.csActiveLevel=Ifx_ActiveState_low;
config->mode.csLeadDelay=SpiIf_SlsoTiming_0;
config->mode.csTrailDelay=SpiIf_SlsoTiming_0;
config->mode.csInactiveDelay=SpiIf_SlsoTiming_2;
config->mode.parityCheck=0;
config->mode.parityMode=Ifx_ParityMode_even;
config->errorChecks.baudrate=0;
config->errorChecks.phase=0;
config->errorChecks.receive=0;
config->errorChecks.transmit=0;
}
2a52086e-f410-11ed-90ce-dac502259ad0.png

图2



审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信