DSP课件第九章TMS320LF240 x片内外设.ppt_第1页
DSP课件第九章TMS320LF240 x片内外设.ppt_第2页
DSP课件第九章TMS320LF240 x片内外设.ppt_第3页
DSP课件第九章TMS320LF240 x片内外设.ppt_第4页
DSP课件第九章TMS320LF240 x片内外设.ppt_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

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

文档简介

第9章TMS320LF240 x片内外设 9 1看门狗 WD 定时器模块 看门狗 WD 定时器模块用来监视软件和硬件操作 在软件进入一个不正确的循环或者CPU出现暂时性异常时 WD定时器溢出以产生一个系统复位 大多数芯片的异常操作和CPU非正常工作的情况都能通过看门狗的功能清除和复位 因此看门狗的监视功能可增强CPU的可靠性 以确保系统运行的安全和稳定 1 看门狗 WD 定时器模块的结构 看门狗 WD 定时器模块的结构如下图所示 WD模块的所有寄存器都是8位长 该模块与CPU的16位外设总线的低8位相连 看门狗定时器的时钟 WDCLK 是一个低频时钟 由CPU的CLKOUT产生 当CPU处于低功耗模式IDLE1和IDLE2时 仍能保证看门狗继续计数 仅当看门狗使能时 WDCLK才有效 WDCLK的频率由下式计算 WDCLK CLKOUT 512当CLKOUT 40MHz时 WDCLK 78125Hz是一个典型值 除HALT低功耗模式外 无论片内任一寄存器的状态如何 WDCLK都将使能WD定时器功能 WD模块的结构框图 WD模块有3个控制寄存器对其进行控制和管理 1 WD计数寄存器 WDCNTR 地址7023h8位WD计数寄存器存放WD计数器的当前值D7 D0 WDCNTR是一个只读寄存器 复位后为0 写寄存器无效 由预定标器的输出提供计数时钟 2 WD复位关键字寄存器 WDKEY 地址7025h当55h及紧接其后的AAh 复位关键字 写入WDKEY时 将清除WDCNTR 其他任何值的结合写入或写入任何值都不能清除WDCNTR 8位WDKEY是一个可读写寄存器 复位后为0 读该寄存器WDKEY并不返回最近的关键字值 而是返回WDCR的内容 3 WD定时器控制寄存器 WDCR 地址7029h8位WDCR用来存放看门狗配置的控制位 2 看门狗 WD 定时器的操作 1 WD计数器 WDCNTR 溢出或向WD复位关键字寄存器 WDKEY 写入一个不正确的值当系统正常工作时 WD计数器WDCNTR以WD控制寄存器所选的速率进行增计数 在WDCNTR溢出前 只要给复位关键字寄存器WDKEY写入一个正确值 先写入55h 紧接着写入AAh 就可以使WDCNTR清0 即从0开始计数而不会产生溢出 当系统不正常时 也就不能给WDKEY写入正确值使WDCNTR清0 则WDCNTR将计满溢出 并在一个WDCLK 或用WDCLK除以预定标因子 时钟后发生系统复位操作 任何其他次序的写入55h和AAh值或写入其他值都不能使WDCNTR清0 从而使系统复位 2 使用WD检查位WD定时器控制寄存器 WDCR 的检查位 WDCHK2 WDCHK0 一直和一个二进制常量101相比较 如果WD检查位与这个值不匹配 就会产生一个系统复位 所以一旦软件执行了错误的WDCR写操作或一个外部激励干扰 例如电压尖峰或其他干扰源 破坏了WDCR的内容 即除101以外的任何值写到WDCR的D5 D3位都会产生一个系统复位 注意 向WDCR写入值时必须包括写到D5 D3的值101 当系统上电复位时 看门狗就被使能 WD定时器被缺省为最快的WD速率 一旦复位由内部释放 CPU就开始执行程序 同时WD定时器就开始计数 因此为了避免过早发生复位 应在程序刚开始时就对WD进行配置 9 2数字输入 输出 I O 模块 LF240 x采用哈佛结构 有3个独立的空间 程序空间 数据空间和I O空间 3个空间对外共用一个16位地址总线和一个16位数据总线 并以3个片选线 和区分不同空间 其中 I O空间可接外部设备 是LF240 x与外部设备联系的接口 数字I O模块也具有连接外部设备的功能 是LF240 x除I O空间外另一个与外部设备联系的接口 LF240 x有41个数字I O口 其中绝大多数具有另一功能 另一功能 都是SCI SPI等片内外设模块的功能引脚 数字I O口是第二功能 LF240 x有41个数字I O口 所有这些共享引脚的功能可通过数字I O模块中的9个16位控制寄存器来控制 控制寄存器可以分为两类 1 I O复用控制寄存器 MCRx x A B C 控制两种功能的选择 2 数据和方向控制寄存器 PxDATDIR x A B C D E F 当引脚作为通用I O时 用来控制选择各I O引脚的数据方向 输入还是输出 和当前引脚对应的电平 高或低 读通用I O引脚的电平或向引脚输出电平 实际上是对相应的寄存器 PxDATDIR 进行读写操作 I 0复用控制寄存器用来控制多路选择器 选择功能复用引脚是作为特殊功能 MCRx n 1 还是通用I 0功能 MCRx n 0 1 I O复用控制寄存器 2 数据和方向控制寄存器 1 端口A数据和方向控制寄存器 PADATDIR 地址7098hD15 D8AnDIR 定义IOPAn n 7 0 引脚的方向和电平 0定义对应的引脚IOPA7 IOPA0为输入 1定义对应的引脚IOPA7 IOPA0为输出 D7 D0IOPAn I O引脚名 n 7 0 如果AnDIR 0即引脚IOPAn n 7 0 为输入时 0对应的I O引脚输入的值为低电平 1对应的I O引脚输入的值为高电平 如果AnDIR 1即引脚IOPAn n 7 0 为输出时 0设置相应的引脚使其输出为低电平 1设置相应的引脚使其输出为高电平 3 程序举例 title 240 xAGPIO data 装载到数据区300hb0 word0FFFEh 通用I O端口的DO位为0b1 word0FFFDh 通用I O端口的D1位为0b2 word0FFFBh 通用I O端口的D2位为0b3 word0FFF7h 通用I O端口的D3位为0b4 word0FFEFh 通用I O端口的D4位为0b5 word0FFDFh 通用I O端口的D5位为0b6 word0FFBFh 通用I O端口的D6位为0b7 word0FF7Fh 通用I O端口的D7位为0GPR0 word0 通用目的寄存器 include240 xA h def c into text c into LDP 0h 设置DP 0SETCINTM 禁止中断 1 IOPx0 IOPx7 x A B C E F 轮流设置低电平输出 SETCCNFSPLK 0000h IMR 屏蔽所有中断LACCIFR 读中断标志SACLIFR 清所有中断标志LDP 00E0hSPLK 0000h SCSR1SPLK 006Fh WDCR 禁止WDLDP 6h 设置DP 6h 则地址为300h 37FhSPLK 0h GPR0 为外部地址空间设置等待状态OUTGPR0 WSGRLDP 00E1h 设置DP E1h 则地址为7080h 70FFhSPLK 00000h MCRA 定义IOPAn和IOPBn作为通用I O引脚SPLK 0FF00h MCRB 定义IOPCn作为通用I O引脚SPLK 00000h MCRC 定义IOPEn和IOPFn作为通用I O引脚SPLK 0FFFFh PADATDIR 所有引脚均配置为输出并置为高电平SPLK 0FFFFh PBDATDIRSPLK 0FFFFh PCDATDIRSPLK 0FFFFh PEDATDIRSPLK 0FFFFh PFDATDIR MAIN LDP 0LARAR0 300h 300h单元的内容 位模式 FFFEh 送 AR0LARAR1 7 ARl是计数器LOOP MAR AR0 下次辅助寄存器为AR0LACC AR2 装载位模式到累加器 AR0 301h 下次 辅助寄存器为AR2LDP 00E1hSACLPADATDIR 输出同样的位模式到所有的通用I O口SACLPBDATDIRSACLPCDATDIRSACLPEDATDIRSACLPFDATDIRCALLDELAY 在每个模式间延时MAR AR1 检查是否所有的8个位模式己被输出引脚 轮流被置为低 若没有则继续BANZLOOPBMAIN 循环输出 DELAY LARAR2 0FFFFh 延时子程序D LOOP RPT 0FFhNOPBANZD LOOPRETPHANTOMKICK DOG 复位WD计数器BPHANTOM end voidsys ini asm setcINTM asm clrcSXM asm clrcOVM WDCR 0 x00E8 SCSR1 0 x0000 voidIOPort Initializing MCRA 0 x0FFF PBDATAIR PBDATAIR 0 x0F000 2 IOPB端口4个LED循环显示 include exp4 2407 h unsignedintled voidmain void unsignedinti unsignedintk sys ini IOPort Initializing led 0 x0080 while 1 for i 0 i 1if led 0 x0008 led 0 x0080 9 3事件管理器 EV 模块 TMS320LF240 xA提供了两个事件管理器EVA和EVB模块 用于运动控制和电机控制 每个事件管理器模块都含有 1 两个16位通用可编程定时器GPtimer1 GPtimer2 2 3个全比较单元和与之对应的脉宽调制电路PWM 3 3个捕获单元CAP 4 正交编码脉冲 QEP 电路 5 中断逻辑 9 3 1通用定时器 DSP事件管理器EVA和EVB内部均有两个通用定时器 GPT EVA中为通用定时器1 GPT1 和通用定时器2 GPT2 EVB中为通用定时器3 GPT3 和通用定时器4 GPT4 计数范围为0 65535 每个通用定时器可以各自独立工作 也可以相互同步工作 16位的全局通用定时器控制寄存器GPTCONA EVA中 和GPTCONB EVB中 用来规定这4个通用定时器在不同定时器事件中所采取的操作 并记录它们的计数方向 每个通用定时器包括 1 一个16位可读 写的定时器计数器TxCNT x 1 2 3 4 2 一个16位可读 写的定时器比较寄存器TxCMPR x 1 2 3 4 3 一个16位可读 写的定时器周期寄存器TxPR x 1 2 3 4 4 一个16位可读 写的定时器控制寄存器TxCON x 1 2 3 4 5 一个通用定时器比较输出引脚TxCMP TxPWM x 1 2 3 4 6 用于内部或外部时钟输入的可编程定标器 7 控制和中断逻辑 1 通用定时器中的寄存器 1 全局通用定时器控制寄存器A B GPTCONA B 映射地址7400h 7500hD15Reserved 保留位 D14T2STAT T4STAT 通用定时器2 4的计数状态 只能读 0减计数 1增计数 D13T1STAT T3STAT 通用定时器1 3的计数状态 只能读 0减计数 1增计数 D12 D11Reserved 保留位 D10 D9T2TOADC T4TOADC 设置通用定时器2 4启动模数转换事件 00不启动模数转换 01下溢中断标志启动 10周期中断标志启动 11比较中断标志启动 D8 D7T1TOADC T3TOADC 设置通用定时器1 3启动模数转换事件 00不启动模数转换 01下溢中断标志启动 10周期中断标志启动 11比较中断标志启动 D6TCOMPOE 比较输出允许 电源驱动保护中断PDPINTA B有效时 向该位写0 0禁止所有通用定时器比较输出 比较输出都置成高阻态 1使能所有通用定时器比较输出 D5 D4Reserved 保留位 D3 D2T2PIN T4PIN 设置通用定时器2 4比较输出极性 00强制为低电平 01低电平有效 10高电平有效 11强制为高电平 D1 D0T1PIN T3PIN 设置通用定时器1 3比较输出极性 00强制为低电平 01低电平有效 10高电平有效 11强制为高电平 2 通用定时器控制寄存器TxCON x 1 2 3 4 D15 D14FREE SOFT 仿真控制位 00仿真悬挂时立即停止 01仿真悬挂时在当前定时器周期结束后停止 1x操作不受仿真悬挂的影响 D13Reserved 保留位 D12 D11TMODE 计数模式选择 00停止 保持 01连续增 减计数模式 10连续增计数模式 11定向增 减计数模式 D10 D8TPS 输入时钟预定标系数 设x CPU时钟频率 000 x 1001x 2010 x 4011x 8100 x 16101x 32110 x 64111x 128D7T2SWTl T4SWTl 通用定时器2 EVA 或定时器4 EVB 使能选择位 0使用自己的寄存器使能位 1使用SELT1PR EVA 或SELT3PR EVB 作为周期寄存器 而忽略自身的周期寄存器 3 通用定时器计数器TxCNT x 1 2 3 4 每个通用定时器都有一个计数器 其映射地址为 T1CNT 7401h T2CNT 7405h T3CNT 7501h T4CNT 7505h 计数器的初值可以是0000h FFFFh中的任意值 通用定时器中的计数器用来存放开始计数时的初值 当进行计数时存放当前计数值 计数器可以进行增1或减1计数 由控制寄存器TxCON的D12 D11确定其计数模式 4 比较寄存器TxCMPR x 1 2 3 4 每个通用定时器都有一个比较寄存器 其映射地址为 T1CMPR 7402h T2CMPR 7406h T3CMPR 7502h T4CMPR 7506h 通用定时器中的比较寄存器TxCMPR存放着与计数器TxCNT进行比较的值 如果设置控制寄存器TxCON中的D1位为1 即允许比较操作 则当计数器的值计到与比较寄存器值相等时产生比较匹配 从而将有以下事件发生 1 EVA EVB中断标志寄存器中相应的比较中断标志位在匹配后的一个CPU时钟周期后被置位 2 在匹配后的一个CPU时钟周期后 根据全局通用定时器控制器GPTCONA B中的D3 D2或D1 D0位的配置 相应地比较输出TxPWM引脚将发生跳变 3 当全局通用定时器控制寄存器GPTCONA B的D10 D9或D8 D7位设置为由周期中断标志启动模数转换ADC时 模数转换被启动 4 如果比较中断未被屏蔽 则产生一个外设中断请求 5 周期寄存器TxPR x 1 2 3 4 每个通用定时器都对应一个周期寄存器 其映射地址为 T1PR 7403h T2PR一一7407h T3PR 7503h T4PR 7507h 周期寄存器的值决定了定时器的周期 当定时器的计数值与周期寄存器的值相等时产生周期匹配 此时通用定时器停止操作并保持当前计数值 然后根据计数器的计数方式执行复位操作或递减计数 每个比较寄存器和周期寄存器都有一个暂存单元 称为影子寄存器 存放它们的新值 任何时刻都可对比较寄存器和周期寄存器写入新的比较值或周期值 这些新值被存放在影子寄存器中 对比较寄存器 仅当由控制寄存器TxCON规定的定时事件发生时 才能装入新值 对周期寄存器 仅当计数寄存器TxCNT为0时 才能装入新值 之后 被装载新值的寄存器按新的设置工作 从而改变了下一个周期的定时器周期和PWM脉冲宽度 2 通用定时器的中断和仿真中断通用定时器在模块EVA和EVB的中断标志寄存器EVAIFRA EVAIFRB EVBIFRA EVBIFRB中有16个中断标志 每个通用定时器可根据以下4种事件产生中断 上溢 定时计数器的值达到FFFFh时 产生上溢事件中断 此时标志寄存器中的TxOFINF位 x l 2 3 4 置1 下溢 定时计数器的值达到0000h时 产生下溢事件中断 此时标志寄存器中的TxUFINF位 x 1 2 3 4 置1 比较匹配 当通用定时计数器的值与比较寄存器的值相等时 产生定时器比较匹配事件中断 此时标志寄存器中的TxCINT位 x 1 2 3 4 置1 周期匹配 当通用定时计数器的值与周期寄存器的值相等时 产生定时器周期匹配事件中断 此时标志寄存器中的TxPINT位 x 1 2 3 4 置1 1 停止 保持模式通用定时器的操作停止 定时器的计数器 比较输出和预定标计数器均保持当前状态 3 通用定时器的计数操作 如果设定计数器的初值 0000h FFFFh中的任意值 大于周期寄存器的值 则计数器进行加1计数至FFFFh后置上溢中断标志 再加1计满为0后 从0开始继续计数直到等于周期寄存器的值 此时产生周期匹配 并设置周期中断标志和下溢中断标志 且计数器复位为0 然后再从0开始继续计数 好像初值为0一样 直到等于周期寄存器的值 重复上述操作 如果设定计数器的初值小于周期寄存器的值 则计数器从初值开始加1计数直到等于周期寄存器的值 然后复位为0 再从0开始计数 同时设置周期中断和下溢中断标志 重复上述操作 2 连续增计数模式 例7 3连续增计数模式的初始化编程 设置通用定时器1在该模式下工作 其计数器初始值为0 周期寄存器值为3 计数器波形为图7 18中点划线的右半部分 LDP DP EVA 装入数据页面指针 指向7400h 7480h单元SPLK 01h GPTCONA 允许定时器比较输出且低电平有效SPLK 3h T1PR 设置周期寄存器的值为3SPLK 2h T1CMPR 设置比较寄存器的值为2SPLK 0h T1CNT 设置计数初值为0SPLK 174Eh T1CON 设置连续增计数模式 输入时钟为CPU 时钟的128分频 定时器计数使能 输入 时钟为内部CPU时钟 定时器比较使能 通用定时器在定标的输入时钟上升沿开始计数 计数方向由输入引脚TDIRMB确定 引脚为高时 进行增计数 增计数与连续增计数模式完全相同 引脚为低时 进行减计数 从初值 0000h FFFFh中的任何值 开始减计数直到计数值为0 此时如果TDIRA B引脚仍保持为低 定时器的计数器将重新装入周期寄存器的值 开始新的减计数 读GPTCONA B寄存器中的D14和D13位 可以监测定时器的计数方向 周期下溢和上溢中断的产生方式与连续增计数模式相同 定向增 减计数模式的初始化编程与连续增计数模式方法相同 仅TxCON寄存器的TMODE为11 3 定向增 减计数模式 4 连续增 减计数模式 连续增 减计数模式与定向增 减计数模式基本相同 区别是 计数方向不受引脚TDIRA B的状态影响 而是在计数值达到周期寄存器的值时或FFFFh 初值大于周期寄存器的值 时 才从增计数变为减计数 在计数值为0时 从减计数变为增计数 4 通用定时器的输入和输出信号 1 时钟输入 通用定时器的时钟源可采用内部时钟或外部时钟输入TCLKINA B 或正交编码器脉冲电路QEP 由每个通用定时器的控制寄存器TxCON的D5 D4位选择决定 并通过D10 D8位选择8种输入时钟的预定标系数 当使用外部时钟时 要求其最大频率是CPU时钟频率的1 4 在定向增 减计数器模式下 EVA模块中的通用定时器2和EVB中的通用定时器4可用于正交编码脉冲 QEP 电路 此时正交编码脉冲电路不仅为定时器2 4提供时钟 而且还提供输入方向 2 方向输入 当通用定时器处于定向增 减计数模式时 输入引脚TDIRA B决定了计数的方向 TDIRA B为高电平时 规定为增计数 为低电平时 规定为减计数 读全局控制寄存器GPTCONA B的TxSTAT位可检查通用定时器的计数方向状态 3 比较输出 每个通用定时器都可以独立地提供一个PWM输出通道 所以通用定时器可提供4个PWM输出 TxPWM 或称比较输出TxCMP x 1 2 3 4 比较输出引脚TxPWM由全局通用定时器控制寄存器GPTCONA B的D3 D2位和D1 D0位规定为强制高 强制低 高有效或低有效 强制高 低 若GPTCONA B的相应位规定PWM输出为强制高 低后 输出引脚TxPWM立即变为高电平 低电平 高有效 低有效 若GPTCONA B的相应位规定PWM输出为高有效 低有效后 则可以产生非对称或对称波形 当通用定时器工作在连续增 减计数模式时 产生对称波形 当通用定时器工作在连续增计数模式时 产生非对称波形 PWM输出在以下事件的影响下发生变化 1 计数操作开始前 输出引脚TxPWM保持无效状态 2 当第一次比较匹配发生时 输出引脚TxPWM跳变为有效状态 同时产生触发 3 如果通用定时器工作在连续增 减计数模式 则在第二次比较匹配时TxPWM变为无效状态 并一直保持到下一个周期的第一次比较匹配发生 如下图所示 该波形称为对称波形 连续增 减计数模式下的比较输出 TxPWM 如果通用定时器工作在连续增计数模式 则在周期匹配时TxPWM变为无效状态 并一直保持到下一个周期的比较匹配发生 如下图所示 该波形称为非对称波形 连续增计数模式下的比较输出 TxPWM 4 如果比较值在一个周期开始时为0 则在整个周期PWM输出为有效状态 如果下一周期比较值仍为0 则PWM输出将不再改变 继续保持有效状态 如果比较值大于或等于周期值 则在整个周期PWM输出为无效状态 直到比较值小于周期值并发生比较匹配时 PWM输出才发生跳变 在连续增 减计数模式下的比较输出图中 比较寄存器在增计数和减计数模式下可以有不同的值 所以TxPWM输出的有效相位长度Ta可由下式计算 Ta TxPR TxCMPR up TxPR TxCMPR dn Tc 在连续增计数模式下的比较输出图中 TxPWM输出的有效相位长度Ta和无效相位长度Ti由下式计算 Ta TxPR TxCMPR 1 TcTi TxCMPR Tc式中 TxPR为周期寄存器的值 TxCMPR 为连续增 减计数模式下增计数的比较值 TxCMPR dn为连续增 减计数模式下减计数的比较值 TxCMPR 为连续增计数模式下的比较值 Tc为定标输入时钟周期 可见 输出信号的跳变时间由比较寄存器的值决定 改变比较寄存器中的值就可以改变TxPWM输出脉冲的宽度 同一模块的通用定时器可以实现同步 即EVA模块中定时器2和1可以同步 EVB模块中定时器4和3可以实现同步 方法如下 1 置T1CON EVA模块 或T3CON EVB模块 寄存器中的TENABLE位为1 且置T2CON EVA 中的T2SWT1或T4CON EVB 寄存器中的T4SWT3位为1 此时将同时启动本模块中的两个计数器 2 在启动同步操作前 可将本模块的两个计数器初始化成不同的值 3 置T2CON T4CON寄存器中的SELT1PR SELT3PR位为10使通用定时器1 3的周期寄存器也作为通用定时器2 4的周期寄存器 而忽略2 4自身的周期寄存器 5 通用定时器的同步 该程序检查EVA中定时器1的操作 定时器的模式为连续增 减计数 x 128 输出对应于上溢 下溢 比较 周期中断进入相应的中断服务程序SISR2x中 使通用I O引脚IOPB0 上溢时 IOPB1 下溢时 IOPB2 比较匹配发生时 IOPB3 周期匹配发生时 相继输出高电平 6 通用定时器程序举例 程序名为EV T1INT asm include 240 xA h 变量和寄存器说明 include 240 xAvector h 矢量标志说明 def c into text c into LDP 0h 设置DP 0SETCINTM 禁止中断SPLK 0000h IMR 屏蔽所有核心中断LACCIFR 读中断标志SACLIFR 清所有中断标志LDP 00E0h 设置DP E0h 外设页面SPLK 0004h SCSR1 为EVA模块打开时钟SPLK 006Fh WDCR 禁止看门狗MAR AR0LDP 0E1h 外设页面SPLK 0FF00h PBDATDIR 设置IOPBn引脚为输出低电平 装入通用定时器1LDP 00E8h 设置DP E0h 则地址为7400h 747FhSPLK 0000h GPTCONA SPLK 0000h T1CNT 将定时器1计数清零SPLK 0F42h T1CON 使能增 减计数 x 128 内部时钟 使能比较 计数器为0时重装比较寄存器 使用自己的周期寄存器 SPLK 0FFFh T1PRSPLK 00FFh T1CMPRSPLK 0780h EVAIMRA 使能定时器1的上溢 下溢 比较 周期中断SPLK 0FFFFh EVAIFRA 清中断LDP 0SPLK 0002h IMR 使能INT2CLRCINTMWAIT NOP 循环等待中断NOPBWAITGISR2 Int2通用中断服务程序GISR2LDP 00E0h 设置外设页面LACLPIVR 将外设中断矢量PIVR值装入累加器 XOR 002Ah GPT1上溢中断矢量BCNDSISR2A EQ 如果相等转上溢中断服务程序LACLPIVRXOR 0029h GPTl下溢中断矢量BCNDSISR29 EQ 如果相等转下溢中断服务程序LACLPIVRXOR 0028h GPT1比较中断矢量BCNDSISR28 EQ 如果相等转比较中断服务程序LACLPIVRXOR 0027h GPTl周期中断矢量BCNDSISR27 EQ 如果相等转周期中断服务程序RETSISR2A GPTl上溢中断服务程序LDP 0E1h 设置外部页面SPLK 0FF01h PBDATDIR 设置IOPB0引脚输出高电平CALLDELAYLDP 0E8h 外设页面LACC 0400h 清上溢中断标志SACLEVAIFRA 在EVAIFRA内CLRCINTM 使能所有标志RET SISR29 GPT1 下溢中断服务程序LDP 0E1h 外设页面SPLK 0FF02h PBDATDIR 设置IOPB1引脚输出高电平CALLDELAYLDP 0E8h 外设页面LACC 0200h 清下溢中断标志SACLEVAIFRA 在EVAIFRA内CLRCINTM 使能所有标志RETSISR28 GPT1L 中断服务程序LDP 0E1h外设页面SPLK 0FF04h PBDATDIR 设置101 B2引脚输出高电平CALLDELAYLDP 0E8h 外设页面LACC 0100h 清比较中断标志SACLEVAIFRA 在EVAIFRA内CLRCINTM 使能所有中断RET SISR27 GPT1周期中断服务程序LDP 0E1h 外设页面SPLK 0FF08h PBDATDIR 设置IOPB3引脚输出高电平CALLDELAYLDP 0E8h 外设页面LACC 0080h 清周期中断标志SACLEVAIFRA 在EVAIFRA内CLRCINTM 使能所有标志RETDELAY LARAR0 01h 通用目的延时D LOOP RPT 01h 修改RPT值可改变延时时间NOPBANZD LOOPRETGISR1 RETGISR3 RETGISR4 RETGISR5 RETGISR6 RETPHANTOMRET end 9 3 2全比较单元和脉宽调制电路PWM 事件管理器 EVA 模块中有3个全比较单元 全比较单元1 2和3 对应于3个16位的全比较寄存器 CMPR1 CMPR2和CMPR3 事件管理器模块 EVB 中有3个全比较单元 全比较单元4 5和6 对应于3个16位的全比较寄存器 CMPR4 CMPR5和CMPR6 每个EV模块中与比较单元相关的PWM电路带有可编程死区和输出极性控制 以产生独立的3对 即6路 PWM输出 每个全比较单元 或全比较寄存器 对应于两个PWM输出 即全比较单元1 2 3 EVA 对应于PWMy y l 2 3 4 5 6 全比较单元4 5 6 EVB 对应于PWMz z 7 8 9 10 11 12 每个EV模块有一个16位可读写的比较控制寄存器COMCONA B 一个16位的比较方式控制寄存器ACTRA B 各带一个可读 写的影子寄存器 比较单元的时基由通用定时器1 EVA模块 和通用定时器3 EVB模块 提供 1 全比较单元 全比较单元中的16位比较寄存器 CMPR1 CMPR6 各带一个可读 写的影子寄存器 它们用于存放与通用定时器1 3相比较的值 比较寄存器的地址分别为 CMPR1 7417h CMPR2 7418h CMPR3 7419h CMPR4 7517h CMPR5 7518h CMPR6 7519h 比较控制寄存器COMCONA B控制全比较单元的操作 比较方式控制寄存器TCTRA B控制12个PWM输出引脚的输出方式 1 比较控制寄存器A B COMCONA B 地址7411h 7511hD15CENABLE 比较使能位 0禁止比较操作 1使能比较操作 D14 D13CLD1 CLD0 比较寄存器CMPRx重装条件 00当T1CNT T3CNT 0时 即下溢 11T1CNT T3CNT 0或T1CNT T3CNT T1PR T3PR 即下溢或周期匹配 时10立即重装11保留 结果不可预测 D12SVENABLE 空间矢量PWM模式矢量位 0禁止空间矢量PWM模式 1使能空间矢量PWM模式 D11 D10ACTRLD1 ACTRLD0 方式控制寄存器重装条件 00当T1CNT T3CNT 0时 即下溢 01当T1CNT T3CNT 0或T1CNT T3CNT T1PR T3PR 即下溢或周期匹配 时 10立即重装 11保留 结果不可预测 D9FCOMPOE 比较输出使能位 有效的PDPINTA PDPINTB将该位清0 0PWM输出引脚为高阻态 即禁止 1PWM输出引脚使能 D8PDPINTA PDPINTBSTATUS 该位反映了当前PDPINTA PDPINTB引脚的状态 该位只在240 xA系列中应用 在240 x系列中为保留位 D7 D0Reserved 保留位 2 比较方式控制寄存器 ACTRA ACTRB 地址7413h 7513hD15SVRDIR 空间矢量PWM旋转方向位 仅用于空间矢量PWM输出的产生 0正向 CCW 1反向 CW D14 D12D2 D0 基本的空间矢量位 仅用于空间矢量PWM输出的产生 D11 D10CMP6ACT CMP12ACT 比较输出引脚CMP6 CMP12的输出方式 00强制低 01低有效 10高有效 11强制高 D9 D8CMP5ACT CMP11ACT 比较输出引脚CMP5 CMP11的输出方式 00强制低 01低有效 10高有效 11强制高 D7 D6CMP4ACT CMP10ACT 比较输出引脚CMP4 CMP10的输出方式 00强制低 01低有效 10高有效 11强制高 D5 D4CMP3ACT CMP9ACT 比较输出引脚CMP3 CMP9的输出方式 00强制低 01低有效 10高有效 11强制高 D3 D2CMP2ACT CMP8ACT 比较输出引脚CMP2 CMP8的输出方式 00强制低 01低有效 10高有效 11强制高 D1 D0CMPlACT CMP7ACT 比较输出引脚CMP1 CMP7的输出方式 00强制低 01低有效 10高有效 11强制高 2 PWM电路 在数字控制系统中 通常需要将数字信号转换成模拟信号以控制外设对象 这种转换过程最常用的方法就是采用脉宽调制 PWM 技术 调制技术的核心就是产生周期不变但脉宽可变的信号 也就是说一个PWM信号是一串宽度变化的脉冲序列 这些脉冲平均分布在一段定长的周期中 在每个周期中有一个脉冲 这个定长的周期被称为PWM 载波 周期 其倒数被称为PWM 载波 频率 在一个电机控制系统中 通过功率器件 大部分是开关型器件 将所需的电流和能量送到电机线圈绕组中 这些相电流的形状 频率及能量的大小控制着电机所需的速度和扭矩 而脉宽调制信号PWM就是用来控制功率器件的开启和关断时间的 在具体应用中 常将两个功率器件 一个正相导通 另一个负相导通 串联到一个功率转换器的引脚上 为了避免击穿 要求这两个器件的开启时间不能相同 死区就是为了使这两个器件的开启存在一定的时间间隔 即死区时间 通用定时器的周期匹配可以保证PWM波形的周期不变 通用定时器比较匹配可以产生不同的PWM脉宽 因此 根据调制频率来设置通用定时器周期寄存器的值 根据已得到的脉宽变化规律在每个周期内修改通用定时器比较寄存器的值 以得到不同的脉宽 通过设置死区控制寄存器可选择死区时间 综上所述 与比较单元相关的PWM电路中PWM波形的产生由以下寄存器控制 通用定时器计数器T1CON T3CON 比较控制寄存器COMCONA B 比较方式控制寄存器ACTRA B和死区控制寄存器DBTCONA B 1 可编程的死区单元 死区单元主要用于控制每个比较单元相关的2路PWM输出不在同时间内发生 从而保证了所控制的一对正向和负向设备在任何情况下不同时导通 事件管理模块EVA和EVB都有各自的可编程死区单元 每个可编程死区单元都有一个16位的死区控制寄存器DBTCONA B 可读写 一个输入时钟预分频器 x 1 x 2 x 4 x 8 x 16 x 32 x为器件CPU的时钟输入 3个4位的减计数器和控制逻辑 死区单元的操作方式由死区控制寄存器DBTCONA B来控制 DBTCONA和DBTCONB各位的定义完全相同 不同之处用 符号区分 死区控制寄存器A B DBTCONA DBTCONB 地址7415h 7515hD15 D12Reserved 保留位 D11 D8DBT3 DBT0 死区定时器周期 这4位定义了3个死区定时器的周期值 m D7EDBT3 死区定时器3使能位 对应比较单元3的引脚PWM5 PWM11和PWM6 PWM12 0禁止 1使能 D6EDBT2 死区定时器2使能位 对应比较单元2的引脚PWM3 PWM9和PWM4 10 0禁止 1使能 D5EDBT1 死区定时器1使能位 对应比较单元1的引脚PWM1 PWM7和PWM2 PWM8 0禁止 1使能 D4 D2DBTPS2一DBTPS0 死区定时器的预分频器 x CPU的时钟频率 000 x 1001x 2010 x 4011x 8100 x 16101x 32110 x 32111x 32D1 D0Reserved 保留位 死区的输入是PH1 PH2和PH3 分别由比较单元1 2和3对称 非对称波形发生器产生 与其相对应的死区单元的输出是DTPH1 DTPH1 DTPH2 DTPH2 DTPH3 DTPH3 经过输出逻辑 DTPH1和DTPH1 对应于PWM输出PWM1和PWM2 EVB为PWM7和PWM8 DTPH2和DTPH2 对应于PWM3和PWM4 EVB为PWM9和PWM10 DTPH3和DTPH3 对应于PWM5和PWM6 EVB为PWM11和PWM12 上述每两个信号的跳变沿有一段时间间隔 该时间间隔称为死区 死区的值由DBTCONA B寄存器中的相应位决定 假如DBTCONA B的D11 D8位定义的值为m D4 D2位中的值对应的预分频因子为x p x为CPU时钟周期 则死区值为 p m 个CPU时钟周期 2 比较单元和PWM电路中的PWM波形产生比较单元的输出逻辑电路决定了比较发生匹配时 输出引脚PWM1 12上的输出极性和方式 通过设置ACTRA B寄存器中的相应位可使输出方式为低有效 高有效 强制低 强制高 产生PWM输出需要对事件管理器中相关的寄存器进行配置 步骤如下 a 设置和装载ACTRx寄存器 以确定输出方式和极性 b 如果使用死区单元 则设置和装载DBTCONx寄存器 c 设置和装载通用定时器周期寄存器T1PR或T3PR以确定PWM周期 d 初始化比较寄存器CMPRx 即装入比较值 以确定PWM波形的占空比 e 设置和装载COMCONx 以使能比较操作和PWM输出 f 设置T1CON EVA 或T3CON EVB 用来设置计数模式和启动比较操作 g 更新CMPRx寄存器的值 以改变PWM波形的占空比 非对称PWM波形的产生将定时器1或3设置为连续增计数模式 则将产生非对称PWM波形 按上述步骤设置好各个寄存器后 就能在与比较单元相关的一对PWM输出引脚上产生一路正常的PWM脉冲信号 如PWMx 1 如果死区未使能 另一路PWM输出引脚 如PWMx 则具有相同跳变的脉冲 如果死区使能 该输出引脚则在PWM周期的任一时刻内跳变为低电平 低有效 或高电平 高有效 这两个输出引脚的跳变时间间隔即形成了死区 这种用软件灵活控制的PWM输出适用于对开关磁阻电机的控制 在每个PWM周期的任何时刻可将新的比较值 周期值写入比较寄存器CMPRx 周期寄存器T1PR T2PR 中 以改变PWM输出的宽度和周期 也可以重置比较方式控制寄存器 ACTRA B 以改变PWM的输出方式 更新的值是在下一个PWM周期内实现 将通用定时器1或3设置为连续增 减计数模式 即可产生对称PWM波形 在对称PWM波形发生的一个周期内通常有两次比较匹配 一次在周期匹配前的增计数期间 另一次是在周期匹配后的减计数期间 更新比较寄存器的值 就可以提前或推迟PWM脉冲的第二个边沿的到来 用这种修改PWM波形特性的方法可以弥补由交流电机控制中的死区所导致的电流误差 使用对称PWM波形可减小在使用正弦波调整时 交流电机和直流无刷电机的相电流的谐波失真 产生对称PWM波形的设置与产生非对称PWM波形的设置方法 除计数模式外其他均相同 产生PWM信号的方法与通用定时器中产生TxCMP TxPWM信号的方法相同 对称PWM波形的产生 3 空间矢量PWM波形产生 空间矢量PWM是一种针对三相交流电路的新型调制技术 空间矢量PWM利用三相功率转换器的六个能量晶体管的特殊转换机制 改善输出峰值电压 使三相交流电机绕组中的电流谐波失真最小 基于空间矢量原理的最大输出电压是传统正弦调制的1 55倍 它能在高速下提供更高的磁矩和更高的效率 图中 Udc为电源电压 Va Vb Vc为输入到电动机绕组的电压 6个功率晶体管Q1 Q6分别由DTPHx和DTPHx x a b c 控制 如果约定当上端晶体管导通 DTPHx 1 时 下端晶体管就截止 DTPHx 0 就可以由上端晶体管 Q1 Q3 Qs 的状态 即由DTPHx x a b c 的状态求出输送给电动机的电压Uout 上图所示的三相桥式电路就是按一定的规律控制三对桥臂晶体管的通 断 将直流电压Ubc变为三相正弦电压Va Vb Vc输出 即当相应的上端晶体管导通时 从该相输出的电压Vx x a b c 等于电源电压Udc 当其截止时 电压为零 三个上端晶体管Q1 Q3 和Q5的导通和断开有八种组合 这八种组合和被驱动电机的线电压和相电压 以直流电压Udc为单位 如下表所示 表中的a b和c代表DTPHa DTPHb和DTPHc 通过d q变换处理 可将相应于八种组合的相电压映射至d q平台 得到六个非零矢量和两个零矢量 d q变换相当于把三维变量 a b c 正交投影到垂直于矢量 1 1 1 即d q平面 的二维平面 非零矢量构成六边形的轴线 两相邻矢量之间的夹角是60 两个零矢量位于坐标原点 这八个矢量称做基本空间矢量并记做U0 U60 U120 U180 U240 U300 O000和O111 这种变换同样可用于输入电机所需的电压矢量Uout 图给出了矢量投影和所需的电机电压矢量Uout的投影 1 d q变换 d q平面的d轴和q轴相当于交流电机定子的正交轴中的水平轴和垂直轴 空间矢量PWM方法的目的就是为了通过这六个功率晶体管的八种开启方式的组合来逼近电机的电压矢量Uout 两相邻基本矢量的二进制表示仅有一位不同 即当开启方式从Ux变到Ux 60 或从Ux 60变到Ux时 仅有一个上端晶体管导通 同样零矢量O000和O111没有电压施加到电机上 任意时刻的三相电压Va Vb Vc可由两个相邻的空间矢量合成为所需电压矢量Uout 当电压矢量Uout沿逆时针或顺时针方向旋转时 空间矢量由一个有效状态转移到另一个有效状态 从而产生连续的三相电压 2 基本空间矢量电机电压的近似估计 在任意一个PWM周期内通过求出位于两个相邻基本矢量的两个矢量元素的矢量和来估算空间矢量电机电压Uout Uout T1Ux Tp T2 Ux 60 Tp T0 O000或O111 Tp式中 T0由Tp T1 T2得出 Tp是PWM的载波周期 等式右边的第三项并不影响矢量和Uout Uout的产生可查阅有关空间矢量PWM和电机控制理论的书籍 以上的近似表达式表明对于T1和T2时间段来说 上端晶体管必须相应于矢量Ux和Ux 60的导通和截止形式 这样才能将电压Uout输送到电机上 零基本矢量的引入有助于平衡晶体管的导通和断开周期 以利于平衡它们的功耗 3 空间矢量PWM的产生 事件管理器所生成的空间矢量PWM波形是对于每个PWM周期中心对称的 因此被称为对称空间矢量PWM波形 对称空间矢量PWM波形如下图所示 事件管理器模块内具有产生对称空间矢量PWM波形的内置硬件 内置硬件按照用户软件的设置进行工作 因此为了生成空间矢量PWM波形 在初始化时用户软件应进行如下设置 1 配置比较方式控制寄存器ACTRx以定义全比较输出引脚的极性 2 配置比较控制寄存器COMCONx以使能比较操作和空间矢量PWM模式 并将ACTRx和比较寄存器CMPRx的重装条件设置为下溢 3 将通用定时器1或3设置为连续增 减计数模式 并启动定时器 4 确定在二维d q平面上输入到电机的电压Uout 并分解Uout以确定每个PWM周期的以下参数 两个相邻矢量 Ux和Ux 60 参量了T1 T2 T0 将相应于Ux的开启方式写入到ACTRx寄存器的D14 D12位中 并将1写入ACTRx的D15中 或将Ux 60的开启方式写入ACTRx的D14 D12中 并将0写入ACTRx的D15中 将T1 2写入CMPR1 并将 T1 T2 2写入CMPR2中 每个EV模块工作时 在一个空间矢量PWM周期完成如下的操作 1 在每个周期的开始 将PWM输出设置成由ACTRx的D14 D12位定义的新方式Uy 2 在增计数期间 当CMPRl和通用定时器1发生第一次匹配时 即定时器计数值达到Ti 2时 如果ACTRx l5 为1 就将PWM输出开启到方式Uy 60 如果ACTRx l5 为0 就将PWM输出开启到方式Uy Uo 60 U300 U360 60 U60 3 在增计数期间 当CMPR2和通用定时器1发生第二次匹配时 即定时器计数值达到 T1 T2 2时 将PWM输出开启到方式 000 或 111 它们与 1 类输出方式之间只有1位的差别 4 在减计数期间 当CMPR2和通用定时1发生第一次比较匹配时即定时器计数器达到 T1 T2 2时 就将PWM输出置回到 2 类输出方式 5 在减计数期间 当CMPR1和通用定时器1发生第二次比较匹配时 即定时器计数器达到了T1 2时 就将PWM输出置回到 1 类输出方式 在空间矢量PWM模式中 当两个全比较寄存器CMPR1和CMPR2都被装入0时全比较输出将都变成无效 所以在使用空间矢量PWM模式时应满足以下条件 CMPR1 CMPR2 T1PR 否则将导致不可预测的情况发生 9 3 3捕获单元 捕获单元用于捕获输入引脚上电平的变化并记录其变化发生的时间 事件管理器EV有6个捕获单元 每个捕获单元都有一个与之相对应的捕获输入引脚 即EVA模块的捕获单元1 2和3对应于捕获输入引脚CAP1 CAP2和CAP

温馨提示

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

评论

0/150

提交评论