MSPM0开发学习笔记:DAC

本文是MSPM0开发学习笔记第六章,介绍DAC(数模转换器)的原理与SysConfig配置方法,包括参考电压、8位/12位分辨率等关键参数设置。附带完整示例代码,演示如何通过公式计算DAC输出值并设置指定电压。


MSPM0开发学习笔记

第一章 初步安装与配置
第二章 GPIO
第三章 TIMER
第四章 TIMER-PWM
第五章 ADC入门
第六章 DAC


一、DAC原理与作用介绍

ADC(模数转换器)是一种将模拟信号转换为数字信号的关键硬件模块,其核心作用是将真实世界的连续模拟量(如电压、温度等)转换为微控制器可处理的数字值。该板块非常庞大也非常的重要,这边暂时只能做一个简单的入门讲解


二、syscfg配置

在这里插入图片描述

DAC的配置主要是在以下几个地方
1、红色部分是最高参考电压与最低参考电压
2、黄色部分为8位(0-255)或者12位 (0-4095)
3、红色与黄色之间的那一块 一方面是使能输出,一方面是配置初始值(没必要)因为反正我们都要在程序里面写下来

然后要在SYSTCL里面进行配置避免报错 在这里插入图片描述

三、程序设计

具体代码如下:

#include "ti_msp_dl_config.h"

/*
 * DAC12 Reference Voltage in mV
 *  Adjust this value according to DAC12 reference settings in SysConfig
 *    Or, in registers CTL1.REFSN and CTL1.REFSP
 */
#define DAC12_REF_VOLTAGE_mV (2500)
/*
 * DAC12 static output voltage in mV
 *  Adjust output as needed and check in DAC_OUT pin
 */
#define DAC12_OUTPUT_VOLTAGE_mV (1000)

int main(void)
{
    uint32_t DAC_value;

    SYSCFG_DL_init();

    /* Set output voltage:
     *  DAC value (12-bits) = DesiredOutputVoltage x 4095
     *                          -----------------------
     *                              ReferenceVoltage
     */
    DAC_value = (DAC12_OUTPUT_VOLTAGE_mV * 4095) / 		 DAC12_REF_VOLTAGE_mV;

    DL_DAC12_output12(DAC0, DAC_value);
    DL_DAC12_enable(DAC0);

    while (1) {
    }
}


这个代码并不复杂,这边就不做讲解了

MSPM0開發學習筆記:DAC

本文是MSPM0開發學習筆記第六章,介紹DAC(數模轉換器)的原理與SysConfig配置方法,包括參考電壓、8位元/12位元解析度等關鍵參數設定。附帶完整範例程式碼,示範如何透過公式計算DAC輸出值並設定指定電壓。

來源:https://blog.csdn.net/2403_87969572/article/details/148124615

抓取時間(ISO本地):2026-05-18 05:17:01


MSPM0開發學習筆記

第一章 初步安裝與配置
第二章 GPIO
第三章 TIMER
第四章 TIMER-PWM
第五章 ADC入門
第六章 DAC


文章目錄


一、DAC原理與作用介紹

ADC(模數轉換器)是一種將模擬信號轉換為數字信號的關鍵硬件模塊,其核心作用是將真實世界的連續模擬量(如電壓、溫度等)轉換為微控制器可處理的數字值。該板塊非常龐大也非常的重要,這邊暫時只能做一個簡單的入門講解


二、syscfg配置

在這裡插入圖片描述

DAC的配置主要是在以下幾個地方
1、紅色部分是最高參考電壓與最低參考電壓
2、黃色部分為8位(0-255)或者12位 (0-4095)
3、紅色與黃色之間的那一塊 一方面是使能輸出,一方面是配置初始值(沒必要)因為反正我們都要在程序裡面寫下來

然後要在SYSTCL裡面進行配置避免報錯 在這裡插入圖片描述

三、程序設計

具體代碼如下:

#include "ti_msp_dl_config.h"

/*
 * DAC12 Reference Voltage in mV
 *  Adjust this value according to DAC12 reference settings in SysConfig
 *    Or, in registers CTL1.REFSN and CTL1.REFSP
 */
#define DAC12_REF_VOLTAGE_mV (2500)
/*
 * DAC12 static output voltage in mV
 *  Adjust output as needed and check in DAC_OUT pin
 */
#define DAC12_OUTPUT_VOLTAGE_mV (1000)

int main(void)
{
    uint32_t DAC_value;

    SYSCFG_DL_init();

    /* Set output voltage:
     *  DAC value (12-bits) = DesiredOutputVoltage x 4095
     *                          -----------------------
     *                              ReferenceVoltage
     */
    DAC_value = (DAC12_OUTPUT_VOLTAGE_mV * 4095) / 		 DAC12_REF_VOLTAGE_mV;

    DL_DAC12_output12(DAC0, DAC_value);
    DL_DAC12_enable(DAC0);

    while (1) {
    }
}


這個代碼並不複雜,這邊就不做講解了

MSPM0 Dev Notes: DAC

This is Chapter 6 of the MSPM0 development study notes, covering DAC (Digital-to-Analog Converter) principles and SysConfig configuration, including reference voltage and 8-bit/12-bit resolution settings. Includes complete sample code demonstrating how to calculate DAC output values and set a specified voltage.

Captured at (local ISO): 2026-05-18 05:17:01


MSPM0 Dev Notes

Chapter 1 Install and setup
Chapter 2 GPIO
Chapter 3 TIMER
Chapter 4 TIMER-PWM
Chapter 5 ADC intro
Chapter 6 DAC


I. DAC basics

(Original section title says ADC; content describes DAC.) A DAC (digital-to-analog converter) outputs analog voltage from digital codes—useful for control and signal generation. This post is a short intro.


II. SysConfig

在这里插入图片描述

Key settings:

  1. Reference high/low voltage (red).
  2. Resolution: 8-bit (0–255) or 12-bit (0–4095) (yellow).
  3. Enable output and optional initial value (usually set in firmware).

Also configure SYSCONFIG / system clock as in your board docs to avoid build errors.

III. Application code

#include "ti_msp_dl_config.h"

/*
 * DAC12 Reference Voltage in mV
 *  Adjust this value according to DAC12 reference settings in SysConfig
 *    Or, in registers CTL1.REFSN and CTL1.REFSP
 */
#define DAC12_REF_VOLTAGE_mV (2500)
/*
 * DAC12 static output voltage in mV
 *  Adjust output as needed and check in DAC_OUT pin
 */
#define DAC12_OUTPUT_VOLTAGE_mV (1000)

int main(void)
{
    uint32_t DAC_value;

    SYSCFG_DL_init();

    /* Set output voltage:
     *  DAC value (12-bits) = DesiredOutputVoltage x 4095
     *                          -----------------------
     *                              ReferenceVoltage
     */
    DAC_value = (DAC12_OUTPUT_VOLTAGE_mV * 4095) / 		 DAC12_REF_VOLTAGE_mV;

    DL_DAC12_output12(DAC0, DAC_value);
    DL_DAC12_enable(DAC0);

    while (1) {
    }
}


Straightforward: compute 12-bit code from desired mV and reference, write DAC, enable, idle loop.