TI论坛
直播中

小麦地

11年用户 1650经验值
私信 关注
[问答]

TLV5638M为什么无法实现双通道输出?


  • 在使用该DA时出现以下问题:
    当单独使用A或单独使用B时,A通道和B通道均能正常输出所需电压;
    当两个通道均工作时,只有先输出的通道输出正常,另一个通道始终为一个固定电平,两个通道之间加延时(达到100us)也不管用。
    程序如下:
    da_set(9000);//设置为外部参考输入
    while(1)
    {
         da_set(0000);//B通道输出,实际低12位一直在变化
         yans(100);//延时100us
         da_set(87ff);//A通道输出,实际低12位一直在变化
         yans(1000);//延时1ms
    }
    当屏蔽da_set(0000)语句时A能正确输出所需电压
    当屏蔽da_set(87ff)语句时B能正确输出所需电压
    当不屏蔽任何语句时只有B有输出,A通道无输出
    请问大拿们,问题出在哪

回帖(2)

王丽

3 天前

您好,

当使用外部参考输入,需选择寄存器

R1=1,R0=1,如下截图说明,因此设置为外部参考输入时,应发送命令,其中D13是:

Power control bit ,D14是Speed control bit,根据需求选择0或1.



如果需要DAC

A和DAC B 同时输出,可以发送以下命令,这里的D13和D14,同样根据需求选择0或1.


举报

陈存楼

3 天前
TLV5638M是一款双通道16位DAC,理论上可以实现双通道输出。根据您的描述,当单独使用A或B通道时,它们都能正常输出所需电压,但当两个通道同时工作时,只有先输出的通道正常,另一个通道始终为一个固定电平。这可能是由于以下几个原因导致的:

1. 电源问题:请检查您的电源是否稳定且符合TLV5638M的电源要求。不稳定的电源可能导致DAC输出异常。

2. 时序问题:TLV5638M的时序要求可能没有得到满足。请参考TLV5638M的数据手册,确保您的程序满足其时序要求。

3. 代码问题:您的代码中可能存在问题。以下是一些建议:

   a. 在设置A通道和B通道之间,您可以尝试添加一个短暂的延时,以确保DAC有足够的时间处理前一个通道的设置。
   
   b. 您可以尝试将A通道和B通道的设置分开,而不是在同一个循环中。这样可以确保每个通道都有足够的时间处理设置。
   
   c. 您可以尝试使用不同的延时值,以找到最佳的延时设置。

以下是修改后的代码示例:

```c
da_set(9000); // 设置为外部参考输入

while(1)
{
    da_set(0000); // B通道输出
    yans(100); // 延时100us
    da_set(87ff); // A通道输出
    yans(1000); // 延时1ms
}
```

4. 硬件问题:如果以上方法都无法解决问题,可能是硬件问题。您可以尝试更换TLV5638M芯片或检查电路连接是否正确。

建议您根据以上建议进行排查和修改,希望能够帮助您解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分