需要在u-boot下配置时钟芯片cdce62005,使用u-boot下的spi读写,能够配置时钟芯片使其输出想要的时钟大小
但是在试图读62005的寄存器时,发现读出来的都是0xffffffff,在spi发出对62005的读命令后,测量8168的MISO
管脚,发现有62005送出的数据,解析后发现正是之前写进去的值,但是用u-boot下的spi读却无法将其读出。打印了
MCSPI_CH(i)CONF寄存器,其中的12-13位也配置成Transmit and receive mode,这是怎么回事?
Eason Wang:
我能不能说,目前你的情况是SPI写操作没问题,读操作出问题?
读的时候,620005似乎返回了之前写入的寄存器值,但是DM8168都识别成了0xFFFFFFFF?
yurmi:
回复 Eason Wang:
是这样的没错。
yurmi:
回复 yurmi:
还有我是SPI_D0作为MOSI,SPI_D1作为MISO,用的是片选1,是,SPI_D1不能作为MISO来读数据吗?
如果我使用SPI_D0作为MISO,SPI_D1作为MOSI,使用片选0,则可以读?是片选1的问题还是SPI_D1
的问题。
Eason Wang:
回复 yurmi:
请问您这是猜测还是说试过了?
对于之前的问题,我的假设是SPI读的时序有一丢丢不对,导致读到的东西错了,可不肯能?
BR,
Eason
yurmi:
回复 Eason Wang:
验证了下把MISO和MOSI的数据线互换之后可以读了,SPI_D0作为MOSI,SPI_D1作为MISO,读失败,(此时读MCSPI_CH(i)CONF值是0x1a1603dc),这时
MCSPI_CH(i)STAT中RXS是可以置位的,但是MCSPI_RX(i)中的数据都是0xff,没有数据刷新。
SPI_D0作为MISO,SPI_D1作为MOSI,可以读,(此时读MCSPI_CH(i)CONF值是0x1a1103dc),