a.FPGA驱动iic总线控制上电后先读取EEPROM中的数据,等待EEPROM数据读取完毕后,iic总线选通AD7998开始读取AD的数据,但在读取EEPROM时出现了如下问题:
开始+器件地址(0写)+从机应答+(地址高8位)+从机应答+地址低8位+从机应答+开始+器件地址(1读操作)+从机应答+sda_in数据异常(导致读出的为0xff)。
出现此问题的原因可能有:①在发送restart的时候有可能将时钟scl的低电平吞掉,导致出错。
②最后查找问题发现此EEPROM芯片(AIP24C64)有的在SCLK=200KHz下正常工作,有的则例外不可以,出现问题的这里就是例外,经过多次尝试当SCLK=100KHz时有时可以读出数据,但有时也会读出异常的0xFF数据,当SCLK=50KHz时可以稳定的读出数据。
注:iic最常用时钟100KHZ
记录一下:当时查找此问题找了好久,过程十分的痛苦,写此问题汇总一来供自己以后查找使用,二来帮助后续如果遇到同类问题的人提供一丝思路。
我为人人,人人为我。