TC33x/TC32x 【QSPI 配置】

发布时间:2026/7/28 10:15:00

TC33x/TC32x 【QSPI 配置】 英飞凌 TC33x/TC32x 芯片 QSPI 配置详解与寄存器解析一、QSPI 模块架构与核心特性QSPIQueued Serial Peripheral Interface是英飞凌 AURIX™ TC333 芯片的高速同步串行通信接口支持多设备并行通信和灵活的帧格式定义。集成 4 个独立的 QSPI队列 SPI模块每个模块支持 16 路片选通道SLSO [15:0]主模式下可通过译码器扩展至 16 个从设备从模式支持 7 路片选。每个 QSPI 模块包含分层架构总线接口AHB-Lite/APB、核心控制单元DAC/INDAC/STIG、传输组件SPI/Dual/Quad 接口并通过硬件队列和 FIFO 机制实现高效数据管理。二、QSPI 初始化配置流程1. 时钟使能DISRBit0模块时钟使能控制0 使能1 请求禁用DISSBit1模块时钟状态反馈只读0 使能1 禁用EDISBit3模块睡眠模式使能控制注意不同模块的CLC寄存器配置语法相同2. 引脚映射配置QSPI1_PISEL关键参数MRISBit2 - Bit0主模式接收输入选择SRISBit6 - Bit4从模式接收输入选择SCISBit10 - Bit8从模式时钟输入选择SLSISBit14 - Bit12从模式片选输入选择配置依据《AURIX™ TC33x_TC32x User Manual》TC33x/TC32xSpecific Register Set3. 全局控制寄存器配置QSPI1_GLOBALCON 关键参数ENBit24模块使能MSBit26-25主从模式选择RESETSBit31-30软件复位子模块 / 寄存器全复位TQBit7-0 全局时间量子波特率分频系数STIPBit22从模式空闲极性未选中时MRST电平SRFBit21 Rx FIFO 满时暂停 Tx主模式流控LBBit14回环测试内部发送→接收环回ARENBit27从模式自动复位波特率 / 尖峰错误触发QSPI1_GLOBALCON 1关键参数ERRORENSBit8 - Bit0错误中断使能TXENBit9发送中断事件使能RXENBit10接收中断事件使能PT1ENBit11PT1 事件中断使能PT2ENBit12PT2 事件中断使能USRENBit15USR 事件中断使能TXFIFOINTBit17 - Bit16发送 FIFO 中断阈值RXFIFOINTBit19 - Bit18接收 FIFO 中断阈值PT1Bit22 - Bit20相位转换事件 1PT2Bit25 - Bit23相位转换事件 2TXFMBit27 - Bit26TXFIFO 模式RXFMBit29 - Bit28RXFIFO 模式4.QSPI1_ECON 通道配置ECONz 关键参数QBit5 - Bit0时间量子定义波特率和占空比的基础时间单位ABit7 - Bit6位段 1 长度以时间量子为单位的时序段长度BBit9 - Bit8位段 2 长度以时间量子为单位的时序段长度CBit11 - Bit10位段 3 长度以时间量子为单位的时序段长度CPHBit12时钟相位控制 SCLK 采样相位对应 SPI 的 CPHA 配置CPOLBit13时钟极性控制 SCLK 空闲电平对应 SPI 的 CPOL 配置PARENBit14奇偶校验使能使能收发过程的奇偶校验生成与校验BEBit31 - Bit30大端模式转换配置 16 位 / 32 位大端字节序5. 片选控制寄存器配置关键参数OENBit31:16使能片选输出置 1 使能置 0 输出空闲电平AOLBit15:0片选有效电平0 低 / 1 高空闲为有效电平反相三、SPI配置重点解析1. 引脚功能需要通过 Port 口的寄存器如 Pn_IOCRx 等配置以确定哪些引脚复用为 SPI 的信号线如时钟线、数据线、片选线等2. QSPI 模块的配置如寄存器块 QSPI0、QSPI1、QSPI2则涉及通信参数如波特率、传输格式、片选控制等这些配置依赖于已正确复用为 SPI 功能的引脚才能实现正常通信。3.待完善四、代码示例void Qspi_Init(void) { uint16 password 0; QSPI1_CLC.B.DISR 0; // Enable QSPI1 clock QSPI2_CLC.B.DISR 0; // Enable QSPI2 clock qspi1_m_init_pins(); // Initialize QSPI1 pins qspi2_m_init_pins(); // Initialize QSPI2 pins QSPI1_PISEL.U 0x00000001; // Select QSPI1 pin group 1 QSPI1_GLOBALCON.U 0x200F3000; // Configure QSPI1 global parameters QSPI1_GLOBALCON1.U 0x0005007B; // Configure QSPI1 timing parameters QSPI1_ECON4.U 0x00001843; // Configure ECON4 for TB9083 write QSPI1_ECON1.U 0x00001843; // Configure ECON1 for TB9083 read QSPI1_SSOC.U 0x02100000; // Configure QSPI1 chip select timing QSPI1_GLOBALCON.B.EN 1; // Enable QSPI1 module QSPI2_PISEL.U 0x00000004; // Select QSPI2 pin group 4 QSPI2_GLOBALCON.U 0x200F3000; // Configure QSPI2 global parameters QSPI2_GLOBALCON1.U 0x0005007B; // Configure QSPI2 timing parameters QSPI2_ECON7.U 0x00001847; // Configure ECON7 for TPS653852A QSPI2_SSOC.U 0x00800000; // Configure QSPI2 chip select timing QSPI2_GLOBALCON.B.EN 1; // Enable QSPI2 module } uint32 Qspi_xxxSendRecieveB(uint32 data) { uint32 recdata 0; uint16 counter 4000; QSPI1_BACONENTRY.U 0x4FA00013; // Write command frame QSPI1_DATAENTRY4.U data; // Write data to DATAENTRY4 // Wait for transmission start while ((QSPI1_STATUS.B.PHASE 0) (counter ! 0)) { counter--; } // Wait for transmission completion while ((QSPI1_STATUS.B.PHASE ! 0) (counter ! 0)) { counter--; } recdata (uint32)QSPI1_RXEXIT.U; // Read received data return recdata; } uint32 Qspi_xxxSendRecieveA(uint32 data) { uint32 recdata 0; uint16 counter 4000; QSPI1_BACONENTRY.U 0x9FA00013; // Write command frame QSPI1_DATAENTRY1.U data; // Write data to DATAENTRY1 // Wait for transmission start while ((QSPI1_STATUS.B.PHASE 0) (counter ! 0)) { counter--; } // Wait for transmission completion while ((QSPI1_STATUS.B.PHASE ! 0) (counter ! 0)) { counter--; } recdata (uint32)QSPI1_RXEXIT.U; // Read received data return recdata; } uint32 Qspi_xxxSendRecieve(uint32 data) { uint32 recdata 0; uint16 counter 2000; QSPI2_BACONENTRY.U 0x7BA04103; // Write command frame QSPI2_DATAENTRY7.U data; // Write data to DATAENTRY7 // Wait for transmission start while ((QSPI2_STATUS.B.PHASE 0) (counter ! 0)) { counter--; } // Wait for transmission completion while ((QSPI2_STATUS.B.PHASE ! 0) (counter ! 0)) { counter--; } recdata (uint32)QSPI2_RXEXIT.U; // Read received data return recdata; }五、总结TC333 芯片的 QSPI 模块通过分层配置实现了灵活的多设备通信能力其核心配置流程可归纳为硬件初始化引脚映射 时钟使能协议定义ECON 通道配置帧格式时序校准全局控制寄存器 片选控制寄存器状态管理PHASE 位轮询 超时保护通过合理配置 GLOBALCON、ECON、SSOC 等寄存器开发者可以高效实现与 TB9083、TPS653852A 等外设的可靠通信。建议结合《Infineon-AURIX_TC3xx_Part2-UserManual》第 3 章和具体从设备手册进行深入调试****最后重点***如果您觉得有用***帮忙点赞加收藏哟***谢谢****

相关新闻