2013-2014(一)DSP作业学号:1120130107姓名:崔晓东1概述TMS320F28335的引脚及其(输入输出)特性,说明IO引脚分别与5VCMOS、TTL芯片连接的方法;TMS320F28335的引脚及其(输入输出)特性:TMS320F28335有多种封装形式,下面以176引脚PGF/PTP薄型四方扁平封装(LQFP)为例进行概述,176引脚LQFP封装TMS320F28335顶视图如下:F28335的176个引脚可以分为JTAG相关引脚、闪存相关引脚、时钟相关引脚、复位引脚、ADC信号相关引脚、CPU和I/O电源相关引脚、GPIO和外设信号相关引脚及XRD引脚这几部分。其中和JTAG相关的引脚包括:TRST̅̅̅̅̅̅̅、TCK、TMS、TDI、TDO、EMU0、EMU1。和闪存相关的引脚包括:VDD3VFL、TEST1、TEST2。其中VDD3VFL为3.3V闪存内核电源引脚,这个引脚应该一直被连接至3.3V。和时钟相关的引脚有:XCLKOUT、XCLKIN、X1、X2。XCLKOUT取自SYSCLKOUT的输出时钟,通过相关寄存器的配置,XCLKOUT的频率可被设置为与SYSCLKOUT相等,或为其一半,或为其四分之一。复位时,XCLKOUT=SYSCLKOUT/4。与其他GPIO引脚不同,复位时,不要将XCLKOUT引脚置于高阻态。当使用外部振荡器时,XCLKIN用来馈入外部时钟信号。X1、X2用来连接外部晶振。若使用外部时钟,X2未用时比须保持在未连接状态。复位引脚XRS̅̅̅̅̅是器件复位(输入)和安全装置复位(输出)引脚。器件复位:XRS̅̅̅̅̅导致器件终止执行。PC指向包含在0x3FFFC0中的地址;当XRS̅̅̅̅̅被置为高电平时,在PC指向的位置开始执行。安全装置复位期间,在512个OSCCLK周期的安全装置复位持续时间内,XRS̅̅̅̅̅引脚被驱动为低电平。ADC信号相关引脚包括A、B两组共16个模拟量输入通道ADCINA0—ADCIN7和ADCINB0—ADCINB7及ADCLO、ADCRESEXT、ADCREFIN、ADCREFP、ADCREFM。CPU和I/O电源相关引脚包括VDDA2、VDD1A18、VDD2A18这3个ADC模拟电源引脚,VSSA2、VSS1AGND、VSS2AGND这3个ADC模拟地引脚,VDDAIO(ADC模拟I/O电源引脚)、VSSAIO(ADC模拟I/O地引脚),13个VDD(CPU和逻辑数字电源引脚),8个VDDIO(数字I/O电源引脚)和22个VSS(数字地引脚)。GPIO和外设信号相关引脚包括GPIO0—GPIO87这88个引脚。可分为A、B、C三组,A组端口包括GPIO0—GPIO31,B组端口包括GPIO32—GPIO63,C组端口包括GPIO64—GPIO87。F28335采用引脚分时复用技术,通过相关寄存器的配置,这88个引脚可以被配置为通用I/O口,也可被配置为增强型脉宽调制(ePWM)模块、增强型正交编码脉冲(eQEP)模块、增强型捕获(eCAP)模块、串行通信接口(SCI)模块、串行外设接口(SPI)模块、外部接口(XINTF)模块、I2C模块、McBSP模块这些模块外设信号的输入或输出端口,或被配置为32位数据线端口或22位地址线端口,或被配置为外部中断输入引脚。其中GPIO0—GPIO38在系统复位时,默认工作模式为通用I/O口模式;所有GPIO引脚为I/O/Z且有一个内部上拉电阻器,此上拉电阻器可在每个引脚上有选择性地被启用或禁止,这一特性仅适用于GPIO引脚,GPIO0—GPIO11引脚上的上拉电阻器在复位时并不启用,GPIO12—GPIO87引脚上的上拉电阻器在复位时被启用。对于F28335的这176个引脚,所用能够产生XINTF输出功能的引脚有8mA的驱动能力,即使引脚没有配置XINTF功能,也有此驱动能力;所有其他引脚有一个4mA的驱动能力。I/O引脚与5VCMOS、TTL芯片连接的方法:CMOS电路域TTL电路的性能比较见下表:参数CMOS4000系列TTL74LS系列UOH(min)/V4.62.7UOL(max)/V0.050.5UIH(min)/V3.52UIL(max)/V1.50.8表中UOH(min)是芯片输出高电平最小值UOL(max)是芯片输出低电平最大值UIH(min)是芯片输入高电平最小值UIL(max)是芯片输入低电平最大值F28335各引脚的输入电压范围为-0.3V—4.6V,输入高电平最小值为2V,最大值为VDDIO(3.465V(max)),输入低电平最大值为0.8V;输出电压范围为-0.3V—4.6V,输出高电平最小值为2.4V(此时驱动能力最大),输出低电平最大值为0.4V。通过上面的两个表格可以看到,若只考虑电平是否兼容,则F28335的引脚与5VTTL芯片可以直接相连;而F28335引脚不能与5VCMOS芯片直接相连。F28335引脚与5VCMOS芯片相连时需要用到电平转换芯片。TI公司推出的电平转换芯片中比较有代表性的有TXB0108、SN74LVC16245A。TXB0108的典型应用电路如下:但在实际的应用中还应考虑F28335引脚的驱动能力以及可以承受的灌电流的大小,F28335的驱动能力较差,引脚可承受的连续工作电流为2−+mA,组2引脚所承受的最大电流为8−+mA,其他I/O引脚的最大承受电流为4−+mA,且不能长时间维持在最大电流状态,因此在实际应用中,如果负载需要维持较大的正向或反向电流,需要在F28335引脚与负载之间增加驱动电路,常用的芯片有SN74LS245、SN74LVC16245A等(具体应用可参考这些芯片的数据手册)。总之,在F28335与其他芯片及负载连接时,要考虑电平兼容问题,和F28335引脚的驱动能力和所能承受灌电流的大小,具体应用时要根据F28335和所连芯片引脚的输入输出特性来决定是否需要增加电平转换芯片及驱动电路。参数F28335UIH(min)/V2VUIL(max)/V0.8VUOH(min)/V2.4VUOL(max)/V0.4V2.详述28335的从复位启动(仿真模式下)到响应某一外设PIE中断的过程,简述中断响应过程;说明用户应在此过程中做那些初始化工作;F28335在仿真模式下复位启动的过程:F28335最高时钟频率可达150MHz,而大部分存储设备的访问时间都很慢,尤其是串行非易失的存储设备,其访问时间最快也要几十ns。如果按照传统的方式,CPU到非易失存储设备读取指令然后执行,那么CPU将花费大量的读/写等待时间,从而影响系统运行的效率,无法满足复杂且实时性要求较高的系统需要。目前在实时性要求较高的系统中,普遍使用的程序运行方式是Boot引导方式。此时,将程序放在非易失的存储设备里,如片内Flash等,CPU复位后首先进入引导加载程序,将非易失存储器内的程序加载到内部SARAM中,然后根据引导加载程序指定的程序入口地址,在片内RAM中运行相应的程序,这就解决了高速CPU与低速设备之间的匹配问题,同时也提高了系统的整体效率。F28335的BootROM是位于片内地址空间0x3FE000至0x3FFFFF的一块8K*16的只读存储器,在出厂时BootROM中固化了定点、浮点数字表,引导加载程序,CPU中断向量表等内容。为了适应不同的系统要求,引导加载程序支持多种不同的引导方式,具体采用那种引导方式由GPIO87/XA15、GPIO86/XA14、GPIO85/XA13、GPIO84/XA12这四个引脚的状态决定。BootROM功能概述如下图:F28335复位后先进入InitBoot,在InitBoot中对一些寄存器进行配置,将F28335设置为F2833x模式,然后读CSM中设置的程序密码,之后调用SelectBootMode函数,再读取GPIO87/XA15、GPIO86/XA14、GPIO85/XA13、GPIO84/XA12这四个引脚的状态,决定boot方式。由boot方式决定是否调用BootLoader,如果我们选择了不需要调用BootLoader的boot方式,则EntryPoint由boot方式决定,之后调用ExitBoot函数,结束boot,转向EntryPoint指向的地址执行程序;如果我们选择的boot方式需要调用BootLoader,则调用相关的BootLoader(由boot方式决定),读取EntryPoint,然后加载数据和程序,之后调用BoottoSARAM函数,结束boot,转向EntryPoint指向的地址执行程序。在仿真模式下,仿真器可对相关的控制引脚进行配置,为方便调试,一般将程序写入SARAM中,直接在SARAM中运行,即使用BoottoSARAM的引导方式,BoottoSARAM引导方式的流程图如下:复位中断发生后,程序跳转到复位中断向量0x3FFFC0处执行,0x3FFFC0和0x3FFFC1中放着跳转到InitBoot的指令,InitBoot执行完后,调用SelectBootMode,根据仿真器设定的相关引脚状态,决定采用BoottoSARAM的boot方式,之后执行ExitBoot,执行完后,跳转到0x000000处,继续执行程序。我们在0x000000处放入一条跳转指令,指向用户程序的入口,这样CPU就开始执行用户编写的程序了。F28335复位启动(仿真模式下)后响应某一外设PIE中断的过程F28335的中断分三级,外设级,PIE级,CPU级。F28335有32个CPU中断,如下表(BootROM中CPU中断向量表):其中用户常用的为INT1至INT12这12个CPU中断,而外设可能发生的中断事件要多于32个,为使CPU能响应所有的外设中断,F28335设置了外设中断扩展模块PIE,PIE将INT1至INT12这12个CPU中断扩展为96个,分为12组,每组8个外设中断,对应一个CPU中断。F28335的中断向量列表可以映射到四个不同的存储单元,具体映射到那个存储单元由VMAP、M0M1MAP、ENPIE这几个控制位决定,具体关系如下图:其中M0Vector、M1Vector为TI测试时使用,我们可以把它当做一般的存储空间来使用,BROMVector中对我们有用的就一个复位中断,其它的可以暂不作深入研究。经常使用的为PIEVector。上电复位后,在InitBoot中将中断向量列表映射为BROMVector,在复位和引导完成后,我们应将中断向量列表映射为PIEVector并将其初始化。器件复位后中断向量列表的配置方法如下图:F28335复位,在boot完成后,CPU开始执行用户程序,若我们的程序想要CPU相应某一外设的中断,则在我们的程序中我们应该将ENPIE设置为1,使中断向量表映射为PIEVector,然后初始化PIE中断向量表,在外设级使能外设的相关中断,然后将外设对应的PIEIERx(PIE中断使能寄存器)的相关位设置为1,再将PIEIERx对应的CPU级中断使能寄存器IER的相关位设置为1,将INTM设置为0(开全局中断)。这样,完成这些初始化工作后,CPU就可以相应相关外设的中断了。CPU相应某一外设的具体流程如下图所示:在用户主程序的运行中,如果某一外设的中断事件发生,则其相应的中断标志位被置1,如果该外设的中断被使能,则会向PIE模块发出中断请求,PIE中断标志寄存器PIEIFRx相应位PIEIFRx.y被置1,如果相应的PIE中断被使能,即PIE中断使能寄存器PIEIER相应位PIEIERx.y被置1,则再检查PIE中断应答寄存器PIEACK相应为PIEACKx是否为0(PIEACKx为1表示CPU正在响应该组中断,禁止该组其他中断源向CPU发出中断请求;为0,表示该组的中断源可以向CPU发出中断请求),若PIEACKx为0,则置位PIEACKx和CPU中断标志寄存器IFR的相应位IFRx,向CPU发出中断请求,如果相应的CPU中断被使能,即相应的CP