DSP技术应用讲课_第1页
DSP技术应用讲课_第2页
DSP技术应用讲课_第3页
DSP技术应用讲课_第4页
DSP技术应用讲课_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

DSP技术应用南京航空航天大学自动化学院有关本课程学习的几点建议

本课程是一门实践性、应用性很强的学科仅仅听懂还不够,重在培养动手能力硬件/软件同样重要、不可偏废

硬件是系统的基础,软件是系统的灵魂本课程的前期基础课程是数字电路、微机原理、单片机原理及应用、数字信号处理这方面知识掌握得不够好的请自己补上预习、听课、复习、作业、实验环环都重要用科学的方法学习TMS320F28335概述1.DSP介绍2.TMS320F28335结构3.TMS320F28335中断系统4.TMS320F28335内存映射/BOOTROM5.F28335时钟与控制系统6.F28335I/O口7.F28335的串行通信接口(SCI)1.DSP介绍

(1)DSP芯片的分类DSP芯片主要可以按照下列两种方式进行分类。按数据格式分定点DSP芯片浮点DSP芯片按用途分通用型DSP芯片专用型DSP芯片

(2)DSP芯片的应用(1)信号处理——如数字滤波、自适应滤波、快速傅立叶变换、相关运算、谱分析、卷积、模式匹配、加窗、波形产生等;(2)通信——如调制解调器、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、传真、扩频通信、纠错编码、可视电话等;(3)语音——如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音存储等;(4)图形/图像——如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等;DSP芯片的应用(5)军事——如保密通信、雷达处理、声纳处理、导航、导弹制导等;(6)仪器仪表——如频谱分析、函数发生、锁相环、地震处理等;(7)自动控制——如引擎控制、声控、自动驾驶、机器人控制、磁盘控制等;(8)医疗——如助听、超声设备、诊断工具、病人监护等;(9)家用电器——如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/视等。DSP的应用正在日益发展PDA巡航导弹移动通信系统80%的手机采用了TI的DSPCore还可以举出很多例子医院用的B超、CT、核磁共振卫星遥感遥测天气预报、地震预报、地震探矿风洞试验数字化士兵、数字化战争…...DSP的应用领域取决于设计者的想象空间C2000™DSPTIC55x™DSP核心:

世界上最低功耗性能比mW/MIPS的DSPs以达到0.05mW/MIPs的最低功耗性能比而具有最长的电池寿命。最佳的代码密度兼容C54x™DSP软件工作频率将达到1.1GHz最好的DSP编译器,便于使用兼容C62x™DSP软件可扩展性能达到400MIPs

最佳的C/C++控制代码效率兼容C24x™DSP软件C5000™DSPC6000™DSPTIC28x™DSP核心:

世界上第一颗针对控制进行优化的DSPTIC64x™DSP核心:

世界上具有最高性能的DSPsMotorControl

DSPPersonalDSPBroadbandInfrastruc-tureDSPTI公司主推的三大DSP系列C2000系列DSP子系列C2xx子系列:16位定点DSP、20MIPS代表器件:TMS320F206PZC24x子系列:16位定点DSP、20MIPS代表器件:TMS320F240LF240xA子系列:16位定点DSP、40MIPS代表器件:TMS320LF2407AF28x子系列:32位定点DSP、150MIPS代表器件:TMS320F2812、TMS320F2810F283x子系列:32位浮点DSP、150MIPS代表器件:TMS320F28335UpTo40MIPSControlPerformanceHigh-PrecisionControlC242F241LC2404ALF2401ALC2402AMulti-Function,Appliance&ConsumerControlF240F243LC2406ALF2402ALF2403ALF2406ALF2407AF2810128-LQFPF2812176-LQFPF2812179-u*BGA150MIPS!SoftwareCompatibleHigh-endDerivativesApplicationspecificversionsScaledDownversionsC2000系列DSPRoadmapF28335176-PGF2.TMS320F28335结构TMS320F28335BlockDiagram32x32bitMultiplierSectoredFlashA(18-0)D(15-0)ProgramBusDataBusRAMBootROM2232-bitAuxiliaryRegisters332bitTimersRealtimeJTAGCPURegisterBusR-M-WAtomicALUPIEInterruptManager323232EventManagerAEventManagerB12-bitADCWatchdogMcBSPCAN2.0BSCI-ASCI-B/CSPIGPIOI2CTMS320F28335

DSP具有150MHz的高速处理能力,具备32位浮点处理单元,6个DMA通道支持ADC、McBSP和EMIF,有多达18路的PWM输出,其中有6路为TI特有的更高精度的PWM输出(HRPWM),12位16通道ADC。与前代DSC相比,平均性能提升50%,并与定点C28x控制器软件兼容。得益于F28335浮点运算单元,从而简化软件开发,缩短开发周期。降低开发成本。采用高性能的静态CMOS技术主频达150MHZ(6.67ns)低功耗设计,1.9V内核电压,3.3VI/O电压Flash编程电压为3.3V支持JTAG边界扫描接口高性能32位CPU16*16位和32*32位的乘法累加操作16*16位的双乘法累加器哈佛总线结构快速中断响应和处理能力统一寻址模式4M的程序/数据寻址空间高效的代码转换功能片上存储器最多达256KX16位的Flash存储器最多达128KX16位的ROM1KX16位的OTPROM34KX16位的单周期访问RAM(SARAM)引导(BOOT)ROM(8KX16)带有软件启动模式数学运算表16位或32位外部存储器扩展接口多达2M的寻址空间时钟和系统控制支持动态改变锁相环的倍频系数片上震荡器看门狗定时模块GPI00-GPI063能被设置位8个外部中断外设中断扩展模块(PIE)支持58个外设中断三个32位CPU定时器128位保护密码保护Flash/OTP/ROM防止系统固件被盗取增强的电机控制外设多达18通道的PWM输出多达6通道的HRPWM输出6个捕捉单元,捕捉外部事件2个正交脉冲编码电路8个32位/6个16位定时器串口通信外设1个串行外设接口模块(SPI)3个UTAR接口模块(SCI)2个增强型的eCAN2.0B接口模块2个多通道缓冲串口(MBSP)1个12C总线接口12位模数转换模块80ns转换时间2X8通道复用输入接口两个采样保持电路单/连续通道转换高达88个可配置通用目的I/O引脚先进的仿真调试功能硬件支持适时仿真功能低功耗模式和省电模式支持IDLE,STANDBY,HALT模式禁止外设独立时钟179引脚BGA封装或176引脚LQFP封装SEED-DEC28335capAD/pwm扩展接口cpu串口cpldRTC时钟usb电源接口DA接口Can口SRAMtMS320F28335@150MHzDSP总线SRAM(最大1Mx16位)USB2.0USB2.0接口4通道D/AD/A输出扩展总线(数据、地址、SPI、McBSP)片上存储器:FLASH:256Kx16SRAM:34Kx18BootROM:8Kx16OTPROM:1Kx16片上外设EPWM输出:12通道HRPWM:6通道ECAP/APWM:6通道QEP:2通道A/D:16通道SCI:3通道McBSP/SPI:2通道SPI:1通道Ecan:2通道IIC:1通道DMA:6通道GPIO(复用):88PWM脉冲输出GAP/QEP输入A/D模拟输入RS232/RS485CAN总线RTC+EEPROM原理框图为什么选择SEED-DEC28335采用业界首款浮点数字信号控制器,整体性能提升50%高集成度,降低系统成本与其他采用浮点芯片板卡相比(DEC33、DEC6713),集成度更高丰富接口:ePWM、AD、DA、CAN、USB2.0、RS232/422/485TI第一次在数字信号控制器中增加浮点处理单元性能比现有控制芯片提升50%,满足越来越高的算法需求简化软件开发,加快上手速度无需再将程序转换为定点,节省开发时间提供完善的用户手册和源程序,缩短新芯片的学习时间CPU:TMS320F28335处理器性能300MFLOPSat150MHzSingle-cycle32-bitMAC6-channelDMAsupportforEMIF,ADC,McBSP存储器512KBflashand68KBRAMConfigurable16-or32-bitEMIF控制外设PWMoutputsinterfacesforthree

3-phasemotors6High-resolutionPWMoutputsHighest-speedon-chipADC通讯接口EachMcBSPconfigurableasSPICAN2.0bwith32mailboxesI2Cat400Kbps开发套件SEED-DEC28335+SEED-XDSusb2.0CodeComposerStudio™IDEV3.3SoftwarelibrariesTMS320F28335Real-TimeJTAG32-bit

Timers(3)C28xTM32-bitDSC32x32-bit

MultiplierR

M

WAtomicALU

InterruptManagementMemoryBusCodesecurity12-bitADCSPI2CAN3SCI2McBSP512KB

Flash68KBRAM6CAP12PWM(6HRPWM)DMA32-bitFloating-PointUnit88GPIOI²CBootROM16/32-bitEMIF2QEPPeripheralBusF2812主要指标150MHzEMIFMcBSP176-pinPackageF2808主要指标New12-bitADCePWMs,eCAP,eQEPI2CDualCAN新

F28335主要指标300MFLOPSDMA512KBFlash68KBRAM32-bitEMIFTMS320F2812SEED-DEC28335结构和配置

板上芯片总结DSP:TMS320F28335电源:TPS75733KTT,TPS54310看门狗:TPS3823-33SRAM:CY7C1021CV33-10ZCDAC:AD5725CAN驱动:VP230两路RS232/422/485串口:MAX32321USB2.0:CY7C68001RTC+EEPROM:X1226CPLD:xinlinxc9572xlF2833x性能提升50%367MHz236MHz207MHz同样150Mhz主频,F28335比F2812性能至少提升50%!片上外设12通道EPWM脉冲输出其中6通道支持HRPWM6路ECAP/APWM输入,2路QEP电机控制16通道12位A/D模拟量输入片内2X8通道、12-位分辨率、80ns转换时间、0-3V量程2路异步串口1路为:RS232、1路为:RS232/422/485可配置1路CANF28335的2个CAN口中的一路,CAN总线收发芯片SN65HVD230其他外设SRAM最大支持1MB1路USB2.0480M4通道12位D/A模拟量输出±10v量程、10us建立时间RTC实时时钟+EEPROM通过1路IIC总线接口,连接到X1226扩展总线分为存储总线和控制总线SEED-DEC28335特色及应用

例程adc_dmaDACCANeqep_freqcalGpioMcbspeqep_freqcalRtcsci_loopbackSpiUsbFlash_pI2CSEED-DEC28335特色及应用

文档TMS320x28x,28xxxSerialPeripheralInterface(SPI)ReferenceGuide(Rev.D)TMS320x28xx,28xxxEnhancedCapture(ECAP)ModuleReferenceGuide(Rev.A)TMS320x28xx,28xxxEnhancedControllerAreaNetwork(eCAN)ReferenceGuide(Rev.E)TMS320x28xx,28xxxEnhancedPulseWidthModulator(ePWM)Module(Rev.C)TMS320x28xx,28xxxEnhancedQuadratureEncoderPulse(eQEP)ModuleRG(Rev.A)TMS320x28xx,28xxxInter-IntegratedCircuit(I2C)ReferenceGuide(Rev.A)TMS320x28xx,28xxxSerialCommunicationsInterface(SCI)ReferenceGuide(Rev.B)TMS320x280xHigh-ResolutionPulseWidthModulator(HRPWM)ReferenceGuide(Rev.A)TMS320x2833xAnalog-to-DigitalConverter(ADC)ReferenceGuideTMS320x2833xBootROMTMS320x2833xDirectMemoryAccess(DMA)ReferenceGuideTMS320x2833xExternalInterface(XINTF)ReferenceGuideTMS320x2833xMultichannelBufferedSerialPort(McBSP)User'sGuideTMS320x2833xSystemControlandInterruptsReferenceGuideSEED-DEC28335特色及应用多种嵌入式DSP应用电机控制、仪器、仪表电力系统RTU、FTU工业现场应用马达控制SEED-DEC28335竞争对手闻亭数字()有一款F28335的板卡,TDS28335SDT

*256KbitSRAM*16路12-bitADC,16路PWM输出、同步、异步通信接口*RS-232、422、485接口*扩展地址、数据、控制总线,SPI、SCI扩展接口、eCAN(带收发驱动)总线结构

*4路的DAC7724U转换时间最小10微秒,12Bit精度,输出电压±10V与DEC28335比较,没有RTC,不是工业级设计,多了音频接口TMS320F28335CPUCore32-bit浮点DSP32x32bitMAC2次单周期16x16MAC(DMAC)快速中断响应机制单周期读、写、修改指令8级流水线,完全避免硬件流水线冲突向上代码兼容性DataBus32-bitAuxiliaryRegisters332bitTimersRealtimeJTAGCPURegisterBusR-M-WAtomicALUProgramBusPIEInterruptManager32x32bitMultiplierTMS320F28335InternalBusStructureData-writeAddressBus(32)ProgramAddressBus(22)ExecutionR-M-WAtomicALUReal-TimeEmulation&TestEngineProgram-readDataBus(32)JTAGProgramDecoderPCXAR0toXAR7SPDP@XARAUMPY32x32XTPACCALURegistersDebugRegisterBus/ResultBusData/Program-writeDataBus(32)Data-readAddressBus(32)Data-readDataBus(32)MemoryData

(4G*16)Program(4M*16)StandardPeripheralsExternalInterfacesXT(32)orT/TLMULTIPLIER32x32orDual16x16P(32)orPH/PL

AH(16)TMS320F28335MultiplierandALU/ShiftersDataBusDataBusProgramBusALU(32)3232323232AL(16)3232•16/328/16ShiftR/L(0-16)ACC(32)AH.MSBAH.LSBAL.MSBAL.LSB32ShiftR/L(0-16)32ShiftR/L(0-16)32168/16/32来至于寄存器操作码数据存储区操作数2乘法器结果操作数1TMS320F28335Pointer,DPandMemoryDP(16bit)访问65536个数据页4M以上的数据存储区DP不能访问XAR0XAR1XAR2XAR3XAR4XAR5XAR6XAR7ARAUMUXDataMemoryMUXDP(16)DataBusProgramBus6LSBfromIR2232XAR15-0=AR7-0XAR31-16F1F2D1D2R1R2ETMS320F28335Pipeline流水线自动保护机制8-stagepipelineF1F2D1D2R1R2EF1F2D1D2R1R2EF1F2D1D2R1R2EF1F2D1D2R1R2EF1F2D1D2R1R2EF1F2D1D2R1R2XF1F2D1D2R1R2XABCDEFGWWWWWWWWE&GAccesssameaddressR1

R2E

WD2R1R2EWF1:取指令地址F2:取指令内容D1:32/16判断边界D2:取指译码R1:操作数地址R2:取操作数E:指令执行W:写内容回存储单元HCodeSecurityModule保护知识产权用户自定义密码128bit映射到存储空间:0x000AE0–0x000AE7寄存器受到EALLOW保护128-bits=2128=3.4x1038

1次/2cycle猜测所有的密码需要1.4*10E23年LOSARAM(4K)L1SARAM(4K)OTP(1K)FLASH(128K)reserved0x0080000x0090000x00A0000x3D78000x3D8000128-BitPasswordreserved0x3D7C000x3F7FF8-0x3F7FFFCSMPasswordLocations(PWL)TMS320F28335FastInterruptResponseManager支持96个独立的中断直接访问专用RAM(向量表)自动标志更新自动现场保护软件激发(INTR/TRAP)可屏蔽中断-顺序执行非屏蔽中断/软立即执行28xCPUInterruptlogic28xCPUINTMIFRIER96PeripheralInterrupts12x8=9612interruptsINT1toINT12PIERegisterMapPIEmoduleFor96interruptsT ST0 AH ALPH PLAR1(L) AR0(L)DP ST1DBSTAT IERPC(msw) PC(lsw)AutoContextSaveC28x/C24xModesC2xLPMode 1 1C28xMode 1 0C27X(default) 0 0Reserved 0 1

OBJMODEAMODEModeBitsCompilerOptionModeTypeC24xsource-compatiblemode:允许运行C24的代码(重新编译过的)使用C28代码产生工具C28xmode:可以使用C28的所有特征编译手段如果用户从外存引导就必须是28模式或者C2xLP-v28-v28-m20-v27Reset–BootloaderResetOBJMODE=0AMODE=0ENPIE=0VMAP=1BootdeterminedbystateofGPIOpinsResetvectorfetchedfrombootROM0x3FFFC0XMPNMC=0(microcomputermode)

ExecutionEntryPointH0SARAMBootloadersetsOBJMODE=1AMODE=03.TMS320F28335

InterruptTMS320F28335中断源TMS320F28335CORE2个不可屏蔽中断/RSNMI14个可屏蔽中断(INT1–INT14)INT1INT2INT3INT4INT5INT6INT7INT8INT9INT10INT11INT12INT13INT14RSNMITMS320F28335复位中断WatchdogTimerRSpinactiveToRSpinRSC28xCoreReset–BootLoaderResetOBJMODE=0AMODE=0ENPIE=0VMAP=1M0M1MAP=1BootdeterminedbystateofGPIOpinsResetvectorfetchedfrombootROM0x3FFFC0XMPNMC=1(microprocessormode)ResetvectorfetchedfromXINTFzone70x3FFFC0XMPNMC=0(microcomputermode)

Execution BootloadingEntryPoint RoutinesFLASH SPIH0SARAM SCI-AOTP ParallelloadNotes:F2810XMPNMCtiedlowinternaltodeviceXMPNMCreferstoinputsignalMP/MCisstatusbitinXINTFCNF2registerXMPNMConlysampledatresetBootloader模式GPIOpinsF4F12F3F21xxxflash0x3F7FF6,用户必须已经编写了分支指令重定位程序执行*

0010H0SARAM0x3F8000*0001OTP0x3D7800*01xx从外部EEPROM调用SPL_Boot0011从SCI-A调用SCI-Boot0000从GPIOB口调用Parallel_Boot*BootROMsoftwareconfiguresthedeviceforTMS320F28335modebeforejumpReset引导过程H0SARAM(8K)FLASH(128K)OTP(2K)0x3F7FF60x3D78000x3D80000x3F80000x3FF0000x3FFFC0BootROM(4K)BROMvector(32)0x3FFC00BootCode

RESETExecutionEntryPointDeterminedByGPIOPinsBootloadingRoutines(SPI,SCI-A,ParallelLoad)0x3FFC00TMS320F28335中断源EVandNon-EVPeripherals(EV,ADC,SPI,SCI,McBSP,CAN)内部中断源外部中断源XINT1XINT2PDPINTxRSXNMI_XINT13NMIC28xCOREINT1INT13INT2INT3INT12INT14RS•••PIE(PeripheralInterruptExpansion)TINT2TINT1TINT0IFR中断标志寄存器可屏蔽中断处理过程101(IFR)“Latch”INT1INT2INT14CoreInterruptC28xCore(INTM)“GlobalSwitch”(IER)“Switch”中断使能寄存器(INTM以及IER被使能了才能响应)中断标志寄存器(IFR)RTOSINTDLOGINTINT14INT13INT12INT11INT10INT989101112131415INT8INT7INT6INT5INT4INT3INT2INT101234567中断确定: IFRBit=1中断未确定: IFRBit=0DINT/EINT,禁止中断写IFR时产生中断,中断具有优先级CPU识别中断之后IFR由CPU复位复位状态为0/***Manualsetting/clearingIFR***/externcregistervolatileunsignedintIFR;IFR|=0x0008; //setINT4inIFRIFR&=0xFFF7; //clearINT4inIFR中断使能寄存器(IER)RTOSINTDLOGINTINT14INT13INT12INT11INT10INT989101112131415INT8INT7INT6INT5INT4INT3INT2INT101234567使能:SetIERBit=1禁止:ClearIERBit=0DINT/EINT,禁止中断复位清零/***InterruptEnableRegister***/externcregistervolatileunsignedintIER;IER|=0x0008; //enableINT4inIERIER&=0xFFF7; //disableINT4inIER中断全局使能INTM用来做全局的使能/禁止中断:使能: INTM=0禁止: INTM=1(resetvalue)INTM只能被汇编语言修改:INTMST1Bit0/***GlobalInterrupts***/asm(“CLRCINTM”);//enableglobalinterruptsasm(“SETCINTM”);//disableglobalinterruptsPeripheralInterruptExpansion-PIEPeripheralInterrupts12x8=96IFRIERINTM28xCore28xCoreInterruptlogicPIEmodulefor96InterruptsINT1.xinterruptgroupINT2.xinterruptgroupINT3.xinterruptgroupINT4.xinterruptgroupINT5.xinterruptgroupINT6.xinterruptgroupINT7.xinterruptgroupINT8.xinterruptgroupINT9.xinterruptgroupINT10.xinterruptgroupINT11.xinterruptgroupINT12.xinterruptgroupINT1–INT1212Interrupts96

INT1.1INT1.2INT1.8101••••••INT1PIEIFR1PIEIER1InterruptGroup1INT13(TINT1/XINT13)INT14(TINT2)NMIPIE寄存器INTx.2INTx.3INTx.4INTx.5INTx.6INTx.7INTx.8INTx.10123456715-8reservedPIEIFRxregister(x=1to12)INTx.2INTx.3INTx.4INTx.5INTx.6INTx.7INTx.8INTx.10123456715-8reservedPIEIERxregister(x=1to12)reservedPIEACKxPIEInterruptAcknowledgeRegister(PIEACK)1243567890101115-12ENPIEPIEVECTPIECTRLregister015-1#include“DSP28_Device.h”PieCtrlRegs.PIEIFR1.bit.INTx4=1;//manuallysetIFRforXINT1inPIEgroup1PieCtrlRegs.PIEIER3.bit.INTx5=1;//enableCAPINT1inPIEgroup3PieCtrlRegs.PIEACK.all=0x0004;//acknowledgethePIEgroup3PieCtrlRegs.PIECTRL.bit.ENPIE=1;//enablethePIEPrio Vector Offset复位时默认中断向量表Memory0BROMVectors

64W0x3FFFC00x3FFFFFPIEVectors

256W0x000D00

4 2 3DlogIntRtosIntEmuIntNMI020406080A0C0E10121416181A1C1E2022242628-3E

- -IllegalUser1-12

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19Int1Int2Int3Int4Int5 Int6 Int7Int8Int9Int10Int11Int12Int13Int14

1Reset00DefaultVectorTableRemappedwhenENPIE=1PIEvectorgeneratedbyconfigToolUsedtoinitializePIEvectorsPIEVectorMapping(ENPIE=1)CPUvectorsareremappedto0x000D00inDataspacePIEvectorspace-0x000D00–256WordmemoryinDataspaceINT130x000D1AXINT1InterruptVectorINT140x000D1CTimer2–RTOSVectorDatalog0x000D1DDataloggingvector………………USER110x000D3EUserdefinedTRAPINT1.10x000D40PIEINT1.1interruptvector………………………………INT12.10x000DF0PIEINT12.1interruptvectorINT1.80x000D4EPIEINT1.8interruptvectorINT12.80x000DFEPIEINT12.8interruptvector………………PIEvectoraddressPIEvectorDescriptionNotused0x000D00ResetVectorNeverFetchedHere

VectornameINT10x000D02INT1re-mappedbelow………………re-mappedbelow

INT120x000D18INT12re-mappedbelow

RESETandINT1-INT12vectorlocationsareRe-mappedTMS320F28335PIEInterruptAssignmentTableINTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.1INT1WAKEINTTINT0ADCINTXINT2XINT1PDPINTBPDPINTAINT2T1OFINTT1UFINTT1CINTT1PINTCMP3INTCMP2INTCMP1INTINT3CAPINT3CAPINT2CAPINT1T2OFINTT2UFINTT2CINTT2PINTINT4T3OFINTT3UFINTT3CINTT3PINTCMP6INTCMP5INTCMP4INTINT5CAPINT6CAPINT5CAPINT4T4OFINTT4UFINTT4CINTT4PINTINT6MXINTMRINTSPITXINTASPIRXINTAINT7INT8INT9SCITXINTBSCIRXINTBSCITXINTASCIRXINTAINT10INT11INT12ECAN0INTECAN1INTDeviceVectorMapping-Summary_c_int00:...CALLmain()main(){initialization();...}Initialization(){EALLOWLoadPIEVectorsEnablethePIEIEREnablePIECTRLEnableCoreIEREnableINTMEDIS}PIEVectorTable256WordRAM0x000D00–0DFFRESETResetVector<0x3FFFCO>=Boot-ROMCodeFlashEntryPoint<0x3F7FF6>=LB_c_int00UserCodeStart<_c_int00>MPNMC=0(on-chipROMmemory)ResetVector<0x3FFFCO>=_c_int00UserCodeStart<_c_int00>MPNMC=1(externalmemoryXINTF)中断响应过程CPU动作 描述T ST0 AH ALPH PLAR1 AR0DP ST1DBSTAT IERPC(msw) PC(lsw)寄存器PUSH堆栈

14个寄存器被自动保存(..)

0

®

IFR(bit) 请IFR位

0

®

IER(bit) 清IER位

1

®

INTM/DBGM 禁止全局中断/Debug事件

Vector

®

PC加载中断向量表给PC指针

Clearotherstatusbits

清LOOP,EALLOW,IDLESTAT4.TMS320F28335内存映射/BOOTROMTMS320F28335内存映射TMS320F28335初始化引导汇编程序InitBootRESET初始化器件:OBJMODE=1AMODE=0M0M1MAP=1DP=0OVM=0SPM=0SP=0x000400

DummyReadCSMpasswordsCallBootModeSelectExitBootFlash的启动顺序H0SARAM(8K)0x3F7FF60x3D80000x3F80000x3FF0000x3FFFC0BootROM(4K)BROMvector(32)0x3FFC00BootCodeRESET0x3FFC00{SCANGPIO}FLASH(128K)Passwords(8)_c_int00LBC–startroutine“rts2800_ml.lib”“user”codesections_c_int00Boot.asmmain(){……return;}2345116or32dispatched1664Aligned64-bitfetch2-leveldeepfetchbuffer64C28xCoredecoderunit加速Flash执行速度-流水线FlashPipelineEnable

0=disable(default) 1=enableENPIPEreserved1501FOPT@0x000A80CCS编程插件CodeSecurityModule(CSM)受CSM保护的存储区:L0、L1、OTP、Flash在受保护区域里面运行的程序才能读写限制区的数据任何其他的数据读写都被拒绝:JTAG调试,ROM引导,运行在片外或者片内非保护区的程序LOSARAM(4K)L1SARAM(4K)OTP(1K)FLASH(128K)reserved0x0080000x0090000x3D78000x3D8000reserved0x00A0000x3D7C00CSMRegistersAddressNameResetValue Description0x000AE0KEY00xFFFF 128位KEY寄存器的低位字0x000AE1KEY10xFFFF 128位KEY寄存器的第二个字0x000AE2KEY20xFFFF 。。0x000AE3KEY30xFFFF 。。0x000AE4KEY40xFFFF 。。0x000AE5KEY50xFFFF 。。0x000AE6KEY60xFFFF 。。0x000AE7KEY70xFFFF 128位KEY寄存器的高位字0x000AEFCSMSCR0xFFFF CSM状态与控制寄存器KeyRegisters(EALLOWprotected)AddressNameResetValue Description0x3F7FF8PWL0userdefined 128位密码的低位字0x3F7FF9PWL1userdefined 。。0x3F7FFAPWL2userdefined 。。0x3F7FFBPWL3userdefined 。。0x3F7FFCPWL4userdefined 。。0x3F7FFDPWL5userdefined 。。0x3F7FFEPWL6userdefined 。。0x3F7FFFPWL7userdefined 128位密码的高位字PWLinmemory–reservedforpasswordsonlyCSM的安全解锁上电或者复位的时候CSM被锁的CSM的解锁:对FLASH的每个密码执行一次哑读操作(8次)往8个KEY寄存器写入正确的密码新的Flash器件(PWL都是0xFFFF):对PWL进行一次读写,使得器件工作在非锁定模式volatileint*CSM=0x000AE0;volatileint*PWL=0x3F7FF8;volatileinttmp;IntI;//哑读密码位置8次For(i=0;i<8;i++)tmp=PWL++;//让KEY寄存器写密码Asm(“EALLOW”)*CSM++=PAWWWORD0;……*CSM++=PAWWWORD7;Asm(“EDIS”)TMS320F28335SCI引导函数代码从SCIA或者XINTF传输到内部仅支持8位的输入数据流SCI自动波特率特性较低波特率(防止自锁)TMS320F28335SCI-AHost/e.g.PC‘sCOM1RS232e.g.TexasMAX232RS232TxDTxDRxDRxD32TMS320F28335并行引导函数TMS320F28335GPIOHost/e.g.PC‘sCOM1GPIO-D616GPIO-B0..B15GPIO-D5GPIO-D6GPIO-D51234561:GPIO6拉低表示准备好接受数据2:主机拉低GPIO5拉低通知DSP数据准备好,DSP的Bootloader等待主机将数据发送到GPIOB3:DSP拉高GPIO6通知主机完成读操作4:DSP等待主机拉高GPIO5确认DSP操作5:DSP拉低GPIO6指示传送更多的数据TMS320F28335SPIBootLoaderFunctionTMS320F28335SPISerialEEPROMDINDOUTCLK/CSSPI-MOSISPI-SOMISPI-CLKGPIO–F3STM95080–seeModule71、支持8bit宽度,不支持16bit宽度2、BootROM的数据必须被放在0地址5.F28335时钟与控制系统TMS320F28335Osc/PLL时钟模块

PLLCR@7021hDIV3DIV2DIV1DIV0 ClockFrequency(CLKIN)0000 OSCCLKx1/2(noPLL)0001 OSCCLKx1/20010 OSCCLKx2/20011 OSCCLKx3/20100 OSCCLKx4/20101 OSCCLKx5/20110 OSCCLKx6/20111 OSCCLKx7/21000 OSCCLKx8/21001 OSCCLKx9/21010 OSCCLKx10/2PLLCRbits15:4reservedcrystalPLLClockModule4-bitPLLSelectX1/CLKINX2XTALOSCWatchdogModule/2PLLCLKOSCCLK•TMS320F28335CoreCLKINMUXXF_XPLLDIS10SYSCLKOUTHISPCPLOSPCPHSPCLKLSPCLK••1、PLL旁路2、PLL使能外设时钟控制寄存器

PCLKCR@701ChModuleEnableClockBit0=disable1=enable0reservedreserved1234567EVAENCLKEVBENCLKreservedADCENCLKreservedreservedECANENCLKSPIAENCLKSCIBENCLK89101112131415reservedSCIAENCLKMCBSPENCLKreservedreservedHSPCLKLSPCLK高/低速外设时钟预定标寄存器

HISPCP@701Ah/LOSPCP@701Bh0215-3HSPCLKreservedH/LSPCLK2H/LSPCLK1H/LSPCLK0PeripheralClockFrequency000 SYSCLKOUT/1001 SYSCLKOUT/2(defaultHISPCP)010 SYSCLKOUT/4(defaultLOSPCP)011 SYSCLKOUT/6100 SYSCLKOUT/8101 SYSCLKOUT/10110 SYSCLKOUT/12111 SYSCLKOUT/140215-3LSPCLKreserved看门狗定时器如果CPU崩溃,则复位系统看门狗计数器独立与CPU如果计数器溢出则复位或中断被触发为防止计数器溢出,CPU必须周期性的向看门狗KEY寄存器写入0X55+0XAA序列在复位之后(30M外部时钟)3ms之内看门狗必须被启用或者禁止看门狗定时器模块6-BitFree-RunningCounterCLR/2/4/8/16/32/64OSCCLKSystemReset101100011010001000111110••••8-BitWatchdogCounterCLROne-CycleDelayWatchdogResetKeyRegister55+AADetector•GoodKeyBadKey101••••//33WDCR.2-0WDCR.6WDPSWDDISWDCR.7WDFLAGWDCNTR.7-0WDKEY.7-0WDCR.5-3WDCHK2-0BadWDCRKey/512OutputPulseWDRSTWDINTSCSR.1WDENINT•••SCSR.0WDOVERRIDE看门狗定时控制寄存器

WDCR@7029hWDFLAGWDDIS76543210WDCHK1WDCHK0WDPS2WDPS1WDPS0WDCHK2LogicCheckBitsWriteas101orresetimmediatelytriggeredWDPrescaleSelectionBitsWatchdogDisableBit(FunctionsonlyifWDOVERRIDEbitinSCSRisequalto1)reserved15-8 WDFlagBitGetssetwhentheWDcausesaresetWritinga1clearsthisbitWritinga0hasnoeffect看门狗复位密钥寄存器

WDKEY@7025h允许写入的数值:55h–

在AAH之后的写入55使能计数器AAh–

如果复位使能则计数器清零写入其他任何值将复位CPUreservedD776543210D6D5D4D3D2D1D015-8WDKEY写操作SequentialStep1234567891011ValueWrittentoWDKEYAAhAAh55h55h55hAAhAAh55hAAh55h23hResultNoactionNoactionWDcounterenabledforresetonnextAAhwriteWDcounterenabledforresetonnextAAhwriteWDcounterenabledforresetonnextAAhwriteWDcounterisresetNoactionWDcounterenabledforresetonnextAAhwriteWDcounterisresetWDcounterenabledforresetonnextAAhwriteCPUresettriggeredduetoimproperwritevalue系统控制和状态寄存器

SCSR@7022hWDOverride(protectbit)AfterRESET-bitgivesuserabilitytodisableWDbysettingWDDISbit=1inWDCR

clearonlybitanddefaultsto1afterreset0=protectsWDfrombeingdisabledbys/w

bitcannotbesetto1bys/w(clear-onlybywriting1)1=(defaultvalue)allowsWDtobedisabledusingWDDISbitinWDCR

oncecleared,bitcannotsetto1bys/w01215-3WDOVERRIDEWDENINTWDINTSreservedWDEnableInterruptWDInterruptStatus(readonly)0=active1=notactive0=WDgeneratesaDSPreset1=WDgeneratesaWDINTinterrupt低功耗模式LowPowerModeCPULogicClockPeripheralLogicClockWatchdogClockPLL/OSCNormalRunIDLESTANDBYHALTonoffoffoffononoffoffonononoffonononoff低功耗方式控制0寄存器

LPMCR0@701Eh017-215-8LPM0LPM1QUALSTDBYreservedLowPowerModeEntering1.SetLPMbits2.Enabledesiredexitinterrupt(s)3.ExecuteIDLEinstruction4.ThePowerdownsequenceofthehardwaredependsonLPmodeLowPowerModeSelection00=Idle01=Standby1x=HaltQualifybeforewakingfromSTANDBYmode000000=2OSCCLKs000001=3OSCCLKs111111=65OSCCLKS.........低功耗模式控制1寄存器

LPMCR1@701FhWakedevicefromSTANDBYmode0=disable1=enable0WDINTSCIRXBC2TRIPC5TRIPT3CTRIP123456789101112131415XINT1XNMIT2CTRIPT1CTRIPC3TRIPT4CTRIPC4TRIPC1TRIPC6TRIPSCIRXACANRXAIDLESTANDBYHALTRESETyesyesyesExternalorWakeupInterruptsyesyesnoyesnonoExitInterruptLowPowerModeEnabledPeripheralInterruptsNote:ExternalorWakeupincludeXINT1,PDPINT,TxCTRIP, CxTRIPNMI,CAN,SPI,SCI,WD低功耗模式退出6.F28335I/O口TMS320F28335GPIOMUX/DIR寄存器Address Register Name 70C0h GPAMUX GPIOAMuxControlRegister70C1h GPADIR GPIOADirectionControlRegister70C2h GPAQUAL GPIOAInputQualificationControlRegister70C4h GPBMUX GPIOBMuxControlRegister70C5h GPBDIR GPIOBDirectionControlRegister70C6h GPBQUAL GPIOBInputQualification

温馨提示

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

评论

0/150

提交评论