如何在LPC1768使用DAC?LPC1768 DAC教程

在本教程中,我将向您展示如何在LPC1768 MCU中使用DAC。与其他外围设备相比,DAC显着较少使用MCU的外围设备uart.,计时器,ADC等。没有,具有外围设备来产生模拟信号是好的。从此LPC1768 DAC教程,您可以了解如何使用LPC1768中的DAC生成不同的模拟波形。

重要说明:我已经在上一个教程中提到了这一点,但我会在每个LPC1768教程中重复它。伟德老虎机手机版从官方NXP网站下载LPC1768 MCU的数据表和用户手册。我无法详细解释/讨论每个主题。您必须在这些文件中查找讨论主题并收集其他信息。

介绍

DAC对于数字到模拟转换器很短。它与一个相反ADC(模拟到数字转换器)并且它是ARM Cortex-M3 MCU的最简单且易于使用的外围设备之一。

主要是DAC用于音乐播放器等音频设备,以将数字数据转换为模拟音频信号。类似地,存在视频DAC,用于将数字视频数据转换成模拟视频信号以显示在屏幕上。

有不同类型的DAC实现,如开关电阻DAC,R - 2R梯DAC,连续近似DAC等。实现DAC的最简单方法之一是使用定时器外围设备的PWM功能(如果专用DAC单元也不是展示)。

与ADC类似,DAC也具有解析。它表明了DAC单元可以在极端电压之间产生的可能值的数量。例如,8位DAC可以产生28.即电压范围的256个不同的级别。

DAC在LPC1768 MCU中

通过LPC1768 MCU的DAC,它包含基于电阻串架构的10位DAC外设。它可以产生缓冲输出,最大更新速率为1 MHz。

由于LPC1768中DAC的分辨率为10位,因此它可以产生210.正极和负参考电压电平之间的不同值。

可以使用以下公式计算DAC的输出电压。

DAC在LPC1768 Image 2

在哪里,

  • V.aout.= DAC的输出模拟电压
  • V.ref= DAC的正参考电压
  • V.redn.= DAC的负参考电压
  • dacvalue = 10位数字值,必须转换为模拟电压。

与DAC相关的别针

由于DAC中只有一个通道,因此只有一个DAC外围设备的输出引脚。与电力有关的剩余销。下表介绍了与LPC1768 MCU的DAC外设相关的引脚概述。

别针

功能 描述
aout - p0.26 模拟输出

参考模拟GND提供模拟输出电压(V.SSA.)。

V.ref,V.redn.

电压参考 这些销提供DAC和ADC的正极和负参考电压。通常隔离3.3V和0V。
V.达达,V.SSA. 模拟力量和GND

与V相同DD.和V.SS.但分离以最小化噪音。

LPC1768 DAC寄存器

让我们现在看到与LPC1768的DAC相关联的寄存器。LPC1768中的DAC共有三个寄存器。它们是DACR,DACCTRL和DACCNTVAL。DACCTRL和DACCNTVAL寄存器与DAC中的DMA操作相关联。所以,让我们专注于DACR I.E. D / A转换器寄存器。

DACR - D / A转换器寄存器:它包含必须转换为模拟值的数字值。此外,该寄存器包含功率和性能之间的折衷方便。

比特[15:6]

价值

这些位包含要转换为模拟值的数字值(DACVALUE)(Vaout.)基于先前提到的公式。

位[16] 偏见

当0时,DAC的稳定时间为1μs(更新速率为1 MHz),最大电流为700μA。

当1时,DAC的稳定时间为2.5μs(更新速率为400 kHz),最大电流为350μA。

例子

让我们现在在LPC1768 MCU中看到一个简单的示例程序。如果未使用DMA操作,则编程DAC外围设备非常简单。只需将P.026引脚配置为AOUT并加载DACR寄存器中的10位数字值。您将将转换的模拟值作为输出。

与大多数其他外围设备相比,LPC1768中DAC没有电源控制引脚。为了启用DAC外设,您所要做的就是将相关的引脚配置为DACOUT I.E.使P0.26作为AOUT。

DAC的另一个重要属性是其参考电压。通常,vref连接到3.3V(从主v隔离DD.)和vredn.连接到0V(也从主v隔离SS.)。

如果我们使用上述参考电压值,则可以使用以下公式计算DAC处的DAC输出:

DAC在LPC1768 Image 1

因此,通过简单地写入10位值,即在DACR寄存器的值位之间的0和1023之间,可以获得0V和3.3V之间的模拟电压。

DAC的另一个重要因素是权力与性能之间的权衡。在此示例中,我们将使用最小可能的沉降时间即1μs,通过将DACR寄存器中的偏置位设置为0.这意味着DAC输出的更新频率为1 MHz。

代码

#include
void timer0_init(void);
void delayms(无符号int毫秒);
int main(无效)
{
timer0_init();
lpc_pincon-> pinsel1 | =(1 << 21);
unsigned int值= 0;
而(1)
{
if(值> 1023)
{
值= 0;
}
lpc_dac-> dacr =(值<< 6);
延迟(10);
价值++;
}
}

void timer0_init(void)
{
lpc_tim0-> ctcr = 0x0;
lpc_tim0-> pr = 25000-1;
LPC_TIM0-> TCR = 0x02;
}

void delayms(无符号int毫秒)
{
LPC_TIM0-> TCR = 0x02;
lpc_tim0-> tcr = 0x01;
而(lpc_tim0-> tc
lpc_tim0-> tcr = 0x00;
}

我使用Timer0外设生成所需的延迟。所以,查看我的LPC1768计时器教程。

结论

这里解释了如何在LPC1768 MCU中使用DAC的简单教程。使用DAC外设,您可以生成不同的模拟波形,如方波,正弦波,锯齿波等。

一个反应

发表评论

您的电子邮件地址不会被公开。

电子机器Favicon.
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map