信号操作员测试评估:三个I2C元件,两个SPI元件,GPIO读写中断 Input Output Tech, https://inputoutputtech.com/ ########## 硬件 主机 Arduino Uno R3, 电平转换板 从机 I2C: AT24C01, LM75A, DS3231 SPI: W25Q128, ADS1118 GPIO 引脚2(有中断)连接引脚4 引脚3(有中断)连接引脚5 引脚7连接引脚8 ########## I2C / AT24C01 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 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 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 spi @0AM0 03 00 00 00 FF FF FF FF (地址00 00 00读取4字节) spi @0AM0 06 (使能写入) spi @0AM0 02 00 00 00 11 22 33 44 (写4字节到地址00 00 00) spi @0AM0 03 00 00 00 FF FF FF FF (地址00 00 00读取4字节) (数字为十六进制) (括号"("和")"之间是注释) ("@0AM0"含义: SS引脚0A(10 DEC), MSB先发, SPI模式0) (另外一个例子: "@0BL2"意思是SS引脚0B, LSB先发, SPI模式2) (擦除芯片的命令: 使能写入, 然后: spi @0AM0 C7) ########## SPI / ADS1118 spi @09M1 80 1B 00 00 (开始转换, 温度模式) spi @09M1 80 1B 00 00 (重复) (数字为十六进制) (括号"("和")"之间是注释) ("@09M1"含义: SS引脚09(9 DEC), MSB先发, SPI模式1) (另外一个例子: "@0BL2"意思是SS引脚0B, LSB先发, SPI模式2) (2个低位LSB比特, 是没用的) (数据最低位是0.03125摄氏度) (例子 (0x0BCC>>2)*0.03125 = 23.59375摄氏度) ########## GPIO pinwrite @07 L (引脚7写入低电平) pinread @08 (读取引脚8) pinwrite @07 H (引脚7写入高电平) pinread @08 (读取引脚8) pinwrite @04 L (引脚4写入低电平) pinwrite @04 H (引脚4写入高电平) pinwrite @05 L (引脚5写入低电平) pinwrite @05 H (引脚5写入高电平) (引脚2(有中断)连接引脚4) (引脚3(有中断)连接引脚5) (引脚7连接引脚8) ----- 文件结束 -----