来源:https://www.bilibili.com/video/BV1Mb411e7re/?p=27&share_source=copy_web&vd_source=7ee9fc9c6a7dcf70c11f80e97ab033ce

+普中科技开发板说明手册

记录用


存储器介绍

易失性存储器/RAM: 静态RAM-SRAM 速度最快 容量小 成本高

​ 动态RAM-DRAM 电容+扫描电路 需动态刷新 eg.电脑内存条

非易失性存储器/ROM: 掩膜ROM-Mask ROM 只读不写 可编程ROM-PROM 仅可写一次

​ 可擦除可编程ROM-EPROM 可擦除 电可擦除可编程ROM-E2PROM 电可擦除

​ Flash(闪存)

​ 硬盘、软盘、光盘等

存储器简化模型:

​ 地址总线+数据总线排布为网格,用不同位置连接 断开存储数据。

-Mask ROM 连接处使用二极管

-PROM 置相对的两个二极管,其中一个易击穿 穿前断路穿后短路/置熔丝,相反

AT24C02(存储芯片)介绍

可实现掉电不丢失

  1. 存储介质:E2PROM
  2. 通讯接口:I2C总线
  3. 容量:256字节
  4. 工作电压:1.8V-5.5V

***I2C总线

作用:实现多设备协作通信。

一种通用数据总线(统一通信协议)

两根通信线-SCL(Serial Clock)、SDA(Serial Data)

  1. 同步:拥有单独的时钟线

  2. 半双工:只有一条数据线,分时段来回通信

  3. 带数据应答:检测是否接收到数据(串口无此功能)

I2C电路规范

所有I2C设备的SCL连在一起,SDA连在一起

SCL和SDA都要配置成开漏输出模式(0有驱动能力,1无;高电平时引脚断开,CPU与其中一个设备通信时不受其他设备干扰)

//原本IO口为弱上拉模式,开关闭合→输出为0 开关断开,数据由上传入通路→输出为1

//开漏模式:无上拉电阻 下方直接接开关:开关闭合接GND→输出为0 开关断开 引脚浮空→输出为1(电路断开 电平不稳定)

SCL和SDA各添加一个上拉电阻(一般为4.7KΩ左右)

理解:弹簧+标尺模型进行通信 拉下杆为0 松手则为1

I2C时序结构 A(主机89C52)→B(从机24C02)

主机、从机程序不同,一般只编写主机程序

S蓝 起始条件:SCL高电平期间,SDA从高电平→低电平

P红 终止条件:SCL高电平期间,SDA从低电平→高电平

字节传输

S绿 发送一个字节:SCL低电平期间,A将数据位从高到低依次放到SDA线上,然后拉高SCL,B在SCL高电平期间读取数据位。循环8次即可发送一个字节*(SCL高电平期间SDA不允许有数据变化)*

R紫 接收一个字节:SCL低电平期间,B将数据位从高到低依次放到SDA线上,然后拉高SCL,A在SCL高电平期间读取数据位。循环8次即可接收一个字节*(SCL高电平期间SDA不允许有数据变化,A在接收前需释放SDA)*

应答(额外一位 用于判断是否应答)

SA黄 发送应答:接收完一个字节后,主机在下一个时钟发送一位数据,数据0表应答,1表非应答。

RA黑 接收应答:发送完一个字节后,主机在下一个时钟接收一位数据,判断B是否应答,数据0表应答,1表非应答。(A接收前需释放SDA)

I2C数据帧

发送一帧数据(向谁发什么):S→s(address:A6 A5 A4 A3 A2 A1 A0 R/W)→RA→s→RA→s→……RA→P

接收一帧数据(向谁收什么):S→s(address:A6 A5 A4 A3 A2 A1 A0 R/W)→RA→R→SA→R→……SA→P

复合格式(先发送再接收,向谁收指定的什么):S→s(address)→RA→s→RA→s→……RA→S→s(address)→RA→R→SA→R→……SA→P

字节写:在地址处写入数据Data

随机读:读出地址处数据Data