JimOrange
发表于 2024-3-21 18:15:25
本帖最后由 JimOrange 于 2024-3-21 18:41 编辑
第二十九集:SPI读取FLash芯片。W25X40CL简介。(我用的是W25Q32FV, 一个Page有256个字节,一个Sector有16个Page,一个Block有16个Sector,而这个Flash有0x3F个Block,也就是64个)。
写入使能 06h、读取状态寄存器 05h、写入数据(一个page)02h、读取数据03h、Sector擦除 20h
JimOrange
发表于 2024-3-21 20:04:14
本帖最后由 JimOrange 于 2024-3-21 23:47 编辑
第三十集:软件模拟IIC.
IIC是一种双向二线的串口通信。一个时钟线(SCK),一个数据线(SDA)。通过地址区分从设备。
1. 主机在空闲的时候(即SCK和SDA都是高电平),需要新发送一个start信号(SCK为高,SDA由1变为0);
2. 发送7个位的地址,和一位的读/写信号(0为写,1为读)。总共8位,一个字节的。
3. 会收到应答信号(ACK = 0);
4. 发送一个数据都会等待一个应答;重复。。。
5.当发送完成,就发送End信号(SCK为高,SDA由0变为1)。
数据的传输:
SCL为低电平,才允许SDA变化。 如果SDA变化好了,等SCL为高电平(1),此时SDA电平要保持,直到SCL为低电平(0)。
起始信号:
发出ACK信号:
ACK(SDA = 0)、NO_ACK(SDA = 1)
等待从机应答:
先拉高SDA,然后再读取SDA,如果SDA等于0,表示正确,否则为错误。
停止信号:
地址:A2、A1、A0默认都接地,所以都为0. AT24C02默认地址格式:0x 1 0 1 0 A1 A2 A3 R/W(0为写入,1位读取)
读取地址:0xA1, 写入地址:0xA0