历史上的今天
今天是:2024年10月19日(星期六)
2020年10月19日 | 基于MP430控制的正弦波信号源的设计与制作
2020-10-19 来源:elecfans
本系统以MSP430为控制核心设计并制作一个正弦波和脉冲波信号源。本 实验分为四大模块,分别是键盘扫描模块,正弦波产生模块,脉冲波产生模块和液晶显示模块。正弦产生部分采用DDS芯片AD9851产生频率可控的正弦波,在实践测试中得之从AD9851输出的正弦波幅值会随频率变化,最后通过软件编程明显减少了幅值误差。脉冲产生部分采用Verilog编程在FPGA内部产生占空比可调的脉冲波,解决了由将正弦波变成方波再送FPGA产生脉冲波的不稳定性。本系统工作可靠稳定,较好地完成了基本部分和发挥部分的要求。
一. 总体方案
本系统要求在给定±15V电源电压条件下设计出一个能产生正波和脉冲波的信号源。信号频率为20Hz~20kHz,频率能程控步进调整(步长为5Hz),脉冲波的占空比在2%~98%之间能程控步进调整(步长2%),两路信号均要求幅值在100mv到3V步进可调(步长为100mv),要求性能良好(频率稳度高,非线性失真小等),方案考虑如下:
正弦波产生
方案一:采用单片函数信号发生器(如8038),8038可同时产生正弦波。脉冲波,方法简单易行,用D/A转换器的输出来改变调制电压,可以实现数控调整频率,但步长难以满足要求,且频率稳定度不高。
方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(vco)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂,不适于产生低频信号。
方案三:采用直接数字频率合成芯片AB9851,可以很方便地生成正弦波和脉冲波。DDS特别适合于生成频率低、频带宽、频率稳定性和准确度较高及波形复杂的场合。
脉冲波产生
方案一:由D/A转换器产生占空比相应的电压,将之与正弦信号进行比较就可得到所需占空比方波。但这种方法精度较差,难以达到2%的步进要求。
方案二:先把正弦波变换为锯齿波或三角波,然后进行比较。这样一来虽然可以提高精度,但电路复杂,成本高,调试也困难。
方案三:采用计数定时方法,先将正弦波变换为方波送入FPGA,再用它的上升沿触发一计时电路,该电路在计时期间输出为高电平,计时终止后输出为低电平, 从而实现脉冲波的占空比步进可调,占空比由单片机传输给FPGA。此方案构成的两模块有影响,形成信号源不稳定。
方案四:在单片机MSP430的控制下,通过软件编程直接在FPGA内部产生可控占空比脉冲波,实现比较容易,产生信号源十分稳定。
根据以上分析,选用如下方案:
(1)正弦波采用DDS芯片AD9851用动态生成程序的方法来实现。
(2)方波的产生方波由编程在FPGA内部生成。
信号源系统的原理框图如图所示:

图1 系统总体框图
史海拾趣
|
PB5.0,编译出现错误:error C2220: warning treated as error - no object file generated 平台:PB5.0 小弟做一个内核时候,在build阶段出现一个错误,具体如下: BUILD: [00:0000000029:PROGC ] Compiling \\WINCE500\\PLATFORM\\855gme\\Src\\Kernel\\Libs\\Kitl\\ directory. BUILD: [01:000 ...… 查看全部问答> |
|
请问DNS的解析速率正常范围是多少啊?是不是太高或太低都不好啊? 提这个问题是因为需要监控DNS解析速率这个指标,并设定其上下限门限值。所以请有经验的兄弟们给个解析速率的上下限经验值哈。谢谢!… 查看全部问答> |
|
我是初学者,请问一个比较白痴的问题STR710 怎么样产生一个10ms的中断1– ICIA: Timer Input capture A interrupt2– ICIB: Timer Input capture B interrupt3– O ...… 查看全部问答> |
|
我这两天在利用fengzhang2002分享的程序代码例子学习lwIP,我现在遇到的问题是在例子代码中,主机的IP地址是网络系统分配的,而不是自己设置。我现在想如何修改程序,自己设置IP地址。在例子中,int netconn_bind(struct netconn *conn, st ...… 查看全部问答> |
|
控制芯片是STC12C5A60S2,通讯模块采用的是enc28j60,移植的uip协议栈,网线插上后,能ping通,用网络调试助手也能正常通讯,能控制电路上的继电器。但如果启动时未插网线,过了一段时间后(大概5分钟左右),再去把网线接通,便无法通讯,也无法pin ...… 查看全部问答> |




