AD9627的SPI无法写数据,只能读数据。

你好 ,ADI专家。

有个问题求助一下,最近在用AD9627,但是它的SPI模式始终无法写入寄存器数据,但是SPI可以正确读出相关寄存器的默认值。 SPI接口是用FPGA来做的。也是就是AD9627只能读出寄存器数据,无法写入寄存器。

而且用示波器测量了SPI的三根信号线,时序是满足datasheet要求的。

不知道这是什么原因?

  • 请给出实际的电路图和测试波形,这样更方便讨论问题。

  • 你好,

    感谢回复。

     

    下图是写0X0D寄存器的波形,写入0x07

     

     

    下图是读0X0D寄存器的波形,读出值为0x00

     

     

     

     

    下图为读ID寄存器的波形,邮件只放了读的波形。可见读出值为0x12, 是芯片默认值。

     

     

     

     

    调试期间也试过读写其他读寄存器,都无法成功写入,读出值都是默认值。

     

    jackie wu

     

    发件人: CHAI 

    发送时间: 2018年7月12日 10:02

    收件人: jackie wu

    主题: Re: AD9627的SPI无法写数据,只能读数据。 -

     

    <https://ezchina.analog.com/?et=watches.email.thread> 中文技术支持

     

    Re: AD9627的SPI无法写数据,只能读数据。

    created by CHAI <>  in 数据转换器专区 -  <https://ezchina.analog.com/message/56705?commentID=56705#comment-56705> 查看全部讨论

    attachments.zip
  • 你好,看了您发的图片,有3跟信号线。蓝色毫无疑问是时钟信号。根据您的描述,黄色是信号线。

    紫色是什么信号?您没有给出。若紫色为使能信号,正常的时序应当是依靠使能信号和时钟信号判断数据传输的起点,因此,使能信号一直为低电平是不正常的。

    若您希望采用流处理的方式,也是需要特殊控制的,状态不能随意切换。建议您核对一下AN-877手册。

    另外,根据芯片手册 Transfer Register Map 一节的描述,0x08到0x18之间的寄存器需要配置后额外向0xFF寄存器写入0x01以将写入的数据从缓冲区同步到器件内。您是不是没有这个操作?

  • @mike, 感谢您的回复。

         对于AD9627,我不希望采用流处理模式,紫色确实就是使能信号,最早的测试中,使能信号是只有再读写寄存器时才拉低的,其余时间拉高,相关的波形没有上传,因为读取寄存器仍然只能读出默认值(也就意味着寄存器不能成功写入)。后来使能信号一直被拉低,只是为了做各种尝试。AN-877我又看了一遍,除非采用流处理模式,否则使能信号不能一直拉低。后续我会将使能信号重新控制。

         0x08-0x18寄存器的配置需要额外写操作,这一点我确实没有注意到。近期我也会马上做尝试。

         以上两点,等我有了更新,会及时反馈到这里。

    再次表示感谢。

  • 您好,感谢您的提醒。“0x08到0x18之间的寄存器需要配置后额外向0xFF寄存器写入0x01以将写入的数据从缓冲区同步到器件内”,我以前没注意到。现在代码按这个要求改写后,寄存器可以成功写入。

    非常感谢。