传感技术
直播中

刘洋

8年用户 1352经验值
私信 关注
[问答]

想用ADUCM355的高速DAC输出负电压,负电压输出不了,是什么原因呢?

产品编号: ADUCM355  
软件版本: 我想用HSDAC模块输出负电压
我想用ADUCM355的高速DAC输出负电压,找到提供的案例关于波形发生器的配置,这是案例名称M355_WaveformGenerator,我修改了里面AD5940_WGTrapezoid.c的代码,可是我只能输出最低0.3v和最高1.92v,手册上说能输出±607mv,我这边负电压输出不了,是什么原因呢?请教一下贵司的工程师,下面是贵司的AD5940_WGTrapezoid.c的代码

下面是我修改的代码,调用了案例底层的代码

回帖(1)

旧念

2025-4-29 17:56:40

针对ADUCM355的HSDAC无法输出负电压的问题,以下是可能的原因及解决方案:




1. 电荷泵未正确启用



  • 问题:HSDAC输出负电压需要内部电荷泵提供负电源(-1.8V)。若电荷泵未启用或配置错误,DAC将无法生成负电压。

  • 解决方法

    • 检查寄存器 CPCON 的配置,确保电荷泵使能位 CPEN=1

    • 确认电荷泵时钟源和分频设置正确(例如 CPCLKSELCPCLKDIV)。

    • 示例代码片段:
      // 启用电荷泵,选择时钟源和分频
      Aducm355_CP_Init(CPCLK_HFOSC, CPCLKDIV_1); // 假设使用高频振荡器且不分频





2. DAC参考电压配置错误



  • 问题:HSDAC的输出范围依赖参考电压(如内部带隙1.82V或外部参考)。若参考电压选择错误,输出范围可能受限。

  • 解决方法

    • 检查寄存器 DAC12CON 中的 DAC12REFSEL 位,确保选择正确的参考源。

    • 若使用内部带隙,需等待参考电压稳定(约5ms)。

    • 示例配置:
      // 选择内部带隙参考,启用DAC
      DAC12CON = DAC12EN | DAC12REFSEL_INTERNAL | DAC12BUF_ENABLE;





3. DAC偏置模式设置错误



  • 问题:HSDAC需配置为双极性模式(Bipolar Mode)才能输出负电压。

  • 解决方法

    • 检查寄存器 DAC12CONDAC12MODE 位,配置为双极性模式。

    • 禁用输出缓冲器(若缓冲器不支持轨到轨输出):
      DAC12CON &= ~DAC12BUF_ENABLE; // 禁用缓冲器





4. DAC代码值范围错误



  • 问题:DAC输入代码需在双极性范围内(如12位补码格式:-2048到+2047)。

  • 解决方法

    • 确保写入DAC数据寄存器的值包含负值。例如,若要输出-607mV,代码值应为负数。

    • 示例代码:
      int16_t dac_code = -607 * 2048 / 1212; // 假设满量程±1212mV对应±2048代码
      DAC12DAT = (uint16_t)(dac_code & 0xFFF); // 写入12位补码





5. 输出引脚连接问题



  • 问题:外部电路(如放大器、负载)可能限制负电压输出。

  • 解决方法

    • 断开负载,直接测量DAC输出引脚(如HSDAC0/HSDAC1)。

    • 确保放大器电源包含负电压(如-1.8V)。





验证步骤:



  1. 检查寄存器配置

    • 使用调试工具读取 DAC12CONCPCON 等寄存器,确认配置正确。


  2. 测量电荷泵输出

    • 用万用表测量电荷泵输出引脚(如VCP),确认存在-1.8V。


  3. 输出测试模式

    • 写入DAC代码0x800(中间值),测量输出电压应为0V。

    • 写入0x000,测量输出-607mV;写入0xFFF,测量输出+607mV。





通过以上步骤排查,应能解决HSDAC无法输出负电压的问题。若仍存在问题,建议参考ADUCM355数据手册中HSDAC和电荷泵章节的详细配置说明。

举报

更多回帖

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