spi/iic/gpio

iic设置速度, ch347f共有如下的速度, speed值从0开始索引

image.png

E2 指令是什么????

aa 指令格式是 0xAA, 0x60 | speed, 0x00 没有返回

obuf: e2 08 00 00 00 81 81 00 00 00 00
ibuf: e2 01 00 00
obuf: aa 62 00

iic发送东西

格式是 0xAA, 0x74, 0x80 | len, ...data..., 0x75, 0x00 其中长度不应该超过 63 ,高位用于识别指令. 返回值应该是ACK, 多少个数据就多少个ACK。 1 的话就是发送成功。

obuf: aa 74 89 78 40 ff 00 ff 00 ff 00 ff 75 00
ibuf: 01 01 01 01 01 01 01 01 01

iic读取东西

iic读取mpu6050的idcode, 数据为 address << 1, reg_addresss , 发送 2 字节, 然后又发起 Start 信号和写读地址 0x74, 0x80 | len, (address << 1) | 1 ,然后通过 0xC0 开始读取,然后 0x75, 0x00释放命令。回复报文中具有 3 个 ACK, 然后是数据。实际上 0xC00xC1 的意思是一致的。

0xAA, 0x74, 0x80 | len, 0xD0, 0x75, 0x74, 0x80 | len, 0xD1, 0xC0 | len, 0x75, 0x00

obuf: aa 74 82 d0 75 74 81 d1 c0 75 00
ibuf: 01 01 01 68

上面是一条usb控制指令,包含iic读写, 所以返回3个ACK