我的设置包括一个LTC6811 (数据表)和一个ADG728交换机/复用器(数据表)。目的是通过ADG728开关/多路复用器通过I2C一次从选定的通道读取电池温度数据。
开关/多路复用器的地址是0x4C。下面是我整理的顺序。
ICOM03 03:0-0x6(开始),D07:4-0x9(1001),D03:0-0x8(1000),FCOM03 03:0-0x8(主NACK) (D0作为mux 7位地址+写位) ICOM13 13:0--0x0(空白),D17:4--0x0(0000),D13:0-0x1(0001),FCOM13 13:0-0x9(主NACK + STOP) (D1作为mux通道: 0b00000001)
我将序列打包到tx_data数组中(参见DC2259 of LTSketchbook)。
BMS_IC[current_ic].com.tx_data[0]= 0b01101001; // 0x69;
BMS_IC[current_ic].com.tx_data[1]= 0b10001000; // 0x88;
BMS_IC[current_ic].com.tx_data[2]= 0b00000000; // 0x00;
BMS_IC[current_ic].com.tx_data[3]= 0b00011001; // 0x19;然后,在调用ADAX和RDAUX命令从GPIO1读取数据之前,调用WRCOMM和STCOMM (数据长度= 2)命令。我想知道上面的序列是否有问题,因为我无法从GPIO1读取有效值。任何想法或帮助都将不胜感激。
发布于 2022-07-13 09:52:48
你解决这个问题了吗?我认为您需要3的长度来确保i2c初始化。在"9“之后用"7”填充其余的数据以忽略。
https://stackoverflow.com/questions/70514603
复制相似问题