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.

[参考译文] ADS7828:当我使用 ADS7828通过 I2C 读取任何通道时、总是收到0x0F+ACK 和0xFF+NACK

Guru**** 1127450 points
Other Parts Discussed in Thread: ADS7828
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1297961/ads7828-i-always-received-0x0f-ack-and-0xff-nack-when-i-reading-any-ch-through-the-i2c-with-ads7828

器件型号:ADS7828

使用 ADS7828 IC 时、遇到了"读取数据"问题。 下面显示了我如何 写入  固件读取 CH1值,(下面显示的部分代码在我的固件, I2C 启动和其他开始代码运行良好。

uint8_t txBuffer2[1];
uint8_t rxBuffer2[2];

txBuffer2[0]= 0x90;     // 写入地址字节

uint8_t txBuffer3[1];
uint8_t rxBuffer3[2];

txBuffer3[0]= 0xC4;    // 命令  字节用于选择 CH1、 内部基准关闭和 A/D 转换器开启 (不确定最后4位设置)  


uint8_t txBuffer4[1];
uint8_t rxBuffer4[2];

txBuffer4[0]= 0x91;//用于 读取的地址字节  

while (1){

i2cTransaction.targetAddress = 0x48;
i2cTransaction.writeBuf = txBuffer2;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer2;
i2cTransaction.ReadCount = 0;


如果(I2C_transfer (i2c、&i2cTransaction))
{


否则
{


i2cTransaction.targetAddress = 0x48;
i2cTransaction.writeBuf = txBuffer3;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer3;
i2cTransaction.ReadCount = 0;

如果(I2C_transfer (i2c、&i2cTransaction))
{



否则
{


i2cTransaction.targetAddress = 0x48;
i2cTransaction.writeBuf = txBuffer4;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer4;
i2cTransaction.ReadCount = 2;

如果(I2C_transfer (i2c、&i2cTransaction))
{


否则
{

但我总是收到 0x0F+ACK 和0xFF+NACK  。 那么、问题是什么呢? 如何解决该问题、我需要读取 CH1电压读数。 当 I 变量 CH1电压始终回复 0x0F+ACK  和0xFF+NACK 时。 没有任何差分结果。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Nishad、

    能否转交您的原理图和有关您使用 ADS7828的应用的一些详细信息?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然可以。   我将随此回复附上电路原理图。  我想读出8通道 电压。 但仍然将0x0F 和0xFF 作为输出字节。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您已关闭基准、并且未将外部基准连接到 ADS7828。  这就是你看到0xFFF 作为转换结果的最可能的原因。  请启用参考并告知我们您看到的内容。