公司第一次使用这个芯片 ,,采用FPGA实现SPI 接口时序,然后通过CPU 软件实现对该芯片各个寄存器的配置, 目前的情况是 在软件代码里 ,芯片上电
后根据datasheet的时序图 读eeprom里的默认寄存器配置 ,发现读的值不正确,然后 使用cdce62005软件生成我们需要的配置 ,写入到寄存器里,然后回读,发现读回来的值也是不对的,用示波器里输出时钟也没有结果,可以确认FPGA 已经将cpu的命令透传过去 ,这是怎么回事啊? 是写入和读取数据 的spi时序在软件里写没有正确吗? 使能的拉高 拉低 clk的 高低 所有的正确的 不正确的 都试过 写入的值和回读的值 不一致 而且没有没有任何规律
Zhongbo Liu:
而且能够证明 eeprom 没有lock 读写操作是按照 DS 21page 写的
Robin Feng:
回复 Zhongbo Liu:
62005的手册21页没有时序图,请以官网最新版本手册为准,
请仔细看手册FIGRUE17~22保证和调整相关建立保持时间/并参考EVM注意高低位优先顺序和时钟/使能的初始状态和极性.
Zhongbo Liu:
回复 Robin Feng:
我是根据 datasheet 中的 Figure 14. Timing Diagram for SPI Write Command Figure 15. Timing Diagram for SPI Read Command 来配置时序的 可以吗?
Zhongbo Liu:
回复 Kailyn Chen:
我目前 向8个寄存器写值 然后回读 发现前七个都可以正确回读正确 可是第8个寄存器 有些问题 ,例如 我向寄存器写入 0xC50037F7 回读回来的是 0x050037F7
写入0xF50037F7 回读回来的是0x3F50037F7 ,规律是 第31 32 两个bit 都回读成0了 ,写这8个寄存器都是用的同一个函数 ,就第8个寄存器有问题 ,能帮帮看看 是什么问题引起的吗?? 谢谢了
Zhongbo Liu:
回复 Kailyn Chen:
用逻辑抓数据 发现写入的数据时序没有错 用示波器量时钟 没有输出 ,现在不能确定是写入的不正确还是回读的 不正确,如果是写入或回读的不正确 前7个写读都是正确的 很奇怪!!!
Robin Feng:
回复 Zhongbo Liu:
你好 register 7 的最高两位是只读寄存器,不可改写,参考手册34页
Read OnlyIf EPLOCK 26 EPLOCK Status reads “0” EEPROM is unlocked. If EPLOCK reads “1”, then the EEPROM is locked (see EEPROMTable 4 for how to lock the EEPROM – this can only be executed once after which the EEPROM islocked permanently).27 RESERVED Status Read Only; Always reads “1”
Zhongbo Liu:
回复 Robin Feng:
嗯 是的 它是只读的 但是 27bit 也应该读出的是“1”啊,现在是 26 27 读出来的都是 0, 第26 bit 读出的“0”,按照说明 read “0”,表示 eeprom 是unlocked 也就是正常状态 ????????
Zhongbo Liu:
回复 Robin Feng:
是我的读写代码有问题吗?? 我把我的读写流程说一下 LE enable -> 写入32bit 寄存器值(0~4 地址 5-31 数据) ->LE disable -> LE enable-> 写入读某个寄存器的地址 例如 0x0000002E ->LE disable -> LE enable ->写入任意32bit数据 回读 真正的当前寄存器的值 ->LEdisable 在每次写入数据的过程中 都有时钟的高低变化 同时也都有延时操作
Robin Feng:
回复 Zhongbo Liu:
是的,应该是1,请换一块板交叉确认。
另外该器件是否正常工作,锁定?
TI中文支持网


