失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > TMS320F280049C 学习笔记15 DAC

TMS320F280049C 学习笔记15 DAC

时间:2020-12-17 07:53:03

相关推荐

TMS320F280049C 学习笔记15 DAC

文章目录

概述例程参考文献

前几天折腾的东西着实有点难,英文手册看得头昏脑涨。。。今天看一些简单的。

概述

280049C有两路DAC,一般用来接示波器,将程序的内部变量输出出来观察,极大的方便了调试。

每个缓冲DAC具有以下功能:

12位可编程内部DAC可选参考电压源使用内部VREFHI时可选x1和x2增益能够与EPWMSYNCPER同步

DAC的框图如图所示:

DAC的参考电压源DACREF可在VDAC和VREFHI之间选择。只有当VREFHI设置为DACREF且使用内部参考模式时,x2增益模式才可用。另外,即使DAC选择x2增益模式,其最大输出电压也不会大于VDDA。下表列出了DAC支持的增益模式组合。在这个表中,x=A或B,X=Don’t Care,VDAC/VREFHI=2.5v,VDDA=3.3v,DACVAL=4095。

例程

官方提供了2个例程,位置在C:\ti\c2000\C2000Ware_3_01_00_00\driverlib\f28004x\examples\dac

在例程中使用了外部参考,LaunchPad需要从3.3V外接一根线。感觉不太实用。

这里根据自己的习惯,使用内部电压参考,并将输出范围设置为码值0-4095对应0-3.3V。也就是按照上表的红色箭头配置。

#include "F28x_Project.h"#include "device.h"#include "math.h"// DA输出值int16_t dacVal = 2048;void configureDAC(void);void main(void){// 初始化时钟和外设 Initialize device clock and peripheralsDevice_init();// InitSysCtrl(); //本工程不能使用寄存器的InitSysCtrl();函数初始化。/*//库函数版配置// 初始化GPIO并设置为推挽输出 Initialize GPIO and configure the GPIO pin as a push-pull outputDevice_initGPIO();GPIO_setPadConfig(DEVICE_GPIO_PIN_LED1, GPIO_PIN_TYPE_STD); // Push-pull output or floating inputGPIO_setDirectionMode(DEVICE_GPIO_PIN_LED1, GPIO_DIR_MODE_OUT);*/InitGpio(); //寄存器指令配置// GPIO_SetupPinMux(DEVICE_GPIO_PIN_LED1, GPIO_MUX_CPU1, 0);// GPIO_SetupPinOptions(DEVICE_GPIO_PIN_LED1, GPIO_OUTPUT, GPIO_PUSHPULL);// 初始化PIE并清空PIE寄存器,关闭CPU中断// Initialize PIE and clear PIE registers. Disables CPU interrupts.Interrupt_initModule();// 初始化PIE向量表// Initialize the PIE vector table with pointers to the shell Interrupt// Service Routines (ISR).Interrupt_initVectorTable();configureDAC();// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)EINT;ERTM;for(;;){dacVal=dacVal<0?0:dacVal;dacVal=dacVal>4095?4095:dacVal;DAC_setShadowValue(DACA_BASE, dacVal);DEVICE_DELAY_US(2);}}//// 配置DACA,使用内部1.65V基准,设置输出范围为0-3.3V//void configureDAC(void){// 选择内部1.65V参考EALLOW;AnalogSubsysRegs.ANAREFCTL.bit.ANAREFA2P5SEL = 0;// 使能内部参考AnalogSubsysRegs.ANAREFCTL.bit.ANAREFASEL = 0;EDIS;DAC_setReferenceVoltage(DACA_BASE, DAC_REF_ADC_VREFHI);// DAC输出增益2倍DAC_setGainMode(DACA_BASE, DAC_GAIN_TWO);// 使能DAC输出DAC_enableOutput(DACA_BASE);// 设置DAC影子寄存器输出0DAC_setShadowValue(DACA_BASE, 0);// 延迟,等待DAC上电启动DEVICE_DELAY_US(10);}

参考文献

TMS320F28004x Microcontrollers Technical Reference ManualDSP TMS320F280049之数模转换器DAC(寄存器版)

如果觉得《TMS320F280049C 学习笔记15 DAC》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。