“信号操作员”验证评估 刘志勇, https://liuzhiyong.cn/ 2025/3/24 ########## 三个I2C元件 两个SPI元件 GPIO读写中断 I2C读写的波形 SPI八种配置的波形 ########## 从机 I2C: AT24C01, LM75A, DS3231 SPI: W25Q128(SS连接D2), ADS1118(SS连接D3) GPIO 引脚D10(有中断)连接引脚D8 引脚D9(有中断)连接引脚D7 引脚D6连接引脚D5(用于读写) 软件 Putty,其中鼠标右键点击,为粘贴文本。 ########## I2C / AT24C01 help (主控的帮助命令,可确认串口通信正常) i2cscan (扫描I2C从机地址, 50是AT24C01) i2cwrite @50 00 nostop (地址00) i2cread @50 04 stop (读取04字节) i2cwrite @50 00 F0 F1 F2 F3 stop (写入 F0 F1 F2 F3 到地址 00) i2cwrite @50 01 AA BB stop (写入 AA BB 到地址 01) i2cwrite @50 00 nostop (地址 00) i2cread @50 04 stop (读取 04 字节) (所有数字为十六进制) (括号"("和")"之间是注释) ########## I2C / LM75A help (主控的帮助命令,可确认串口通信正常) i2cscan (扫描I2C从机地址, 48是LM75A) i2cwrite @48 00 nostop (地址00, 温度) i2cread @48 02 stop (两字节的数据) (数字为十六进制) (D0到D6, 7个低位LSB比特, 是没用的) (数据最低位是+0.5摄氏度) (例子 (0x1360>>7)*0.5 = 19摄氏度) (括号"("和")"之间是注释) ########## I2C / DS3231 help (主控的帮助命令,可确认串口通信正常) i2cscan (扫描I2C从机地址, 68是DS3231) i2cwrite @68 00 40 stop (地址00, 秒钟 = 40, BCD) i2cwrite @68 01 08 stop (地址01, 分钟 = 8, BCD) i2cwrite @68 01 nostop (地址01, 分钟) i2cread @68 01 stop (读取分钟) i2cwrite @68 01 nostop (地址01, 重复分钟) i2cread @68 01 stop (重复读取分钟, 最终它会变) (数字为十六进制) (括号"("和")"之间是注释) ########## SPI / W25Q128 help (主控的帮助命令,可确认串口通信正常) spi @02M0 03 00 00 00 FF FF FF FF (地址00 00 00读取4字节) spi @02M0 06 (使能写入) spi @02M0 02 00 00 00 11 22 33 44 (写4字节到地址00 00 00) spi @02M0 03 00 00 00 FF FF FF FF (地址00 00 00读取4字节) (数字为十六进制) (括号"("和")"之间是注释) ("@02M0"含义: SS引脚D2, MSB先发, SPI模式0) (另外一个例子: "@0BL2"意思是SS引脚0B, LSB先发, SPI模式2) (擦除芯片的命令: 使能写入, 然后: spi @02M0 C7) ########## SPI / ADS1118 help (主控的帮助命令,可确认串口通信正常) spi @03M1 80 1B 00 00 (开始转换, 温度模式) spi @03M1 80 1B 00 00 (重复) (数字为十六进制) (括号"("和")"之间是注释) ("@03M1"含义: SS引脚D3, MSB先发, SPI模式1) (另外一个例子: "@0BL2"意思是SS引脚0B, LSB先发, SPI模式2) (2个低位LSB比特, 是没用的) (数据最低位是0.03125摄氏度) (例子 (0x0BCC>>2)*0.03125 = 23.59375摄氏度) ########## GPIO help (主控的帮助命令,可确认串口通信正常) pinwrite @05 L (引脚D5写入低电平) pinread @06 (读取引脚D6) pinwrite @05 H (引脚D5写入高电平) pinread @06 (读取引脚D6) pinwrite @07 L (引脚D7写入低电平) pinwrite @07 H (引脚D7写入高电平) pinwrite @08 L (引脚D8写入低电平) pinwrite @08 H (引脚D8写入高电平) 引脚D10(有中断)连接引脚D8 引脚D9(有中断)连接引脚D7 引脚D6连接引脚D5(用于读写) ########## I2C波形 help (主控的帮助命令,可确认串口通信正常) i2cscan (扫描I2C从机地址, 50是AT24C01) i2cwrite @50 02 nostop (地址02) i2cread @50 03 stop (读取03字节) i2cwrite @50 04 A4 A5 A6 stop (写入 A4 A5 A6 到地址 04) (所有数字为十六进制) (括号"("和")"之间是注释) (预备读取的数据:“i2cwrite @50 00 80 81 82 83 84 85 86 87 88 89 stop”) ########## SPI波形 help (主控的帮助命令,可确认串口通信正常) spi @04M0 01 02 03 04 05 (SS为D4,MSB先发,SPI模式0,发送 01 02 03 04 05) spi @04M1 01 02 03 04 05 (SS为D4,MSB先发,SPI模式1,发送 01 02 03 04 05) spi @04M2 01 02 03 04 05 (SS为D4,MSB先发,SPI模式2,发送 01 02 03 04 05) spi @04M3 01 02 03 04 05 (SS为D4,MSB先发,SPI模式3,发送 01 02 03 04 05) spi @04L0 01 02 03 04 05 (SS为D4,LSB先发,SPI模式0,发送 01 02 03 04 05) spi @04L1 01 02 03 04 05 (SS为D4,LSB先发,SPI模式1,发送 01 02 03 04 05) spi @04L2 01 02 03 04 05 (SS为D4,LSB先发,SPI模式2,发送 01 02 03 04 05) spi @04L3 01 02 03 04 05 (SS为D4,LSB先发,SPI模式3,发送 01 02 03 04 05) (模式0 (CPOL=0, CPHA=0): 时钟空闲状态 = L, 数据采样 = L->H) (模式1 (CPOL=0, CPHA=1): 时钟空闲状态 = L, 数据采样 = H->L) (模式2 (CPOL=1, CPHA=0): 时钟空闲状态 = H, 数据采样 = H->L) (模式3 (CPOL=1, CPHA=1): 时钟空闲状态 = H, 数据采样 = L->H) ----- 文件结束 -----