提高PIC16C711单片机片内A/D分辨率的方法

时间:2022-05-16 01:56:14 其他范文 收藏本文 下载本文

提高PIC16C711单片机片内A/D分辨率的方法(共6篇)由网友“星黛露”投稿提供,下面就是小编整理过的提高PIC16C711单片机片内A/D分辨率的方法,希望大家喜欢。

提高PIC16C711单片机片内A/D分辨率的方法

篇1:提高PIC16C711单片机片内A/D分辨率的方法

目前,单片机中嵌入的A/D一般为8位到10位,难以满足信号处理应用中高分辨率的要求;而外接高分辨率的A/D将使成本明显提高,因为A/D转换器的价格将随其位数的增加而成倍增加。本文介绍一种提高PIC16C711单片机片内A/D分辨率的方法,将PIC16C711片内的8位A/D提高到11位。这种方法在PIC系列的其他单片机也适用。

美国Microchip公司推出的8位单片机PIC16C711是一种性能价格比很高的'单片机。它价格低、封装小、采用CMOS工艺,具有OTP型,开发起来很方便。它内含4路8位高速A/D,将它扩展到11位后,可以大大提高单片机应用系统的性能价格比。

一、硬件电路

实现扩展的原理图如图1所示。8个等值的精密电阻R将0~5V基准电压分割成8档,每档范围为0.625V。8个抽头分别接CD4051八选一模拟开关的8个输入端,通道选择控制端C,B,A分别由PIC16C711单片机的RB2,RB1,RB0控制。IC2和IC3为高输入阻抗运放,IC2构成跟随器,IC3构成精密差分放大器。

二、工作原理

实现11位A/D转换由PIC16C711做2次8位A/D转换完成。PIC16C711有4个模拟量输入通道RA0~RA3,这些模拟量输入通道复用1个采样保持器进入到A/D转换器。参考电压Vref可以来自外部也可以来自内部VDD,A/D转换器属于逐次逼近式,转换结果(8位)存入ADRES寄存器。在A/D转换前必然选择适当的通道,设置足够的采样时间。用户可以通过设置A/D控制寄存器ADCON0和ADCON1来控制其转换过程,同时A/D转换的状态也会在ADCON0中体现出来。

先将待转换的电压Vi送到PIC16C711的RA0通道做一次A/D转换。根据转换所得的数字量由软件算出Vi在8档中位置,用Vi减去Vi所在档的起始电压。将所得差值放大8位,使之变为0~5V电压信号,再送给PIC16C711的RA1通道做1次A/D转换,所得数字量是11位AD转换的低8位,而档位CBA就是高3位,从而实现11位A/D转换。

举例说明如下:假设输入电压Vi为3V,程序控制PIC16C711的RA0通道先进行第1次A/D转换,所得结果是153,即3/5×255=153,对应8位数字量为10011001。将低5位屏蔽,得10000000,循环右移5次,得00000100,此时低3位对应的就是Vi=3V电压时的档位,即第4档,CBA=100,程序将该档位由RB2,RB1,RB0输出,作为8选一模拟开关的通道选择,使CD4051输出2.5V,即5/8×4=2.5V。该电压经IC2运放跟随,再经IC3进行差分放大。设计时调整R11,R12,R13和R14的阻值,使放大倍数为8位,则得放大器IC3输出Vo=8(Vi-2.5)=8(3-2.5)=4.0V。选择RA1通道进行第2次A/D转换,结果为11001100,这就是11位A/D转换结果的低8位。档位100为11位A/D转换的高3位,合起来就是11位A/D转换的结果10011001100。

三、程序

以下是使用PIC16C711指令系统完成11位A/D转换的程序段。

BSFSTATUS,RP0;选页面1

MOVLW00000010B;RA0、RA1为模拟通道

MOVWFADCON1;内部参考电压

BCFSTATUS,RP0;选页面0

MOVLW11000001B;选RA0通道和内部时钟

MOVWFADCON0

MOVLW.125;延时125μs,等待输入

CALLWAIT;稳定

BSFADCON0,GO;启动A/D

LOOPBTFSCADCON0,GO;判断A/D完成否

GOTOLOOP

MOVFADRES,W;取转换结果

ANDLW0E0;屏蔽低5位

MOVWFD1;存入D1

BCFSTATUS,C

RRFD1,1;右移5次

RRFD1,1

RRFD1,1

RRFD1,1

RRFD1,1

MOVFD1,W

MOVWFPORTB;档位输出

MOVLW11001001B;选RA1通道

MOVWFADCON0

MOVLW.60;延时60μs

CALLWAIT

BSFADCON0,GO;启动A/D

LOOP1BTFSCADCON0,GO;判断A/D完成否

GOTOLOOP1

MOVFADRES,W;A/D转换结果存D0

MOVWFD0

WAITMOVWFTEMP;延时子程序

NEXTDECFSZTEMP,1

GOTONEXT

RETURN

用这种方法实现的11位A/D转换速度快PIC16C711基本上都是单周期指令,在4MHz振荡频率下指令周期1μs,进行1次A/D转换最短时间20μs;2次A/D转换40μs;2个运放变换时间20μs×2=40μs。总的转换时间为百μs级。

本文介绍的方法电路简单,速度快,调试方便,已用于我们研制的单片机电阻炉温自动控制系统中,取得了预期的效果。对于其他带8位、10位A/D的单片机稍加改动均可使用,具有推广价值。

篇2:提高PIC16C711单片机片内A/D分辨率的方法

提高PIC16C711单片机片内A/D分辨率的方法

摘要:介绍一种将PIC16C711片内8位A/D提高到11位的方法。此方法电路简单,速度快,可提高单片机应用系统的性能价格比,具有一定的推广价值。

关键词:PIC16C711 单片机 A/D 分辨率

目前,单片机中嵌入的A/D一般为8位到10位,难以满足信号处理应用中高分辨率的要求;而外接高分辨率的A/D将使成本明显提高,因为A/D转换器的价格将随其位数的增加而成倍增加。本文介绍一种提高PIC16C711单片机片内A/D分辨率的方法,将PIC16C711片内的8位A/D提高到11位。这种方法在PIC系列的其他单片机也适用。

美国Microchip公司推出的`8位单片机PIC16C711是一种性能价格比很高的单片机。它价格低、封装小、采用CMOS工艺,具有OTP型,开发起来很方便。它内含4路8位高速A/D,将它扩展到11位后,可以大大提高单片机应用系统的性能价格比。

一、硬件电路

实现扩展的原理图如图1所示。8个等值的精密电阻R将0~5V基准电压分割成8档,每档范围为0.625V。8个抽头分别接CD4051八选一模拟开关的8个输入端,通道选择控制端C,B,A分别由PIC16C711单片机的RB2,RB1,RB0控制。IC2和IC3为高输入阻抗运放,IC2构成跟随器,IC3构成精密差分放大器。

二、工作原理

实现11位A/D转换由PIC16C711做2次8位A/D转换完成。PIC16C711有4个模拟量输入通道RA0~RA3,这些模拟量输入通道复用1个采样保持器进入到A/D转换器。参考电压Vref可以来自外部也可以来自内部VDD,A/D转换器属于逐次逼近式,转换结果(8位)存入ADRES寄存器。在A/D转换前必然选择适当的通道,设置足够的采样时间。用户可以通过设置A/D控制寄存器ADCON0和ADCON1来控制其转换过程,同时A/D转换的状态也会在ADCON0中体现出来。

先将待转换的电压Vi送到PIC16C711的RA0通道做一次A/D转换。根据转换所得的数字量由软件算出Vi在8档中位置,用Vi减去Vi所在档的起始电压。将所得差值放大8位,使之变为0~5V电压信号,再送给PIC16C711的RA1通道做1次A/D转换,所得数字量是11位AD转换的低8位,而档位CBA就是高3位,从而实现11位A/D转换。

举例说明如下:假设输入电压Vi为3V,程序控制PIC16C711的RA0通道先进行第1次A/D转换,所得结果是153,即3/5×255=153,对应8位数字量为10011001。将低5位屏蔽,得10000000,循环右移5次,得00000100,此时低3位对应的就是Vi=3V电压时的档位,即第4档,CBA=100,程序将该档位由RB2,RB1,RB0输出,作为8选一模拟开关的通道选择,使CD4051输出2.5V,即5/8×4=2.5V。该电压经IC2运放跟随,再经IC3进行差分放大。设计时调整R11,R12,R13和R14的阻值,使放大倍数为8位,则得放大器IC3输出Vo=8(Vi-2.5)=8(3-2.5)=4.0V。选择RA1通道进行第2次A/D转换,结果为11001100,这就是11位A/D转换结果的低8位。档位100为11位A/D转换的高3位,合起来就是11位A/D转换的结果100110011

[1] [2] [3]

篇3:提高单片机系统可靠性方法探讨

1 电源干扰及其抑制

单片机应用系统的可靠性是极为重要的,在影响单片机系统可靠性的诸多因素中,电源干扰可谓首屈一指。据统计,计算机应用的运行故障有90%以上是由电源噪声引起的。

1.1 交流电源干扰及其抑制

多数情况下,单片机运用系统都使用交流220 V、50 Hz的电源供电。在工业现场,生产负荷的经常变化,大型用电设备的启动与停止,往往要造成电源电压的波动,有时还会产生尖峰脉冲,这种高能尖峰脉冲的幅度约在50 000 V~4 000 V之间,持续时间为几个毫秒。它对计算机应用系统影响最大,能使系统的程序“跑飞”或使系统造成“死机”。因此,一方面要使系统尽量远离这些干扰源,另一方面要采用电源滤波器。这种滤波器是按频谱均衡原理设计的一种无源四端网络。为了提高系统供电的可靠性,还要采用交流稳压器,防止电源的过压和欠压。采用 1∶1隔离变压器,防止干扰通过初次级间的电容效应进入单片机供电系统。

1.2 直流电源抗干扰措施

1.2.1 采用高质量集成稳压电路单独供电

单片机应用系统中往往需要几种不同电压等级的直流电源。这时,可以采用相应的低纹波高质量集成稳压电路。每个稳压电路单独对电压过载进行保护,因此不会因某个电路出现故障使整个系统遭到破坏,而且也减少了公共阻抗的互相偶合,从而使供电系统的可靠性大大提高。

1.2.2 采用直流开关电源

直流开关电源是一种脉宽调制型电源。它甩掉了传统的工频变压器,具有体积小、重量轻、效率高、电网电压范围宽、变化时不易输出过电压和欠电压的特点, 在计算机应用系统中应用非常广泛。这种电源一般都有几个独立的电压输出,如±5 V、±12 V、±24 V等,电网电压波动范围可达220 V的 10%至-20%,同时,直流开关电源还具有较好的初、次级隔离作用。

1.2.3 采用DC-DC变换器

如果系统供电电网波动较大,或者精度要求高,可以采用DC-DC变换器。DC-DC变换器的特点是输入电压范围大、输出电压稳定且可调整、效率高、体积小,有多种封装形式。在单片机应用系统中获得了广泛的应用。

2 地线干扰及其抑制

在计算机应用系统中,接地是一个非常重要的问题。接地问题处理的正确与否,将直接影响系统的正常工作。

2.1 一点接地和多点接地的应用

在低频电路中,布线和元件间的寄生电感影响不大,因而常采用一点接地,以减少地线造成的地环路。在高频电路中,布线和元件间的寄生电感及分布电容将造成各接地线间的偶合,影响比较突出,此时应采用多点接地。

通常频率小于1 MHz时,采用一点接地;频率高于10 MHz时,采用多点接地;频率处于1 MHz~10 MHz之间时,若采用一点接地,其地线长度不应超过波长的1/20。否则,应采用多点接地。

2.2 数字地与模拟地的连接原则

数字地是指TTL或CMOS芯片、I/O接口电路芯片、CPU芯片等数字逻辑电路的接地端,以及A/D、D/A转换器的数字地。模拟地是指放大器、取样保持器和A/D、D/A中模拟信号的接地端。在单片机系统中,数字地和模拟地应分别接地。即使是一个芯片上有两种地也要分别接地,然后在一点处把两种地连接起来,否则,数字回路通过模拟电路的地线再返回到数字电源,将会对模拟信号产生影响。

2.3 印刷电路板的地线分布原则

TTL、CMOS器件的接地线要呈辐射网状,避免环形;板上地线的宽度要根据通过的电流大小而定,最好不小于3 mm。在可能的情况下,地线尽量加宽;旁路电容的地线不要太长;功率地通过电流信号较大,地线应较宽,必须与小信号地分开。

2.4 信号电缆屏蔽层的接地

信号电缆可以采用双绞线和多芯线,又有屏蔽和无屏蔽两种情况。双绞线具有抑制电磁干扰的作用,屏蔽线具有抑制静电磁感应干扰的作用。

对于屏蔽线,屏蔽层最佳的接地点是在信号源测(一点接地)。

3 其他提高系统可靠性的方法

3.1 硬件抗干扰设计

(1)选择抗干扰性能强的CPU。单片机和单片机抗干扰能力是不一样的。如果你的产品是工作在干扰比较大的环境,可以选用抗干扰能力强的单片机。

(2)数字量的光电隔离。开关量信号实际上有不同的信号传输方式:①TTL电平;②RS232电平(非平衡信号);③RS485电平(平衡信号或者差分信号);④电流环路(有电流或者无电流)。

单片机的输入输出口线是最容易引进干扰的地方;对于不使用的I/O口线,需要使用电阻上拉到高电平,不可悬置。直接将开关量信号接到单片机的口线上, 是最不可取的设计;至少要加一个缓冲驱动的芯片隔离,而且这个芯片要跟CPU尽量近;在严重干扰的情况下,需要将所有的口线采用光耦光电隔离。光耦隔离就是采用电流环路传输,避免在长线传输的时候,在传输线上积累高压和感应信号,使得数据紊乱甚至损坏TTL接口芯片,或者干扰单片机的正常运行,

注意,采用光电隔离是为了信号使用电流环路传输,而不是使用TTL电平传输,这意味着,从CPU模块的角度看,开关量输出、驱动器件,如74LS244/245 /07…等等,在CPU模块这里,光耦在另外一块电路板处;开关量输入,光耦在CPU模块处,而驱动器件在另外一块电路板处;这样才能形成电流环路。数字信号的电流环路的电流一般在5 mA~10 mA,根据光耦的指标而定。在工业环境下与CPU模块相对独立的键盘,需要使用光耦光电隔离接入到系统中,否则极易损坏接口芯片。

(3)模拟量的光电隔离。模拟量隔离有2种方法,一种是,使用线性光耦,隔离模拟量;由于线性光耦的价格昂贵,并且线性区也很窄,不推荐使用。比较常用的办法是,选用SPI接口,或者3线接口的AD或者DA,把数据、时钟和使能信号,使用光耦隔离。这实际上是把模拟量的信号转换成串行的开关量的数据流传输。另一种是使用4 mA~20 mA的电流环路,但是4 mA~20 mA的芯片价格比较昂贵,而且电路也复杂。

(4)模拟量的通讯传输。使用一个CPU,把模拟量读入到CPU,再通过RS485接口把数据按照通讯协议,传输到主CPU模块;当然,也可以传输开关量信号等。实际上,这是一个分布式的测控网络的方法;多板的单片机测控系统经常使用这种方法。

(5)独立的“看门狗”。选用独立的“看门狗”作为系统复位信号产生;当系统跑飞时,由于没有“喂狗”,“看门狗”产生复位信号,使得系统可以最大限度地找回跑飞前的数据,尽可能重新开始平稳的运行。

(6)采用RS232电平传输。比如,机箱的面板显示,经常采用max7219,这时如果使用TTL电平,经常被干扰使得显示不正常;可以在发送端使用一片MAX232,将TTL电平转换成RS232电平,在面板显示电路板,选用一片MC1489,将RS232电平,转换TTL电平,加强驱动能力,就可以保证信号正确传输。

(7)采用RS422电平传输。同样,也可以在发送端,采用一片MAX485,将TTL电平转换成RS485电平,在接收端,选用一片MAX485,将RS485电平,转换TTL电平,就可以保证信号正确传输。

3.2 单片机软件抗干扰

在单片机软件程序的设计中,采用一些措施来提高单片机系统工作的可靠性。软件抗干扰研究的内容主要是:①消除模拟输入信号的噪声(如数字滤波技术);②程序运行混乱时使程序进入正轨的方法。这里针对后者提出几种有效的软件抗干扰方法。

3.2.1 指令冗余技术

单片机CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当“乱飞”到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞”到了三字节指令,出错概率更大。在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使“乱飞”程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。此外,对系统流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将“乱飞”程序纳入正轨,确保这些重要指令的执行。

3.2.2 软件陷阱技术

当“乱飞”程序进入非程序区,冗余指令便无法起作用。通过设置软件陷阱,拦截“乱飞”程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的“乱飞”程序引向复位入口地址0000H的指令。

例如,对于8051单片机,通常在单片机程序存储器中非程序区填入以下指令作为软件陷阱:

NOP

NOP

LJMP0000H

在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式:

NOP

NOP?

RETI

返回指令可用“RETI”,也可用“LJMP 0000H”。如果故障诊断程序与系统自恢复程序的设计可靠、完善,用“LJMP 0000H”作返回指令可直接进入故障诊断程序,尽早地处理故障并恢复程序的运行。考虑到程序存储器的容量,软件陷阱一般1K空间有2~3个就可以进行有效拦截。

3.2.3 软件“看门狗”技术

若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。“看门狗”技术可由硬件实现,也可由软件实现。 在工业应用中,严重的干扰有时会破坏中断方式控制,关闭中断。则系统无法定时“喂狗”,硬件“看门狗”电路失效,而软件“看门狗”可有效地解决这类问题。

篇4:TMS320F240片内PWM实现D/A扩展功能

TMS320F240片内PWM实现D/A扩展功能

摘要:根据TMS320F240芯片的结构特点,提出一种新颖的基于TMS320F240的PWM输出,实现D/A转换扩展功能的设计方法;详细讨论该设计的理论基础和具体的软、硬件实现;分析实验结果,并给出具体的应用实例。该设计方案简单易行,性价比高,具有一定的通用性。

关键词:数字信号处理器 TMS320F240 PWM D/A转换

TMS320F240(简称F240) 作为一种高速、高集成度、低成本的微控制器,功能非常强大。美中不足的是,F240芯片本身虽然集成了众多满足数字控制系统所需的先进外围设备,包括A/D转换等功能,却唯独没有集成D/A转换功能,因此,在TMS320F240芯片的实际应用过程中,为其增加 D/A转换接口是很有必要的。

本文提出的基于F240芯片PWM输出的D/A转换扩展功能设计,是一种对F240片内的D/A转换设计。通过F240片内的PWM输出,再加上简单的外围电路及对应的软件设计,实现对PWM的信号处理,得到稳定、精确的模拟量输出。(本网网收集整理)

1 原理及误差分析

1.1 基本原理

F240芯片提供的PWM输出,是一种周期和占空比均可变、幅值为5 V的脉宽调制信号。实现PWM信号到D/A转换输出的理想方法是:采用模拟低通滤波器滤掉PWM输出的高频部分,保留低频的直流分量,即可得到对应的D/A输出,如(图1)所示。低通滤波器的带宽决定了D/A输出的带宽范围。

为了对PWM信号的频谱进行分析,以下提供了一个设计滤波器的理论基础。傅里叶变换理论告诉我们,任何一个周期为T的连续信号f(t),都可以表达为频率是基频的整数倍的正、余弦谐波分量之和。它是以时间轴原点为对称点的、单极性的PWM信号,表达式为

其中,f=1/T为基频,式中An、 Bn为各自独立的傅里叶系数:

由于f(t)是一个关于原点对称的.偶函数,因此Bn项为0,只需计算An项即可。只要扣除直流分量A0,由f(t)=-f(t+T/2),An的偶系数也将为0,因此,对占空比为k、幅值为5 V的PWM信号有:

A0=5・k

Bn=0

由式(5)可知,直流分量A0就是所需要的 D/A输出,只要改变PWM信号的占空比k,就能得到电压范围为0~5 V的D/A转换输出;An代表PWM信号的高频直流分量,频率为PWM信号基频的整数倍。因此,对于基频为10 kHz的PWM信号,一个理想的剪切频率≤10 kHz的滤波器即可完全滤掉PWM信号的高频谐波分量An,得到低频的直流分量A0,从而实现PWM信号到D/A输出的转换。

1.2 误差分析

D/A转换输出的电压信号有一个纹波叠加在直流分量上。这是D/A转换误差的来源之一。影响D/A转换误差的另外一个重要因素,取决于PWM信号的基频。对于时钟频率为20 MHz的F240芯片,产生一个20 kHz的PWM信号,意味着每产生一个周期的PWM信号,要计数1000个时钟。即所得的直流分量的最小输出为1个时钟产生的PWM信号,等于5 mV(5 V×1/1000),刚好小于10位的D/A转换器的最小输出4.8 mV(5 V/1024)。因此,理想情况下,PWM信号的频率越低,所得的直流分量就越小,D/A转换的分辨率也就相应的越高。如果将PWM信号的频率从20 kHz降到10 kHz,则直流分量输出的最小输出为2.5 mV(5 V/),接近于11位的分辨率。但是,随着PWM信号基频的减小,谐波分量的频率也随之降低,就会有更多的谐波通过相同带宽的低通滤波器,造成输出的直流分量的纹波更大,导致D/A转换的分辨率降低。所以,单纯降低PWM信号的频率不能获得较高的分辨率。通过以上分析可知,基于DSP芯片PWM输出的D/A转换输出的误差,取决于通过低通滤波器的高频分量所产生的纹波和由PWM信号的频率决定的最小输出电压这两个方面。所以要获得最佳的D/A分辨率,在选取PWM信号的频率时不能太小,要适当地折衷,选取一个最合适的值。如表1所列,通过Matlab仿真,可以得到最佳D/A分辨率下的PWM信号频率。

表1 不同设计参数下F240芯片PWM输出实现D/A转换的分辨率

低通滤波器阶数传递函数-3dB带宽/HzPWM频率f/kHz纹波Vpp/VPWM频率决定的分辨率D/A转换的分辨率/位一阶1/(RCs+1)1000100.782.52.7200.395.03.7二阶ω2n/(s2+2ξωns+ω2n)1000100.0622.56.3200.0165.07.9三阶1/(a3s3+a2s2+a1s+a0)1000100.00642.59.1200.000815.09.7

2 硬件设计

一般来说,F240的PWM输出要通过具有一阶阻容滤波及光电隔离功能的I/O接口板后,方可与实际控制对象连接。为了获得高精度的D/A输出,在滤波之前应先通过缓冲器,整体设计框图如图2所示。

滤波器的运算放大器选用OP07。它温漂小、阻抗低、吸收电流大、精度高。考虑到实际情况,设计模拟低通滤波器的阶数一般不超过三阶,否则会增大系统的复杂性,增加系统的成本。下面主要介绍有源低通滤波器的参数设计。

2.1 二阶Butterworth低通滤波器

图3(a)所示,是二阶Butterworth低通滤波器(最平幅值滤波器)的一种实现电路,其传递函数为

在-3 dB带宽为1000 kHz的条件下:

A0=1

由于考虑到不可能找到与所计算的R、C值完全一致的电阻、电容值,而只能选取与实际的电阻、电容值最接近的值,故求解得到:

C1 = 0.1 μF, C2=0.01 μF,

R1=22 kΩ, R2=1 kΩ (7)

在这些参数下,实际的带宽是1074 Hz,Q值为0.645,与理想的二阶Butterworth低通滤波器有一定的误差。

2.2 三阶低通滤波器

图3(b)所示为三阶低通滤波器的一种实现电路,其传递函数为

Vo/Vi=1/(a3s3+a2s2+a1s+a0)    (8)

其中, a0=1+R1/R4

a1=R1(C1+C2)+(R2+R3)C2+R1C2(R2+R3)/R4

a2=R3C2C3(R1+R2)+R2R3C2C3+R1R2R3C2C3/R4

a3=R1R2R3C1C2C3

在-3 dB带宽为1000 kHz的条件下,求解得到:

R1=1.6 kΩ,R2=2.4 kΩ,R3=7.5 kΩ,R4=∞,C1=0.1μF,C2=0.01μF,C3=0.047μF (9)

R4决定滤波器直流分量的增益,选取R4=∞(即不安装R4),则D/A输出增益为1;要想改变带宽大小,只须保持R4和电容值不变,改变其它电阻的阻值即可。

图3 低通滤波器电路

3 软件程序设计和实验结果

利用TMS320F240配套的EVM(Evaluation Module)板作为DSP的实验平台,给定一模拟电压作为F240的A/D输入,将A/D转换的值作为产生PWM波形的DSP定时器中比较寄存器的值;通过中断,不断获取最新的A/D转换值,改变PWM波形的占空比,得到对应幅值的PWM波形,再将所得的20 kHz的PWM信号输入给滤波器,用数字示波器观察滤波器的D/A输出,以评价这种D/A转换方法的实际效果。

3.1 通过D/A转换产生对应幅值PWM波形的DSP程序

基于DSP功能模块化的特点,其汇编程序的编制主要分三个步骤:① 初始化设置时钟源模块,得到所需的CPUCLK和SYSCLK; ② 设置事件管理模块,初始化定时器和A/D转换操作; ③ 编写定时中断服务子程序,即可完成从A/D转换产生对应幅值的PWM波形输出。部分程序代码如下:

;设置 PLL模块

LDP #224;

SPLK #0000000001000001b,CKCR0

;SYSCLK=CPUCLK/2

SPLK #0000000010111011b,CKCR1

;CLKIN(OSC)=10MHz, CPUCLK=20MHz

SPLK #0000000011000011b,CKCR0

;使能锁相环(PLL)操作

SPLK #0100000011000000b,SYSCR

;CLKOUT=CPUCLK

;设置EV 管理器

LDP #232;

SPLK #0,T1CMPR ;初始化定时比较寄存器

SPLK #0000000001010101b,GPTCON

;通用定时器的PWM输出为低有效

SPLK #1000,T1PR ;设置PWM波形的周期为20 kHz

SPLK #0000h,T1CNT ;初始化计数寄存器

SPLK #0001000000001010b,T1CON

;设置连续增计数方式,使能比较操作

SPLK #0000000010000000b,EVIMRA

;清除定时器1比较中断屏蔽位

LDP #224

SPLK #1000110100000010b,ADCTRL1

;设置A/D连续转换模式,选择通道CH0

SPLK #0000000000000101b,ADCTRL2

;设置A/D转换输入时钟预定标因子为16

LDP #232

SBIT1 T1CON,B6_MSK ;使能定时器1中断启动位

LDP #224

SBIT1 ADCTRL1,B0_MSK;使能A/D转换启动位

CLRC INTM;

END B END ;等待定时器1中断的产生

;产生PWM 波形ISR

Change_CMPR:

LDP #224 ;定时器1比较中断服务子程序

LACC ADCTRL1;

SACL ADCTRL1 ;清除片内A/D转换中断标志位

LACC ADCFIFO1;读取最新的A/D转换值

RPT #5;

SFR ;把存于结果寄存器的高10位的A/D

;转换值移至ACC的低十位

LDP #232;

SACL T1CMPR ;将A/D转换值存于定时比较寄存器

LACC EVIFRA;

SACL EVIFRA ; 清除定时器中断标志

CLRC INTM ;开中断

RET ;中断返回

3.2 PWM输出实现D/A转换功能的实验结果

如图4所示,是在给定一恒定的3.5 V模拟电压作为F240的A/D输入的情况下,所得的PWM输出实现D/A转换的波形图。

波形1为不通过低通滤波器的原始PWM信号。

波形2为PWM信号通过一阶低通模拟低通滤波器后的D/A输出波形,滤波器参数为R=1 kΩ,C=0.1μF,带宽为1592 Hz。可以看出,一阶下的D/A输出为一锯齿波,可用性很差。

波形3为PWM信号通过二阶Butterworth低通模拟滤波器后的D/A输出波形,滤波器参数按照式(7)选取。可以看出,二阶下的D/A输出平均值接近3.5 V,只是尖峰毛刺比较大,有一定的可用性。

波形4为PWM信号通过三阶低通模拟滤波器后的D/A输出波形,滤波器参数按照式(9)选取。可以看出,三阶下的D/A输出毛刺很小,D/A转换的分辨率约为9.2位, 非常接近于理想的D/A输出,可用性强。

实验结果表明,DSP的PWM信号经过三阶低通模拟滤波器后,得到的D/A转换输出带宽较大,在1000 Hz左右;分辨率较高,约为9.5位,可以满足实际应用的需要。

篇5:提高探地雷达剖面分辨率的方法

提高探地雷达剖面分辨率的方法

探地雷达GPR(ground penetrating radar)的有效探测深度与频率成反比,当满足一定深度后,其垂向分辨率可能不足以识别反射层的厚度.通过利用小波变换的多分辨和局部时频特性,将雷达信号中的'低频成份滤掉,有效地保护了其高频成份,从而实现了对薄层的识别.对于高通滤波后的结果,采用局部阈值去噪,可以更加灵活地区分出有效信号和干扰信号,从而提高了雷达剖面的分辨率.这里运用铁路沪宁线路基检测的数据,使用小波变换进行高通滤波和去噪,其处理后的剖面更能有效地反映出路基病害的信息.

作 者:廖立坚 杨新安 LIAO Li-jian YANG Xin-an  作者单位:同济大学,城市轨道与铁道工程系,上海,200092 刊 名:物探化探计算技术  ISTIC英文刊名:COMPUTING TECHNIQUES FOR GEOPHYSICAL AND GEOCHEMICAL EXPLORATION 年,卷(期): 30(1) 分类号:P631.4 关键词:探地雷达   薄层   小波变换   局部阈值  

篇6:反演解析法提高CCD空间分辨率方法的修正及完善

反演解析法提高CCD空间分辨率方法的修正及完善

修正及完善了用多次移位成像提高CCD空间分辨率的反演解析法.通过分析反演解析法的.原理,修正了将空间分辨率提高2.5倍的解析关系式,同时阐述了把空间分辨率提高任意倍的移位原则.仿真实验证明了本方法的良好性能.

作 者:刘其涛 LIU Qi-tao  作者单位:潍坊医学院物理教研室,山东,潍坊,261042 刊 名:电光与控制  ISTIC PKU英文刊名:ELECTRONICS OPTICS & CONTROL 年,卷(期):2006 13(3) 分类号:V474.2 TP75 关键词:修正及完善   反演解析   空间分辨率   图像重构  

单总线协议转换器在分布式测控系统中的应用

一种便携式多参数环境监测仪的设计

毕业论文范文单片机

一种红外感应泵液器的单片机应用设计

数据采集系统设计研究论文

单片机课程心得体会

散文的基础知识技术

基于绿色技术下的高科技仿生学研究论文

GPIB芯片TNT4882在多路程控电源中的应用

《单片机原理》课程培训心得

提高PIC16C711单片机片内A/D分辨率的方法
《提高PIC16C711单片机片内A/D分辨率的方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【提高PIC16C711单片机片内A/D分辨率的方法(共6篇)】相关文章:

基于DSP和以太网的数据采集处理系统2022-10-09

基于ADμC812的CAN总线智能节点的设计2023-11-10

no和not的区别2022-04-30

led汉字屏幕开题报告2022-05-07

ADuC8XX系列单片机在水平仪、倾斜仪中的应用2022-06-09

计算机技术在电压无功方面的应用论文2023-11-04

双处理器在变电站监控中的应用研究论文2022-08-04

高速6位ADCs MAX155/MAX156的原理及应用2022-07-11

例文和范文的区别2023-06-24

区别作文400字2023-03-25

点击下载本文文档