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