This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AFE030: SPI初始化不成功

Part Number: AFE030
Other Parts Discussed in Thread: AFE031

我们上一次在这里咨询了如何对AFE030/AFE031进行软件初始化(e2echina.ti.com/.../afe031-spi),可是初始化后的AFE030并没有表现出所期待的结果。我们确信初始化数据已经从MCU(MKE02Z64)通过其SPI接口发出(参见后面的波形图)。我们的目的是配置AFE030使用Two-Wire机制工作在PWM模式,但是

  1. 将MCU的一个串口输出Tx接E_Tx_IN, MCU产生的一个100KHz的PWM方波接至E_Tx_CLK,但Two-Wire的Tx功能块没有观察到E_Tx_OUT与门输出。
  2. 将上述PWM方波接至Tx_PGA_IN后,Tx_PGA_OUT没有波形输出,说明DAC并没有被禁止掉。
  3. 将上述PWM方波接至Tx_F_IN1后在Tx_F_OUT可以看到幅度缩小了的PWM方波,但是PA_OUT没有看到任何幅度的波形输出。

功能连接示意图如下所示:

注:作为示意图,此图没有画Tx_F_OUT和PA_IN之间的电容(如需看完整的原理图,可以稍后再补充)

软件初始化内容如下:

  1. 禁止DAC:通过MCU的I/O端口对AFE030的Pin7置零
  2. ENABLE1寄存器:对PA、TX、RX、ERX、ETX等位置1,其它位置零,应发送数据为0x011F
  3. ENABLE2寄存器:对ZC、PA_OUT等位置1,其它位置零,应发送数据为0x0309
  4. CONTROL1寄存器:对所有数据位置零,应发送数据为 0x0400(其中4为寄存器地址)
  5. CONTROL2寄存器:对T_FLAG、I_FLAG等位置1,其它位置零,应发送数据为0x0560

软件运行打印日志如下:

括号内的数字是寄存器地址,后面的16进制数据为MCU发往SPI-DO总线上的数据,MCU发送成功后的中断通知程序中打印“SPI数据发送成功”信息。

该MCU提供有2种类型的built-in的SPI软件及硬件接口并提供了SPI底层驱动程序:SPI_Master和SPI_Slave,我们选择了使用SPI_Master,假设AFE030的SPI是一个Slave SPI。

在开始对AFE030进行初始化之前,程序先对SD和DAC置零,并且在整个初始化过程中保持不变。

出于对数据发送的 endian 的考虑,我们甚至将 16 位 配置数据的字节发送顺序颠倒了一下进行测试,发现无论是高字节在前还是在后都是相同的结果。

由于是第一次接触AFE030和SPI,我们目前无法确定问题究竟是出在哪里。请给予帮助,并预先在此表示感谢。

同时,我们有下面的问题,还请一并解答:

  1. AFE030 中的SPI 是否如我们假设为一个Slave设计(其中CS信号由MCU的SPI-CS直接连接至AFE030-CS)。
  2. 两个SPI的SCLK端是否应该连在一起(由MCU自动提供,图上显示是1MHz,无法主动配置选择)。
  3. 意外的是,我们观察到AFE030的SPI-DOUT数据线上面有数据,而且与配置数据相同,似乎是AFE030对收到的数据做的回应Echo。这个功能好像AFE030的数据手册里面没有进行说明。这反而说明AFE030对配置数据是正确接收到了的。

测试波形:

 

下面为四次寄存器写入的波形放大图。上方的黄色波形都是AFE030 SPIDIN引脚的波形,下方的蓝色波形均为SPI的时钟信号SCLK

 

 

 

  • 前面的PWM功能框图分辨率不够,请参见附件中的文件

    AFE030PWM功能方框图.xlsx

  • 您好,您的这个问题,我帮您再确认下,给您带来不便非常抱歉。

  • 用一台周立功的四通道示波器进行了一次测试,这次测试所观察到的DOUT数据和DIN的数据在数值上面看不出有关联。测试程序并没有向AFE030发出读寄存器指令。结果如下:

    今天还专门将发往SPI数据线上的 16位 数据的位序进行倒序发送(即将 0x11F 倒序成 0xF880 后发送),仍然无法使AFE030正常工作,波形如下:

  • Kailyn,还没有确认好吗?

  • 您好,很抱歉。 我将您的问题提交到英文E2E论坛了,您这边参考下,如果有任何问题,可以这里讨论,也可以在英文论坛直接跟帖:

    https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1011680/afe030-how-to-initialize-the-afe030

  • Hi Kailyn,

    非常感谢您将我的问题花时间翻译后提交到英文论坛去!

    我去那边看了,但我无法回复,说我没有有效的公司Email地址:

    To post on TI E2ETm design support forums, you must have a valid company email address in your myTI account. If you have a valid company email address, please add it to your account by following the instructions in the myTI account FAQ (Note: there may be an ~10 minute delay for this email change to propagate to all necessary systems). If you don’t, we encourage you to search the TI E2E design support forums for existing answers.

    我去看了那个FAQ,没有任何帮助,还是不知道不能回复评论的问题在哪里,因为我在此论坛注册了Email地址的。所以还得请您把下面的回复复制粘贴过去一下:

    Hi Raymond,

    Thank you so much for your comments which includes rich information.

    By reading some materials you mentioned in the reply (AFE030 Register settings 06212021.docx and sprac94c.pdf), We didn't find where we have done wrong for the initialization except for SPI mode selection (SPI Mode 0,0 and SPI Mode 1,1 and Standalone Mode)  on which the AFE03x datasheet does not provide any selection information, so we didn't do anything about the SPI Mode selection. Probably this is the reason of our initializatioin failure.

    So should you please give more infomation on the two SPI Modes and .the Standalone Mode: The definitions, the way of selection and in which situation one should use which mode.

    Many thanks

  • 您好,英文论坛需要使用公司域名的邮箱。

    没关系的,我这边会将您的问题粘贴过去,等待美国工程师的回复。