TMS320F2802x_Piccolo系列DSC原理及应用 下载本文

7-0 PSCH:PSC都减1。在PSCH:PSC到达0之后的一个定时器时钟(定时器预分频器的输出)周期,PSCH:PSC装入TDDRH:TDDR的内容,并且,定时器计数器寄存器(TIMH:TIM)减1。只要软件置位定时器重装位(TRB),PSCH:PSC也被重装。PSCH:PSC可以通过读寄存器来检查,但它不能直接被设置。它必须从定时器divide-down寄存器(TDDRH:TDDR)获取值。复位时,PSCH:PSC被设为0。 TDDR CPU定时器Divide-Down。每隔(TDDRH:TDDR+1)个定时器时钟源周期,定时器计数器寄存器(TIMH:TIM)就减1。复位时,TDDRH:TDDR位被清零。为了使整个定时器计数值增加一个整数因子,将该整数因子减1后写入TDDRH:TDDR位。当预分频器计数器(PSCH:PSC)值为0时,一个定时器时钟源周期之后,TDDRH:TDDR的内容重新装入PSCH:PSC,并且TIMH:TIM减1。只要软件将定时器重装位(TRB)置位,TDDRH:TDDR也重装PSCH:PSC。

图 2.31 TIMERxTPRH寄存器(x=1,2,3)

表 2.34 TIMERxTPRH寄存器域描述

位 15-8 7-0 域 PSCH 描述 见TIMERxTPR的描述。 见TIMERxTPR的描述。 2.6 VREG/BOR/POR

虽然内核和I/O电路工作在2个不同的电压下,器件仍然有一个片内稳压器(VREG),从VDDIO电源产生一个VDD电压。这样就节省了应用电路板上使用另一个外部稳压器的费用和电路面积。另外,内部上电复位(POR)和掉电复位(BOR)电路在上电和运行模式期间监控着VDD和VDDIO轨,不需要再另外使用任何外部电压监控电路来监控电压。

2.6.1 片内稳压器(VREG)

片内稳压器简化了器件的供电,节省了另外使用一个外部稳压器的费用或电路板空间。这个线性稳压器从VDDIO电源产生内核电压VDD。因此,尽管在每个VDD引脚上需要使用电容来稳定所产生的电压,但不需要给这些引脚提供电源来操作器件。相反地,如果功率或冗余是应用主要考虑的问题,VREG还可以被绕过或忽略。

1. 使用片内VREG

为了使用片内VREG,VREGENZ引脚应该被拉低,应该给VDDIO和VDDA引脚提供推荐的合适工作电压。在这种情况下,内核逻辑需要的VDD电压将由VREG产生。每个VDD引脚需要大约1.2?F的电容来实现VREG的调节。布线时这些电容应当尽量靠近器件引脚放置。有关可以接受的电容范围请见TM320F28027、TMS320F28026、TM320F2805、TM320F28024、TMS320F28023、TMS320F28022微控制器(MCU)数据手册(SPRS523)。

45

2. 绕过片内VREG

为了节省功耗,还可以绕过片内VREG,用一个效率更高的外部稳压器来将内核逻辑电压提供给VDD引脚。为了使能这个选择,VREGENZ引脚必须被拉高。有关VDD引脚可接受的电压范围请见TMS320F28027、TMS320F28026、TMS320F28025、TMS320F28024、TMS320F28023、TM320F28022微控制器(MCU)数据手册(SPRS523)。

2.6.2 片内上电复位(POR)和掉电复位(BOR)电路

2个片内监控电路——上电复位(POR)和掉电复位(BOR),卸下了应用电路板监控VDD和VDDIO电源的重担。POR的目的是在整个上电过程中创建一次整个器件范围内的彻底复位。与BOR相比,它的跳变点不够精确,值也更低,在器件工作过程中,跳变点监控着电压达到VDD或VDDIO的情况。在VDD和VDDIO轨上,POR功能始终起作用。在器件首次上电后,BOR功能就一直作用于VDDIO,内部VREG被使能时(VREGENZ引脚被拉低)BOR才对VDD起作用。当一个电压低于它们相应的跳变点时,BOR和POR两个功能都会拉低XRS引脚。另外,在监控VDD轨的过程中,当VDD超过它的过压跳变点时BOR拉低XRS。有关各个跳变点以及从消除故障条件到释放XRS引脚之间的延时请见器件的数据手册。 2.7 外设帧

本小节描述外设帧以及器件仿真寄存器。

2.7.1 外设帧寄存器

2802x器件包含4个外设寄存器空间。空间分类如下:

? 外设帧0:直接映射到CPU存储器总线的外设。见表 2.35。 ? 外设帧1:映射到32位外设总线的外设。见表 2.36。 ? 外设帧2:映射到16位外设总线的外设。见表 2.37。

表 2.35 外设帧0寄存器(1)

名称 器件仿真寄存器 地址范围 大小(x16) 0x00 0880 – 0x00 384 09FF Flash寄存器(3) 0x00 0A80 – 0x00 96 0ADF 代码安全模块寄存0x00 0AE0 – 0x00 16 器 0AEF ADC寄存器(对偶0x00 0B00 – 0x00 32 映射)(零等待,只0B1F 读,CPU) CPU-TIMER0/1/20x00 0C00 – 0x00 64 寄存器 0C3F PIE寄存器 0x00 0CE0 – 0x00 32 0CFF PIE向量表 0x00 0D00 – 0x00 256 0DFF 46

访问类型(2) 受EALLOW保护 受EALLOW保护 受EALLOW保护 不受EALLOW保护 不受EALLOW保护 不受EALLOW保护 受EALLOW保护

(1)

帧0中的寄存器支持16位和32位访问。 (2)

如果寄存器受EALLOW保护,在执行EALLOW指令之前不能执行写操作。EDIS指令禁止写操作以防止杂散代码或指针破坏寄存器内容。 (3)

Flash存储器也受到代码安全模块(CSM)的保护。

表 2.36 外设帧1寄存器

名称 COMP1寄存器 COMP2寄存器 ePWM1+HRPWM1寄存器 ePWM2+HRPWM2寄存器 ePWM3+HRPWM3寄存器 ePWM4+HRPWM4寄存器 eCAP1寄存器 GPIO控制寄存器 GPIO数据寄存器 地址范围 0x6400 – 0x641F 0x6420 – 0x643F 0x6800 – 0x683F 大小(x16) 访问类型(1) 32 32 64 一些ePWM寄存器受EALLOW保护。见2.7.2节。 64 64 64 32 128 32 不受EALLOW保护 受EALLOW保护 不受EALLOW保护 受EALLOW保护 0x6840 – 0x687F 0x6880 – 0x68BF 0x68C0 – 0x68FF 0x6A00 – 0x6A1F 0x6F80 – 0x6FBF 0x6FC0 – 0x6FDF GPIO中断和LPM选0x6FE0 – 0x6FFF 32 择寄存器 (1) 外设帧1允许16位和32位访问。所有32位访问都与偶地址边界对齐。 表 2.37 外设帧2寄存器

名称 系统控制寄存器 SPI-A寄存器 SCI-A寄存器 NMI看门狗中断寄存器 外部中断寄存器 地址范围 0x7010 – 0x702F 0x7040 – 0x704F 0x7050 – 0x705F 0x7060 – 0x706F 0x7070 – 0x707F 大小(x16) 访问类型(1) 32 受EALLOW保护 16 不受EALLOW保护 16 不受EALLOW保护 16 16 不受EALLOW保护 47

不受EALLOW保护 I2C寄存器 0x7900 – 0x793F 64 不受EALLOW保护 (1) 外设帧2只允许16位访问。忽略所有的32位访问(可能返回或写入无效数据)。

2.7.2 EALLOW保护的寄存器

ADC寄存器 0x7100 – 0x711F 32 EALLOW保护机制保护几个控制寄存器,防止虚假的CPU写入。状态寄存器1(ST1)的EALLOW指示保护的状态是否和表 2.38中列出的一样。

表 2.38 访问受EALLOW保护的寄存器

EALLOW位 CPU写 CPU读 JTAG写 JTAG读 0 忽略 允许 允许(1) 允许 1 允许 允许 允许 允许 (1) EALLOW位可通过JTAG端口覆写,从而允许在Code Composer Studio interface调试过程中对受保护的寄存器进行全面访问。

复位时,EALLOW位被清除,EALLOW保护被启用。寄存器被保护时,CPU对受保护寄存器执行的所有写操作均被忽略,只允许对受保护寄存器执行CPU读、JTAG读和JTAG写。如果通过执行EALLOW指令将EALLOW位置位,则允许CPU自由地写受保护寄存器。更改寄存器之后,通过执行EDI指令将EALLOW位清除来再次使寄存器被保护。

下面的寄存器受到EALLOW保护:

? ? ? ? ? ?

器件仿真寄存器 Flash寄存器 CSM寄存器 PIE向量表

系统控制寄存器 GPIO MUX寄存器

表 2.39 受EALLOW保护的器件仿真寄存器

名称 DEVICECNF 地址 0x0880 0x0881 大小(x16) 2 器件配置寄存器

描述 表 2.40 受EALLOW保护的Flash/OTP配置寄存器

名称 FOPT FPWR 地址 0x0A80 0x0A82 大小描述 (x16) 1 Flash选项寄存器 1 Flash功率模式寄存器 48