DSP控制器原理与应用张小鸣第七章课件_第1页
DSP控制器原理与应用张小鸣第七章课件_第2页
DSP控制器原理与应用张小鸣第七章课件_第3页
DSP控制器原理与应用张小鸣第七章课件_第4页
DSP控制器原理与应用张小鸣第七章课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章

TMS320x240x的接口电路设计DSP电源电路晶振、锁相环及复位电路电平转换接口电路JTAG接口电路设计DAC接口电路SRAM接口电路7.1DSP电源电路

DSP应用系统一般是一个多电源系统,通常包含+5V和3.3V两种电源。这是因为多数DSP芯片是采用3.3V来供电的,而许多外围接口芯片是采用+5V供电。

对于多电源供电系统,一般采用+5V电源供电,对于其他数量级的电源可经电压变换得到。+5V电源可经外部的开关电源直接得到,或者将220V交流电经整流、滤波、稳压后得到。一般来讲,这样得到的+5V电源的带负载能力较强,但纹波较大,很难直接应用到DSP系统中。为此,一般要经过DC/DC变换或隔离处理。下图给出了几种完成此类功能的芯片及其典型电路的连接方法。有关芯片的主要参数见表。退出退出DC/DC芯片的主要参数型号功能输入电压(V)输出电压(V)输入电流(mA)输出电流(mA)最大值典型值MAX877开关型升/降压1.8~650.310.22240MAX777/778/779开关型升压1~65/3或3.3/可调0.310.22300MAX639/640/653开关型降压4~11.55/3.3/3可调0.020.01225MAX738A/744A开关型降压6~16531.7750MAX878开关型升/降压1.8~63.3/30.310.22240MAX748开关型降压3.3~163.331.7750MAX651/649/652开关型降压4~16.53.3/30.10.082000TPS7333Q开关型降压53.3500退出

对于需同时产生3.3V和1.8V的电源,可采用图5-3所示的TI公司的TPS767D318电路。该芯片属于线性降压型DC/DC变换电路,由5V可同时产生两种不同的电压(3.3V、1.8V或2.5V),其最大输出电流1000mA,可同时驱动一片DSP和少量外围电路。退出

另外,在设计PCB板时,对于模拟电源(VDD)和数字电源(VCC)、模拟地(AGND)和数字地(DGND)应分开走线,建议使用专门的电源和地线布线,且电源和地线要尽可能地宽,并且在主干线上要放置大小不等的滤波电容(50-100μF),以滤除多种不同频率的噪声。在电源和地线的支线上和器件附近,也要安排一些小电容(0.01-0.1μF)。退出采用+5V供电方式的有源晶振时,需在它的输出端进行电平转换。有源晶振驱动能力较强,输出频率范围也较宽(1Hz-400MHz),因此在设计DSP系统时经常采用。使用无源晶振的优点是价格便宜,但它的驱动能力比较差,一般不能提供多个器件共享,而且它可提供的频率范围也比较小(一般在20kHz-60MHz)。图5-4所示的无源晶振所接的电容典型值为20-30pF。退出7.2.2锁相环电路

TMS320LF2407A内部具有锁相环(PLL)电路,可将一个较低的外部时钟在芯片内部实现倍频,这对于整个电路板的电磁兼容性是很有好处的,因为外部只需使用较低频率的晶振,避免了外部电路的时钟干扰,同时也避免了高频时钟干扰电路板上的其他电路。TMS320LF2407A的PLL模块使用外部滤波电路回路来抑制信号抖动和电磁干扰,使信号抖动和干扰影响最小。

在设计PCB板时,所有连接PLL的导线必须尽可能的短。

退出7.2.3复位电路

TMS320LF2407A内部带有上电复位电路,可以直接在RS复位引脚外接一个上拉电阻即可,这对于简化外围电路、减少PCB板的尺寸是很有用处的。但是为了调试方便经常采用图示的手动复位电路,在调试时可方便地进行手动复位。退出对于3.3V低电压DSP器件来讲,其引脚信号高低电平的门限值与普通TTL门限相同,故DSP的输出信号可以直接驱动5V外围器件的输入,不需附加电平转换电路;另外,由于DSP引脚允许输入信号电压的范围是0~3.6V,不可以承受5V的输入信号电压,因此,在DSP与外围器件之间应进行电平转换。退出

74LVC245的输入端可承受5.5V信号,其输出信号的电平为3.3V,与其功能类似的芯片还有74LVC4245、74LVC16245等。输入功能DIRLL数据从B口到A口传送LH数据从A口到B口传送HX隔离状态

除了上述电平转换方法外,还可采用双电压工作的CPLD可编程器件实现电平之间的转换。

对于CMOS电平的外围器件,必须采用专门的转换芯片。退出

以上介绍的转换器件不但起到了电平转换作用,同时也起到了驱动的作用。对于传输速率较低的数字信号,也可以考虑通过光电隔离的方法来实现。

退出JTAG接口与应用板中DSP芯片连接的原理图如下:1)要求安装仿真器的计算机与DSP应用系统可靠接地;2)禁止带电插拔JTAG接头;3)正确的操作顺序是:先退出计算机系统的仿真窗口,然后再将DSP应用板断电,否则可能出现仿真器不能正常运行的情况。

注意以下几点问题:退出7.5DAC接口电路7.5.1串行D/A接口

由于DSP内部包含有串行外设接口SPI模块,且SPI的外部连线较少、速度较快,因此在应用系统中的SPI没有用作其他目的的情况下,可以配合具有SPI接口的外部器件进行D/A转换。

目前,具有SPI接口的外部器件较多,如LED驱动、A/D转换、D/A转换等芯片,其中,MAX5121就是适合于SPI通信的D/A转换芯片退出7.5.2并行D/A接口DSP对并行DAC芯片的访问形式是只写不读。以下介绍DSP与AD7837的接口方法。

AD7837为12位双通道(A和B)的DAC,其数据线只有8位,低8位和高4位数据线复用,对于每个DAC,完成一次转换操作的过程是:先将待转换的低8位数据送到AD7837,然后,再写高4位,最后,通过I/O引脚输出一个转换锁存信号到AD7837的引脚,从而启动D/A转换。地址信号A0和A1用来选择AD7837中的A或B转换器。退出CY7C1021是16位高性能CMOS静态RAM,对其基本操作有两种情况:

1)当输入信号和同时为低电平时,选通该芯片的写功能。当低字节使能位变低时,选通低8位数据端口,即来自I/O引脚I/O8-I/O1的数据被写入到地址引脚A15-A0所指定的位置;当变低时,选通高8位数据端口,即来自I/O引脚I/O16-I/O9的数据被写入到地址引脚A15-0所指定的位置。

2)当输入信号和为低电平、同时迫使变高电平时,选通该芯片的读功能。当低字节使能位变低时,存储器中指定位置中的数据将出现在I/O引脚I/O8-I/O1上;如果高字节使能位变低时,指定的高8位数据出现在I/O引脚I/O16-I/O9上。

退出CY7C1021功能表

选择,输出禁止高阻高阻HH××L选择,输出禁止高阻高阻××HHL写高8位数据输入高阻LH写低8位高阻数据输入HL写所有位数据输入数据输入LLL×L读高8位数据输出高阻LH读低8位高阻数据输出HL读所有位数据输出数据输出LLHLL掉电高阻高阻××××H模式I/O16-I/O9I/O8-I/O1退出

图示给出了CY7C1021与DSP的一种接口电路。从图中可以看出,每次读、写操作的是整个16位数据,不分高低字节。通过译码电路将64KB的SRAM空间分为两个地址空间(由地址的最高位A15的值决定),即数据区和程序区,具体区间的划分由用户的译码方法决定,利用DSP可方便地对CY7C1021进行读写操作。退出7.73线-8线译码器

本节以3线-8线译码器为例,介绍基于DSP的点对点控制实现方法。输入信号输出信号IOPE3IOPE2IOPE1IOPB7IOPB6IOPB5IOPB4IOPB3IOPB2IOPB1IOPB00000000000100100000010010000001000110000100010000010000101001000001100100000011110000000退出7.7.1设计思路

1.TMS320LF2407A的I/O引脚处理本设计采用TMS320LF2407A来实现。由于本设计要用到的输入、输出引脚较多,而TMS320LF2407A芯片中独立使用的I/O引脚较少,大多数的I/O引脚都是和特殊功能的引脚复用。因此在初始化程序中要先把选定的引脚设置成通用的I/O功能。另外,为防止外界信号的干扰,译码器的输入引脚应接上拉电阻。为保证有一个稳定的输出和防止外界的干扰,应采用锁存器把输出的电平进行锁定。退出2.硬件电路

3输入信号用3个按键开关来实现,且均接4.7kΩ的上拉电阻。当按键未按下时,IOPE输入高电平,当按键按下时,IOPE输入变为低电平,通过3个按键的不同状态组合,即可实现译码器的8种不同状态输入。译码器的输出用8个发光二极管来指示,对于某种按键的组合输入,只有一个相应的发光二极管点亮,表示输出一个控制信号,图中的1kΩ电阻为发光二极管的限流电阻。退出3.编程时应注意的问题一般而言,DSP程序包括主程序、系统初始化程序和存储器配置文件。如果系统没有正确初始化或存储器配置不正确,那么,即使主程序正确,系统也不能正确运行。DSP包含很多存储器映射的CPU寄存器和外设寄存器,在编程时经常要对它们进行配置,因此需先编写一个头文件,把这些寄存器的名称和数据存储空间对应起来,然后再使用。退出7.7.2参考程序1.头文件F2407REGS.H参见附录C。2.汇编语言文件(.ASM)

.include“F2407REGS.H”;引用头文件

.def_c_int0.data;定义程序的数据段

input_temp.word00h;输入暂存寄存器

output_flag.word00h;按键值暂存寄存器1flag_temp.word00h;按键值暂存寄存器2io_decode_flag.word00h;输出译码暂存寄存器退出;(1)主程序

.text;定义程序段_c_int0:NOPCALLsystem_init;调系统初始化程序

CALLioport_init;调I/O口初始化程序

NOPDecode_3_8_loop:CALLread_button;调按键读入程序

LDP#4;DP指针指向数据存储B0区

SPLK#0001h,io_decode_flag;给输出译码赋初值,

;表示DS0亮

LToutput_flag;output_flag中的值加载到TREG中

LACTio_decode_flag;io_decode_flag中的值左移

SACLio_decode_flag;左移的位数由TREG中的低4位决定

LDP#DP_PF2;DP指针指向7080h-70FFh退出

LACLPCDATDIR;PCDATDIR中值加载到ACCOR#04040h;IOPC6设置为输出方式,输出值为高电平

SACLPCDATDIR;IOPC6输出高电平,使74HC547的CLK为高

LDP#4;DP指针指向数据存储B0区(200h-27Fh)LACLio_decode_flag;io_decode_flag的值加到ACCLDP#DP_PF2;DP指针指向7080h-70FFhSACLPBDATDIR;通过IOPB0-7送出译码控制信号

LACLPCDATDIR;PCDATDIR中值加载到ACCAND#0FFBFh;保持IOPC6为输出方式,输出低电平,

;关闭74HC574SACLPCDATDIRCALLcy_delay;调延时程序

LDP#4;DP指针指向数据存储B0区(200h-27Fh)SPLK#0h,io_decode_flag;对程序中的各种变量均清零

SPLK#0h,output_flag;用来保证本次结果不会影响

;到下次操作退出

SPLK#0h,flag_tempSPLK#0h,input_flagNOPBdecode_3_8_loop;返回到程序主体;(2)系统初始化程序system_init:SETCINTM;禁止中断

CLRCOVM;ACC中的结果正常溢出

CLRCSXM;抑制符号扩展

CLRCCNF;B0区被配置为数据空间

LDP#DP_PF1;DP指针指向7000h-707FhSPLK#081FEh,SCSR1;CLKOUT输出CPU时钟,PLL=4SPLK#0E8h,WDCR;WDCR[6]置1,表示禁止看门狗,;WDCR[3-5]=101LDP#0;DP指向数据存储器的页0(0000h-007Fh)SPLK#0000h,IMR;屏蔽所有的CPU中断退出

SPLK#0FFFFh,IFR;清除所有的CPU中断

RET;(3)I/O端口初始化程序ioport_init:LDP#DP_PF2;DP指向7080h-70FFhLACLMCRA;IOPB0-7配置为通用I/O口

AND#00FFhSACLMCRALACLMCRB;IOPC6配置为通用I/O口

AND#0FFBFh

SACLMCRBLACLMCRC;IOPE1-3配置为通用I/O口

AND#0FFF1hSACLMCRCLACLPBDATDIR;IOPB0-7配置为输出方式退出OR#0FF00hSACLPBDATDIR

LACLPCDATDIR;IOPC6配置为输出方式

OR#04000hSACLPCDATDIRLACLPEDATDIR;IOPE1-3配置为输入方式

AND#0F1FFhSACLPEDATDIRRET;(4)读按键程序read_button:CALLcy_read;第一次读输入按键值

LDP#4;DP指向数据存储器B0区

LACLoutput_flag;第一次读的按键值存入flag_tempSACLflag_temp;用来和第二次读的按键值相比较

CALLcy_delay;延迟50ms,用于消除按键抖动退出CALLcy_read;第二次读输入按键的状态

LDP#4LACLoutput_flagSUBflag_temp;第二次读按键值和第一次相比较

BCNDright_read,EQ;两者相等转到right_readSPLK#0,output_flag;若两次不等,需重新读取,

;同时把output_flag清0right_read:NOPRETcy_read:LDP#DP_PF2;DP指向7080h-70FFhLACLPEDATDIR;PEDATDIR加载到ACC,读IOPE1-3SFR;ACC右移1位,即移到;PEDATDIF[3-1]到PEDATDIR[2-0]退出

AND#0007h;提取PEDATDIR[2~0]LDP#4SACLinput_temp;PEDATDIR[2~0]存到input_tempLACL#7;无按键按下时,IOPE1~3为高电平

SUBinput_temp;减PEDATDIR[2~0],以得相应的译码值

SACLoutput_flag;译码值存到output_flagRETCy_delay:LACL#2400;本例采用6MHz时钟,PLL=4,故系统时

;钟为24MHzCy_delay1:;此处采用循环等待的方法实现延时

SUB#1;2400×500/(24×103)=50msRPT#499;循环500次

NOPBCNDcy_delay1,NEQ;ACC不为0时返回cy_delay1RET.END退出

MEMORY;声明可以被使用的存储器范围{PAGE0:;程序空间

VECS:origin=0000h,length=0040h;中断向量存储空间

PVECS:origin=0044h,length=0100h;外设中断子向量

PM:origin=0150h,length=7EB0h;片内Flash存储空间PAGE1:;数据空间

BLOCK_B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论