Part Number:CDCE18005
现在我CDCE18005默认的电路图如下图所示,SYNC和PWR_DOWN为1K下拉电阻(这两个引脚都有150K上拉电阻),所以初始上电都为0。
现在我的操作如下:
1、设置SPI速率为125KHz,上升沿写入,下降沿数据变化(时序符合手册上要求),LSB发送。
2、设置PWR_DOWN=1,即上电,然后等待250ms。
3、读取寄存器0,数据为0x8000980F(读取0-8寄存器都是这个值,去掉低4位则实际寄存器值为0x08000980),和手册上的默认值不一样。
4、使用写指令,写入寄存器值为0x0E940980,加上低4位地址域,即实际写入的32位数据位0xE9409800,但是写入后读取数值依然为0x8000980F,即实际数据域值为0x08000980。
以上3、4操作都是以下面的手册中的图的指令操作的。
Kailyn Chen:
您好,您是通过coadloader配置的寄存器吗?
,
Kailyn Chen:
您好,关于您初始值读取不正确的问题,想和您确认下SPI_LE 的时序是否正确。第二步中将PWR/Down 从低到高的变化中,SPI_LE是否处于逻辑低的状态?
SPI_LE has to be logic "0" before the Power_Down# toggles low-tohigh in order for the EEPROM to load properly.
,
user4153579:
不好意思,今天才看到这个信息,我这寄存器不是用coadloader配置的。
,
user4153579:
这个SYNC和PWR_DOWN两个引脚我都没有加外部上下拉电阻,上电后我程序中两个全部拉低,然后LE拉低,等待100ms后将PWR_DOWN引脚拉高,然后再等待250ms读取寄存器的值,但是依旧如上面问题说讲。
,
user4153579:
现在读写正常了,但是发送unlock指令将RAM数据写入EEPROM后,重新上电,读取时序中的发送第一个32位读取命令时(发送的32位数据位0x0000000E),CDCE18005返回的是我保存的值,但是等到下面的真正读取32位寄存器时确返回0x00000000(发送的32位数据位0xFFFFFFFF)
,
user4153579:
经过示波器解析SPI协议,发现是SPI数据还没有发送完成,LE信号已经被拉高导致的。
,
Kailyn Chen:
感谢您的分享,很高兴您的问题得以解决。