微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于SH69P42 PWM的10位D/A转换器

基于SH69P42 PWM的10位D/A转换器

时间:07-24 来源:互联网 点击:
1 引言

提高单片机片内资源的利用率;缩小最终产品的体积,降低功耗,减轻重量,提高集成度,提高可靠性,是单片机应用系统设计的基本原则。

在单片机选型时,由于内部资源针对不同应用有多种组合,从而形成了单片机系列。例如:片内程序存储器的大小、RAM的大小、A/D精度及通道数、D/A精度及通道数、是否有LCD驱动、I/O数、是否有PWM、精度、中断数量及嵌套、定时器数及精度等。但在实际应用中,也很难做到单片机的配置完全符合应用要求。因为应用是多样化的,而单片机的型号、系列毕竟有限。因此,如果能方便地将单片机所提供的内部功能元件转为另一功能,将大大拓展单片机的应用领域。

当应用需要模拟量输出时,就需要有D/A转换器,一般地,还需有专门的元件以及外围电路。这里阐述一种基于SH69P42的一路PWM实现D/A转换器的方法。

SH69P42是中颖公司基于SH6610D内核的4位RISC指令集的单片机,内部集成有四通道8位SAR A/D转换器,两通道10位PWM输出,三种两级中断(A/D中断、端口中断和定时器中断)、两个8位定时器,16个I/O引脚,内有OTP型ROM:3072×16位,RAM:
192×4位,内置低电压监视复位和看门狗电路,振荡器工作频率从32 768 Hz至8 MHz,可编程选择片内RC振荡、片外RC振荡、外接晶体振荡等形式。 SH69P42共有43条指令,每条指令的执行时间均等,是振荡器周期的4倍。

SH69P42符合工业规格,适用于对系统抗干扰能力要求极高的场合。

3 SH69P42的PWM编程

3.1 SH69P42的RAM编址

SH69P42的内部寄存器除累加器A、进位标志CY、程序计数器PC之外,端口、定时器、A/D、PWM中断、WDT与通用RAM一起统一编址。其地址由10位组成,源操作数的有效位为7位,因此采用了BANK概念,每128单元为一个BANK,用BANK值给出高3位地址。
例如:LDA Mx,bbb

其中,Mx为取数单元地址的低7位,BANK值bbb为取数单元地址的高3位。

LDA 10H,01H表示将RAM单元90H的内容送至累加器A。

3.2 SH69P42的PWM编程

SH69P42具有两通道10位PWM输出,分别由三个寄存器控制。

系统寄存器PWMC控制PWM输出,系统寄存器PWMP设置PWM输出信号周期,系统寄存器PWMD设置PWM输出信号的占空比。如表1、表2、表3所列。


4 PWM实现D/A转换

4.1 实现电路及参数计算

图1为基于SH69P42 PWM1的D/A转换的原理图。


(1) 振荡选择

由于PWM的周期、占空比与SH69P42的振荡周期密切相关,为保证高精度。尤其是避免温度影响,采用外接晶体振荡器的方法,而不采用内部或外部RC振荡方式。因为后者受工作环境温度影响较大。

4.1.2 10位D/A的实现方法

从表2、表3看出,SH69P42的PWM输出时,先设定周期再设定占空比,周期确定后,占空比其实就是在本周期内有效高电平(正向,反之同理)脉冲的数量与周期电平数量的比。
SH69P42允许最大的周期设定是10位,因此,采用周期固定,也就是3FFH,将待转换数直接对应为占空比的数值,就可以实现10位的D/A转换。

4.1.3 输出满量程的分辨率

假定输出电压为SH69P42的工作电压为5 V,10位数字量的数字分辨率为1/1 024,转换为模拟量为5 V/1024=4.8 mV,这就是模拟输出的分辨率。

4.1.4 输出端RC网络的参数选择

输出端根据后续电路的需要,可以采取一阶RC积分网络或二阶RC低通网络。图1所示为二阶RC低通网络,一方面可滤除高频杂波,另一方面可根据PWM的周期频率输出满足需要的不会过滞后随动模拟电压。

当PWM1输出为高电平时,通过电阻R2、R3对电容C5、C4充电,Output电压升高,当PWM1输出低电平时两电容C5、C4通过两电阻R2、R3放电,使得Output电压降低。这样,PWM1输出时,在固定周期下随着占空比的变化,Output电压值上下波动,波动幅度与占空比的数值线性相关。

4.2 程序设计规则

SH69P42单片机的PWM在软件设计时需遵循以下规则:

设置PWMn的周期或占空比时,先设置高四位,然后设置中四位,最后设置低四位;

在PWM输出状态下,只有写入PWMn周期或占空比的第四位数据后,数据才会装入重装入计
数器并在下一个周期开始时计数;

当选择以PWMn输出(PWMC bit0=1)时,PWMn输出的第一个周期和第一个占空比是按
3FFH计数,系统寄存器PWMP和PWMD的数据从第二个周期开始计数;

PWM能在HALT方式下继续工作,并在执行"STOP"指令后自动停止工作。

另外,SH69P42的振荡方式编程不是在程序中实现,而是在对OTP编程之前的烧写设置中按照实际设定的。

4.3 转换结果分析

单片机外接振荡器振荡频率为4 MHz,PWM时钟设定为8倍tOSC($21=0111),周期设定为3FFH($2A$29$28=0011,1111,1111)时,PWM的时钟周期为2.048 ms,占空比(这里相当于D/A转换的数字量)为0FFH($2D$2C$2B=0000 1111 1111)。理论计算输出为1.25 V(0FFH×5/3FFH),波形显示约为1.25 V,基本一致。此时PWM占空比的时间为125μs,周期为2.048 ms,与理论值基本一致。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top