IIC总线、EEPROM写入流程
2017-12-21 10:52:47 6 举报
IIC总线、EEPROM读写流程
作者其他创作
大纲/内容
从机被激活等待接收页地址与读写选择信号
接收到结束信号待机
EEPROM_scl = 1; _nop_; while(EEPROM_sda); 当收到应答,既sda为0时退出循环 EEPROM_scl = 0; _nop_;
主机产生START信号
数据发送函数
EEPROM_sda = 0; _nop_; EEPROM_scl = 1; _nop_; EEPROM_sda = 1; _nop_; 在scl为高时,sda发生正跳变
产生结束信号函数
应答检测函数
接收到8位地址,激活对应的字节区域完成后发送应答信号
接收到应答信号产生结束信号
EEPROM_sda = 1; _nop_; EEPROM_scl = 1; _nop_; EEPROM_sda = 0; _nop_; 在scl为高的时候,sda发生负跳变 EEPROM_scl = 0; _nop_;
接收到应答信号向从机发送字地址等待从机的应答信号
产生开始信号函数
接收到应答信号向从机发送一字节数据等待从机的应答信号
temp为要发送的字节,比如器件地址0xA0,既 1010 0000 for(index=0; index8; index++) 一个字节为八位二进制数,要写八次 { EEPROM_sda = temp & 0x80; _nop_; 将temp的最高位传给sda EEPROM_scl = 1; _nop_5; 将scl置高,产生正跳变,完成写入 EEPROM_scl = 0; _nop_5; 将scl置低 temp = 1; temp右移,次高位移至最高位 } IIC_EEPROM_check_ACK(); 应答检测函数
接收到主机的指令,激活对应的页储存器进入读/写模式完成后发送应答信号
EEPROM写入一个字节流程
接收到一字节数据,填入激活的字节区域完成后发送应答信号
向从机发送器件地址(7位)与读写选择位(1位)等待从机的应答信号
SCK SDA
收藏
0 条评论
回复 删除
下一页