Part Number:LMK04821
我现在想读取LMK04821寄存器的值,比如说我配置了0x001为0x90,可以查询到0x000的值吗?需要切换什么寄存器的状态才可以吗?
我希望的是去读取寄存器的状态来保证我是否配置成功,然后也需要查询那几个只读寄存器,像0x003 0x006 ,我从技术那边了解到了:读寄存器让R/W为1就可以,但是我这样试了之后并没有返回值给我
我需要知道的是在读寄存器的时候需要配置哪些寄存器能达到我的目的,忽略前面的配置情况,相当于重新刷新配置状态,手册里提到input clock switching的三个模式怎么选择?
Kailyn Chen:
shu jie 说:我配置了0x001为0x90,可以查询到0x000的值吗?
这句我没太明白您的意思,配置寄存器0x001的值为0x90.是需要查询寄存器0x000的值吗?
shu jie 说:我希望的是去读取寄存器的状态来保证我是否配置成功
那就要去读取您配置的寄存器,是否和写入的寄存器一致,如果读取的和写入的不一致,说明没有成功写入。
shu jie 说:手册里提到input clock switching的三个模式怎么选择?
这个是通过寄存器CLKin_SEL_MODE 来配置输入时钟模式。如果CLKin_SEL_MODE 配置为0,1,2的时候,CLKin0 、 CLKin1 、 或 CLKin2 始终被选为有有效输入时钟。
当 CLKin_SEL_MODE=3的时候,CLKin_SEL0 和CLKin_SEL1引脚来选择哪个时钟作为输入。
当 CLKin_SEL_MODE=4,并且LOS_EN=1 的时候,按使能的顺序进行循环,时钟的开关顺序为 CLKin0 → CLKin1 → CLKin2 → CLKin0 、依此类推
,
shu jie:
我的意思是查询寄存器值的时候需要操作哪些寄存器,我配置0x000 为0x09只是举例,我需要查询一下那些只读寄存器的值并显示,现在的状况是我发送了1bit的1+2bit的0+13bit的地址,并没有收到回读值,我是需要在读之前要对比如说0x149这类寄存器配值吗?
,
Kailyn Chen:
您好,FIgure1是SPI的读写时序。可以看到,写的时候是R/W =0,W1=W0,然后13bit address +8bit data,读取的时候,R/W =1,W1=W0=0,SDIO从输入切换到输出,D7~D0 从LMK04821中移出。 这个是读写的一个时序。
,
shu jie:
您好,这是我读取时的时序,没有数据出来
,
Kailyn Chen:
好的,我这边再看下。
,
Kailyn Chen:
SPI_3WIRE_DIS bit您配置的是什么?如果是3 wire SPI mode话,SDIO从输入变为输出,需要将SPI_3WIRE_DIS配置为0.
如果SPI_3WIRE_DIS配置为1的话,那就是需要4wire SPImode,其中STATUS_LDx, CLKIN_SELx, RESET这几个引脚用来作为data的回读引脚。
,
shu jie:
我配置的是0,我一般先写0x000为0x80,然后再写0x000为0x00,然后进行读
,
Kailyn Chen:
您好,这个问题我这边再看下,是不是所有的寄存器都不能正确读取read back?
,
shu jie:
是的,不论是只读寄存器还是普通寄存器,我能配置,但是无法回读值,都是00
,
Kailyn Chen:
您好,抱歉回复晚了,不知您的问题怎么样了,我将您的问题提交到英文E2E上了,您可以直接在上面跟进,也可以在这里讨论,我去英文论坛上翻译:
https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1081718/lmk04821-read-and-write-registers
,
shu jie:
您好,问题目前已经解决了,是主控端无法支持3线模式,我用模拟GPIO通信已经成功获取寄存器值了