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.

AMC7812: 通过DSP 的SPI控制AMC7812 先实现寄存器的读写功能.

Part Number: AMC7812

 根据AMC 的SPI 时序:

根据我对上图的理解,我在SPI控制代码设置了CPHA=0,CPOL=0。我看CS使能拉低,前SCLK是低脉冲,认为CPOL=0,而相位延迟(CPHA)的地方为设置0,SPI频率设置50M。

上电后,想直接读取Device ID REG(6C)的默认数值(1220H),验证SPI的读写功能。 把6C地CMD地址转换成EC,先写入了 EC AA 85 (),读出数值  **  C4 C4不是寄存器默认值。

想咨询下:

1.CPHA=0,CPOL=0设置对吗?看E2E上面说,也可以在SCLK的下降沿读取数据,基础上,这个器件可以支持SPI的模式1(CPHA=0,CPOL=0),2(CPHA=1,CPOL=0.)是对吗?

2.读取数值应该是** 12 20,自己感觉写入数据的时候AMC7812没有识别造成MISO读取数据不对原因?

  • 您好,

    1、SPI应该是CPOL=0,CPHA=1,即AMC 在SLK上升沿改变或输出数据,在下降沿锁存或采样数据,那么主控端就需要在下降沿读取数据在上升沿输出数据,这样才能使主控端读取到稳定的数据,使AMC采集到稳定的数据。SPI1是CPOL=0,CPHA=1。

    2、读的话需要2帧,且24bit CS需要一直保持低电平,您主控端尝试在下降沿读取数据在上升沿输出数据,看是否可以读到正确寄存器值?

  • 非常感谢Amy的回复。

    因第一次使用DSP C6678 SOC 进行开发,感觉TI 提供SPI控制与标准SPI模式定义不同。

    上面《Serial Peripheral Interface( SPI) for KeyStone Devices User'sGuide》是SPI的4种模式时钟时序图。

    以SPI1是CPOL=0,CPHA=1为案例:

    我看时序图,发现数据的锁存在第一个时钟上升沿,数据在下一个下降沿输出。

    上面理解:SPI应该是CPOL=0,CPHA=1,即AMC 在SLK上升沿改变或输出数据,在下降沿锁存或采样数据,那么主控端就需要在下降沿读取数据在上升沿输出数据,这样才能使主控端读取到稳定的数据,使AMC采集到稳定的数据。SPI1是CPOL=0,CPHA=1

    而满足上面的时序,应该对应下面图:

    第一次控制SPI,与遇见DSP KEYSTONE框架下与标准SPI定义感觉有很大不同,请帮看理解对吗?

  • 好的,我稍后会对您的问题做出回复

  • 您的意思是说 DSP按照标准SPI模式的定义,应该工作在SPI0模式是吗?看上面定义是的。我上面回复主要想说的是主控端读取和输出沿要和AMC对应起来,以确保双发都可以接收到稳定的数据。

    这样看主控端读取和输出的SCLK沿没有问题,那么您可以用示波器测量SPI(CS、SCLK、SDI、SDO)的通信波形吗?以实际查看波形是否为期望时序或上面是否存在干扰?

  • 您好,您的问题解决了吗?若还没有建议您捕捉和查看SPI通信波形,这是检查SPI通信时序的最好方法

x 出现错误。请重试或与管理员联系。