ZHDA106 April   2026 ADC168M102R-SEP

 

  1.   1
  2.   摘要
  3. 1简介
  4. 2硬件平台
  5. 3硬件接口
    1. 3.1 通过 McBSP 进行通信
      1. 3.1.1 使用 McBSP1
      2. 3.1.2 通道识别
    2. 3.2 通过 SPI 和 ePWM 进行通信
      1. 3.2.1 使用 SPI 和 ePWM
      2. 3.2.2 SPI 外设要求
  6. 4软件接口
    1. 4.1 McBSP 设置
    2. 4.2 SPI 和 ePWM 设置
    3. 4.3 软件流程
  7. 5总结
  8. 6参考资料

SPI 和 ePWM 设置

F28377D-SEP 集成了高速同步 SPI,支持将编程长度(1 至 16 位)的串行比特流移入和移出器件。此外,它还支持 16 级接收和发送 FIFO。

在该接口方案中,SPI 端口配置为从器件,采用 4 线模式运行。为了与 ADC168M102R-SEP 时序图兼容,SPI 端口设置为在上升沿输出数据,在下降沿输入数据,且使用非延迟时钟。

在源代码中,SPI 端口的字符长度设置为 11 位。发送和接收采用缓冲器,前一个字传输完成后立即传输缓冲器中的下一个字,从而将两次 SPI 传输合并为一个 ADC168M102R-SEP 转换周期;以下几行代码显示了它们之间的转换。表 4-2 列出了前述 SPI 端口的关键寄存器设置。

1.One ADC168M102R-SEP configure command split into two SPI transmission cycles:
        for(Cnt=0; Cnt < number; Cnt++)
        {
           SpiaRegs.SPITXBUF = (*(data+Cnt) >> 1) & 0x7FE0 ;
           SpiaRegs.SPITXBUF = (*(data+Cnt) << 10) & 0xFC00;
        }
2. Two SPI reception cycles combine together to be one ADC168M102R-SEP conversion result:
        for(Counteri = 0; Counteri < Rxcounter/2; Counteri ++ )
        {
           RxInterpreter[Counteri] = ( Rxdata[Counteri * 2] << 6 ) 
                                        | ( Rxdata[Counteri * 2 +1] >> 5 );
        }
表 4-2 SPI 的关键寄存器设置
寄存器设置注释
SPICTL.all0x0002作为从器件,使用标准 SPI 时钟方案,无延迟
SPIPRI.bit.TRIWIRE0标准 4 线 SPI 模式
SPIFFCT0x0000缓冲器中的前一个字传输完成后立即传输下一个字
SPICCR.all0x008A11 位;上升沿输出数据,下降沿输入数据

所使用的两个 ePWM 模块设置为相同时钟频率和计数模式,但计数周期不同,因此可以用作 RD/CONVST 信号或时钟信号。当 ePWM1 模块的计数值达到零时,ePWM2 模块的计数值同步为零。ePWM 模块的关键寄存器设置如表 4-3 所示。

表 4-3 ePWM 的关键寄存器设置
寄存器ePWM1 设置PWM2 设置注释
TBCTL.bit.HSPCLKDIV11设置时基时钟速率
TBCTL.bit.CLKDIV11
TBCTL.bit.CTRMODE00将计数模式设置为递增计数模式
TBPRD2199设置时基计数器的周期
AQCTLA.bit.ZRO22设置 ePWM 模块输出操作
AQCTLA.bit.CAU11
CMPA.half.CMPA105设置比较寄存器以控制占空比
TBCTL.bit.PHSEN01同步控制,ePWM1 作为主器件,ePWM2 作为从器件
TBCTL.bit.SYNCOSEL10
TBPHS.half.TBPHS00设置同步后的计数值