1、简介:德州仪器所生产的 TMS320F2812 数字讯号处理器是针对数字控制所设计的 DSP,整合了 DSP 及微控制器的最佳特性,主要使用在嵌入式控制应用,如数字电机控制(digital motor control, DMC)、资料撷取及 I/O 控制(data acquisition and control, DAQ)等领域。针对应用最佳化,并有效缩短产品开发周期,F28x 核心支持全新 CCS 环境的 C compiler,提供 C 语言中直接嵌入汇编语言的程序开发介面,可在 C 语言的环境中搭配汇编语言来撰写程序。值得一提的是, F28x DSP 核心支持特殊的 IQ-math 函式库
2、,系统开发人员可以使用便宜的定点数 DSP 来发展所需的浮点运算算法。F28x 系列 DSP 预计发展至 400MHz,目前已发展至 150MHz 的 Flash 型式。1.高性能静态 CMOS 制成技术(1)150MHz(6.67ns 周期时间 )(2)省电设计(1.8VCore,3.3VI/O)(3)3.3V 快取可程序电压2.JTAG 扫描支持3.高效能 32BitCPU(1)16x16 和 32x32MAC Operations(2)16x16Dual MAC(3)哈佛总线结构(4)快速中断响应(5)4M 线性程序寻址空间(LinearProgramAddressReach)(6)4M
3、 线性数据寻址空间(LinearDataAddressReach)(7)TMS320F24X/LF240X 程序核心兼容4.芯片上(On-Chip)的内存(1)128Kx16 Flash(4 个 8Kx16,6 个 16Kx16)(2)1Kx16OTPROM(单次可程序只读存储器)(3)L0 和 L1:2 组 4Kx16 SARAM(4)H0:1 组 8Kx16SARAM(5)M0 和 M1: 2 组 1Kx16 SARAM共 128Kx16 Flash,18Kx16 SARAM5.外部内存接口(1)支持 1M 的外部内存(2)可程序的 Wait States(3)可程序的 Read/Writ
4、e StrobeTi 最小 g(4)三个独立的芯片选择(Chip Selects)6.频率与系统控制(1)支持动态的相位锁定模块(PLL)比率变更(2)On-Chip 振荡器(3)看门狗定时器模块7.三个外部中断?8.外围中断扩展方块(PIE) ,支持 45 个外围中断9.128 位保护密码(1)保护 Flash/ROM/OTP 及 L0/L1SARAM(2)防止韧体逆向工程10.三个 32 位 CPU Timer11.电动机控制外围(1)两个事件管理模块(EVA ,EVB)(2)与 240xADSP 相容12. (1)同步串行外围接口 SPI 模块(2)两个异步串行通讯接口 SCI 模块,标
5、准 UART(3)eCAN(Enhanced Controller Area Network)(4)McBSP With SPI Mode13.16 个信道 12 位模拟-数字转换模块(ADC)(1)2x8 通道的输入多任务(2)两个独立的取样-保持(Sample-and-Hold)电路(3)可单一或同步转换(4)快速的转换率:80ns/12.5MSPS图 1TMS320F2812 功能方块图。2.2TMS320F2812 硬件结构介绍2.2.1OSC 与 PLL 方块F2812 芯片上设计了一个相位锁定模块(PLL),这个模块将会提供整个芯片所需频率源。PLL 模块方块图如图 2 所示。PL
6、L提供了 4 位(PLLCR3:0) 的 PLL 倍率选择,共 10 种放大倍率,可动态改变 CPU 的频率频率。如表 1 所示为 PLLCR 缓存器的格式,缓存器的位说明如表 2 所示。XCLKIN:外部频率源输入。OSCCLK: 与 XCLKIN 的频率一样。CLKIN:CPU 维持正常工作所需的频率源。这是整个芯片的最高频率。SYSCLKOUT:与 CLKIN 的频率一样,提供给外围电路使用。图 2 OSC 与 PLL 方块图。 表 1PLLCR 缓存器位格式表:15-4 3 2 1 0 Reserved DIV R-0 R/W-0 R:读取 ;R/W:可读可写;-0=重置后的值NOTE
7、:EALLOW-protected register表 2 PLLCR 缓存器位说明表:位 名称 功能描述 15-4 Reserved 保留 3-0 DIV DIV 可以控制(不论 PLL 是否在旁路状态皆可控制 )及设定( 仅在 PLL 为非旁路状态时才可设定)PLL 的频率比: =0000,CLKIN =OSCCLK/2(PLL bypass) =0001,CLKIN =(OSCCLK*1.0)/2 =0010,CLKIN =(OSCCLK*2.0)/2 =0011,CLKIN =(OSCCLK*3.0)/2 =0100,CLKIN =(OSCCLK*4.0)/2 =0101,CLKIN
8、=(OSCCLK*5.0)/2 =0110,CLKIN =(OSCCLK*6.0)/2 =0111,CLKIN =(OSCCLK*7.0)/2 =1000,CLKIN =(OSCCLK*8.0)/2 =1001,CLKIN =(OSCCLK*9.0)/2 =1010,CLKIN =(OSCCLK*10.0)/2 =1011-1111 ,保留 2.2.2 系统频率控制如图 3 所示,所有外围电路的频率都是由 SYSCLKOUT 经过除频而来,F2812 将所有外围分成两类,分别是:1.高速外围:包括事件管理模块(EVA ,EVB)及 ADC。2.低速外围:包括 SCI-A/B、SPI、McBSP
9、。HSPCLK:高速外围的频率,可经由 HISPCP 缓存器改变其频率,如表2-3 所示为 HISPCP 缓存器的格式,缓存器的位说明如表 4 所示。LSPCLK:低速外围的频率,可经由 LOSPCP 缓存器改变其频率,如表2-5 所示为 LOSPCP 缓存器的格式,缓存器的位说明如表 6 所示。图 3 系统频率方块图。表 3HISPCP 缓存器位元格式表: 15-3 2 1 0 Reserved HSPCLK R-0 R/W-001 R:读取 ;R/W:可读可写;-0=重置后的值NOTE:EALLOW-protected register表 4 HISPCP 缓存器位元说明表:位元 名称 功
10、能描述 15-3 Reserved 保留 2-0 HSPCLK 这些位元设定高速外围频率比(HSPCLK)与 SYSCLKOUT 的关系: 如果 HISPCP0,HSPCLK=SYSCLKOUT/(HISPCPx2) 如果 HISPCP=0,HSPCLK =SYSCLKOUT =000,高速频率= SYSCLKOUT/1 =001,高速频率= SYSCLKOUT/2( 预设值) =010,高速频率= SYSCLKOUT/4 =011 ,高速频率= SYSCLKOUT/6 =100,高速频率= SYSCLKOUT/8 =101,高速频率= SYSCLKOUT/10 =110 ,高速频率= SYS
11、CLKOUT/12 =111 ,高速频率= SYSCLKOUT/14 表 5 LOSPCP 缓存器位元格式图:15-3 2 1 0 Reserved LSPCLK R-0 R/W-010 图 7 CPU-Timers 方块图2.5 事件管理模块(EVA,EVB)如图 8 事件管理模块包括一般用途定时器(General-Purpose,GPTimers)、全比较(full-compare)/PWM 单元、补抓单元(capture)及四象限编码器 (QEP)电路,如此丰富的功能足以用于动态控制(motion control)及电机控制(motor control)的应用。如表 9 所示,这两个事件
12、管理模块 (EVA 和 EVB)有相同的外围,能够控制 2 个三相电动机,可以应用于多轴动态控制。图 8 事件管理模块(EVA)之功能方块图。表 9 事件管理模块和信号名称:2.5.1 脉波宽度调变(PWM)PWM 的功能包括:1.拥有宽广可程序的 Dead-time 长度。2.PWM 载波频率实时的改变。3.PWM 脉波宽度实时的改变。4.可以透过程序来产生非对称、对称及空间向量 PWM 信号。5.提供外部保护接脚 PDPINTx 来保护功率级板,当这个接脚为 ”LOW”时,PWM 信号将会强制变为高阻抗. 如图 9 所示为 PWM 电路的方块图,其动作流程大致为:比较器的值(CMPRx)进
13、来与 T1CON 所设定的对称或非对称之波形比较,然后产生方波 PHx 输出进入Dead-time 产生电路产生出两个有Dead-time 的信号,再透过输出逻辑电路来设定每个 PWM 的输出逻辑,如此就可产生所需要的 PWM 信号。图 9 PWM 电路方块图如图 10 所示为非对称 PWM 波形图,其中 PWM1、PWM3、PWM5 输出逻辑设为 Active High,PWM2 、PWM4、PWM6 输出逻辑设为 ActiveLow,如此设定 Dead-time 会使得 PWMx 与 PWMX+1 两讯号不同时为 High,适用于 IGBT 为 Active High 之功率级板。图 10
14、 非对称 PWM 信号波形图(x=1,3,or5)。如图 11 所示为对称 PWM 波形图,其中 PWM1、PWM3 、 PWM5 输出逻辑设为 ActiveLow,PWM2、PWM4、PWM6输出逻辑设为 ActiveHigh,如此设定 Dead-time 会使得 PWMx 与 PWMX+1 两信号不同时为 Low,适用于 IGBT 为ActiveLow 之功率级板,本系统就是用这个设定方式。图 11 对称 PWM 信号波形图(x=1,3,or5)。2.5.2QEP 单元每个事件管理模块都有一个四象限编码计数电路(QEP 电路) ,使用者可以藉由这个电路将光编码器两个相差 90 度的信号送到
15、 EVA 的 CAP1/QEP1 及 CAP2/QEP2 或 EVB 的 CAP4/QEP3 及 CAP5/QEP4,来取得位置与速度的信息。F2812能够透过 EVA 和 EVB 撷取两个 Encoder 的信号。EVA 的 QEP 电路以 GPtimer2 为频率基础,而 EVB 的 QEP 电路以GPtimer4 为频率基础,与 F240 最大的差异在于无法合并两个 16 位的定时器来扩展成 32 位的定时器,只能以 16 位的定时器来使用。QEP 电路的定时器之计数模式必需操作于”方向性上数/下数计数模式” 。EVA 的 QEP 电路方块图如图 12所示。EVB 的 QEP 电路方块图
16、如图 13 所示。图 12EVA 的 QEP 电路方块图。图 13EVB 的 QEP 电路方块图。如图 14 所示为典型的 Encoder 输出信号,在图的左半部,看到 QEP1 领先 QEP2 为 90 度,所以定时器使用上数型。在图的右半部,看到 QEP2 领先 QEP1 为 90 度,所以定时器使用下数型。图 14QEP 的解碼时序及方向图。2.6 通用输入/输出(GPIO)接口图 15 为 GPIO 的方块图,F2812 许多外围都与 GPIO 共享接脚,使用时需要设定 GPxMUX、GPxDIR、GPxQUAL、GPxDAT 等缓存器来达到硬件上的运用。GPxMUX:每个 I/O 端
17、口都有一个多任务缓存器 (GPxMUX),GPxMUX 缓存器是用来选择这些接脚被拿来当做数字I/O(GPxMUX.bit=0)还是外围 I/O(GPxMUX.bit=1)。当 DSP 重置时,所有 I/O 预设为数位 I/O。GPxDIR:每个 I/O 端口都有一个方向控制缓存器 (GPxDIR),用来设定为数字 I/O 时,其接脚为输入(GPxDIR.bit= 0)或输出(GPxDIR.bit=1)。当 DSP重置时,所有 I/O 预设为数字 I/O。GPxQUAL:输入取样控制缓存器,用来设定做为数字 I/O 输入(INPUT)时,其资料的取样率。GPxDAT:每个 I/O 端口都有一个
18、数据缓存器(GPxDAT),用来读写接脚的状态。图 15 GPIO 方块图。2.7 模拟数字转换 (Analog-to-DigitalConverter,ADC)模块图 16 为 ADC 模块。ADC 模块包括内建于取样/ 保持(sample-and-hold,S/H)的 12-bitADC,ADC 模块功能包括:1.内建取样 /保持(sample-and-hold,S/H)之 12 位 ADC 核心2.模拟输入范围:0.0V3.0V3.快速转换速率:80nsat25-MHz ADC clock,12.5 MSPS4.共 16 通道(channels)的多任务输入取得输入模拟电压之数字电压值:
19、12-bit 的 ADC 模块有 25-MHzADC 频率于 80ns 之快速转换,ADC 模块有 16 个信道,可以设定成两个独立的 8 信道模块来服务事件管理(EVA,EVB)。图 16ADC 模块方块图。如图 17 所示为 TI 建议之连接图,其中若 ADC 模块的频率操作于 118.75MHz 时 ADCRESEXT 的电流偏压电阻使用24.9K,若操作于 18.75MHz25MHz,ADCRESEXT 的电流偏压电阻使用 20K。本 2812 数位控制板之 ADC 模块希望操作于 25MHz,所以需使用 20K 来做偏压电阻。图 17ADC 管脚之连接。2.8 串行通讯接口(Seri
20、alCommunicationsInterface,SCI)模块F2812 如图 18 所示包含两个串行通讯接口(SCI) 模块,SCI 模块提供了 DSP 与其它标准 non-return-to-zero(NRZ)格式的异步外围之间的数字通讯。SCI 的接收者和传输者皆采用双总线模式 (Double-Buffered),每一个皆有自已独自的允许和中断位。为了保证数据的完整性,SCI 有中断侦测、同位检测、过载和框架错误去检查接收进来的数据。SCI 模块主要的功能如下所示:1.两个外部的引脚 位SCITXD:SCI 传送输出引脚位SCIRXD:SCI 接收输入引脚位2.鲍率有 64K 种不同的
21、速率,可藉由缓存器设定改变传输速率3.数据字符(Data-word)格式一个开始位传输数据位长度格式,可从 1 到 8 之间作程序化选择奇同位检测/偶同位检测/不使用同位检测的选择可选用 1 或 2 个停止位4.四种错误侦测旗标:同位(Parity)、过载(Overrun)、框架(Framing) 和中断(Break)错误侦测5.可选择使用半双工或是全双工操作模式6.接收和与传输皆采用双总线模式(Double-buffered)7.传输方法采用 NRZ(non-return-to-zero)格式图 18 串行通讯接口 (SCI)模块之方块图。增强型 SCI 的特色:自动鲍率侦测硬件逻辑16-l
22、evel 传输/接收 FIFO2.9 串行外围接口(SerialPeripheralInterface,SPI)模块F2812 如图 19 所示包含四引脚位串行外围接口(SPI)模块。SPI 模块使用于 DSP 控制器和外部外围或另一个处理器两者之一的通讯。典型的应用包含外部 I/O 或外围延伸装置,例如:移位缓存器、显示装置和 ADCs。SPI 之 Master/Slave操作支持多重装置通讯。SPI 模块装置主要功能共有如下所述:1.四个外部引脚 位:SPISOMI:SPIslave- 输出/master- 输入引脚位SPISIMO:SPIslave- 输入/master- 输出引脚位SP
23、ISTE:SPIslave 传送-允许引脚位SPICLK:SPI 串行-频率引脚位2.两个操作模式:Master 和 Slave3.鲍率:125 个不同可程序速率4.数据字符(Data-word)长度:1 到 16 个数据位增强型 SPI 的特色:16-level 传输/接收 FIFO延迟传递控制图 19 串行外围接口(SPI)模块之方块图。2.10Bootloader 开机模式TMS320F2812 单芯片提供多种的 Boot 开机模式供使用者选择和使用,这一小节主要描述 Boot 开机模式的方法。如表10 为 Boot 开机模式经由 GPIOF 中的四个接脚(GPIOF2、3、4、12)在
24、开机时的状态来选择六种的开机动作。表 10Boot 模式之 GPIOF 引脚 位状态。GPIOF4 (SCITXDA) GPIOF12 (MDXA) GPIOF3 (SPISTEA) GPIOF2 (SPICLK) 模式选择 (Mode Selected) 1 X X X 至 Flash 地址 (0x3F7FF6) 0 1 X X 至外部 EEPROM 呼叫 SPI_Boot 下载0 0 1 1 至 SCI-A 呼叫 SCI_Boot 下载 0 0 1 0 至 H0 SARAM 地址 (0x3F8000) 0 0 0 1 至 OTP 地址(0x3D7800) 0 0 0 0 至 GPIOB 呼
25、叫 Parallel_Boot 下载 图 20Bootloader 模式流程图。如图 20 为 Bootloader 模式流程图,下列是 Bootloader 模式分析。1.至 FlashMemory:在这个模式中,DSP 会先跳去执行内部的 FlashMemory 地址(0x3F7FF6) ,所以使用者必需在 0x3F7FF6 这个地址烧录一段跳至 Boot 主程序的机械码,如:LB_c_int00。2.至 H0SARAM:在这个模式中,BootROM 软件将设定 F2812 装置然后直接跳去地址 0x3F8000(在 H0SARAM 内存方块的第一个地址)。3.至 OTP 内存:在这个模式
26、中,BootROM 软件将设定 F2812 装置然后直接跳去地址 0x3D7800(在 OTP 内存方块之第一个地址) 。4.标准串行 Boot 模式(SCI):在这个模式中,经由 SCI-A 端口加载程序代码到 on-chip 内存里,执后在内存里执行 Boot 程序。5.SPIEEPROMBoot 模式:在这个模式中,经由 SPI 埠从外部 EEPROM 加载程序代码和数据到 on-chip 内存里。6.从 GPIO 埠 Boot:在这个模式中,利用 GPIOB 从外部来加载程序代码和数据,这个模式分别支持 8 位和 16 位的数据串。本文如需正确应用需结合英文原版资料配合查阅R:读取 ;
27、R/W:可读可写;-0=重置后的值NOTE:EALLOW-protected register表 6 LOSPCP 缓存器位元说明表。位元 名称 功能描述 15-3 Reserved 保留 2-0 LSPCLK这些位元设定低速外围频率比(LSPCLK)与 SYSCLKOUT 的关系: 如果 LOSPCP0,LSPCLK=SYSCLKOUT/(LOSPCPx2) 如果 LOSPCP=0,LSPCLK =SYSCLKOUT =000,低速频率= SYSCLKOUT/1 =001,低速频率= SYSCLKOUT/2 =010,低速频率= SYSCLKOUT/4( 预设值) =011 ,低速频率= S
28、YSCLKOUT/6 =100,低速频率= SYSCLKOUT/8 =101,低速频率= SYSCLKOUT/10 =110 ,低速频率= SYSCLKOUT/12 =111 ,低速频率= SYSCLKOUT/14 PCLKCR(外围频率控制缓存器)是用来允许或禁能各个外围模块的频率,当外围要使用时就必需将其频率允许,如此一来外围才能使用,而若不需使用的外围,可以将其频率关掉,如此可以达到节省功率的作用。如表 7 所示为 PCLKCR 缓存器的格式,缓存器的位元说明如表 8 所示。表 7PCLKCR 缓存器位元格式表*。 15 14 13 12 11 10 9 8 Reserved ECAN
29、ENCLK Reserved MCBSP ENCLK SCIB ENCLK SCIA ENCLK Reserved SPI ENCLK R-0 R/W-0 R-0 R/W-0 R/W-0 R/W-0 R-0 R/W-0 7-4 3 2 1 0 Reserved ADC ENCLK Reserved EVB ENCLK EVA ENCLK R-0 R/W-0 R-0 R/W-0 R/W-0 R:读取 ;R/W:可读可写;-0=重置后的值NOTE:EALLOW-protected register*如果外围区块没有使用,则此外围的频率将可以被关掉已达成最小的电力消耗表 8PCLKCR 缓存器位元说
30、明表:位元 名称 功能描述 15 Reserved 保留14 ECAN ENCLK 如果此位元被设定,在 CAN 外围范围内的系统频率将 被致能。在低电力操作下,此位将被使用者或重置设为 0。 13 Reserved 保留 12 MCBSP ENCLK 如果此位元被设定,在 McBSP 外围范围内的低速频率(LSPCLK) 将被致能。在低电力操作下,此位将被使用者或经由重置设为 0。 11 SCIB 如果此位元被设定,在 SCI-B 外围范围内的低速频率(LSPCLK)将被致能。在低电力ENCLK 操作下,此位元将被使用者或经由重置设为 0。 10 SCIA ENCLK 如果此位元被设定,在
31、SCI-A 外围范围内的低速频率(LSPCLK)将被致能。在低电力操作下,此位将被使用者或经由重置设为 0。 9 Reserved 保留 8 SPIA ENCLK 如果此位元被设定,在 SPI 外围范围内的低速频率(LSPCLK)将被致能。在低电力操作下,此位将被使用者或经由重置设为 0。 7-4 Reserved 保留 3 ADC ENCLK 如果此位元被设定,在 ADC 外围范围内的高速频率(HSPCLK) 将被致能。在低电力操作下,此位将被使用者或经由重置设为 0。2 Reserved 保留 1 EVB ENCLK 如果此位元被设定,在 EV-B 外围范围内的高速频率(HSPCLK)将被
32、致能。在低电力操作下,此位将被使用者或经由重置设为 0。 0 EVA ENCLK 如果此位元被设定,在 EV-A 外围范围内的高速频率(HSPCLK) 将被致能。在低电力操作下,此位将被使用者或经由重置设为 0。 2.3 内存结构介绍2.3.1TMS320F2812 内存映如图 4 为 TMS320F2812 内存映像。“Low64K”之内存地址范围映像到 240x 的数据空间地址,”High 64K”之内存地址范围映像到24x/240x 的程序空间地址,24x/240x 兼容程序代码只能在“High64K”内存区域执行。图 4TMS320F2812 内存映像(MemoryMap)。172.3
33、.2 外部内存接口(XINTF)TMS320F2812 的外部内存接口(XINTF)是非多任务异步总线,映像到 5 个固定的内存映像区段,其定义如图 5 所示. 外部内存接口(XINTF)提供 19 条地址线及 16 条数据线,每个区段最大可以存取的内存范围为 512Kx16,所支持的外部内存高达 1Mx16以上。图 5 外部内存接口 (XINTF)方块图。2.4 32 位元 CPU Timers0/1/2TMS320F2812 有 3 个 32 位元的 CPUTimer,如图 7 为 CPU-Timers 之方块图。CPU-Timer0 可以让使用者来应用,而 CPU-Timer1 和 CPU-Timer2 则被保留做为实时(Real-Time)OS(例如: DSP-BIOS)。这些 CPU-Timers 不同于事件管理模块(EVA,EVB)内一般用途用(General-Purpose)Timers。CPU-Timer 大致上的运作如下:32 位元的计数缓存器(TIMH:TIM) 加载周期缓存器(PRDH:PRD) 的值,计数缓存器是以 TMS320F2812 的 SYSCLKOUT(150MHz)之速率递减,当计数到 0 时,Timer 会产生一个中断信号。