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.
请先确认下设备SPI接口电平是否与主控端电平兼容?
默认情况下是使用3线SPI,而3线SPI的SDIO pin默认是OD接口,因此如果外部无上拉的话,输出就无法输出高电平。如果可以写入的话,建议先写入SDIO_RDBK_TYPE=0,然后再读出看是否可以正确读出?
但是这个寄存器描述是在3线模式readback的时候把SDIO配置成OD?
如果用3线spi的话需要SDIO外部上拉吗? 还是说在read操作时要把这个寄存器值改掉?
如数据表描述”Sets the SDIO pin to open drain when during SPI readback in 3 wire mode“ ,是的,就是这个意思。
如果是OD输出的话,需外部上拉,但是为避免硬件上的更改,您可以通过软件将这个寄存器值配置为push-pull输出。
请问意思是readback的时候SDIO必须配置为pushpull吗?
但是SDIO读寄存器值的时候不需要做驱动吧,如果是OD也可以输出高电平吧。
还有一个问题,就是FPGA那边的管脚应该在地址位输出完之后改成什么状态呢? 是高阻态就可以吗?
请问意思是readback的时候SDIO必须配置为pushpull吗?
不是必须,SDIO管脚外接上拉也可以;
但是SDIO读寄存器值的时候不需要做驱动吧,如果是OD也可以输出高电平吧。
读寄存器的时候,SDIO管脚在三线SPI模式下是输出管脚,OD输出不能输出高电平,因此如果不配置寄存器的话,就需要外接上拉。
还有一个问题,就是FPGA那边的管脚应该在地址位输出完之后改成什么状态呢? 是高阻态就可以吗?
因为是三线SPI,SDIO管脚即做输入又做输出。对于LMK04832作为从设备,在其SDIO管脚作为输入管脚输入R/W位和地址位后,它就作为输出管脚输出寄存器值。因此,在FPGA那边在地址位输出完之后应改成输入状态,以输入读出的LMK04832的寄存器值。
您将SDIO管脚外接上拉或者将寄存器位配置为SDIO_RDBK_TYPE=0后,再进行寄存器读操作是否可以正确读出寄存器值?
请注意在FPGA端在地址位输出完之后应改成输入状态。