工具与软件:
大家好!
我尝试使用 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
