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.

TLV5618A: 为什么B通道也会有微量电压出现?

Part Number: TLV5618A
Other Parts Discussed in Thread: REF5020,

void TLV5618_DAConvert(TLV5618_StatusTypeDef *p)
{
TLV5618_CS = 0;
p->_counter = Counter;
p->_vref = REF5020;
uint16_t SPD, Temp;
if(p->_SPD == 1)
SPD = 0x4000;
else SPD = 0x0000;
switch(p->_channel)
{
case Channel_A:
Temp = (p->_dataA & 0x0FFF) | SPD | 0x8000;
p->_dataS[0] = Temp >> 8 & 0x00FF;
p->_dataS[1] = Temp & 0x00FF;
HAL_SPI_Transmit(&spi_da, p->_dataS, 2, 5);
p->_VA = p->_vref * p->_dataA / p->_counter + 0.001;
break;

 case Channel_B:
Temp = (p->_dataB & 0x0FFF) | SPD | 0x0000;
p->_dataS[0] = Temp >> 8 & 0x00FF;
p->_dataS[1] = Temp & 0x00FF;
HAL_SPI_Transmit(&spi_da, p->_dataS, 2, 5);
p->_VB = p->_vref * p->_dataB / p->_counter + 0.001;
break;
case Channel_AB:
break;
}
TLV5618_CS = 1;
}

//EOF

#include ...

extern TLV5618_StatusTypeDef TLV5618_Status = {0};

int main(void)
{
//STM32F103 初始化
STM32_Init();
//結構體賦值
TLV5618_Status._channel = Channel_A;
TLV5618_Status._dataA = 200;
TLV5618_Status._dataB = 0;
TLV5618_Status._SPD = 1;
//DA轉換
TLV5618_DAConvert(&tLV5618_Status);

while(1)
{};
}
  


主函数里面写A 通道值,B通道也有微量电压输出是什么原因?

————————————————
版权声明:本文为CSDN博主「浮生一城」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:blog.csdn.net/.../77206176

  • 您好,

    新年快乐!

    看下面通信格式,在更新A通道数据时会同时更新B通道buffer内容,因此请检查下此时B 通道buffer内是否已写入一个小电压值代码?

    另外,B通道的微量电压输出值是多少?如下datasheet截图,TLV5618A是不能输出完全至0V电压的,随着输出电流的增大,最小输出电压也随之增大:

  • 您好

    我往寄存器写的是1100 ,不是1000, 属于第一种,参考上面的截图,写1100时,A通道会单独直接输出电压,不会执行B 通道Buffer输出,但是B通道会有些电压输出,不知道什么原因。期待您的回复。

  • 不管是1100还是1000,它们执行的动作是一样的,因为R1是D15、R0是D12,因此我让您检查下此时B 通道buffer内是否已写入一个小电压值代码?

    另一个可能是原因是,虽然 TLV5618A 是轨至轨输出buffer,但它不能完全轨至轨输出,如上截图曲线所示。因此我想问下B通道的微量电压输出值是多少?

  • 为避免在更新A输出时使B通道有一个输出电压值,您也可以按照以下步骤先在B buffer内写入全0数据,然后再更新A输出,再看此时B通道输出怎样?

  • HI

    Amy

    很高兴收到您的回复。

    我往A通道写200时,A理论输出0.245,但是实际是0.227, B通道是0.117.

    谢谢

  • 参考电压是2.5V是吗?TLV5618A供电电压是几伏?

    此时,B通道Buffer内是否写入的0?还是说一上电仅对A通道操作,没有对B通道操作?上电后默认输出code是全0的。

    输出负载A通道和B通道都是仅10KΩ接地电阻吗?

  • Hi

    Amy

    REF用的2.5V,两个通道用的都是103电阻, 给TLV5618供电电压是3.3V,上电后直接写入A 通道值200,没有往B通道写0 。 

    期待您的来信。

  • 供电电压是3.3V的话,参考电压最大是VDD-1.5V,即1.8V,使用2.5V参考电压超过了这个范围。不知道是不是这个原因造成输出误差较大,建议您更改为合适的参考电压或供电电压,再次测试输出看结果怎样?

    且注意NOTE 1: Due to the x2 output buffer, a reference input voltage ≥ (VDD–0.4 V)/2 causes clipping of the transfer function.

  • Hi

    Amy

    我换了一个REF 2V 的, 写A200,A通道输出0.119V, B 通道有输出0.1V左右电压。

    有输出参考电压低于2V, 和这个一样封装的芯片吗?

    期待你的来信

  • 供电电压是3.3V的话,参考电压2V也不满足要求。您可以更改供电电压吗?将供电电压换为5V供电,这样参考电压可以使用2V。

    改为5V供电应该不影响通信接口电平:

    有输出参考电压低于2V, 和这个一样封装的芯片吗

    您这里是寻找内部集成参考电压的DAC芯片吗?内部集成的参考电压小于2V?