TI中文支持网
TI专业的中文技术问题搜集分享网站

LMK04832: SPI读时序问题

Part Number:LMK04832

tdv的意思是下降沿最多只能保持60ns才能读到读寄存器的值吗?如果超过60ns就不能正常读到了是吗?

Amy Luo:

您好,

不是的,tdv的意思是在sclk下降沿开始,最大只需等待60ns就可以读到有效数据,小于60ns可能读不到有效数据。

,

Ruixin Feng:

请帮忙看下为什么这个时序读不到寄存器的值,谢谢!

https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/48/2620.IMG_5F00_8290.JPG

,

Amy Luo:

请先确认下设备SPI接口电平是否与主控端电平兼容?

默认情况下是使用3线SPI,而3线SPI的SDIO pin默认是OD接口,因此如果外部无上拉的话,输出就无法输出高电平。如果可以写入的话,建议先写入SDIO_RDBK_TYPE=0,然后再读出看是否可以正确读出?

,

Ruixin Feng:

但是这个寄存器描述是在3线模式readback的时候把SDIO配置成OD?

如果用3线spi的话需要SDIO外部上拉吗? 还是说在read操作时要把这个寄存器值改掉?

,

Amy Luo:

如数据表描述”Sets the SDIO pin to open drain when during SPI readback in 3 wire mode“ ,是的,就是这个意思。

如果是OD输出的话,需外部上拉,但是为避免硬件上的更改,您可以通过软件将这个寄存器值配置为push-pull输出。

,

Ruixin Feng:

请问意思是readback的时候SDIO必须配置为pushpull吗?

但是SDIO读寄存器值的时候不需要做驱动吧,如果是OD也可以输出高电平吧。

还有一个问题,就是FPGA那边的管脚应该在地址位输出完之后改成什么状态呢? 是高阻态就可以吗?

,

Amy Luo:

Ruixin Feng 说:请问意思是readback的时候SDIO必须配置为pushpull吗?

不是必须,SDIO管脚外接上拉也可以;

Ruixin Feng 说:但是SDIO读寄存器值的时候不需要做驱动吧,如果是OD也可以输出高电平吧。

读寄存器的时候,SDIO管脚在三线SPI模式下是输出管脚,OD输出不能输出高电平,因此如果不配置寄存器的话,就需要外接上拉。

Ruixin Feng 说:还有一个问题,就是FPGA那边的管脚应该在地址位输出完之后改成什么状态呢? 是高阻态就可以吗?

因为是三线SPI,SDIO管脚即做输入又做输出。对于LMK04832作为从设备,在其SDIO管脚作为输入管脚输入R/W位和地址位后,它就作为输出管脚输出寄存器值。因此,在FPGA那边在地址位输出完之后应改成输入状态,以输入读出的LMK04832的寄存器值。

,

Ruixin Feng:

感谢回复!

所以如果客户配置的是OD但是没有上拉,读操作就有可能出现图中的情况对吗

,

Amy Luo:

在三线SPI模式下,是的。

,

Amy Luo:

您将SDIO管脚外接上拉或者将寄存器位配置为SDIO_RDBK_TYPE=0后,再进行寄存器读操作是否可以正确读出寄存器值?

请注意在FPGA端在地址位输出完之后应改成输入状态。

,

Amy Luo:

帖子我先关了,如果您的问题没有解决,您可以再回复帖子。

赞(0)
未经允许不得转载:TI中文支持网 » LMK04832: SPI读时序问题
分享到: 更多 (0)