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芯片或检查电路连接是否正确。
建议您根据以上建议进行排查和修改,希望能够帮助您解决问题。
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芯片或检查电路连接是否正确。
建议您根据以上建议进行排查和修改,希望能够帮助您解决问题。
举报