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参考资料

McBSP 设置

McBSP 编程为串行端口,其内部采样率发生器 (SRG) 配置为生成内部数据时钟 (CLKG) 以用作内部发送时钟 (CLKX)。发送器和接收器设置为 16 位操作,在帧同步之后、帧的第一位发送/接收之前,有一个 1 位的延迟。

发送帧同步脉冲 (FSX) 由 SRG 生成,FSX 的宽度应设置为一个 CLKX 时钟周期。根据使用轮询机制还是中断机制来处理发送和接收数据,FSX 需要设置为:(1) 在对发送寄存器进行写入时生成或 (2) 基于 SRGR2 寄存器中 FPER 位的设置周期性生成。表 4-1 列出了使用轮询或中断方法时,McBSP 与 ADC168M102R-SEP 接口的关键寄存器设置。

表 4-1 McBSP 的关键寄存器设置
寄存器轮询操作设置中断操作设置注释
SRGR2.bit.CLKSM11SRG 使用 LSPCLK 作为输入时钟
PCR.bit.SCLKME00
SRGR1.bit.CLKGDV99时钟分频器
PCR.bit.CLKXM11CLKX 由 CLKG 驱动
RCR1.bit.RWDLEN122设置为 16 位操作
XCR1.bit.XWDLEN122
RCR2.bit.RDATDLY11数据接收和发送的 1 位延迟
XCR2.bit.XDATDLY11
PCR.bit.FSXM11FSX 由 CLKG 驱动
SRGR1.bit.FWID00FSX 为 1 个 CLKG 周期
SRGR2.bit.FSGM00生成 FSX 的不同方式
SRGR2.bit.FPER21两个 FSX 信号之间的周期
MFFINT.bit.XINT1使能发送/接收中断。
MFFINT.bit.RINT1

在示例代码中,ADC168M102R-SEP 以 20MHz 的串行时钟运行,这是通过对低速外设时钟 (LSPCLK) 进行 10 分频实现的。ADC168M102R-SEP 的固定数据速率连续转换通过使用中断机制处理 McBSP 中的数据来实现,而 ADC168M102R-SEP 的配置则是使用轮询机制来处理 McBSP 中的数据,如以下代码行所示。

    for(loopcount = 0; loopcount<5; loopcount ++)
    {
        mcbsp_xmit(Txdata[Txcounter++],0);
        while(McbspaRegs.SPCR1.bit.RRDY == 0 ) { ; }   // Check for receive available?
        Rxdata[Rxcounter++] = McbspaRegs.DRR1.all;     // read out result.
        while(McbspaRegs.SPCR2.bit.XRDY == 0){ ; }    // Check for transmit ready?
    }