您好!
我正在尝试使用 Arduino 板控制 AFE 4404 EVM。 但我的 I2C 通信有问题。 我在发送地址和发送数据后恢复 ACK 脉冲,但设备不工作,如果我尝试读取寄存器(数据配置),我只得到0x0...
我已从 AFE 4404 EVM GUI 中复制配置寄存器。 电源如下:
RX_SUP=3.3V
IO_SUP=3.3V
TX_SUP=5V
I2C_SCL=4.8V
I2C_SDA=4.8V
I2C 时钟的工作频率为400kHz。
你知道我该怎么做吗?
提前感谢您、Joan
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我正在尝试使用 Arduino 板控制 AFE 4404 EVM。 但我的 I2C 通信有问题。 我在发送地址和发送数据后恢复 ACK 脉冲,但设备不工作,如果我尝试读取寄存器(数据配置),我只得到0x0...
我已从 AFE 4404 EVM GUI 中复制配置寄存器。 电源如下:
RX_SUP=3.3V
IO_SUP=3.3V
TX_SUP=5V
I2C_SCL=4.8V
I2C_SDA=4.8V
I2C 时钟的工作频率为400kHz。
你知道我该怎么做吗?
提前感谢您、Joan
Prabin、您好!
我有一个新的 AFE 4404 EVM 套件。 我看一下我使用的 I2C 转子、我注意到它是错误的(遵循 AFE 4404数据表)、因为我没有设置 R/W 位。 但是、它仍然不工作、我害怕将其连接到示波器、因为上次连接后它崩溃了(我知道这真的很奇怪)。 另一方面、您告诉我将 REG_READ 设置为0、但我在 AFE 4404的第21页中读取数据时显示:"在读取任何其他寄存器之前、需要将 REG_READbit 额外设置为"1"。 如果你看到我使用的两个函数、你可以告诉我一些线索。
void I2C_write (int slave_address、byte reg_address、unsigned long configData){int ACK;Wire.beginTransmission (slave_address << 1);Wire.write (reg_address);Wire.write ((configData >> 16)& 0xFF);Wire.write (configData >> 8)& 0xFF);Wire.write="(Serial.transmission (configdata);print.end.ACK (Serial);print.end (<.ACK)
int m=0;
int byteCount=3;
Int NACK;
Wire.beginTransmission(0x58 <<< 1);
Wire.write (0x1D);
Wire.beginTransmission(0x58 <<1 |0x01);
Wire.requestFrom (0x1D、3);
while (Wire.Available ()&&(字节计数!= 0))
{
v_code.[m]=Wire.read ();
字节计数--;
M++;
}
Nack=Wire.endTransmission ();
serial.print (";nack=");
serial.print (NACK);
return (V_code);
}
提前感谢您、Joan