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.

[参考译文] DAC6571:使用 I2C 连接 DAC6571

Guru**** 2454880 points
Other Parts Discussed in Thread: DAC6571

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1416499/dac6571-interfacing-dac6571-using-i2c

器件型号:DAC6571

工具与软件:

大家好!

我尝试使用 I2C 与 NXP RT1020 IMX.8处理器来连接 DAC6571。

I2C 的配置类似于启用开漏、并在硬件的 SDA 和 SCL 引脚上连接4.7K 上拉。

我确认 I2C 正常工作、但芯片在芯片的 Vout 引脚上提供了适当的数据。

检查以下代码:

#define I2C_SLAVE_DAC6571_ADDR_7BIT 0x4CU//(0x98U >> 1)
#define DAC_MASK_VALUE 0x03FF

// DAC 值应为10位、因此屏蔽它以确保不超过10位
value &= DAC_MASK_value;

//准备要以所需格式发送的数据
UINT8数据[2];

DATA[INDEX0]=(value >> 6)& 0x0F;// 10位值的高4位

DATA[INDEX0]|= 0x00;//正常运行时、将两个断电位设置为零

DATA[INDEX1]=(value << 2)& MAX_8位;// 10位值的低6位、后跟两个无关位

// LPI2C 主描述符
lpi2c_master_transfer_t masterXfer ={0};
STATUS_t Reval = k Status_Fail;
/* SubAddress = 0x01、DATA = g_MASTER_txBuff -写入到从器件。
start + slaveaddress (w)+子地址+数据缓冲区的长度
+数据缓冲区+ STOP*/

masterXfer.slaveAddress = I2C_SLAVE_DAC6571_ADDR_7BIT;
masterXfer.direction = kLPI2C_Write;
masterXfer.data = data;//(0至1023)
masterXfer.dataSize = sizeof (data);
masterXfer.flags = kLPI2C_TransferDefaultFlag;

//将主器件非阻塞数据发送到从器件
Reval = LPI2C_MasterTransferEDMA (I2C_MASTER、&g_m_EDMA_Handle、&masterXfer);
如果(修订版!= k Status_Success)

返回 DAC_STATUS_FAIL;
}
//等待传输完成。
while (!g_MasterComplementFlag)

//不执行任何操作
}
G_MasterComplementFlag = false;

与这个代码 DAC 给我随机值.

预期输出与我设置时必须在 Vout 引脚上获取的输出类似

值= 0、则 Vout 应为0V

并且  值= 1000、那么 Vout 应该为3.3V 同样、我想从 DAC 获得、但目前它不合适

请尽快建议我。

如需更多信息、请查看(NXP 社区链接)

最好的餐厅

Hanmant

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

    尊敬的 Hanmant:  

    您如何确认 I2C 正常工作?  

    您在 MSB 和 LSB 中发送数据的方式是正确的。 您能否在示波器或逻辑分析仪上测量 I2C 写入帧并发送屏幕截图?  

    DAC 给出了随机输出值、这是什么意思? 当您增加 DAC 代码时、输出是否会增加、只是增加到一个错误的值? 请分享您尝试发送的代码和结果输出值的一些示例。  

    您是否在您设计的 PCB 上评估过它? 如果可以、请分享一个原理图。  

    此致!

    Katlynne Jones

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

    尊敬的 

    是的、我检查了 i2c 正常工作。

    当我增加 DAC 编码时、DAC 的输出没有增加。

    假设设置

    值= 100、DAC 为我提供2.8V

    Value =500、DAC 为我提供2.8V  

    值=1020, DAC 给我一样2.8V, 有时它会给1.3V 或0.8V

    这些是 DAC 输出的基本类型  

    (VOUT = VDD * D/1024)

    我能够写入 like1020 (0x03FC)等值、并且数据已确认

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

    如果您有、请给我们解决方案和示例代码。

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

    请查看原理图片段

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

    尊敬的 Hanmant:  

    原理图看起来不错、您使用的公式是正确的。 是测量 DAC 输出还是运算放大器输出?  

    您是否可以对0x3FC 重复 I2C 命令并同时显示模拟通道? 逻辑分析仪显示 DAC 正在确认、但 如果我看到模拟波形、确认该情况会更容易。  

    您能否测量 VDD 并确保它处于稳定的3.3V 电压?  

    此致!

    Katlynne Jones