DSP

DSP TMS320F280049之数模转换器DAC

2019-07-13 11:35发布

         F280049C内部包含两个12-bit的DAC内核DACa、DACb,可以产生多种波形,比如正弦波、方波、锯齿波等。可选内部参考源1.65V或2.5V、外部参考源,输出增益可编程x1、x2。DAC内部框图如下所示:

(1)建立工程

F280049C工程的建立请参考这篇博客: https://blog.csdn.net/fanxianyan1993/article/details/88090308

(2)DAC外设库函数介绍

        TI为F280049C DSP编写了较多的库函数,在编写外设驱动程序时可直接调用其API函数,方便开发。F280049C的DAC部分的库函数如下所示:(其中 base 为DAC外设的基地址) (1)uint16_t DAC_getRevision (uint32_t base);  获取DAC的版本号。 (2)void DAC_setReferenceVoltage (uint32_t base, DAC_ReferenceVoltage source) 设置DAC的参考源 宏:DAC_REF_VDAC                (使用DAC输出作为参考源)        DAC_REF_ADC_VREFHI   (使用内部参考源或外部参考源) (3)void DAC_setGainMode (uint32_t base, DAC_GainMode mode) 设置DAC输出的增益模式 宏:DAC_GAIN_ONE     (输出电压x1)        DAC_GAIN_TWO (输出电压x2) (4)void DAC_setLoadMode (uint32_t base, DAC_LoadMode mode) 设置ADC Value的装载模式 宏:DAC_LOAD_SYSCLK   (在下一个时钟周期装载)        DAC_LOAD_PWMSYNC    (在下一个PWM同步信号时装载) (5)void DAC_setPWMSyncSignal (uint32_t base, uint16_t signal) 设置PWM的同步信号 (6)uint16_t DAC_getActiveValue (uint32_t base) 获取DAC的Value值 (7)void DAC_setShadowValue (uint32_t base, uint16_t value) 设置DAC的Value值(范围0~4095) (8)uint16_t DAC_getShadowValue (uint32_t base) 获取DAC的Value值 (9)void DAC_enableOutput (uint32_t base) DAC输出使能 (10)void DAC_disableOutput (uint32_t base) DAC输出失能 (11)void DAC_setOffsetTrim (uint32_t base, int16_t offset) 设置DAC的偏置 (12)int16_t DAC_getOffsetTrim (uint32_t base) 获取DAC的偏置 (13)void DAC_lockRegister (uint32_t base, uint16_t reg) 设置DAC寄存器上锁 宏:DAC_LOCK_CONTROL   (控制寄存器上锁)        DAC_LOCK_SHADOW(影子寄存器上锁)        DAC_LOCK_OUTPUT(输出寄存器上锁) (14)bool DAC_isRegisterLocked (uint32_t base, uint16_t reg) 判断DAC寄存器是否上锁 (15)DAC_tuneOffsetTrim (uint32_t base, float32_t referenceVoltage) DAC微调偏置

(3)DAC外设的配置

DAC的配置步骤如下:
  1. 设置DAC的参考源
  2. 设置输出增益模式
  3. 配置DAC Value装载模式
  4. DAC使能输出
  5. 设置DAC Value的值
DAC的配置程序如下: void configureDAC() { ASysCtl_setAnalogReferenceInternal(ASYSCTL_VREFHIA); ASysCtl_setAnalogReference2P5(ASYSCTL_VREFHIA); DAC_setReferenceVoltage(DACA_BASE,DAC_REF_ADC_VREFHI); DAC_enableOutput(DACA_BASE); DAC_setGainMode(DACA_BASE,DAC_GAIN_ONE); DAC_setLoadMode(DACA_BASE,DAC_LOAD_SYSCLK); DAC_setShadowValue(DACA_BASE,256); DEVICE_DELAY_US(10); }

(4)DAC外设的配置

F280049C的DAC例程文件如下,需要的可以自行下载。大家有任何疑问都可以给我留言,我会在第一时间给大家回复的哈。 https://download.csdn.net/download/fanxianyan1993/11020308