wuzhengmin 发表于 3 天前

对比读写,看看能分解的最小功能模块有几个?

至少要写好7个驱动函数:1.启动信号2.等待从机应答信号3.终止信号4.主机发送ACK信号5·主机发送NO_ACK信号6.发送一个字节7.读取一个字节

wuzhengmin 发表于 3 天前

看好时序图:
空闲时,SDA和SCL都是高电平。
起始信号和停止信号:


wuzhengmin 发表于 3 天前

SCL=1时,如果是传输数据,SDA电平应保持不变,这样才可以将数据发送出去。如果SDA电平发生了变化,则是启停信号。SCL=0时,SDA上的电平允许变化,变化好了,等SCL=1,SDA电平一直保持到SCL=0,这样就可以将数据传送出去。始信号+地址+寄存器地址+数据+应答............+应答(非应答)+停止信号


wuzhengmin 发表于 3 天前

好好研究这7个信号:


前面5个看下面的图:

从机应答ACK是SDA=0 ,从机应答NOACK是SDA=1 ,当然都是在SCL=0时写入0或者1,SCL=1时,SDA不能变化…. SCL=0时候不能接受从机的变化。




wuzhengmin 发表于 3 天前

上面的图5要补充一下:

从机应答是0(SDA=0)表示正确,是1(SDA=1)表示错误

wuzhengmin 发表于 3 天前

接下来卡发送一个字节:

SCL低电平时,SDA准备好高低电平,到SCL高电平的时间就送出去,SCL稳定高电平的时候,SDA不能动。写高为在先,低位在后,和SPI的MSB一样。



wuzhengmin 发表于 3 天前

最后是读取一个字节:


SCL低电平时,SDA准备好高低电平,到SCL高电平的时间就读出去,SCL稳定高电平的时候,SDA不能动。写高为在先,低位在后,和SPI的MSB一样。


看图:

wuzhengmin 发表于 3 天前

接着研究24C02的各个动作的保持时间:


看24C02手册:

我们截图过来:



wuzhengmin 发表于 3 天前

看看电气参数:




重点看:2线串行 2K(256*8)容量

wuzhengmin 发表于 3 天前

可靠性很高,虽然容量小……….

使用先看寻址:


再看引脚:

页: 18 19 20 21 22 23 24 25 26 27 [28] 29 30
查看完整版本: 第一次:环境的创立 | 送实验箱