微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 急: 咨询LM3S8962通过I2C模块访问DAC8571, 位啥不成功?

急: 咨询LM3S8962通过I2C模块访问DAC8571, 位啥不成功?

时间:10-02 整理:3721RD 点击:


先介绍DAC8571 资料; 数字转模拟的DAC, 工作电压3.3V, 目前参考电压输入为1V , 电路图如下连接:


SDA, SCL 都上拉了,上拉电阻10K;

DAC8571 访问关键资料图如下:


LM3S8962 配置为I2C MASTER 主机工作模式, DAC8571 SLAVE 接收模式;

从上图可以看出,

第一步: LM3S8962 首先I2C MASTER 开始, 然后写SLAVE ADDRESS 0X4C; (前7位从机地址0X4C); 等待DAC8571 响应, 然后LM3S8962 发送控制字节0X10对DAC8571 , DAC8571 收到控制字节0X10 后, 把写到临时寄存器的数据加载到DAC8571中.

第二步,写低数据和高数据到DAC8571.

第三步,停止

LM3S8962 程序配置如下;

I2CMasterEnable(I2C_MASTER_BASE);
I2CMasterInit (I2C_MASTER_BASE, false); /* 初始化I2C主机,设置主机为低速*/
I2CMasterSlaveAddrSet(I2C_MASTER_BASE,0X4c,false);
while (I2CMasterBusBusy(I2C_MASTER_BASE));
I2CMasterDataPut(I2C_MASTER_BASE,0x10);
I2CMasterControl (I2C_MASTER_BASE,I2C_MASTER_CMD_BURST_SEND_START);
while (I2CMasterBusBusy(I2C_MASTER_BASE));

I2CMasterDataPut(I2C_MASTER_BASE,0xef);
I2CMasterControl (I2C_MASTER_BASE,I2C_MASTER_CMD_BURST_SEND_CONT);
while (I2CMasterBusBusy(I2C_MASTER_BASE));

I2CMasterDataPut(I2C_MASTER_BASE,0xef);
I2CMasterControl (I2C_MASTER_BASE,I2C_MASTER_CMD_BURST_SEND_CONT);
while (I2CMasterBusBusy(I2C_MASTER_BASE));
I2CMasterControl (I2C_MASTER_BASE,I2C_MASTER_CMD_BURST_SEND_FINISH);

问题是: DAC8571 模拟输出总是0,, 各位高手,请帮我看一下程序问题在那里?或其他问题在那里?

测一下时序

标准I2C 接口, 时序图测试了, 一个周期有16个脉冲,感觉不对,不知道配置错误在哪里?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top