聪聪哥哥 发表于 2025-1-12 14:04

【Follow me第二季第3期】基础任务+DAC配置生成波形及性能测试

本帖最后由 聪聪哥哥 于 2025-1-12 14:04 编辑

<p>和大家分享一下,使用RA6M5的DAC的功生成波形</p>

<p>DAC基本配置过程</p>

<p>在DAC模式配置过程中,需要配置DAC的输出引脚、工作模式、分辨率、输出范围等等,</p>

<p>DAC功能的性能指标:</p>

<p>1:分辨率是模拟输出电压可被分离的等级数,n位DA分辨率一般为1/2^n。位数越高,分辨率越高。</p>

<p>2:转换速度用来描述数字量变化引起模拟量变换的转换时间,具有的指标:建立时间和转换速率。</p>

<p>&nbsp;A/D转换一般步骤:</p>

<p>这里配置的时候,需要结合FSP的图形化配置软件,对底层的驱动代码的开发,很方便。</p>

<p>一:FSP库配置如下:</p>

<p>这里配置P014引脚为DAC0的引脚,并且映射过去,</p>

<div style="text-align: center;"></div>

<div>设置new stack 中g-dac 的软件:配置DAC的 引脚 P014的 引脚属性</div>

<div>
<div style="text-align: center;"></div>

<p>&nbsp;</p>
</div>

<p>程序编写流程如下:</p>

<p>1:初始化IO口,P014 为DAC输出引脚</p>

<p>2:进入主程序编写输出不同电压的数据</p>

<p>3:为了方便调试,这里使用的系统延时的方式进行调节。</p>

<p>4:这里为了方便测试,编写正弦波的产生函数程序:</p>

<p>主程序代码如下:</p>

<pre>
<code class="language-cpp">    while (1)
    {
      w += (PI / 30);
      if (w &gt;= (2 * PI))
      {
            w = 0;
      }
      dac_value = (sin(w) + 1) / 2 * 4095;
      R_DAC_Write(&amp;g_dac_ctrl, (uint16_t)dac_value);
      R_DAC_Start(&amp;g_dac_ctrl);
      R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_MILLISECONDS);
    }</code></pre>

<p>实际效果测试如下:</p>

<div style="text-align: center;"></div>

<div>测试视频如下:</div>

<div></div>

<p>&nbsp;</p>
页: [1]
查看完整版本: 【Follow me第二季第3期】基础任务+DAC配置生成波形及性能测试