新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于MSP430 Timer_B的D/A转换

基于MSP430 Timer_B的D/A转换

——
作者:赵陆文 屈德新时间:2005-11-12来源:电子产品世界

摘 要:本文分析了利用在比较模式下输出的脉宽调制()波,来实现的工作原理。介绍了利用F449的输出产生正弦波和直流电平的方法,并给出了对应的硬件电路和C语言源程序。

关键词F449;脉宽调制;

D/A Conversion Based on MSP430

Abstract:This paper analyses the principle of utilizing the to realize D/A when the MSP430 Timer_B is working in compare mode. It describes the method of using the PWM of MSP449F449's Timer_B to create a sine wave and a DC level. At last, it gives the corresponding hardware circuit and C language program.

Key words: MSP430F449; PWM; D/A conversion

1.简介

  1.1 MSP430单片机介绍 虽然目前在国内市场上应用较多的单片机仍然是8位单片机,但是由美国德州仪器(TI)公司推出的16位单片机MSP430具有处理能力强、运行速度快、低功耗、指令简单等优点。并采用了JTAG技术、FLASH在线编程技术、BOOTSTRAP等诸多先进技术,因此具有很高的性价比,在欧洲市场已得到了非常广泛的应用。虽然MSP430进入国内市场的时间不是很长,但是因其具有以上所述的卓越品质,一进入国内市场就被众多电子工程师所青睐。其中MSP430F449具有7个工作模式可选8、10、12、16的16位计数器。用其比较模式产生的PWM可以实现(D/A conversion)。

  1.2 PWM D/A简介 很多的微控制器(microcontroller)应用都需要产生模拟信号。这种情况下往往是采用集成的或者是分立的数模转换器DAC(digital-to-analog converter)来实现。但是采用脉宽调制PWM(pulse-width modulated)信号来实现D/A转换(简写为PWM D/A)也是一种常用的方法。可以用PWM信号产生所需的直流或交流信号。这篇文章以MSP430F449的Timer_B输出的PWM为例来产生一个200Hz的正弦波和一个0.5VCC的直流电平。实际上类似的方法可以用于Timer_A以及MSP430其它型号的单片机。

2. 用PWM实现DAC的原理

  2.1 基本原理 PWM信号是一种具有固定周期(T)不定占空比( )的数字信号,如图1所示。如果PWM信号的占空比随时间变化,那么通过滤波之后的输出信号将是幅度变化的模拟信号。因此通过控制PWM信号的占空比,就可以产生不同的模拟信号。在MSP430F449中就是采用CCR0来控制周期T,而用与定时器对应的CCRx寄存器来控制可变占空比 ,进而实现D/A转换。

2.2 分辨率

  基于Timer_B PWM的DAC分辨率就等于计数器的长度,通常是CCR0寄存器的值。PWM DAC的最低有效位是一个计数值,分辨率是总的计数值。

  Rcounts = Lcounts

  其中Rcounts是以计数值为单位的分辨率,Lcounts是计数器的总计数值。例如对8-bit DAC,计数器的长度为8 bits,或者256个计数值。那么分辨率也就是8 bits,或者256。

  更一般的情况下,基于PWM定时器和滤波器的PWM DAC的分辨率等于产生模拟信号的PWM信号的分辨率。PWM信号的分辨率决定于计数器的长度和PWM计数器能够实现的最小占空比。用数学表达式如下:

  Rcounts=,其中 = Lcounts,C是最小占空比。

  比特分辨率用下式计算:

  如果PWM计数器的长度为512个计数值,最小的占空比为2个计数值,那么PWM DAC的分辨率就为: ,或者以比特表示: 。

  2.3 系统频率 PWM 信号需要的输出频率等于DAC的更新频率,因为PWM信号占空比的每一次变化等效于一次DAC抽样。PWM 定时器所需的频率取决于PWM信号频率和所需的分辨率。如下所示:

  在这儿, 是所需的PWM定时器频率, 是PWM信号的频率,也就是DAC的更新频率,n 是所需的比特分辨率。下文即将描述怎样采用8-bit PWM DAC来同步产生一个200Hz的正弦波。由抽样定理可得,最低的抽样频率应该为400Hz。但是通常情况下,PWM信号的频率要远高于Nyquist抽样速率。这是因为PWM信号的频率越高,对滤波器的阶数就要求越低,合适的滤波器越容易实现。通常抽样速率取Nyquist速率的16或者32倍。

  2.4 所需的MSP430资源 文中的例子是用MSP430F449的Timer_B再加外部滤波器来产生一个200Hz的正弦波和一个0.5VCC的直流电平的。将Timer_B配置为16-bit、up模式。在这种模式下计数器计数至CCR0,然后复位从0开始重新计数。给CCR0赋值255也就意味着计数器的长度为8bits。CCR1和TB1用于产生正弦波,CCR2和TB2用于产生直流电平。输出模式都选为模式7,即PWM复位/置位模式。如图2所示,在这种模式下,复位后每一个定时器的输出都为高电平,直到计数器达到各自的CCRx值时变为低电平,当计数器达到CCR0时再置位。也就是说CCRx的值决定了各自正脉冲的宽带。若CCRx的值是变化的,就可以产生可变宽度的脉冲,下文中的正弦波就是用这种办法产生的;若不变则产生的是固定宽度的脉冲,下文中的直流电平就是这样产生的。最后SMCLK用作Timer_B的时钟源。系统采用32768Hz的钟表晶振,通过采用内部硬件锁频环FLL(frequency-locked-loop),来校准DCO(Digital Control Oscillator)频率为系统提供MCLK/SMCLK时钟。

3. 实现电路 用Timer_B PWM实现DAC外围电路比较简单,如图3所示。实际上外围电路就是晶振电路和RC低通滤波器。

  3.1 正弦信号的产生 在这个例子中,一个正弦波用32个抽样值生成。正弦波的频率为200Hz,所以每秒要抽样200

低通滤波器相关文章:低通滤波器原理


尘埃粒子计数器相关文章:尘埃粒子计数器原理


评论

技术专区

关闭