实验十一数字波形产生
DSP数字波形产生
}
SPI是一种高速的同步串行输入/输出接口,允许 1~16 位的数据流在设备与设备之间进行交流,通常用于 DSP与外围设备或者DSP与其他控制器之间进行通信,在此 实验中AD7303采用SPI串行接口与DSP连接。
void spi_init() { SpiaRegs.SPICCR.bit.SPISWRESET=0; // 复位spi SpiaRegs.SPICCR.all =0x000F; // 一次传输16位 SpiaRegs.SPICTL.all =0x000E; // 为主机模式 SpiaRegs.SPISTS.all=0x0080; // 清除标志位 SpiaRegs.SPIBRR =0x0000; // 波特率为1/4LSPCLK SpiaRegs.SPIPRI.bit.FREE = 1; //忽略中断 SpiaRegs.SPICCR.bit.SPISWRESET=1; //使能SPI }
数字波形产生
实验思路
用泰勒法产生一 离散的数字波形
SPI串行外设接 口
DA转化模块
用泰勒法产生离散正弦波
2 2 2 x3 x5 x7 x9 x x x 1 sin x x1 1 2*3 4*5 6*7 3! 5! 7! 9!
主程序
void main() { InitSysCtrl(); GPIOMUXREGS.GPFMUX.all=0x000F; // 将GPIO管脚设为SPI功能引脚 (Cpu/pie中断初始化省略) spi_init(); //初始化SPI r=2*pi/N; //产生正弦信号 for (i=0; i<=N; i++) { x=i*r-pi; xx = x*x; x0 = 1-xx/(8*9); x3 = 1-x2*xx/(2*3); y[i] = x * x3; }
多种波形发生器实验分析报告
多种波形发生器实验分析报告目录一、实验概述 (2)1. 实验目的 (2)2. 实验设备与材料 (3)3. 实验原理 (4)二、实验内容与步骤 (5)1. 波形发生器设计与搭建 (6)1.1 设计要求与方案选择 (7)1.2 波形发生器硬件搭建 (9)1.3 波形发生器软件编程 (10)2. 多种波形合成与输出 (12)2.1 合成波形的设计与实现 (12)2.2 波形输出设置与调整 (13)2.3 实时监控与数据分析 (15)3. 实验测试与结果分析 (16)3.1 测试环境搭建与准备 (17)3.2 实验数据采集与处理 (18)3.3 结果分析与讨论 (19)三、实验结果与讨论 (20)1. 实验结果展示 (21)2. 结果分析 (22)2.1 各波形参数对比分析 (23)2.2 性能评估与优化建议 (24)3. 问题与改进措施 (25)四、实验总结与展望 (26)1. 实验成果总结 (27)2. 存在问题与不足 (28)3. 后续研究方向与展望 (29)一、实验概述本次实验旨在研究和分析多种波形发生器的性能特点,包括产生信号的频率、幅度、波形稳定性等方面。
实验中采用了多种类型的波形发生器,如正弦波、方波、三角波、梯形波等,并对其输出波形进行了详细的测量和分析。
实验过程中,我们首先对各种波形发生器的基本功能进行了测试,确保其能够正常工作。
我们对不同波形发生器产生的波形进行了对比分析,重点关注了波形的频率、幅度和波形稳定性等关键指标。
我们还对波形发生器的输出信号进行了频谱分析和噪声测试,以评估其性能表现。
通过本次实验,我们获得了丰富的实验数据和经验,为进一步优化波形发生器的设计提供了有力支持。
实验结果也为我们了解各种波形发生器在实际应用中的性能表现提供了重要参考。
1. 实验目的本次实验的主要目的是深入研究和理解多种波形发生器的原理及其在实际应用中的表现。
通过搭建实验平台,我们能够模拟和观察不同波形(如正弦波、方波、三角波等)的产生与特性,进而探究其各自的优缺点以及在不同场景下的适用性。
数字波形合成器(精编文档).doc
【最新整理,下载后即可编辑】电子技术课程设计实验报告数字波形合成器一、实验背景在某些场合,对于信号的频率,相位及其失真度要求较高。
例如,在精密陀螺测试中,对于400Hz三相正弦交流电源的这些参数要求就很严格,它要求频率稳定度△f/f≤0.0001,相位误差小于等于3度,正弦信号非线性失真系数小于1%等。
如果这些指标不满足,将会使陀螺角动量变动,电动机升温,产生干扰力矩,从而影响陀螺马达的正常工作和测试。
本课题要求采用数字合成技术,通过使用晶体振荡器,分频器及D/A转换器等数字波形合成方案,输出高频率相位稳定度高的波形。
二、实验目的1.进一步学习电子电路系统的设计方法和实验方法;2.进一步掌握Multisim仿真设计工具;3.着重培养学生独立分析问题和解决问题的能力。
三、实验要求1.设计具有高频率稳定度和高相位稳定度的两相正弦信号源;2.两相正弦信号频率f=400Hz;3.两相信号A、B之间相位差90度;4.幅值Vm=5V±0.2V。
四、设计原理设要合成的正弦波频率为0f 幅值为m U 。
首先将它的一个周期分为N 等分,用具有N 个阶梯的阶梯波来逼近所要求的正弦波,如图1所示。
可见N 越大,其逼近程度越好,失真也越小。
图1 阶梯正弦波数字波形合成器主要就是合成这种阶梯波形,然后通过低通滤波器滤除高次谐波分量从而获得所需的正弦波。
图2为正弦阶梯波合成器的原理框图。
其中脉冲发成器的振荡频率F 与正弦波的频率f 之间的关系为Nf F = 即,N Ff =式中,N 为分频器的分频系数,也称计数器的有效状态数。
计数器的N 个有效状态与正弦波的N 等分对应,也就是与阶梯波的N 个阶梯对应。
用上述N 个状态变量,分别控制正弦波加权D/A 转换器的权电阻(该权电阻值等于该状态所对应当正弦值),就可以得到阶梯正弦波。
当要求输出相位差为φ的两路正弦波时,两路阶梯波对应的阶梯应错开M 个计数器的状态,即N M πϕ2=式中,M /2π为计数器两个相邻状态之间的相位差。
波形产生电路实验报告
波形产生电路实验报告一、实验目的本实验旨在探究波形产生电路的基本原理和实现方法,并通过实验操作,了解不同电路参数对波形产生的影响。
二、实验器材1.示波器2.函数信号发生器3.电阻、电容等元器件4.万用表三、实验原理1.基本原理:波形产生电路是指能够产生各种规定形状的周期性信号的电路。
其中,常见的信号有正弦波、方波、三角波等。
2.具体实现:通过改变元器件参数或改变连接方式,可以得到不同形状和频率的周期性信号。
例如,正弦波可以通过RC滤波电路产生;方波可以通过比较器电路和反相放大器电路产生;三角波可以通过积分放大器电路和反相放大器电路产生。
四、实验步骤及结果分析1.正弦波产生电路:(1)将函数信号发生器输出连接至RC滤波电路输入端;(2)调节函数信号发生器输出频率为1000Hz;(3)调节RC滤波电路中的R值和C值,观察示波器上输出的正弦波形状,并记录下所使用的元器件参数;(4)重复以上步骤,改变RC电路中的R和C值,观察输出波形的变化情况。
实验结果:通过调节RC电路中的R和C值,可以得到不同频率和振幅的正弦波。
2.方波产生电路:(1)将函数信号发生器输出连接至比较器电路输入端;(2)设置比较器电路阈值电压为0V;(3)调节函数信号发生器输出频率为1000Hz;(4)观察示波器上输出的方波形状,并记录下所使用的元器件参数;(5)重复以上步骤,改变比较器电路阈值电压和函数信号发生器输出频率,观察输出波形的变化情况。
实验结果:通过调节比较器电路阈值电压和函数信号发生器输出频率,可以得到不同占空比和频率的方波。
3.三角波产生电路:(1)将函数信号发生器输出连接至积分放大器电路输入端;(2)将积分放大器电路输出连接至反相放大器输入端;(3)调节函数信号发生器输出频率为1000Hz;(4)观察示波器上输出的三角波形状,并记录下所使用的元器件参数;(5)重复以上步骤,改变积分放大器电路中的R和C值,观察输出波形的变化情况。
DSP实验报告
实验一数字IO应用实验—、实验目的1. 了解DSP开发系统的组成和结构2. 在实验设备上完成I/O硬件连接,编写I/O实验程序并运行验证。
3. 内存观察工具的使用二、实验设备计算机,CCS3.1版本软件,DSP仿真器,教学实验箱三、实验原理2.键值读取程序:该部分有两种方法进行键值的判断。
方法1:利用内存观察工具进行观察方法2:利用LED1-LED8的亮灭对应显示键值。
a)外部中断1的应用参照实验五;b)内存观察键值:程序中定义了三个变量“W”“row”和“col”。
“W”代表是CPLD中键盘的扫描数值,“row”和“col”分别代表键盘的行和列,由行和列可以判定按键的位置。
上述三个变量可以在观察窗口中观察的。
c)利用LED灯显示键值原理,参看实验一。
具体的LED灯显示值以查表的形式读出,请参看“”库文件。
本实验的CPLD地址译码说明:基地址:0x0000,当底板片选CS0为低时,分配有效。
CPU的IO空间:基地址+0x0200 LED灯output 8位外部中断用XINT1:由CPLD分配,中断信号由键盘按键产生。
中断下降沿触发。
KEY_DAT_REG(R):基地址+0x0004;四、实验步骤和内容1.2407CPU板JUMP1的1和2脚短接,拨码开关S1的第一位置ON,其余置OFF;2.E300板上的开关SW4的第一位置ON,其余OFF;SW3的第四位置ON其余的SW置OFF“DEBUG→Connect”)4.打开系统项目文件 \e300.test\ normal \05_key interface \;“\Debug\”文件“Debug\Go Main”跳到主程序的开始;7.指定位置设置断点;8.View--〉Watch Window打开变量观察窗口;9. 将变量“w”“row”和“col”添加到观察窗口中,改变变量观察窗口的显示方式为HEX显示。
“Debug--〉Animate”全速运行,然后点击E300板上键盘按键,观察窗口中变量变化,同时LED1-LED8灯也相应变化,指示键值。
数字同步技术
实验十一 数字同步技术实验内容1.位定时、位同步提取实验2.信码再生实验3.眼图观察及分析实验4.CPU仿真眼图观察测量实验一. 实验目的1.掌握数字基带信号的传输过程。
2.熟悉位定时产生与提取位同步信号的方法。
3.学会观察眼图及其分析方法。
二. 实验电路工作原理所有数字通信系统能否有效地工作,在相当大的程度上依赖于发端和收端正确地同步。
同步的不良将会导致通信质量的下降,甚至完全不能工作。
通常有三种同步方式:即载波同步、位同步和群同步。
在本实验中主要分析位同步,载波同步和群同步不分析。
实现位同步的方法有多种,但可分为两大类型:一类是外同步法。
另一类是自同步法。
所谓外同步法,就是在发端除了要发送有用的数字信息外,还要专门传送位同步信号,到了接收端得用窄带滤波器或锁相环进行滤波提取出该信号作为位同步之用。
所谓自同步法,就是在发端不专门向收端发送位同步信号,而收端所需要的位同步信号是设法从接收信号中或从解调后的数字基带信号中提取出来。
本实验中,位同步提取的方法是从二相PSK(DPSK)信号中,对解调出的数字基带信息再直接提取恢复出位同步信号。
图11-1是位同步恢复与信码再生电路方框图,图11-2是电原理图。
图11-1 位同步恢复与信码再生电路方框图1.带通滤波与全波整流电路电路如图11-3所示。
设计该电路时,以数字基带码元速率为32KHz/s为例,数字基带信号由测量点TP703输入,经过电解电容E701与电阻R717进入该电路,带通滤波器由U711组成,测量点TP707为眼图测量点,利用二踪示波器的YB通道测量TP304或TP703,YA通道测量TP707时,调节示波器相应的开关与旋钮,就可以测量出眼图信号来。
关于眼图的具体测量在后面再作进一步的介绍。
由运算放大器U711∶C组成全波整流电路。
从图中可知,运算放大器U712(LM311)组成限幅放大电路。
32KHz谐振电路由电阻R731、R732、R722、电容C716、CA701(在电路板上这里为一可插入不同容量的电容作为实验调试,实验值为4700pf)、谐振线圈L701组成。
数字波形产生
实验十一 数字波形产生一、 实验目的1、了解数字波形产生的基本原理;2、学习用TMS320F281xDSP 芯片产生正弦信号的基本方法和步骤;3、加深对DSP SPI 串口的理解。
实验设备计算机,CCS 2.0版软件,DSP 仿真器,EXP4实验箱,示波器。
二、 基础理论数字波形信号发生器是利用微处理器芯片,通过软件编程和D/A 转换,产生所需要信号波形的一种方法。
在通信、仪器和控制等领域的信号处理系统中,经常会用到数字正弦波发生器。
一般情况,产生正弦波的方法有两种:1.查表法。
此种方法用于对精度要求不是很高的场合。
如果要求精度高,表就很大,相应的存储器容量也要很大。
2.泰勒级数展开法。
这是一种更为有效的方法。
与查表法相比,需要的存储单元很少,而且精度高。
一个角度为θ的正弦和余弦函数,可以展开成泰勒级数,取其前5项进行近似得:))))9821(7621(5421(3221(!99!77!55!33sin ⋅-⋅-⋅-⋅-=+-+-=x x x x x x x x x x θ ))))8721(6521(4321(221!88!66!44!221cos ⋅-⋅-⋅--=+-+-=x x x x x x x x θ 其中,x 为θ的弧度值。
本实验用泰勒级数展开法产生一正弦波,并通过D/A 转换输出。
此DA 转换芯片采用Analog Devices 公司的AD7303。
该芯片是单极性、双通道、串行、8位DA 转换器,操作串行时钟最快可达30M ,DA 转换时间1.2μs 采用McBSP 串行接口和DSP 连接。
DA 输出通过放大电路,可以得到0~5V 的输出范围。
DA 输出接口在“CPLD 单元”的左上角,两个2号孔“D/A 输出1、D/A 输出2”分别对应AD7303的“OUTA 、OUTB ”。
在本实验中,我们将利用算法产生的正弦波通过SPI 传送给DA 输出。
具体的方法请参见程序及说明。
四、 实验步骤和内容1. 开关K9拨到右边,即仿真器选择连接右边的CPU :CPU2;运行CCS 软件,加载示范程序;2. 按F5运行程序,用示波器检测“D/A 转换单元”的的2号孔接口“输出1”输出一个正弦波;3.填写实验报告。
波形产生电路实验报告
波形产生电路实验报告波形产生电路实验报告引言:波形产生电路是电子工程领域中的重要实验之一,它可以产生不同形式的电信号,用于各种电子设备和系统的测试和调试。
本实验旨在通过搭建和调试波形产生电路,了解其工作原理和应用。
实验目的:1. 理解波形产生电路的基本原理和工作方式。
2. 学会使用电子元器件搭建波形产生电路。
3. 掌握波形产生电路的调试方法和技巧。
实验器材:1. 功率放大器电路板2. 信号发生器3. 示波器4. 电阻、电容、电感等基本电子元器件实验步骤:1. 将信号发生器的输出端连接到功率放大器电路板的输入端。
2. 根据实验要求选择合适的电阻、电容和电感,并将其连接到电路板上。
3. 将示波器的探头连接到电路板的输出端。
4. 打开信号发生器和示波器,设置合适的频率和幅度。
5. 通过调整电阻、电容和电感的数值,观察并记录波形的变化。
6. 根据实验结果分析波形产生电路的特点和性能。
实验结果与分析:在实验过程中,我们通过调整电阻、电容和电感的数值,成功产生了不同形式的电信号。
当电容和电感的数值较小时,输出信号呈现出较为平缓的正弦波形。
随着电容和电感数值的增大,输出信号的频率也相应增加,呈现出更加复杂的波形,如方波、三角波等。
此外,通过调整信号发生器的频率和幅度,我们还可以实现信号的调制和变换。
在实验过程中,我们还观察到了一些现象和问题。
例如,当电容或电感的数值过大时,输出信号可能会失真或产生幅度不稳定的情况。
此时,我们可以通过适当调整电路参数或增加补偿电路来解决问题。
同时,我们还发现在实验中,电子元器件的质量和连接方式对波形产生电路的性能有着重要影响,因此在实际应用中需要选择合适的元器件和搭建方式。
实验总结:通过本次实验,我们深入了解了波形产生电路的原理和应用。
通过调试和观察波形的变化,我们掌握了波形产生电路的调试方法和技巧。
同时,我们也意识到了电子元器件的选择和搭建方式对电路性能的影响,这对于我们今后的电子工程实践具有重要意义。
波形产生电路实验报告
波形产生电路实验报告一、实验目的1. 通过实验掌握由集成运放构成的正弦波振荡电路的原理与设计方法;2. 通过实验掌握由集成运放构成的方波(矩形波)和三角波(锯齿波)振荡电路的原理与设计方法。
二、实验内容 1. 正弦振荡电路 实验电路图如下图所示,电源电压为。
U1ALF347N321141R116kΩR216kΩR310kΩR410kΩC10.01µF C20.01µF R847kΩKey=A 37.9 %D2D1212VVDD -12VVCCVDD5341(1)缓慢调节电位器,观察电路输出波形的变化,解释所观察到的现象。
(2)仔细调节电位器,使电路输出较好的正弦波形,测出振荡频率和幅度以及相 对应的之值,分析电路的振荡条件。
(3)将两个二极管断开,观察输出波形有什么变化。
2. 多谐振荡电路(1)按图 2 安装实验电路(电源电压为±12V )。
观测、波形的幅度、周期(频率)以及的上升时间和下降时间等参数。
(2)对电路略加修改,使之变成矩形波和锯齿波振荡电路,即为矩形波,为锯齿波。
要求锯齿波的逆程(电压下降段)时间大约是正程(电压上升段)时间的 20% 左右。
观测、的波形,记录它们的幅度、周期(频率)等参数。
3. 设计电路测量滞回比较器的电压传输特性。
三、预习计算与仿真 1. 预习计算 (1)正弦振荡电路 由正反馈的反馈系数为:f 1120o013V Z F Z Z V j ωωωω•••===+⎛⎫+- ⎪⎝⎭由此可得RC 串并联选频网络的幅频特性与相频特性分别为200231⎪⎪⎭⎫ ⎝⎛-+=ωωωωF0F arctan3ωωωωφ-=-易知当RC10==ωω时,•f V 和•o V 同相,满足自激振荡的相位条件。
若此时f 3v A >,则可以满足f 1v A F >,电路起振,振荡频率为000111994.7Hz 1.005ms 2216k 10nF f T RC f ππ=====⨯Ω⨯,。
模拟电子技术实验-波形发生电路
实验: 波形发生电路一、 实验目的1.掌握RC 桥式正弦波振荡电路的原理与设计方法;2.加深理解矩形波和方波-三角波发生电路的工作原理与设计方法;3.了解运放转换速率对振荡波形跳变沿的影响。
二、实验仪器名称及型号KeySight E36313A 型直流稳压电源,KeySight DSOX3014T 型示波器/信号源一体机。
模块化实验装置。
本实验将使用三种集成运放:µA741、LM324和TL084,它们的引脚如图1所示,LM324和TL084的引脚排列完全相同。
87654321µA741+Vcc -VccOUT OA2NC 141312114321LM324(TL084)1098765V-4OUT 4IN-4IN+3OUT3IN-3IN+图1 741A 、LM324和TL084的引脚图三、实验内容1.RC 桥式正弦波振荡电路(SPOC 实验)(1)设计RC 桥式正弦波振荡电路,要求振荡频率为1.6kHz ,输出波形稳定并且无失真。
其中集成运放可采用µA741、LM324或TL084,简要写出设计过程,绘制或截取电路原理图。
电阻R1.R2与电容C1、C2构成串并联选频网络,电阻R3、R4、RP 构成负反馈网络,VD1和VD2用于限幅作用稳定波形,当R1=R2=R,C1=C2=C 时,串并联选频网络的相频特性和幅频特性分别为,相频特性为,,根据,题目要求f=1.6kHz,取参数R1=R2=10kΩ,C1=C2=0.01μF,R3=R4=5.1kΩ,R p=10kΩ。
(2)学习SPOC实验操作视频,将示波器的两个通道分别接在u o端和u f端,缓慢调节电位器R W,使电路产生正弦振荡,在确保两个通道的正弦波不失真的前提下将输出幅度调得尽量大些,记录输出u o的峰-峰值U opp和输入u f的峰-峰值U fpp。
U opp= 18.1V ;U opp= 6.1V ;(3)正反馈系数F u的测定。
信号波形发生与合成实验报告
电子电路综合实验实验报告题目:信号波形发生与合成班级:20130821学号:2013082117姓名:肖珩成绩:日期:2015年3月17日一、摘要实验采用纯硬件电路设计形式完成实验任务,实现实验功能。
首先用带限幅器滞回比较器和RC充放电回路构成的方波发生电路产生频率为1KHZ的方波信号。
作为一个信号源,需要低阻抗输出,因此在方波发生器之后连接一个射随电路。
信号经两路不同频率有源滤波处理,同时产生频率为1kHz和3kHz的正弦波信号。
其中基波产生采用低通滤波器,三次谐波产生采用带通滤波器。
为了将基波和三次谐波叠加之后最终恢复出近似方波信号,因此需要根据滤波分频电路输出的基波和三次谐波的延时,设计移相电路,其设计采用全通滤波器原理。
最后运用反相加法器将基波和三次谐波信号叠加,从而完成设计要求。
实现功能:设计一个电路,能够产生多个不同频率的正弦信号,并将这些信号再合成为近似方波信号。
方案特点:电路为纯硬件电路,采用运算放大器TL081,原理图简单易懂,硬件调试容易,部分实现功能明确且输出可测,有助于电路问题检测。
二、设计任务2.1 设计选题选题十四:信号波形发生与合成2.2 设计任务要求图1 系统框图1)矩形波发生电路产生1kHz的方波(50%占空比),频率误差小于5%,方波波形幅度峰峰值为10V,幅度误差小于5%,且输出阻抗r=50 Ω;o2)基波频率为1kHz,设计的低通滤波器要求-3dB带宽为1kHz,带外衰减≥-40dB/十倍频程下降,产生的信号波形无明显失真,幅度峰峰值为12V,幅度误差小于5%;3)三次谐波频率为3kHz,设计的带通滤波器要求中心频率为3kHz,-3dB带宽小于500Hz,带外衰减≥-40dB/十倍频程下降,产生的信号波形无明显失真,幅度峰峰值为4V,幅度误差小于5%;4)设计移相电路,完成对基波正弦信号的移相,使移相后的基波和三次谐波的波形如图2所示,要求移相电路的增益为1,增益误差≤5%;图2 移相后的基波和三次谐波波形5)设计加法器,将移相器输出的基波与三次谐波相加,合成近似正弦波,波形幅度峰峰值为10V,误差不大于0.5V,合成波形的形状如图3所示。
波形产生电路实验报告XX
班级:无 xx 学号:2015011xxx
姓名:xxx 日期:2016 年 11 月 17 日
一、实验目的
1. 通过实验掌握由运放构成的正弦波振荡电路的原理与设计方法; 2. 通过实验掌握由运放构成的方波(矩形波)和三角波(锯齿波)振荡电路的原理与设计方法; 3. 了解运放摆率对振荡波形跳变沿产生的影响。
(−) = −arctan
3
电路中 R1 = 10kΩ,C1 = 0.01μF, 所以 = = 10000 / . 此时反馈系数最大, 为 F = 1/3.
所以如果负反馈放大电路的增益 = 1 +
> 3, 则有 F > 1
这就是起振条件,可以得到R +R > 2 ∗ 即可起振。振荡频率为
w4
1 =
2
二、实验电路图及其说明
1.文氏桥正弦振荡电路
电源电压12V.
图1
2. 多谐振荡电路(方波与三角波)
图2
3. 多谐振荡电路(矩形波与锯齿波)
三、预习报告与实验数据
四、实验数据整理与分析
1.文氏桥正弦振荡电路
(1)缓慢调节电位器 RW,观察电路输出波形的变化,解释所观察到的现象,分析电路的振荡 条件。
由上分析可知,缩短上升和下降时间(使波形变陡)主要可以有两种方法:一是更换 摆率参数更大的运放。二是在输出端连接一个单稳态触发器,将波形整形,输出成为边沿 陡峭的同频率矩形波。
一定范围内,Rw 越大,放大电路的增益越大,振荡的幅度也就越大。但是超过一定的范围 之后,放大电路就工作到非线性区域,输出波形出现切顶的失真。
(2)记录电路刚好起振电位器 RW 的阻值,还需记录当电位器 RW 阻值依次为 0Ω,10kΩ,12k Ω,15kΩ,20kΩ时的输出波形。
波形产生电路实验报告
波形产生电路实验报告1. 背景波形产生电路是电子工程中的一种基础电路,用于产生各种形状和频率的电信号。
在实际应用中,波形产生电路常被用于信号发生器、音频设备、通信系统等。
本实验旨在通过设计和搭建一个简单的波形产生电路,掌握波形产生电路的基本原理和操作方法,并通过实验验证其性能。
2. 设计与分析2.1 电路结构本实验采用了经典的RC低通滤波器作为波形产生电路的核心部分。
该滤波器由一个电阻R和一个电容C组成,输入信号通过该滤波器后,输出信号将会被滤除高频成分,从而得到所需的波形。
2.2 参数选择为了得到稳定且正弦波形的输出信号,我们需要合理选择RC值。
根据经验公式:f c=1 2πRC其中f c表示截止频率。
我们可以根据需要选择截止频率来确定RC值。
一般情况下,我们可以选择f c为所需信号频率的十分之一。
2.3 电路实现根据以上分析,我们可以设计出以下波形产生电路:其中,R1和C1为滤波器的参数,Vin为输入信号源。
3. 实验步骤3.1 实验材料•电阻R1•电容C1•示波器•函数发生器•连接线等3.2 实验步骤1.按照电路图连接上述元件。
2.将函数发生器的输出连接到滤波器的输入端。
3.打开函数发生器和示波器,并调整函数发生器的频率和幅度。
4.观察示波器上输出信号的波形,并记录相关数据。
4. 实验结果与分析根据实验步骤得到的数据,我们可以绘制出输入信号和输出信号的波形图,并进行分析。
以下是实验结果:输入频率(Hz)输出幅度(V)1000 52000 45000 2通过观察实验结果,可以看出输出信号的幅度随着输入频率的增加而减小。
这是因为滤波器对高频成分进行了滤除,使得输出信号的幅度降低。
5. 实验建议在进行本实验时,我们可以尝试调整电阻和电容的取值,观察它们对输出信号的影响。
此外,我们还可以尝试使用不同形状的输入信号,并比较它们在滤波器中的表现。
为了得到更准确的实验结果,我们还可以提高示波器的采样率,并使用更精确的测量工具来测量电阻和电容的值。
BPSK,DBPSK调制及解调、载波同步实验报告
实验十一BPSK调制及解调实验一、实验目的1、掌握BPSK调制和解调的基本原理2、掌握BPSK数据传输过程,熟悉典型电路3、了解数字基带波形时域形成的原理和方法,掌握滚降系数的概念;4、熟悉BPSK调制载波包络的变化5、掌握BPSK载波恢复特点与位定时恢复的基本方法二、实验器材1、主控&信号源、9号、13号模块各一块2、双踪示波器一台3、连接线若干三、实验原理2、BPSK调制解调(9号模块)实验框图说明基带信号的1电平和电平信号分别与256KHz载波及256KHz反相载波相乘,叠加后得到BPSK调制输出;已调信号送入到13模块载波提取单元得到同步载波;已调信号与相干载波相乘后,经过低通滤波和门限判决后,解调输出原始基带信号。
四、实验步骤实验项目一BPSK调制信号观测(9号模块)1、连线2、开电、设置主控菜单3、此时系统初始状态为:PN序列输出频率32KHz4、实验操作及波形观测。
(1)以9号模块“NRZ-I”为触发,观测“T”;(2)以9号模块“NRZ-Q”为触发,观测“Q”。
(3)以9号模块“基带信号”为触发,观测“调制输出”。
思考:分析似上观测的波形,分析与ASK有何关系?ASK基带中带有直流分量,与载波相乘后有载波分量;BPSK反相后基带信号由单极性变成双极性,相乘后,就没有载波分量,也就是没有频谱中没有尖峰。
实验项目二BPSK解调观测(9号模块)概述:本项目通过对比观测基带信号波形与解调输出波形,观察是否有延时现象,并且验证BPSK解调原理。
观测解调中间观测点TP8,深入理解BPSK解调原理。
1、保持实验项目一中的连线。
将9号模块的S1拨为“0000”2、以9号模块的“基带信号”为触发,观测13号模块的“SIN”,调节13号模块的W1使“SIN”的波形稳定,即恢复出载波。
3、以9号模块的“基带信号”为触发观测“BPSK解调输出”,多次单击13号模块的“复位”按键。
观测“BPSK解调输出”的变化。
DSPSin(x)的泰勒级数展开式波形实验报告
DSP 实验报告班级:通信姓名:学号:指导老师:一、实验目的1 、了解数字波形产生的原理;2 、学习DSP产生波形的基本方法和步骤;3 、掌握DSP与D/A接口使用。
实验原理cliK'kSRAM基于查表的数字信号发生器原理2(X)MHz\ clock\ 朗混叠基于DSP数值计算的数字信号发生器原理Sin (x)的泰勒级数展开公式:Sin(x)=x - x 3/3! + x 5/5!- …+ (-1) n-1 x2n-1/(2n-1)! + …,其中x € R, n€ N.1、由于sin (x)为T=2n周期函数,此处取x € [0 , 2n ];2 、[0, 2n ]区间等分为100分,取每个等分小区间的左定点作为采样点。
即,共取101 个样点,x = {0 , n /50 , n /25,…,2 n };3 、采用数组mysin[]数据结构存放对应样点的近似函数值。
思路:由Sin(x)的泰勒级数展开式可知,Sin(x)是由通项为(-1) n-1x2n-1/(2n-1)!相加得到的,每项间的符号正负交替,后一项可以看成前一项的结果乘以-x*x/(2*n-1)*(2*n-2) ,减少运算的次数。
三、实验代码#i nclude""#defi ne pi 3.float fun_sin( float x){float sum=0,q=x;i nt n=2;for(;fabs(q)<10e-7; n++){sum+=q;q*=-x*x/(2* n-1)*(2* n-2));}return sum;流程图:i sum=0 .sum=sum+q敲滝舸」oe 61J h r nl -i MF・・」K4■各亶h F Q F f.发T *l ・爲 HOE・・浮>E DLiJL 3,£L H・PI _J f f d n-"b s l 9._・"3.<t e "r - Fr・j・ L 鶴一弭丹2: c F 4S.X F匚器-I&.Ll£J ・dn nrz LI.r r ・・-u 焉」11口1L I 0,Q ・me「h'h-L ,h.zHT彷P HFl囂t.■1"rELr;t巴'*楼畀川41斗时汩岳2・\ 宀『I Q g l iFr u p #s -r u ^Hn o J r - "rh w b ITS .2--:: 106-|#|14*:亠15昌;-1-「■d ・lz《lu 吉乙•»■!■■27 =-H 旳鬥U E tJ lr B町LLIzp ss 9r i l n >4:乙・07江矗罟§彳|0着£|8#£'石二«- -®・Dnh£二y;b p二匚rL E I L P f eFDm M 33 *】 手31 nA* ・ nrdh口rk吐• fel la m Fs EID詳・二r m - g sbs-精度取10e-6 精度取10e-7"t/CStei r«ui i i nA 1 Siv-ftlJi^r/CFI 1 - CilwiAt#r> ■ (:LiObf i^^rHi-n ・ l •章刑• h- *JHC7R 电 J J U Eibi 如■■ F F -JK I •油知 MMihir EEL Q|<7 屉 T^li 临1和艦>hlp3剧鬥话El i- thf~j <! & -3 z再幣 b 「T|*d 却 wiz帝牟*]|c5s sjft >j ■ ■ ||]r ^.IJ (屛 a 0 galLdLdWyFiiTffI GEL-d 竹PJI «oi 」_| :iepEdmr hrpjs |_JXFjnnS Card-it LJ 細>w詁衣rbitiH-'J IfiClrjJi _3 ■屮IF h9^|Ulwwi.M 旦 ctaSEI L B1- _J XiUT2] «*81^ c[Lanka ng- > - - ] 11 □ :itoo]sim5511-iJ^Pabugi. Ikf "±JBiikild Cxxmplet^r.D Errors r ] W-s r TH» 0 R 和einrfc 刖.^/CS-Sai r«up i i I li«-Bi A-lfr/CFI 1 - C^hun-傘■•宅 i ■鞠唔!:■»> »v*rC J J U 已去%如wPr<jt?t •油知 Jv^filir EEL Q.7 屉临珈忑吐Ip-I库& , 0 -siLJldH ii[LankiEi^ ・・・]"□ :i XcSSOD^GBriao]■\bia\El 55,! -^"Dsbug. Ikf 11 mild Conipje^ewD E TEE * ] w^rni n 空(6. n Amnnha BJiKtlthuw*/! _IL 4J ±rQU JIAJJ£L> fvi I H A !令 H IAB FLU U3, Z 茨 |flM I精度取10e-11医二迄r【■摘1町TP} n *yFiiTff_| GEL E L :»L _J-;「”••_.・.,川mi._| Zkpe^d?n"« hrpje UXFjnn;心切IThl<iiEfiCL^a _S ■屮 ir h "治暫 旦EI I BE lLbSflUT-CT勻 Iflin Q*1^iJirrlude r m*-h,h"1 ti pi '3 . 141EsS265f 1■口曰"L f u n_ =■ 1 □ ( f 1 口 日七 x )flont Tira-O,q*irj inf fi-2; f ■口 l 4 jfshsfqJCl Da —7;n^+]{ 3 izii+ 珂; 叶-HF ( (2*L -1J* 2*r ;-21) J”CUfl rLLUJ□曲O.ITT-P.9P0OXflQE-0167-Q&iT-31. <1 azsori~^ll 入 U<StT"・・】taoBE4U W ・・ PxjMt »«bw C 7r«GJ«r GIL Q»u^ T7・ XX OfXX«1F3)肩 & W 网比 Vi •• | W .i g.T EE /<%%*> 了} ».u« _|Ctt Al«t H 勺匸乜 C55_$i.. Ool —J :邙erdz h*>jf U MT/1I0SCoM“ Cj G A —Q Z FbX«> t '」tocigJS ®ynn b Q /J ct>5B ltb H A SourceZ) »71)» c^include ’rrm"・bpw>in()mt i ,j*D; floot X ; whi 】•⑴X 22«PL «I /100; J*f ';n %in I « );J 2J 1A1JC55—cm ・pjt - Dob«g --------- ----------------------------------- -------[ny^in.c] •,D :Ml >-c550D'<?gtoolsM?iD\cl55" -g 弋 Yh”U7C55_9in_0/gbug” -l >,_D£aUG ,* Y‘“Ebug ・让「 inyeift.c ,Naming: The project has no end filo xhile t、o Toxt Linkor is gel«ted [Linking . . . ] *'D i^c55DOxcgtoolcxhia^cl 55" -^"Dobug . lkf " innniLiliF«t *ux>. k •» ri。
数字波形的产生
4
Ui
8 3
U+ U−
6
555
U0
O U0
U OH U OL
t
2 1
5
0.01μ F
O
Ui
U+ U−
t
应用: 1、脉冲波形的整形; 2、脉冲鉴幅。
O U0
t
O
t
7.4 石英晶体振荡器
1、石英晶体:
天然石英晶体
4
晶体在电路中的应用: 早期:晶体加外围电路构成各种晶体振荡电路。
U 6 (TH )
5 6
2
U R1
+ C − 1
R
比较器功能:
G3 G4
5k
U 2 (TR )
U R2
+C − 2
5k
V1
3
G2
S
Q
U0
V + > V − 时 VC = 1 V + ≤ V − 时 VC = 0
7
外接电压: VC 0
R
1
RD
U 6 (TH )
U 2 (TR )
×
S
U0 = Q
0
1
V1
RD
8
5k
4
1
U2 U0 RD
8 7 6 5
U CC
UC0
U 6 (TH )
5 6 2
U R1
+ C − 1
R
Q
G1
2
3
5k
U6
U 2 (TR )
4
UC 0
U R2
+C − 2
5k
G2
G3
产生信号波形的仿真实验报告心得5篇
产生信号波形的仿真实验报告心得5篇a;为期四周的信号与系统测试实验结束了,细细品味起来每一次在顺利完成实验任务的同时,又都伴随着开心与愉快的心情,赵老师的幽默给整个原本会乏味的实验课带来了许多生机与欢乐。
下面就是带来的产生信号波形的仿真实验报告心得,希望能帮助大家!产生信号波形的仿真实验报告心得1一、实验目的通过几个电路分析中常用定理和两个典型的电路模块,对Multisim的主窗口、菜单栏、工具栏、元器件栏、仪器仪表和一些基本操作进行学习。
二、实验内容1.叠加定理:在任何由线性元件、线性受控源及独立源组成的线性电路中,每一支路的响应都可以看成是各个独立电源单独作用时,在该支路中产生响应的代数和;2.戴维南定理:一个含独立源、线性受控源、线性电阻的二端电路N,对其两个端子来说都可以等效为一个理想电压源串联内阻的模型。
其理想电压源的数值为有源二端电路N的两个端子间的开路电压uoc,串联的内阻为N内部所有独立源等于零,受控源保留时两端子间的等效电阻Req,常记为R0;3.互易定理:对一个仅含线性电阻的二端口,其中,一个端口夹激励源,一个端口做响应端口。
在只有一个激励源的情况下,当激励与响应互换位置时,同一激励所产生的响应相同;4.暂态响应:在正弦电路中,电量的频率、幅值、相位都处于稳定的数值,电路的这种状态称为稳定状态。
电路从一种稳态向另一种稳态转换的过程称为过渡过程,由于过渡过程一般都很短暂,因此也称为暂态过程,简称暂态;5.串联谐振:该电路是一个由电阻、电容和电感串联组成,当激励源的频率达到谐振频率时,输出信号的幅值达到最大。
产生信号波形的仿真实验报告心得2意见与建议我们所学的专业是与通信有关的,而通信中最重要的就是对信号的处理与对系统的设计,好的通信系统可以高效率地完成对信号的传输,通信中最主要的问题就是要能在尽可能短的时间内把信号尽可能不失真地传送到目的地,因此现代通信系统中大多数都是传送的数字信号,但这并不意味着我们就可以忽略模拟信号的作用,因为我们传送出去的以及对方收到的还有很多是模拟信号,比如话音信号。
《数字示波器实验》课件
实验总结
01
02
03
04
实验不足与改进
在操作过程中,存在对示波器 设置不熟悉导致波形显示不稳
定的问题。
在测量信号参数时,存在读数 误差。
针对以上问题,可以通过加强 理论学习和多加练习来提高实
形。
数据记录与分析
记录数据
在实验过程中,记录下关键的 波形参数,如幅度、频率等。
整理数据
将记录的数据整理成表格或图 表形式,便于分析。
分析波形特征
根据观察到的波形特征,分析 信号的特性,如周期、占空比 等。
得出结论
结合实验数据和波形特征,得 出实验结论,并评估实验效果
。
04
实验结果与讨论
实验结果展示
03
实验步骤
连接设备
准备工具
数字示波器、信号发生器、连接 线等。
连接方式
将信号发生器与数字示波器通过 适当的连接线进行连接,确保连 接稳定且信号传输畅通。
设置参数
01
02
03
04
打开示波器
打开数字示波器,进入操作界 面。
调整垂直灵敏度
根据信号幅度调整垂直灵敏度 ,使得信号在屏幕上显示清晰
。
设置触发方式
思考题与答案
答案
使用合适的触发方式和水平速度,确保信号波形稳定显 示。
调整垂直增益,使信号幅度适中,避免过载或欠载。 使用示波器的测量功能时,尽量选择精度高的测量点。
THANKS
感谢观看
02
实验设备
数字示波器
数字示波器是一种电子测量仪器 ,用于观察、分析和测量各种电
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十一 数字波形产生一、 实验目的1、了解数字波形产生的基本原理;2、学习用C55x DSP 芯片产生正弦信号的基本方法和步骤;二、 实验设备计算机,CCS 2.0版软件,DSP 仿真器,实验箱,示波器。
三、 基础理论数字波形信号发生器是利用微处理器芯片,通过软件编程和D/A 转换,产生所需要信号波形的一种方法。
在通信、仪器和控制等领域的信号处理系统中,经常会用到数字正弦波发生器。
一般情况,产生正弦波的方法有两种:1.查表法。
此种方法用于对精度要求不是很高的场合。
如果要求精度高,表就很大,相应的存储器容量也要很大。
2.泰勒级数展开法。
这是一种更为有效的方法。
与查表法相比,需要的存储单元很少,而且精度高。
一个角度为θ的正弦和余弦函数,可以展开成泰勒级数,取其前5项进行近似得:))))9821(7621(5421(3221(!99!77!55!33sin ⋅-⋅-⋅-⋅-=+-+-=x x x x x x x x x x θ ))))8721(6521(4321(221!88!66!44!221cos ⋅-⋅-⋅--=+-+-=x x x x x x x x θ 其中,x 为θ的弧度值。
本实验用泰勒级数展开法产生一正弦波,并通过D/A 转换输出。
四、 实验步骤和内容1. 开关K9拨到右边,即仿真器选择连接右边的CPU :CPU2;2. 运行CCS 软件,加载示范程序;3. 按F5运行程序,用示波器检测“D/A 转换单元”的的2号孔接口“输出1”输出一个正弦波;4. 填写实验报告。
5. 样例程序实验操作说明启动CCS 2.0,并打开“exp11_cpu2\exp11.pjt ”工程文件;开关K9拨到右边,即仿真器选择连接右边的CPU :CPU2;启动CCS 2.0,用Project/Open 打开exp11_cpu1\exp11目录下“exp11.pjt ”;双击“exp11.pjt ”及“Source ”可查看各源程序;加载“exp11.out ”后;在“exp11.c ”程序中,“i=0”处设置断点;单击“Run”,程序运行到断点处停止;用View / Graph / Time/Frequency打开一个图形观察窗口,以观察利用泰勒级数产生的波形;设置观察变量y,长度1024,32位浮点型数值;调整图形观察窗口,观察产生波形;单击“Run ”继续运行程序,用示波器检测“D/A 转换单元”的的2号孔接口“输出1”输出一个正弦波;单击“Halt ”暂停程序运行,示波器上正弦波消失;在“exp11.c ”程序中,N 值为产生正弦信号一个周期的点数,产生的正弦信号的频率与N 数值大小及D/A 转换频率DA f 有关,产生正弦波信号频率f 的计算公式为: Nf f DA 尝试修改“exp11.c ”程序中N 值,“Rebuild ”及“Load ”后, 单击“Run ”运行程序,观察产生信号频率变化;关闭“exp11.pjt ”工程文件;关闭所有窗口,本实验完毕。
六、实验说明本实验样例程序中,采用泰勒级数展开法,计算-~的sin 值,来构造正弦波信号,计算点数为1024点;然后,经过取整处理后,经AD7303 D/A 变换后输出。
附加程序:/*;***********************************************************************;* 北京达盛科技有限公司;* 研 发 部;*;* ;*;*--------------------------------------------- 文件信息11---------------;*;*;* 文件名称: DA7303.C;* 文件功能:通过AD7303的产生正弦波测试程序,CPU=TMS320VC5402 ;* 接口说明:VC5402的MCBSP0配置成SPI模式CS = BFSX0CLK = BCLKX0DATA = BDX0*///------------------头文件--------------------------------------#include "DspRegDefine.h" //VC5402 寄存器定义#include "math.h" //54X 数学计算的头文件//---------------------------------------------------------------/* ****************** 宏定义****************************************************************************/#define UCHAR unsigned char#define UINT16 unsigned int#define UINT32 unsigned long#define TRUE 1#define FALSE 0#define pi 3.1415926#define N 1024//--------------- AD7303 控制字--------------------------------// 15--------14-------13-----12-----11-----10------9-------8-----// INT/EXT---X--------LDAC---PDB---PDA-----A/B-----CR1-----CR0---// 参考电压--保留---- -B省电--A省电----0/A-1/B-//-------------------------------------------------------------//---------------------------------------------------------/* 端口定义*///---------------------------------------------------------ioport UINT16 port8001; //定义输出io端口为0x8001;//----------------------------------------------------------//----------------------------------------------------------/* 全局变量定义*///---------------------------------------------------------UINT16 show = 0x00aa; //LED显示的数值/*********************************************************************** *************** 所使用的函数原型*************************************************************************************** */void cpu_init(void); //初始化CPUvoid Delay(UINT16 numbers); //延迟extern void delay_3us(void); //3us延迟void mcbsp0_write_rdy(UINT16 out_data);//MCBSP0发送一个数据void mcbsp0_init_SPI(void);//MCBSP0设置为SPI模式void mcbsp0_close(void);//MCBSP0关闭//-------------------------------------------------------------------/************************************************************************* *********************** 函数定义****************************************************************************************** *///--------------------------------------------------------------------// 函数名称: void cpu_init(void)// 函数说明: 初始化CPU// 输入参数: 无// 输出参数: 无//--------------------------------------------------------------------void cpu_init(void){asm(" nop ");asm(" nop ");asm(" nop ");//-------------------------------------------------------------------//CLKMD DEFINITIONS:// PLLMUL (bit 15-12) - 0000 PLL multiplier = 0 (mult by 1)// PLLDIV (bit 11) - 0 PLL divider = 0 (div by 1)// PLLCOUNT (bit 10-3)- 11111111 PLL counter set to max// PLLONOFF (bit 2) - 1 PLL on// PLLNDIV (bit 1) - 1 Select PLL mode// PLLSTATUS (bit 1) - x PLL Status (read only)// ------------------// 0000011111111111 = 0x07ff CLKMD=1 X CLKIN//--------------------------------------------------------------------*(unsigned int*)CLKMD=0x0; //switch to DIV mode clkout= 1/2 clkinwhile(((*(unsigned int*)CLKMD)&01)!=0);*(unsigned int*)CLKMD=0xF7ff; //switch to PLL X 4 mode//--------------------------------------------------------------------// ST0 DEFINITIONS:// ARP (bit 15-13) - 000 Auxiliary register pointer// TC (bit 12) - 1 Test/control flag// C (bit 11) - 1 Carry is set to 1 if the result of an addition generates a carry; it is cleared to 0 if the// result of a subtraction generates a borrow.// OV A (bit 10) - 0 Overflow flag for accumulator A// OVB (bit 9) - 0 Overflow flag for accumulator B// DP (bit 8-0) - 00000000 Data-memory page pointer// --------------------// 0001 1000 0000 0000 =0x1800 Reset value//--------------------------------------------------------------------// *(unsigned int*)ST0=0x1800;//--------------------------------------------------------------------// ST1 DEFINITIONS:// BRAF (bit 15) - 0 Block-repeat active flag// CPL (bit 14) - 1 Compiler mode CPL=0 DP;CPL=1 SP// XF (bit 13) - 1 XF status// HM (bit 12) - 0 Hold mode// INTM (bit 11) - 1 Interrupt mode INTM=0,All unmasked interrupts are enabled// Reser (bit 10) - 0 Always read as 0// OVM (bit 9) - 0 Overflow mode// SXM (bit 8) - 1 Sign-extension mode// C16 (bit 7) - 0 Dual 16-Bit/double-precision arithmetic mode// FRCT (bit 6) - 0 Fractional mode// CMPT (bit 5) - 0 Compatibility mode// ASM (bit 4-0) - 00000 Accumulator shift mode// --------------------// 0110 1001 0000 0000 =0x2900 Reset value//--------------------------------------------------------------------// *(unsigned int*)ST1=0x6900;//--------------------------------------------------------------------//IPTR DEFINITIONS?// IPTR (bit 15-7) - 001111111 Run-time Interrupt vector location = 0x3f80 (for now)// MP/~MC (bit 6) - 1 Turn off internal Instruction ROM (use RAM) // OVL Y (bit 5) - 1 Turn on internal RAM// A VIS (bit 4) - 1 Address visibility on// DROM (bit 3) - 0 Data ROM of FF00~FFFF is external// CLKOFF (bit 2) - 0 Clockout enabled,only for use clkout=cpu clock// SMUL (bit 1) - 1 Saturate before multiply on MAC// SST (bit 0) - 0 Do not saturate before store// -----------------// 0011 1111 1111 0010 = 0x3ff2/*---------------------------------------------------------------------*/*(unsigned int*)PMST=0x3FF2;//---------------------------------------------------------------------// SWWSR DEFINITIONS?// XPA (bit 15) - 0 Extended program address control bit. XPA is used in conjunction with the program space fields// (bits 0 through 5) to select the address range for program space wait states// I/O (bits 14-12) - 111 set to max wait states for seven// Data1 (bits 11-9) - 111 Seven Wait state for Upper data space(0x8000-0xFFFF)// Data2 (bits 8-6) - 111 Seven Wait states for Lower data space (0x0000 - 0x7FFF)// Prog1 (bits 5-3) - 111 Seven Wait state for Upper program space. (xx8000-xxFFFF)// Prog2 (bits 2-0) - 111 Seven Wait states for Program space. (xx0000-xx7FFF)// -----------------// 1 111 111 111 111 111 - 0x7fff/*--------------------------------------------------------------------*/*(unsigned int*)SWWSR=0x7fff;//--------------------------------------------------------------------//SWCR DEFINITIONS?// Reserved (bits 15-1)// SWSM (bit 0) - 1 wait-state base values are mulitplied by 2// for a maximum of 14 wait states.// --------------------------// 0000 0000 0000 0001//--------------------------------------------------------------------*(unsigned int*)SWCR=0x0001;//--------------------------------------------------------------------//BSCR DEFINITIONS?// BNKCMP (bit 15-12) - 1111 Bank compare. Determines the external memory-bank size. BNKCMP is used to mask the four MSBs of// an address.// 1111 4k// 1110 8k// 1100 16k// 1000 32k// 0000 64k// PS-DS (bit 11) - 1 One extra cycle is inserted between consecutive data and program reads.// Reserved (bits 10-3) - 00000000// HBH (bit 2) - 0 The hpi bus holder is disabled// BH (bit 1) - 0 The data bus holder is disabled// EXIO (bit 0) - 0 The external bus interface functions as usual// ------------------------------------// 1111 1000 0000 0000//--------------------------------------------------------------------*(unsigned int*)BSCR=0xf800;//--------------------------------------------------------------------asm(" ssbx intm "); //Disable all mask interrupts//--------------------------------------------------------------------// IMR DEFINITIONS// Writing a 1 to any IMR bit position enables the corresponding interrupt (when INTM = 0)// Reserved (bits 15-14) - xx// DMAC5 (bit 13) - 0 DMA channel 5 interrupt mask bit // DMAC4 (bit 12) - 0 DMA channel 4 interrupt mask bit // BXINT1/DMAC3 (bit 11) - 0 McBSP1 transmit interrupt mask bit, or the DMA channel 3// BRINT1/DMAC2 (bit 10) - 0 McBSP1 receive interrupt mask bit, or the DMA channel 2// HPINT (bit 9) - 0 Host to ’54x interrup /mask// INT3 (bit 8) - 0 External interrupt 3 mask// TINT1/DMAC1 (bit 7) - 0 timer1 interrupt mask bit, or the DMA channel 1 interrupt mask bit// DMAC0 (bit 6) - 0 reserved, or the DMA channel 0 interrupt mask bit// BXINT0 (bit 5) - 0 McBSP0 transmit interrupt mask bit// BRINT0 (bit 4) - 0 McBSP0 receive interrupt mask bit // TINT0 (bit 3) - 0 Timer 0 interrupt mask bit// INT2 (bit 2) - 0 External interrupt 2 mask bit// INT1 (bit 1) - 0 External interrupt 1 mask bit// INT0 (bit 0) - 0 External interrupt 0 mask bit// ------------------------------// 0000 0000 0000 0000//--------------------------------------------------------------------*(unsigned int*)IMR=0x0;//--------------------------------------------------------------------// IFR DEFINITIONS// Writing a 1 to any IFR bit position clear the corresponding interrupt mask ,when corresponding interrupt occur IFR corresponding bit=1// Reserved (bits 15-14) - xx// DMAC5 (bit 13) - 1 DMA channel 5 interrupt flag bit// DMAC4 (bit 12) - 1 DMA channel 4 interrupt flag bit// BXINT1/DMAC3 (bit 11) - 1 McBSP1 transmit interrupt flag bit, or the DMA channel 3// BRINT1/DMAC2 (bit 10) - 1 McBSP1 receive interrupt flag bit, or the DMA channel 2// HPINT (bit 9) - 1 Host to ’54x interrutpflak// INT3 (bit 8) - 1 External interrupt 3 flag// TINT1/DMAC1 (bit 7) - 1 timer1 interrupt flag bit, or the DMA channel 1 interrupt mask bit// DMAC0 (bit 6) - 1 reserved, or the DMA channel 0 interrupt flag bit// BXINT0 (bit 5) - 1 McBSP0 transmit interrupt flag bit // BRINT0 (bit 4) - 1 McBSP0 receive interrupt flag bit// TINT0 (bit 3) - 1 Timer 0 interrupt flag bit// INT2 (bit 2) - 1 External interrupt 2 flag bit// INT1 (bit 1) - 1 External interrupt 1 flag bit// INT0 (bit 0) - 1 External interrupt 0 flag bit// ------------------------------// 1111 1111 1111 1111/*--------------------------------------------------------------------*/*(unsigned int*)IFR=0xffff;//--------------------------------------------------------------------asm(" nop ");asm(" nop ");asm(" nop ");}/************************************************************- 函数名称: void Delay(int numbers)- 函数说明: 延时- 输入参数: numbers- 输出参数: 无************************************************************/void Delay(UINT16 numbers){UINT16 i,j;for(i=0;i<4000;i++)for(j=0;j<numbers;j++);}/************************************************************************** - 函数名称: void mcbsp0_write_rdy(UINT16 out_data);- 函数说明: MCBSP0发送一个数据- 输入参数: data- 输出参数: 无- 补充说明: 内部带是否发送完成的判断************************************************************************** */void mcbsp0_write_rdy(UINT16 out_data){UINT16 j;*(unsigned int*)McBSP0_SPSA=0x0001; //McBSP0_SPSA 指向SPCR2while ((*(unsigned int *)McBSP0_SPSD&0x0002)==0);//mask XRDY bit,XRDY = 1 Transmitter is ready for new data in DXR[1,2].for(j=0;j<20;j++); //delay*(unsigned int *)McBSP0_DXR1= out_data;}/**************************************************************************- 函数名称: void mcbsp0_init_SPI(void);- 函数说明: MCBSP0设置为SPI模式- 输入参数: 无- 输出参数: 无- 补充说明:***************************************************************************/void mcbsp0_init_SPI(void){//--------------------------------------------------------//复位McBSP0*(unsigned int*)McBSP0_SPSA=0x0000;//SPCR1*(unsigned int*)McBSP0_SPSD=0x0000;//设置SPCR1.0(RRST=0)*(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2*(unsigned int*)McBSP0_SPSD=0x0000;//设置SPCR1.0(XRST=0)//---------------------------------------------------------//延迟Delay(0); //延迟4000*CPU 时钟周期//等待复位稳定//---------------------------------------------------------//配置McBSP0为SPI 模式*(unsigned int*)McBSP0_SPSA=0x0000;//SPCR1*(unsigned int*)McBSP0_SPSD=0x1800;//DLB (bit 15) 0 Digital loop back mode disabled//RJUST (bit 14-13) 00 Right-justify and zero-fill MSBs in DRR[1,2] //CLKSTP (bit 12-11) 11//X (bit 10-8) 000 Reserved//DXENA (bit 7) 0 data transmit delay bit.DX enabler is off//ABIS (bit 6) 0 A-bis mode is disabled//RINTM (bit 5-4) 00 RINT driven by RRDY//RSYNER (bit 3) 0 No synchronization error//RFULL (bit 2) 0 RBR[1,2] is not in overrun condition//RRDY (bit 1) 0 Receiver is not ready//RRST (bit 0) 0 Serial port receiver is disabled and in reset state //---------- 0001 1000 0000 0000*(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2*(unsigned int*)McBSP0_SPSD=0x0000;//X (bit 15-10) 000000 Reseved//FREE (bit 9) 0 Free running mode is disabled//SOFT (bit 8) 0 SOFT mode is disabled//FRST (bit 7) 0 Frame-synchronization logic is reset.//GRST (bit 6) 0 Sample rate generator is reset//XINTM (bit 5-4) 00 XINT driven by XRDY//XSYNER (bit 3) 0 No synchronization error//XEMPTY (bit 2) 0 XSR[1,2] is empty//XRDY (bit 1) 0 Transmitter is not ready//XRST (bit 0) 0 serial port transmitter is disabled and in reset state//---------- 0000 0000 0000 0000*(unsigned int*)McBSP0_SPSA=0x000E;//PCR*(unsigned int*)McBSP0_SPSD=0x0A0C;//X (bit 15-14) 00 Reseved//XIOEN (bit 13) 0 DX, FSX and CLKX are configured as serial port //RIOEN (bit 12) 0 DR, FSR, CLKR and CLKS are configured as serial port//FSXM (bit 11 1 Frame synchronization is determined by the sample rate//generator//FSRM (bit 10) 0 Frame-synchronization pulses generated by an external//device. FSR is an input pin//CLKXM (bit 9) 1 CLKX is an output pin and is driven by the internal sample//rate generator.//CLKRM (bit 8) 0 Receive clock (CLKR) is an input driven by an external//X (bit 7) 0 Reserved//CLKS_STAT(bit 6) 0 CLKS pin status.//DX_STAT (bit 5) 0 DX pin status.//DR_STAT (bit 4) 0 DR pin status.//FSXP (bit 3) 1 Frame-synchronization pulse FSX is active low //FSRP (bit 2) 1 Frame-synchronization pulse FSR is active low//CLKXP (bit 1) 0 Transmit data sampled on rising edge of CLKX //CLKRP (bit 0) 0 Receive data sampled on falling edge of CLKR //---------- 0000 1010 0000 1100*(unsigned int*)McBSP0_SPSA=0x0002;//RCR1*(unsigned int*)McBSP0_SPSD=0x0040;////X (bit 15) 0 Reserved//RFRLEN1 (bit 14-8) 0000000 Receive Frame Length 1,RFRLEN1 = 000 0000 1 word per frame//RWDLEN1 (bit 7-5) 010 Receive Word Length 1,RWDLEN1 = 010 16 bits //X (bit 4-0) 00000 Reserved//----- 0000 0000 0100 0000*(unsigned int*)McBSP0_SPSA=0x0003;//RCR2*(unsigned int*)McBSP0_SPSD=0x0041;////RPHASE (bit 15) 0 Receive Phases,RPHASE = 0 Single-phase frame//RFRLEN2 (bit 14-8) 0000000 Receive Frame Length 2,RFRLEN2 = 000 0000 1 word per frame//RWDLEN2 (bit 7-5) 010 Receive Word Length 2,RWDLEN2 = 010 16 bits//RCOMPAND(bit 4-3) 00 No companding,//RFIG (bit 2) 0 Receive Frame Ignore//RDATDL Y (bit 1-0) 01 Receive data delay,1-bit data delay//----- 0000 0000 0100 0001*(unsigned int*)McBSP0_SPSA=0x0004;//XCR1*(unsigned int*)McBSP0_SPSD=0x0040;//X (bit 15) 0 Reserved//XFRLEN1 (bit 14-8) 0000000 Transmit Frame Length 1,RFRLEN1 = 000 0000 1 word per frame//XWDLEN1 (bit 7-5) 010 Transmit Word Length 1,RWDLEN1 = 010 16 bits//X (bit 4-0) 00000 Reserved//----- 0000 0000 0100 0000*(unsigned int*)McBSP0_SPSA=0x0005;//XCR2*(unsigned int*)McBSP0_SPSD=0x0041;//XPHASE (bit 15) 0 Transmit Phases,RPHASE = 0 Single-phase frame//XFRLEN2 (bit 14-8) 0000000 Transmit Frame Length 2,RFRLEN2 = 000 0000 1 word per frame//XWDLEN2 (bit 7-5) 010 Transmit Word Length 2,RWDLEN2 = 010 16 bits//XCOMPAND(bit 4-3) 00 No companding,//XFIG (bit 2) 0 Transmit Frame Ignore//XDATDL Y (bit 1-0) 01 Transmit data delay,1-bit data delay//----- 0000 0000 0100 0001*(unsigned int*)McBSP0_SPSA=0x0006;//SRGR1//*(unsigned int*)McBSP0_SPSD=0x0063;*(unsigned int*)McBSP0_SPSD=0x0009;//FWID (bit 15-8) 00000000 Frame Width//CLKGDV (bit 7-0) 0110 0100 Sample Rate Generator Clock Divider//CLKG = CPUCLOCK/(CLKGDV+1)// WHEN CPUCLOCK=40MHZ,CLKG=4MHZ//---- 0000 0000 0110 0011*(unsigned int*)McBSP0_SPSA=0x0007;//SRGR2*(unsigned int*)McBSP0_SPSD=0x2000;//GSYNC (bit 15) 0 don't care//CLKSP (bit 14) 0 don't care//CLKSM (bit 13) 1 Sample rate generator clock derived from CPU clock//FSGM (bit 12) 0 Sample Rate Generator Transmit Frame-Synchronization Mode//in spi mode,must be =0//FPER (bit 11-0) 000000000000 Frame Period,this bits ignored//------- 0010 0000 0000 0000*(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2*(unsigned int*)McBSP0_SPSD=(*(unsigned int*)McBSP0_SPSD)|0x0040;//GRST = 1 Sample rate generator is pulled out of reset//延迟Delay(0); //延迟4000*CPU 时钟周期//等待时钟稳定*(unsigned int*)McBSP0_SPSA=0x0000;//SPCR1*(unsigned int*)McBSP0_SPSD=(*(unsigned int*)McBSP0_SPSD)|0x0001;//RRST=1enable McBSP1 receiver*(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2*(unsigned int*)McBSP0_SPSD=(*(unsigned int*)McBSP0_SPSD)|0x0001;//XRST=1 enable McBSP1 transmitter*(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2*(unsigned int*)McBSP0_SPSD=(*(unsigned int*)McBSP0_SPSD)|0x0080;//FRST = 1 Frame-sync signal FSG is generated//延迟Delay(0); //延迟4000*CPU 时钟周期//等待时钟稳定}/**********************************************************- 函数名称: void mcbsp0_close(void);- 函数说明: MCBSP0关闭- 输入参数:- 输出参数:- 补充说明:**********************************************************/void mcbsp0_close(){*(unsigned int*)McBSP0_SPSA=0x0000;//地址指针指向SPCR1*(unsigned int*)McBSP0_SPSD=*(unsigned int*)McBSP0_SPSD&0xFFFE; //SET SPCR1.0(RRST)=1,禁止MCBSP0接收*(unsigned int*)McBSP0_SPSA=0x0001;//地址指针指向SPCR2*(unsigned int*)McBSP0_SPSD=*(unsigned int*)McBSP0_SPSD&0xFFFE; //SET SPCR2.0(XRST)=1,禁止MCBSP0发送Delay(0);//延迟4000*CPU 时钟周期//等待复位稳定}/************************************************************* ****************** 主函数********************************************************************************/void main(){int i,j;double x0,x1,x2,x3;double x,r,xx,y[N+1];//----------系统初始化---------------------------------------asm(" nop ");cpu_init(); //初始化CPU//-----------------------------------------------------------asm(" nop ");mcbsp0_init_SPI();//MCBSP0设置为SPI模式asm(" nop ");//-----------------------------------------------------------//----------产生正弦波的数据------------------------r=2*pi/N;for (i=0; i<=N; i++) //泰勒展开产生正弦波{x=i*r-pi;xx = x*x;x0 = 1-xx/(8*9);x1 = 1-x0*xx/(6*7);x2 = 1-x1*xx/(4*5);x3 = 1-x2*xx/(2*3);y[i] = x * x3;}j=0;//---------发送给AD7303-----------------------------for(;;){for(i=0; i<N;i++){//----------------------------------------------------------------mcbsp0_write_rdy( (127 + (int)(127.0*y[i]))& 0x00ff); //发送控制字、数据给AD7303 asm(" nop ");//AD7303的控制字高8位// 15--------14-------13-----12-----11-----10------9-------8-----// INT/EXT---X--------LDAC---PDB---PDA-----A/B-----CR1-----CR0---// 0 0 0 0 0 0 0 0//内部参考电压源,DAC-A、B同时从移位寄存器更新DAC-A、B工作//----------------------------------------------------------------delay_3us(); //延迟等待DA转换结束/****output high ******************/}}}//-----------------------------------程序结束--------------------。