文档库 最新最全的文档下载
当前位置:文档库 › 飞思卡尔PWM模块

飞思卡尔PWM模块

飞思卡尔PWM模块
飞思卡尔PWM模块

飞思卡尔脉冲宽度调制模块

——PWM模块

目录

1.简介 (1)

2.特征 (1)

3.框图 (1)

4.功能描述 (2)

4.1 预置分频器 (2)

4.2 PWM发生器 (2)

4.2.1 对齐 (2)

4.2.2 周期 (3)

4.2.3 脉宽占空比 (4)

4.3 独立或互补信道操作 (4)

4.4 死区发生器 (6)

4.4.1 上、下管死区调整 (8)

4.4.2 人工死区调整 (10)

4.5 自动死区调整 (12)

4.6 不对称PWM输出 (13)

4.6 不对称PWM输出 (14)

5.软件输出控制 (14)

6.PWM发生器的装入 (15)

6.1 装入使能 (15)

6.2 装入频率 (15)

6.3 重装标志 (17)

6.4 同步输出 (19)

6.5 初始化 (19)

7.故障保护 (20)

7.1 初始化 (20)

7.2 自动故障清除 (21)

7.3 手工故障清除 (21)

8.操作模式 (22)

9.引脚描述 (22)

9.1 PWM0~PWM5引脚 (22)

9.2 FAULT0~FAULT3引脚 (22)

9.3 IS0~IS2引脚 (22)

10.寄存器定义 (22)

10.1 PWM控制寄存器(PMCTL) (24)

10.1.1 装入频率(LDFQ)位15-12 (24)

10.1.2 半周期重装(HALF)位11 (24)

10.1.3 电流极性2(IPOL2)位10 (24)

10.1.4 电流极性1(IPOL1)位9 (25)

10.1.5 电流极性0(IPOL0)位8 (25)

10.1.6 Prescaler(PRSC)位7-6 (25)

10.1.7 PWM重装中断允许(PWMRIE)位5 (25)

10.1.8 PWM重装标志(PWMF)位4 (25)

10.1.9 电流状态(ISENS)位3-2 (26)

10.1.10 允许装入(LDOK)位1 (26)

10.1.11 PWM使能(PWMEN)位0 (26)

10.2 PWM故障控制寄存器(PMFCTL) (26)

10.2.1 保留位位15-8 (26)

10.2.2 FAULT n引脚中断使能(FIE n)位7,5,3,1 (26)

10.2.3 FAULT n引脚清除模式(FMODE n)位6,4,2,0 (27)

10.3 PWM故障状态和确认寄存器(PMFSA) (27)

10.3.1 FAULT n(FPIN n)位15,13,11,9 (27)

10.3.2 FAULT n引脚标志(FFLAG n)位14,12,10,8 (27)

10.3.3 保留位位7 (27)

10.3.4 FAULT n引脚确认(FTACK n)位6,4,2,0 (27)

10.3.5 死区n(DT n)位5-0 (27)

10.4 PWM输出控制寄存器(PMOUT) (28)

10.4.1 输出端衰减器使能(PAD_EN)位15 (28)

10.4.2 保留位14 (28)

10.4.3 输出控制使能(OUTCTRL5-0)位13-8 (28)

10.4.4 保留位7-6 (28)

10.4.5 输出控制(OUT5-0)位5-0 (28)

10.5 PWM计数寄存器(PMCNT) (29)

10.5.1 保留位15 (29)

10.5.2 计数器(CNT)位14-0 (29)

10.6 PWM计数器模数寄存器(PWMCM) (29)

10.6.1 保留位15 (29)

10.6.2 计数器模数(CM)位14-0 (29)

10.7 PWM值寄存器(PWMV AL0-5) (30)

10.7.1 值(V AL)位15-0 (30)

10.8 PWM死区寄存器(PMDEADTM) (30)

10.8.1 保留位15-12 (30)

10.8.2 死区位11-0 (30)

10.9 PWM禁止映射寄存器(PMDISMAP1-2) (31)

10.10 PWM设置寄存器(PMCFG) (31)

10.10.1 保留位15 (31)

10.10.2 调试允许(DBG_EN)位14 (31)

10.10.3 等待允许(WAIT_EN)位13 (31)

10.10.4 边沿对齐或中心对齐PWM(EDG)位12 (32)

10.10.5 保留位11 (32)

10.10.6 上边PWM极性(TOPNEG)位10-8 (32)

10.10.7 下边PWM极性(BOTNEG)位6-4 (32)

10.10.8 独立或互补对操作(INDEP)位3-1 (32)

10.10.9 写保护(WP)位0 (32)

10.11 PWM通道控制寄存器(PMCCR) (33)

10.11.1 硬件加速使能(ENHA)位15 (33)

10.11.2 56F80x 兼容性(nBX)位14 (33)

10.11.3 Mask(MSK5-0)位13-8 (33)

10.11.4 保留位7-6 (33)

10.11.5 值寄存器装入模式(VLMODE)位5-4 (33)

10.11.6 保留位3 (34)

10.11.7 Swap45(SWP45)位2 (34)

10.11.8 Swap23(SWP23)位1 (34)

10.11.9 Swap01(SWP01)位0 (34)

10.12 PWM端口寄存器(PMPORT) (34)

10.12.1 保留位15-7 (35)

10.12.2 保留位6-0 (35)

10.13 PWM内部调整控制寄存器(PMICCR) (35)

10.13.1 保留位15-3 (35)

10.13.2 内部电路控制2(ICC2)位2 (35)

10.13.3 内部电路控制1(ICC1)位1 (35)

10.13.4 内部电路控制0(ICC0)位0 (36)

11.时钟 (36)

12.中断 (36)

13.复位 (36)

1.简介

PWM模块可以产生6路独立的或三对互补的PWM输出或二者的混合(例如:一对互补、四个独立的PWM)。有边沿对齐、中心对齐两种同步脉冲控制方式,支持0~100%的调制度。

6个信道都有15位的通用PWM计数器,边沿对齐操作的分辨率为1个PWM时钟周期,中心对齐的分辨率为2个PWM时钟周期,PWM时钟周期由IPBus的频率和可编程的预置分频器(Prescaler)来决定。

产生互补PWM信号时,模块可自动将死区插入到PWM输出对中。用PWM发生器或手工编写软件都可以控制PWM输出。

2.特征

6个PWM信号输出

——6个全部独立;

——三对互补对;

——独立、互补混合

互补信道操作特性

——死区插入;

——通过电流状态输入引脚或软件分别对上、下端脉冲宽度进行调整;

——中心对齐操作中的不对称PWM输出;

——分离的上、下端极性控制

边沿或中心对齐的PWM信号

15位分辨率

半周期重装功能

1~16的整数重装率

独立的PWM输出软件控制

可编程故障保护

极性控制

PWM引脚上的10/12mA电流源汇(Source/Sink)能力(估计是电流

流过该引脚的出/入能力)

寄存器写保护

3.框图

图1为PWM模块的框图。

图1 PWM模块框图

4.功能描述

4.1 预置分频器(PreScaler)

分频预置器将IPBus时钟频率进行1,2,4,8分频产生PWM时钟频率来得到更低的PWM频率。分频数是由PWM控制寄存器(PMCTL)中的位PRSC0和PRSC1决定。分频数被缓冲,并在LDOK=1且新的PWM重载周期开始时有效。

4.2 PWM发生器

PWM发生器包含一个产生软件选择的输出信号的15位增减PWM计数器。

4.2.1 对齐

用PWM设置寄存器(PMCFG)中的边沿对齐位(EDGE)来选择PWM 发生器的输出是采用中心对齐还是边沿对齐。图2为中心对齐方式的PWM输出,图3是边沿对齐方式的PWM输出。

注:根据PWM的等值比较器结构,计数系数为零时非法。但是死区约束和故障条件仍要保证。

图2 中心对齐PWM输出

图3 边沿对齐PWM输出

4.2.2 周期

写到PWMCM寄存器中的值决定PWM的周期。在中心对齐操作中PWM 采用增/减计数器,PWM最高输出分辨率为两个IPBus时钟周期。计数系数是PWM输出周期中包含的PWM时钟周期数的一半。

周期计数系数时钟周期

=??

PWM(PWM)(PWM)2根据该公式可知:在GreatWall项目中,已知PWM的周期为50微秒,且分辨率在50/32微秒以上,而PWM时钟频率是IPBus时钟频率的分频,可由以上的公式计算出PWM计数系数,并通过寄存器PMCNT进行设置。

中心对齐的PWM周期如图4所示。

图4 中心对齐的PWM周期

边沿对齐操作中,PWM计数器是一个递增计数器。此模式中PWM的最高输出分辨率为一个IPBus的时钟周期,计数系数为PWM输出周期中包含的PWM时钟周期数。

PWM (PWM )(PWM )=?周期计数系数时钟周期

边沿对齐的PWM 周期如图5所示。

图5 边沿对齐的PWM 周期

4.2.3 脉宽占空比

用PWM 值寄存器PWMV AL n 中写入的16位有符号数来表示PWM Prescaler 输出的PWM 时钟周期中脉冲宽度。

PWM 100%=?值占空比计数系数

注:如果PWM 值小于等于0,则对整个PWM 周期中的PWM 输出视为无效。如果,PWM 值大于等于计数系数,则PWM 输出在整个PWM 周期是激活的,即占空比为100%。

PWM 值及下溢条件如表1所示。

表1 PWM 值及下溢条件

中心对齐操作如图6所示。脉冲宽度为二倍的PWM 值寄存器中的值与中心对齐输出的PWM 时钟周期的乘积。

(PWM )(PWM )2=??脉冲宽度值时钟周期

边沿对齐操作如图7所示。脉冲宽度等于PWM 值寄存器中的值与边沿对齐输出的PWM 时钟周期的乘积。

(PWM )(PWM )=?脉冲宽度值时钟周期

4.3 独立或互补信道操作

在PWM 设置寄存器中,如果在独立或互补操作位(INDEP nn )中写逻辑“1”,则相应的PWM 输出信道对相互独立。如果向INDEP nn 中写逻辑“0”,

输出是一对互补信道。如图

图6 中心对齐的PWM脉冲宽度

图7 边沿对齐的PWM脉冲宽度

图8 互补信道对

互补信道利用反向电路驱动上下两个管,如图9所示

图8 典型三相反相器

在互补信道中,还有三个其他的特性:

死区插入

对插入死区和负载特性产生的失真,可以分别对上下两路的脉宽进行

调整。

上下输出的极性可分开控制。

4.4 死区发生器

在互补模式中,每个PWM对可驱动上、下两管,如图10所示。实际上PWM对之间是相互独立的,上、下管如果有一个是导通的,则另一个就是截

图10 死区发生器

为了防止上、下管之间断路,必须使上、下管不同时导通,但是晶体管的特性是截止时间要长于导通时间,为了使上、下管不同时导通,必须在开关周期内插入死区。

死区发生器在一对PWM输出中自动地插入软件选择的导通时延,脉冲调整死区寄存器(PMDEADTM)表示用于死区时延的PWM时钟周期数。每当PWM发生器输出状态改变时都插入死区。死区强制一对PWM输出处于截止状态。后面要介绍,通过对PWM的值中加、减来调整死区的方法。

图11~图13为不同的操作条件下的死区插入方式。

注:死区的插入使输出波形延时了两个IPBus周期。

图11 中心对齐插入死区

图12 死区占空比边界

图13 死区和小脉宽

4.4.1 上、下管死区调整

在互补模式中,上管或下管控制输出电压,然而,为防止上下管同时导通必须插入死区。在插入的死区中,互补模式的两管都是截止的,允许负载的电流状态(方向)决定输出电压,并在输出电压中引起了失真。参见图14。失真典型表示为可见的短时脉冲干扰和谐波使输出波形变坏。

在死区内,负载的自感产生的电流流过反向的二极管使输出电压失真。死区电流产生了与电流方向不同的输出电压。正电流时,死区时的输出电压等于下管的供电电压,上管受控,负电流时,死区时的输出电压等于上管的供电电压,下管受控。死区的引入使原脉冲的宽度变窄,平均输出小于理想值。然而,死区的插入使负载电流波形失真。每一晶体管的导通与截止时延不同,这使失真进一步恶化。如果给出给定时间内与受控的晶体管相关的PWM模块信息,失真就可以调整。

图14 死区失真

对于互补信道操作中的典型电路,在任意给定时间,只有一个管可有效地控制输出电压。这取决于该互补对的负载电流方向,如图14所示。根据是上管还下管正在控制输出电压,为了调整失真,这两个不同的因素之一要加入到理想的PWM值中。因此,软件负责计算补偿值并预置到两管的奇数/偶数的PWM寄存器对中。奇数号或偶数号的PWM值寄存器(PWMV AL n)控制任意时刻的脉冲宽度。对于给定的PWM对,是奇数还是偶数的PWMV AL寄存器被激活取决于以下条件之一:

对于该驱动器电流状态引脚(IS n)的状态;

对于该驱动器奇/偶调整位(IPOL n)的状态;

如果PMICCR寄存器中的ICC位被置位,PWM计数器的方向。

为了调整死区失真,软件可以适当地增、减PWMV AL寄存器中的值。

在边沿对齐方式中,可增、减PWM的值,使调整值等于对死区失真

的典型补偿值。

在中心对齐方式中,可增、减PWM的值,使调整值等于对死区失真

的典型补偿值的一半。

在互补信道操作中,寄存器PWMCTL中的ISENS[1:0]位用于选择三种调整方式之一。

人工死区调整。

死区中采样电流状态引脚(IS n)的自动死区调整。

当PWM计数器等于PWM计数系数寄存器中的值时,采样电流状态

引脚IS n,进行自动电流状态调整。

表2 调整方式选择

产生高电压,此外假设上管为PWM0,2,4,下管为PWM1,3,5。

4.4.2 人工死区调整

当ISENS[1:0]=0n,在互补模式中,PWM控制寄存器(PMCTL)中的IPOL0~IPOL2位用于选择奇数的PWM值寄存器还是偶数PWM值寄存器在下一个周期被采用。IPOL n位与上、下管人工调整的关系如表3所示。

表3 上、下管人工调整

注:缓冲的IPOL n位在每个PWM周期中仅有一个PWM寄存器起作用。如果在PWM周期之中IPOL n位发生改变,新值要等到下一个PWM周期才有效。IPOLn位要在每个PWM 周期的结束处才起作用,而与LOAD OKEY(LDOK)位无关。

为了检测电流状态,在每个死区结束时采样每个IS n引脚上的电压。采样值存储于故障确认寄存器的DT n位中。DT n位是一个时间标记,用于指示什么时间该触发两个PWM值寄存器中的哪一个。可根据DT n位中的值,用软件设置IPOL n位以触发PWM值寄存器。

如果电流比较大并且是流出互补电路的,两个D触发器在死区周期中锁存低电平(DT0=0,DT1=0)。如图15所示。

如果电流比较大并且是流入互补电路的,两个D触发器在死区周期中锁存高电平(DT0=1,DT1=1)。如图15所示。

图15 死区调整的电流传感方案

然而,当电流较小时,在死区周期内的互补电路输出电压会介于高低电平之间,电流不能自如地通过反相的抗体二极管,并与极性无关,当电流过零时,又产生了额外的失真。采样的结果是DT0=0,DT1=1。因此,改变PWM值寄存器的最佳切换时间时过零之前。如图16所示。

图16 输出电压波形

4.5 自动死区调整

对于PWM对,电流状态引脚ISn是用于选择在下一个PWM周期中是采用奇数或偶数PWM值寄存器。这个选择的依据是:用户提供的电流传感电路对负电流使IS n引脚为高电平,对正电流IS n引脚为低电平。表4为上下管的PWM调整。

表4 上、下管自动调整

当ISENS[1:0]=10,第一种自动死区调整模式通过在死区时间内采样电流状态引脚IS n来实现。由于死区不存在,在占空比为0或100%的边界处也就没有采样。

当ISENS[1:0]=11,第二种自动死区调整模式通过在中心对齐方式的半周期处、在边沿对齐的结束处进行采样电流状态引脚(IS n)。

注:ISn引脚上锁存的值被缓冲,所以每个PWM周期中仅使用一个PWM寄存器。如果电流状态在一个PWM周期之中发生改变,则新值要等到下一个PWM周期才会有效。

通过设定PWMEN位进行首次激活时,并没有以前采样到的电流状态。当对电流状态调整进行设置时,对三个PWM对的控制最初是由偶数的PWM 值寄存器来控制的。

图17 正电流调整

图18 负电流调整

4.6 不对称PWM输出

在中心对齐的互补模式中,PWM的占空比在每半个周期内交替变化。PWM计数器的计数方向选择PWM周期中是采用奇数PWM值寄存器还是偶数PWM值寄存器。递增计数时,在PWM周期中使用偶数PWM值寄存器,递减计数时,在PWM周期中使用奇数PWM值寄存器。

表5 通过选择ICC位进行上、下管调整

注:如果PMICCR寄存器中的ICCn位在PWM周期中发生变化,新值要下一个PWM周期才有效,所以无论LOAD OKAY(LDOK)位的状态如何,ICC n位在每一PWM周期的结束处有效。

图19 调整逻辑

4.6 不对称PWM输出

当PWM被激活时,正极性表示输出高电平,负极性表示输出低电平。

输出的极性由以下两个选项来决定:

1.TOPNEG用来控制PWM0,PWM2,PWM4的输出极性,当TOPNEG=1时输出低电平。

2.BOTNEG用来控制PWM1,PWM3,PWM5的输出极性,当BOTNEG=1时输出低电平。

TOPNEG和BOTNEG位都在设置寄存器中(PMCFG)中,参见图20。

图20 PWM极性

5.软件输出控制

如果输出控制使能位OUTCTRL n=1,PWM输出由软件驱动而不是PWM 发生器驱动。

在独立模式中,OUTCTRL n=1,输出位OUT n控制PWM n信道。置“1”

OUTCTRL n和OUT n都位于PWM输出控制寄存器(PMOUT)中。

在软件输出控制过程中,TOPNEG和BOTNEG仍然控制输出的极性。

在互补信道中,对于正常的操作,奇数和偶数OUTCTRL n位必须同时交换,用偶数的OUT n位来替换PWM发生器的输出。互补的信道对不能同时激活,无论偶数OUT n位何时触发,死区发生器都连续插入死区。当奇数OUT n 位触发时不插入死区。当奇数OUT n=1时,偶数的OUT n位控制互补信道对。如果奇数OUT n=0,并且奇数PWM n非激活,偶数的OUT n位仍控制互补信道对。换句话说,如果奇数OUT n=1,奇数的PWM n是与其成对的偶数PWM n 的补。而当奇数OUT n=0,奇数的PWM n是非激活的。参见图21。

当OUTCTL n=1,并不能使相应的PWM发生器和电流状态传感电路停止工作,它们继续运行只是不能控制输出引脚。当OUTCTL n=0,PWM发生器的输出在下一个PWM周期的开始控制PWM输出。参见图21。

当PWM使能位PWMEN=0,软件也可驱动PWM的输出。

注:应该避免在置位OUTCTL n之前和清除OUTCTL n之后清除OUT n位产生的不希望的死区插入。(意思好像在说应避免在OUTCTL n和OUT n同时为0时插入不希望的死区)。

6.PWM发生器的装入

6.1 装入使能

Load Okay(LDOK)位允许PWM发生器装入以下内容:

在PWM控制寄存器中的PRSC1和PRSC0位装入预置分频器的除数;

由PWM计数系数寄存器装入PWM周期;

由所有的PWM值寄存器装入PWM脉冲宽度。

LDOK确保同时重装所有PWM参数。使LDOK置位允许预置分频位、PWMCM和PWMV AL n寄存器装入到一系列缓存中。装入的缓存由PWM发生器在下一PWM周期的开始时使用。通过读置位的LDOK,然后向其写逻辑“1”。装入之后,LDOK被自动清“0”。

6.2 装入频率

PMCTL寄存器中的LDFQ3、LDFQ2、LDFQ1和LDFQ0位用于选择1~16个PWM重装时刻的整数装入频率。无论LDOK位状态如何,LDFQ位在每一个PWM重装时刻有效。PMCTL寄存器中的half位控制中心对齐方式的半周期重装。如果half=1,重装时刻可以是每一PWM周期的开始,也可以是每PWM周期的一半处。如果half=0,重装时刻只有每一PWM周期的开始。对于边沿对齐方式,重装时刻只有每一PWM周期的开始。

注:在半周期时载入新的计数系数,在下一时钟周期将强制计数到新的计数系数减一。在中心对齐模式中半周期重装仅改变重装率。而边沿对齐方式中半周

图21 互补模式中的软件输出控制

图22 全周期重装频率变化

图23 半周期重装频率变化

6.3 重装标志

在每一重装时刻,PMCTL寄存器中的PWM重装标志位PWMF=1。即使通过LDOK位屏蔽了实际的重装,PWMF置“1”的过程还是会产生。如果PWM重装中断使能位PWMRIE=1,PWMF产生内核中断请求,允许软件实时计算新的PWM参数。当PWMRIE=0,在选择的重装率下进行重装但不产生中断请求。通过读清除PWMF,而后写逻辑“0”。

图24 全周期中心对齐PWM值的装入

图25 全周期中心对齐计数系数装入

飞思卡尔智能车电机资料上课讲义

3.1.6驱动电机介绍 驱动电机采用直流伺服电机,我们在此选用的是RS-380SH型号的伺服电机,这是因为直流伺服电机具有优良的速度控制性能,它输出较大的转矩,直接拖动负载运行,同时它又受控制信号的直接控制进行转速调节。在很多方面有优越性,具体来说,它具有以下优点: (1)具有较大的转矩,以克服传动装置的摩擦转矩和负载转矩。 (2)调速范围宽,高精度,机械特性及调节特性线性好,且运行速度平稳。 (3)具有快速响应能力,可以适应复杂的速度变化。 (4)电机的负载特性硬,有较大的过载能力,确保运行速度不受负载冲击的 影响。 (5)可以长时间地处于停转状态而不会烧毁电机,一般电机不能长时间运行 于停转状态,电机长时间停转时,稳定温升不超过允许值时输出的最大堵转转矩称为连续堵转转矩,相应的电枢电流为连续堵转电流。 图3.1为该伺服电机的结构图。图3.2是此伺服电机的性能曲线。 图3.1 伺服电机的结构图

图3.2 伺服电机的性能曲线 3.1.7 舵机介绍 舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。一般舵机的控制要求如图3.3所示。图3.4为舵机的控制线。 图3.3 舵机控制要求

飞思卡尔单片机LED控制例程详解

我的第一个LED程序 准备工作: 硬件:Freescale MC9S08JM60型单片机一块; 软件:集成开发环境codewarrior IDE; 开发板上有两个LED灯,如下图所示: 实验步骤: 1.首先,确保单片机集成开发环境及USBDM驱动正确安装。其中USBDM的安装步骤如下:?假设之前安装过单片机的集成开发环境6.3版本:CW_MCU_V6_3_SE; ?运行USBDM_4_7_0i_Win,这个程序会在c盘的程序文件夹下增加一个目录C:\Program Files\pgo\USBDM 4.7.0,在这个目录下: 1〉C:\ProgramFiles\pgo\USBDM 4.7.0\FlashImages\JMxx下的文件 USBDM_JMxxCLD_V4.sx是下载器的固件文件; 2〉C:\Program Files\pgo\USBDM 4.7.0\USBDM_Drivers\Drivers下有下载器的usb 驱动 所以在插入usb下载器,电脑提示发现新的usb硬件的时候,选择手动指定驱动 安装位置到以上目录即可。 ?运行USBDM_4_7_0i_Win之后,还会在目录: C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.3\prog\gdi 下增加一些文件,从修改时间上来看,增加了6个文件,这些文件是为了在codewarrior 集成开发环境下对usb下载器的调试、下载的支持。

2.新建一个工程,工程建立过程如下: ?运行单片机集成开发环境codewarrior IDE ?出现如下界面 ●Create New Project :创建一个新项目工程 ●Load Example Project :加载一个示例工程 ●Load Previous Project :加载以前创建过的工程 ●Run Getting started Tutorial:运行CodeWarrior软件帮助文档 ●Start Using CodeWarrior:立刻使用CodeWarrior ?点击Create New project按钮,以创建一个新的工程,出现选择CPU的界面 如下,请选择HCS08/HCS08JM Family/MC9S08JM60,在右边的Connection窗口

飞思卡尔 智能车舵机控制

智能车的制作中,看经验来说,舵机的控制是个关键.相比驱动电机的调速,舵机的控制对于智能车的整体速度来说要重要的多. PID算法是个经典的算法,一定要将舵机的PID调好,这样来说即使不进行驱动电机的调速(匀速),也能跑出一个很好的成绩. 机械方面: 从我们的测试上来看,舵机的力矩比较大,完全足以驱动前轮的转向.因此舵机的相应速度就成了关键.怎么增加舵机的响应速度呢?更改舵机的电路?不行,组委会不允许.一个非常有效的办法是更改舵机连接件的长度.我们来看看示意图: 从上图我们能看到,当舵机转动时,左右轮子就发生偏转.很明显,连接件长度增加,就会使舵机转动更小的转角而达到同样的效果.舵机的特点是转动一定的角度需要一定的时间.不如说(只是比喻,没有数据),舵机转动10度需要2ms,那么要使轮子转动同样的角度,增长连接件后就只需要转动5度,那么时间是1ms,就能反应更快了.据经验,这个舵机的连接件还有必要修改.大约增长0.5倍~2倍. 在今年中,有人使用了两个舵机分别控制两个轮子.想法很好.但今年不允许使用了.

接下来就是软件上面的问题了. 这里的软件问题不单单是软件上的问题,因为我们要牵涉到传感器的布局问题.其实,没有人说自己的传感器布局是最好的,但是肯定有最适合你的算法的.比如说,常规的传感器布局是如下图: 这里好像说到了传感器,我们只是略微的一提.上图只是个示意图,意思就是在中心的地方传感器比较的密集,在两边的地方传感器比较的稀疏.这样做是有好处的,大家看车辆在行驶到转弯处的情况: 相信看到这里,大家应该是一目了然了,在转弯的时候,车是偏离跑道的,所以两边比较稀疏还是比较科学的,关于这个,我们将在传感器中在仔细讨论。 在说到接下来的舵机的控制问题,方法比较的多,有人是根据传感器的状态,运用查表法差出舵机应该的转角,这个做法简单,而且具有较好的滤波"效果",能够将错误的传感器状态滤掉;还有人根据计算出来的传感器的中心点(比

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤w

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤 /*****************************************************************************/ *本人用此法成功解救了4块板子【窃喜!】,此说明是本人边操作边截图拼成的,有些是在别的说明上直接截图【有些图本人不会截取,就利用现成的了,不过那也是本人用豆和财富值换来的】,表达不清之处还望见谅,大家将就着看吧!如能有些许帮助,我心甚慰!!! ————武狂狼2014.4.23 /*****************************************************************************/ 编译软件:CW5.1版本,下载器:飞翔BDMV4.6 【1】,连接好单片机,准备下载程序,单击下载按钮出现以下界面 或 (图1.1) 图 1.1——4中所有弹出窗口均单击“取消”或红色“关闭”按钮依次进入下一界面

(图1.2) (图1.3)

(图1.4) ******************************************************************************* ******************************************************************************* 【2】单击出现如下图所示下拉列表,然后单击 (图2.1) 出现下图(图2.2)对话框,按下面说明操作 (图2.2)

飞思卡尔单片机编程

关于Codewarrior 中的 .prm 文件 网上广泛流传的一篇文章讲述的是8位飞思卡尔单片机的内存映射,这几天,研究了一下Codewarrior 5.0 prm文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。 正文: 关于Codewarrior 中的.prm 文件 要讨论单片机的地址映射,就必须要接触.prm文件,本篇的讨论基于Codewarrior 5.0 编译器,单片机采用MC9S12XS128。 通过项目模板建立的新项目中都有一个名字为“project.prm”的文件,位于Project Settings->Linker Files文件夹下。一个标准的基于XS128的.prm文件起始内容如下: .prm文件范例: NAMES END SEGMENTS RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF;

READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF; ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF; //OSVECTORS = READ_ONLY 0xFF10 TO 0xFFFF; EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; EEPROM_01 = READ_ONLY DATA_FAR IBCC_FAR 0x010800 TO 0x010BFF; EEPROM_02 = READ_ONLY DATA_FAR IBCC_FAR 0x020800 TO 0x020BFF; EEPROM_03 = READ_ONLY DATA_FAR IBCC_FAR 0x030800 TO 0x030BFF; EEPROM_04 = READ_ONLY DATA_FAR IBCC_FAR 0x040800 TO 0x040BFF; EEPROM_05 = READ_ONLY DATA_FAR IBCC_FAR 0x050800 TO 0x050BFF; EEPROM_06 = READ_ONLY DATA_FAR IBCC_FAR 0x060800 TO 0x060BFF; EEPROM_07 = READ_ONLY DATA_FAR IBCC_FAR 0x070800 TO 0x070BFF; PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF88000 TO 0xF8BFFF;

电机驱动电路总结

电机驱动电路 一、直流电机驱动电路的设计目标 在直流电机驱动电路的设计中,主要考虑一下几点: 1.功能:电机是单向还是双向转动?需不需要调速?对于单向的电机驱动,只要用一个大功率三极管或场效应管或继电器直接带动电机 即可,当电机需要双向转动时,可以使用由4个功率元件组成的H 桥电路或者使用一个双刀双掷的继电器。如果不需要调速,只要使 用继电器即可;但如果需要调速,可以使用三极管,场效应管等开 关元件实现PWM(脉冲宽度调制)调速。 2.性能:对于PWM调速的电机驱动电路,主要有以下性能指标。 1)输出电流和电压范围,它决定着电路能驱动多大功率的电机。

2)效率,高的效率不仅意味着节省电源,也会减少驱动电路的发热。 要提高电路的效率,可以从保证功率器件的开关工作状态和防止共态导通(H桥或推挽电路可能出现的一个问题,即两个功率器件同时导通使电源短路)入手。 3)对控制输入端的影响。功率电路对其输入端应有良好的信号隔离,防止有高电压大电流进入主控电路,这可以用高的输入阻抗或者光电耦合器实现隔离。 4)对电源的影响。共态导通可以引起电源电压的瞬间下降造成高频电源污染;大的电流可能导致地线电位浮动。 5)可靠性。电机驱动电路应该尽可能做到,无论加上何种控制信号,何种无源负载,电路都是安全的。 二、三极管-电阻作栅极驱动 (如果电路看不清楚请到相册里看) 1.输入与电平转换部分: 输入信号线由DATA引入,1脚是地线,其余是信号线。注意1脚对地连接了一个2K欧的电阻。当驱动板与单片机分别供电时,这个电阻可以提供信号电流回流的通路。当驱动板与单片机共用一组电源时,这个电阻可以防止大电流沿着连线流入单片机主板的地线造成干扰。或者说,相当于把驱动板的地线与单片机的地线隔开,实现“一点接地”。 高速运放KF347(也可以用TL084)的作用是比较器,把输入逻辑信号同来自指示灯和一个二极管的2.7V基准电压比较,转换成接近功率电源电压幅度的方波信号。KF347的输入电压范围不能接近负电源电压,否则会出错。因此在运放输入端增加了防止电压范围溢出的二极管。输入端的两个电阻一个用来限流,一个用来在输入悬空时把输入端拉到低电平。 不能用LM339或其他任何开路输出的比较器代替运放,因为开路输出的高电平状态输出阻抗在1千欧以上,压降较大,后面一级的三极管将无法截止。2.栅极驱动部分: 后面三极管和电阻,稳压管组成的电路进一步放大信号,驱动场效应管的栅极并利用场效应管本身的栅极电容(大约1000pF)进行延时,防止H桥上下两臂的场效应管同时导通(“共态导通”)造成电源短路。 当运放输出端为低电平(约为1V至2V,不能完全达到零)时,下面的三极管截止,场效应管导通。上面的三极管导通,场效应管截止,输出为高电平。当运放输出端为高电平(约为VCC-(1V至2V),不能完全达到VCC)时,下面的三极管导通,场效应管截止。上面的三极管截止,场效应管导通,输出为低电平。 上面的分析是静态的,下面讨论开关转换的动态过程:三极管导通电阻远小于2千欧,因此三极管由截止转换到导通时场效应管栅极电容上的电荷可以迅速释放,场效应管迅速截止。但是三极管由导通转换到截止时场效应管栅极通过2千欧电阻充电却需要一定的时间。相应的,场效应管由导通转换到截止的速度要比由截止转换到导通的速度快。假如两个三极管的开关动作是同时发生的,这个电路可以让上下两臂的场效应管先断后通,消除共态导通现象。

第五届飞思卡尔智能车大赛华中科技大学电磁组技术报告

第五届飞思卡尔杯全国大学生 智能汽车竞赛 技 术 报 告 学校:华中科技大学 队伍名称:华中科技大学五队 参赛队员:方华启 张江汉 诸金良 带队教师:何顶新 罗惠

关于技术报告和研究论文使用授权的说明 本人完全了解第五届全国大学生“飞思卡尔”杯智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。 参赛队员签名: 带队教师签名: 日期:

目录 第1章引言 (1) 1.1 概述 (1) 1.2 全文安排 (2) 第2章电路设计 (3) 2.1 电路系统框图 (3) 2.2 电源部分 (4) 2.3 电机驱动部分 (5) 2.4 电磁传感器 (6) 第3章机械设计 (8) 3.1 车体结构和主要参数及其调整 (8) 3.2 舵机的固定 (10) 3.3 传感器的固定 (11) 3.4 编码器的固定 (11) 第4章软件设计 (12) 4.1 程序整体框架 (12) 4.2 前台系统 (13) 4.3 后台系统 (13) 4.4 软件详细设计 (14) 第5章调试 (15) 第6章全文总结 (16) 6.1 智能车主要技术参数 (16) 6.2 不足与改进 (16) 6.3 致谢与总结 (17) I

参考文献 (18) 附录A 源代码 (18) II

第1章引言 第1章引言 教育部为了加强大学生实践、创新能力和团队精神的培养,在已举办全国大学生数学建模、电子设计、机械设计、结构设计等4大竞赛的基础上,委托教育部高等学校自动化专业教学指导分委员会主办每年一度的全国大学生智能汽车竞赛(教高司函[2005]201号文)[1]。 为响应教育部的号召,本校积极组队参加第五届“飞思卡尔”杯全国大学生智能汽车竞赛。从2009 年12 月开始着手进行准备,历时近8 个月,经过设计理念的不断进步,制作精度的不断提高,经历 2 代智能车硬件平台及相关算法的改进,最终设计出一套完整的智能车开发、调试平台。作为电磁组的华中科技大学五队采用轻质量机械设计、大前瞻传感器和连续化算法处理的基本技术路线,在前瞻距离、噪声抑制、驱动优化、整车布局等方面加强研究创新,在有限计算能力下获得了较高的赛道信息准确率。使智能车能够满足高速运行下的动力性和稳定性需求,获得了良好的综合性能和赛场表现。 本文将对智能车的总体设计和各部分的详细设计进行一一介绍。 1.1 概述 1.1.1 电路设计 飞思卡尔电磁组智能汽车硬件主要分为主控板,传感器板。本车在主控板上主要特色为电机使用H桥驱动,从性能和扩展性上优于集成驱动器方案。传感器板设计着重考虑提高传感器的前瞻量和信号的抗干扰能力。 1.1.2 机械设计 机械方面,主要是对舵机的安装进行了研究,加长了舵机的连杆,以增加反应速度。另外,主要研究车差速性能的研究以及传感器支架的固定。 1.1.3 控制程序设计 一方面使用免费的μCOS操作系统,这给智能车的整体调试提供了很多方便;另一方面,在大前瞻传感器的基础上设计出合理的舵机、电机控制算法,在满足稳定性要求的基础上提高速度。 1

飞思卡尔单片机知识点

1、单片机组成:1> CPU 2> 存储器3>I/O ; 2、存储器包括2大类:ROM , RAM 3、标准ASCII码使用(1)个字节表示字符; 4、BCD码是用()进制表示的()的数据; 5、HCS08QG8的最小系统包括(电源电路,复位电路,下载口,(内部时钟)); 6、QG8管脚数量(16)、只能输入的是(PTA5)、只能输出的是(PTA4)、程序下载的是、接外部时钟的是; 7、QG8的管脚可以作为数字输入输出、也可以作为模拟输入,可以作为模拟输入的有(); 8、QG8管脚复用优先级最低的功能是(I/O); 9、QG8存储器配置中,不同资源的分界线……; 10、CPU寄存器有(A, HX, PC, CCR, SP); 11、可以执行位操作的地址范围(0X0000~0X005F); 12、有地址的寄存器分成了(3)块(0页,高页,非易失); 13、如何在C语言中定义常数(数据类型变量名;),如何指定变量的地址(数据类型变量名@ 地址;); 14、堆栈的管理者是寄存器(SP); 15、SP的复位缺省值是(0X00FF); 16、堆栈对数据的操作特点是(向上生长型:先压后涨、先减后弹); 17、堆栈一般在RAM的高地址区域还是低地址区域?高地址区 18、内部时钟源包括哪4大部分? 19、外部时钟分哪2大类;振荡器,整形外部时钟 20、内部时钟中FLL固定倍频(512倍频); 21、ICS的7种工作模式(FEI, FEE, FBI, FBILP, FBE, FBELP, stop); 22、ICS的内部参考时钟是可以校准、微调的,调整的寄存器名(ICSTRM);该寄存器的数值越大,输出时钟频率越(低); 23、FLASH是按页管理的,页大小(512)字节,每页分(8)行; 24、高页寄存器位于FLASH的最后一页的(第六行/0xFFB0~0xFFBF)位置; 25、FLASH的最后一页最后一行是(中断向量); 26、FLASH块保护寄存器(FPROT);块加密寄存器(FOPT);对应的非易失寄存器分别是(NVOPT, NVPROT); 27、FLASH操作的一般过程是(); 28、FLASH操作的有效命令有(空检查,字节编程,突发模式编程,页擦除,全部ROM 擦除); 29、记录程序运行状态的CPU寄存器是(CCR); 30、指令系统包括6大类指令,分别是(算术运算指令、数据传送指令、数据和位操作、逻辑运算、程序控制、堆栈处理); 31、寻址方式是指(CPU访问操作数和数据的方法); 32、寻址方式包括7大类16种,分别是: INH IMM DTR EXT IX,IX1,IX2,SP1,SP2,IX+,IX1+ REL IMD, DD,IX+D,DIX+ 33、8指令模板和6指令模板分别是(); 34、QG8是高电平复位还是低电平复位?低电平 35、QG8数据存储器RAM的大小为(512)字节; 36、上电复位期间将管脚(A4)设置为(低)电平可以进入调试模式 37、QG8的存储器结构为冯·诺伊曼还是哈佛结构?冯诺依曼

飞思卡尔MC9S12XS128功能模块驱动

用了一年多飞思卡尔MC9S12XS128这款处理器,现在总结下各个功能模块的驱动. //锁相环时钟的初始化总线频率为40MHz(总线时钟为锁相环时钟的一半) //晶振为11.0592MHz void PLL_init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1) { //锁相环时钟= 2*11.0592*(39+1)/(10+1)=80MHz 总线时钟为40MHz REFDV=0x0A; SYNR=0x67; //0110_0111 低6位的值为19,高两位的值为推荐值 while(CRGFLG_LOCK != 1); CLKSEL_PLLSEL = 1; //选定锁相环时钟 //FCLKDIV=0x0F; //Flash Clock Divide Factor 16M/16=1M } //周期中断定时器的初始化- // //周期中断通道1用于脉冲累加器的定时采样,定时周期为: 10ms= (199+1)*(1999+1)/(40M) (没有使用) //周期中断通道0用于控制激光管的轮流发射,定时周期为: 2000us= (399+1)*(199+1)/(40M) //2011/4/4 15:24 定时时间改为1ms void PIT_init(void) { PITCFLMT_PITE = 0; // 禁止使用PIT模块 PITCFLMT :PIT 控制强制加载微计数器寄存器。 PITCE_PCE0 = 1; // 使能定时器通道0 //PITCE_PCE1 = 1; //使能定时器通道1 PITMUX = 0; //通道0,和通道1均选择8位微计数器0

飞思卡尔16位单片机的资源配置

以MC9S12XS128MAL为例,其实DG128之类的类似。如图一,128代表的是单片机中的FLASH大小为128K Byte,同理64代表的是单片机中的FLASH大小为64 K Byte,256代表的是单片机中的FLASH大小为256 K Byte。但是S12(X)所使用的内核CPU12(X)的地址总线为16位,寻址范围最大为2^16 =64K Byte,而这64K Byte的寻址空间还包括寄存器、EEPROM (利用Data Flash模拟)、RAM等,因此不是所有的64K Byte都是用来寻址FLASH。所以在S12(X)系列单片机中,很多资源是以分页的形式出现的,其中包括EEPROM、RAM、FLASH。EEPROM的每页大小为1K Byte,RAM的每页大小为4K Byte,FLASH的每页大小为16K Byte。因此XS128中EEPROM的页数为8K/1K = 8页,RAM的页数为8K/4K = 2页,Flash的页数为128K/16K = 8页。 图一

图二

在单片普通模式中,复位后,所有内存资源的映射如图二所示,其中从0x0000-0x07FF 的2K范围内映射为寄存器区,如I/O端口寄存器等,当然寄存器没有那么多,后面的一部分其实没有使用; 从0x0800-0x0BFF,共1K的空间,映射为EEPROM区,由上面的分析,XS128中共有8页的共8K的EEPROM,所以这8页的EEPROM都是以分页的形式出现的,可以通过设置寄存器EPAGE选择不同的页并进行访问; 从0x0C00到0x0FFF的1K空间为保留区(其实这里面也有学问,以后探讨); 从0x1000到0x3FFF的12K空间为RAM区,分为三页,但是和前面所说的EEPROM不同,这三页中有2页(对于XS128和XS256)或一页(对于XS64)为固定页,位于12K空间的后一部分,以XS128为例,其内部的RAM资源为8K,所以其三页中的最后两页(0x2000-0x3FFF)为固定页,第一页(0x1000-0x1FFF)为窗口区,通过设置寄存器RPAGE来映射其他分页的RAM,当然在单片普通模式下,XS128内部已经没有其他的RAM了,所以这一页其实也没有用。但是对于XS256,这一页是有用的,因为它总共有12K的RAM。但是,在单片普通模式下,即没有外扩RAM的情况下,用户是不用刻意的去配置RPAGE的,因为复位的时候,已经默认指向那一页的RAM。 从0x4000-0xFFFF的总共48K的空间为Flash区,分为三页。其中第一页和第三页为固定的Flash页,中间的一页(0x8000-0xBFFF)为窗口区,通过设置PPAGE寄存器,可以映射到其他的分页Flash。 在最后的一页固定的Flash区域中的最后256字节中,保存的是中断向量。 对于RAM和Flash来说,其实固定页和其他的分页资源是统一编址的,不同的是固定

飞思卡尔智能车电机

飞思卡尔智能车电机公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]

3.1.6驱动电机介绍 驱动电机采用直流伺服电机,我们在此选用的是RS-380SH型号的伺服电机,这是因为直流伺服电机具有优良的速度控制性能,它输出较大的转矩,直接拖动负载运行,同时它又受控制信号的直接控制进行转速调节。在很多方面有优越性,具体来说,它具有以下优点: (1)具有较大的转矩,以克服传动装置的摩擦转矩和负载转矩。 (2)调速范围宽,高精度,机械特性及调节特性线性好,且运行速度平稳。 (3)具有快速响应能力,可以适应复杂的速度变化。 (4)电机的负载特性硬,有较大的过载能力,确保运行速度不受负载 冲击的影响。 (5)可以长时间地处于停转状态而不会烧毁电机,一般电机不能长时 间运行于停转状态,电机长时间停转时,稳定温升不超过允许值 时输出的最大堵转转矩称为连续堵转转矩,相应的电枢电流为连 续堵转电流。 图为该伺服电机的结构图。图是此伺服电机的性能曲线。

图伺服电机的结构图 图伺服电机的性能曲线 3.1.7 舵机介绍 舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为 20ms,宽度为的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。一般舵机的控制要求如图所示。图为舵机的控制线。

飞思卡尔电机控制模块详解

M=2. 一、关键点 1、MC 模块驱动电机的PWM 波频率在20K 左右时效果比较好。DITH 位等于0时,计算方法如下: DITH=1时, 其中,左对齐和有对齐方式下 M=1,中间对齐是2、MC 模块定时计数器的中断最好禁止,如果开启,在相应的中断服务程序中至少要添加一条“清楚中断标志位”的指令。 3、电机控制模块共8个通道,每个通道有2个Pin 脚组成。 4、Fast 位控制精度,7位或者11位。 5、给周期寄存器写入数值,可启动 MC 计数器,写0关闭所有通道的计数器。 6、MCAM[1:0]写入0x00可关闭某个channel ,写入非零值不是启动MC 计数器,而是控制对齐方式。为了精确周期寄存器的值应尽量大,Ftc 应尽量小。 二、寄存器寄存器讲解讲解讲解:: 1 MCCTL0 (Motor Controller Control Register 0) 第7位保留; 第6、5位是MCPRE[1:0]控制电机控制器定时计数器时钟f TC 预分频系数。如下: 第4位 MCSWAI 置1,等待模式中电机控制器正常运行,清0,在等待模式中电机控制模块时钟关闭。 第3位,FAST ,清0,电机控制器PWM 模块占空比寄存器分辨率设置为11位,置1,电机控制器PWM 模块占空比寄存器分辨率设置为7位。 第2位,DITH ,清零,电机控制器dith 特性禁止,置1电机控制器dith 特性使能。 第1位保留; 第0位MCTOIF ,为1表示,电机控制模块定时计数器溢出;为0,表示自上次复位或清零以来,电机控制模块定时计数器没有发生溢出。 2 MCCTL1 (Motor Controller Control Register 1)

常用电机驱动电路及原理

由于本人主要是搞软件的,所以硬件方面不是很了解,但是为了更好地相互学习,仅此整理出一份总结出来,有什么错误的地方还请大家积极的指出!供大家一起参考研究! 我们做的智能小车,要想出色的完成一场比赛,需要出色的控制策略!就整个智能车这个系统而言,我们的被控对象无外乎舵机和电机两个!通过对舵机的控制能够让我们的小车实时的纠正小车在赛道上的位置,完成转向!当然那些和我一样做平衡组的同学不必考虑舵机的问题!而电机是小车完成比赛的动力保障,同时平衡组的同学也需要通过对两路电机的差速控制,来控制小车的方向!所以选一个好的电机驱动电路非常必要! 常用的电机驱动有两种方式:一、采用集成电机驱动芯片;二、采用MOSFET和专用栅极驱动芯片自己搭。集成主要是飞思卡尔自己生产的33886芯片,还有就是L298芯片,其中298是个很好的芯片,其内部可以看成两个H桥,可以同时驱动两路电机,而且它也是我们驱动步进电机的一个良选!由于他们的驱动电流较小(33886最大5A持续工作,298最大2A持续工作),对于我们智能车来说不足以满足,但是电子设计大赛的时候可能会用到!所以想要详细了解他们的同学可以去查找他们的数据手册!在此只是提供他们的电路图,不作详细介绍! 33886运用电路图

下面着重介绍我们智能车可能使用的驱动电路。普遍使用的是英飞凌公司的半桥驱动芯片BTS7960搭成全桥驱动。其驱动电流约43A,而其升级产品BTS7970驱动电流能够达到70几安培!而且也有其可替代产品BTN79 70,它的驱动电流最大也能达七十几安!其内部结构基本相同如下: 每片芯片的内部有两个MOS管,当IN输入高电平时上边的MOS管导通,常称为高边MOS管,当IN输入低电平时,下边的MOS管导通,常称为低边MOS 管;当INH为高电平时使能整个芯片,芯片工作;当INH为低电平时,芯片不工作。其典型运用电路图如下图所示: EN1和EN2一般使用时我们直接接高电平,使整个电路始终处于工作状态!

飞思卡尔芯片的嵌入式应用

飞思卡尔芯片的嵌入式应用 飞思卡尔(英语:Freescale Semiconductor)是美国的半导体生产厂商。飞思卡尔于2004年由原摩托罗拉的半导体部门组建。飞思卡尔的主要产品为面向嵌入和通讯市场的芯片。其产品包括: 微控制器(Kinetis ARM? MCU、 Qorivva(5xxx)32位Power Architecture MCU、 MAC57Dxxx 32位ARM? MCU、 ColdFire+/ColdFire 32位MCU、 8位MCU、 16位MCU、 数字信号控制器、 MCU编程中心)、 处理器(i.MX ARM?应用处理器 Vybrid ARM?控制器解决方案 QorIQ处理平台 PowerQUICC通信处理器 Power Architecture主处理器 图像识别处理器 加密协处理器 StarCore高性能DSP DSP56K/Symphony DSP)、 模拟技术与电源管理、 射频、 传感器 嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置(Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants)”。 嵌入式系统包括: 1、嵌入式微控制器(16位、8位、以及8位以下的CPU,典型代表就是单片机) 2、嵌入式微处理器(32位,以及32位以上的称为处理器,典型为ARM核的处理器) 3、DSP(Digital Signal Processing,数字信号处理器) 4、SOC(System on Chip,片上系统,就是把所有的模块都做到一块芯片上) 飞思卡尔芯片的嵌入式应用实例: 一、飞思卡尔为未来智能电网开发解决方案: 飞思卡尔不仅提供智能仪表设计所需要的芯片产品,而且提供完美解决方案。 对于公共事业单位如供电厂来说,如何优化配电基础设施,防止可能出现的大面积停电,以及如何有效的为最终用户提供能源服务,都需要智能仪表。 在计量大会上,飞思卡尔展示了其单相电表、PLM(电力线调制)等解决方案,如图所示。

Freescale单片机原理与设计(TPM模块应用编程)

XX科技大学Freescale单片机原理与设计实验报告实验项目TPM编程应用 【实验目的】 1、理解HCS08的定时器/PWM模块TPM(Timer/Pulse-Width Modulator)模块原理 2、学会TPM模块设计 3、进一步认识“对MCU外部管脚/内部模块的控制正是通过Regs的控制来实现” 【实验原理】 MC9S08AW60系列中的定时器系统包括两个独立的TPM:一个6通道的TPM1和一个2通道的TPM2。TPM模块管脚和I/O 管脚复用。定时器系统总共8个通道,每一个通道都可作为输入捕捉、输出比较、或带缓冲的边缘对齐PWM。每一个TPM的所有通道都可以配置成为带缓冲的中心对齐脉宽调制CPWM (buffered, center-aligned pulse-width modulation)。每一个TPM预分频器的时钟源都可以独立选择总线时钟、固定系统时钟或外部管脚对每个TPM,每个通道一个中断,还有一个计数中止中断。 定时器系统的内部结构为:两个独立的TPM每个TPM都由

1个16位的计数器与n(n=6 or 2)个输入/输出通道组成;每一个通道都可作为输入捕捉、输出比较、或带缓冲的边缘对齐PWM。 TPM模块自由计数定时核心是一个16位的计数器。三种时钟源之一经过分频之后的脉冲即作为定时器的计数脉冲;每过一个计数脉冲,Counter便自动+1,Counter加到FFFF后翻转到$0000,同时置溢出标志位TOF为1,然后重新开始计数;溢出时若TOIE为1,还会产生中断请求。Fbus和分频比的不同可以产生不同的溢出时间间隔;但是这种自由计数定时方式定时有限。只读的16位TPM计数寄存器由两个字节寄存器TPMxCNTH和TPMxCNTL构成。 TPM预置计数定时:向16位模数计数寄存器TPMxMODH:TPMxMODL写入一个确定的数值,则计数器每进行一次计数都会将计数和模数计数寄存器的值进行比较,如果相同就产生溢出,同时置溢出标志位TOF为1,然后重新开始计数,溢出时若TOIE为1,还会产生中断请求。 TPM每个自由计数器包含三个寄存器:一个8位状态控制寄存器(TPMxSC),一个16位计数器(TPMxCNTH:TPMxCNTL,

智能车电机驱动模块使用详解(1)

智能车电机驱动模块使用详解 智能车的驱动系统一般由控制器、电机驱动模块及电机三个主要部分组成。智能车的驱动不但要求电机驱动系统具有高转矩重量比、宽调速范围、高可靠性,而且电机的转矩‐转速特性受电源功率的影响,这就要求驱动具有尽可能宽的高效率区。 控制器采用飞思卡尔16位单片机PWM功能完成,智能车电机一般每一届都有主委会提供,而且型号指定,参数固定。一般提供的为直流电机。其控制简单、性能出众、供电方便。直流电机驱动模块一般使用H型全桥式电路实现电机驱动功能。 H桥驱动工作原理 H 桥驱动电路是为了直流电机而设计的一种常见电路,它主要实现直流电机的正反向驱动,其典型电路形式如下。从图中可以看出,其形状类似于字母“H”,而作为负载的直流电机是像“桥”一样架在上面的,所以称之为“ H 桥驱动”。4个开关所在位置就称为“桥臂”。 从电路中不难看出,假设开关 QA、QD接通,电机为正向转动,则开关QB、QC接通时,直流电机将反向转动。从而实现了电机的正反向驱动。电流的大小,决定了电机的转速,通过PWM的占空比(电流通断比)来决定电流的大小,从而间接控制了电机的转速。 H桥驱动选型分析 H 桥驱动的主要性能包括: 1、效率,驱动效率高就是要将输入的能量尽量多的输出给负载,而驱动电路本身最好不消耗或 少消耗能量。具体到H桥上,也就是四个桥臂在导通时最好没有压降,越小越好。 2、安全性,不能同一侧的桥臂同时导通; 3、电压,电压是指能够承受的驱动电压; 4、电流,电压是指能够通过的驱动电流。

根据H桥驱动的主要特性分析,安全性主要由控制部分决定。在智能车设计中,电机是固定型号的(一般组委会会提供车模和电机),所以所需的电流和电压时有限的,所以H桥驱动的选型会重点关注H桥驱动的效率,即关注MOS管的压降上。因此我们选择H桥驱动遵循以下原则: (1)由于驱动电路是功率输出,要求开关管输出功率较大; (2)开关管的开通和关断时间应尽可能小; (3)小车使用的电源电压不高,因此开关管的饱和压降应该尽量低。 在智能车电机驱动设计中,可以采用大功率达林顿管或场效应管搭建全桥电路,同时也可以使用桥式专用集成驱动芯片,例L298、MC33886,BTS7960,集成芯片的性能稳定可靠。 BTS7960驱动电路 BTS7960是应用于电机驱动的大电流半桥高集成芯片,它带有一个P沟道的高边MOSFET、一个N沟道的低边MOSFET和一个驱动IC。P沟道高边开关省去了电荷泵的需求, 因而减小了EMI。集成的驱动IC具有逻辑电平输入、电流诊断、斜率调节、死区时间产生和过温、过压、欠压、过流及短路保护的功能。BTS7960通态电阻典型值为16mΩ,驱动电流可达43A。系统框图如下,采用两片BTS7960组成全H桥驱动电路,完成控制电机正反转的功能。 BTS7960的芯片内部为一个半桥。INH引脚为高电平,使能BTS7960。IN引脚用于确定哪个MOSFET导通。IN=1且 INH=1时,高边MOSFET导通,OUT引脚输出高电平;IN=0且INH=1时,低边MOSFET导通,OUT引脚输出低电平。SR引脚外接电阻的大小,可以调节MOS管导通和关断的时间,具有防电磁干扰的功能。IS引脚是电流检测输出引脚。 主要电气参数如下: 参数 特性 备注 Operating Voltage(VS) 5.5 – 27.5V RON(HS) 7m? High Side Switch RON(LS) 9m? Low Side Switch Rise‐time of HS tr(HS) 1μs Fall‐time of HS tf(HS) 1μs Rise‐time of LS tr(LS) 1μs

电机驱动的比较

直流电机调速系统驱动的设计与比较 摘要:针对大学生智能车竞赛中直流电机的驱动设计了6种方案,经过实验比较分析了各种方案的优缺点,最后确立了一套驱动能力强、体积小、性能稳定的驱动方法,可广泛应用于40 V以下的大功率直流电机驱动的场合。 关键词:直流电机;调速系统; MC33886; VNH3SP30; BTS7960B; DT340I; IRF3205 目前大电流直流电机多采用达林顿管或MOS管搭制H桥PWM脉宽调制,因此体积较大;另一方面,由于分立器件的特性不同,使得驱动器的特性具有一定的离散性;此外,由于功率管的开关电阻比较大,因此功耗也很大,需要功率的散热片,这无疑进一步加大了驱动器的体积。随着技术的迅猛发展,基于大功率MOS管的H桥驱动芯片逐渐显现出其不可替代的优势。但目前能提供较大电流输出的集成芯片不是很多。例如飞思卡尔半导体公司推出的全桥驱动芯片MC33886和33887、意法半导体公司推出的全桥驱动芯片VNH3SP30、英飞凌公司推出的高电流PN半桥驱动芯片BTS7960。ST微电子公司推出的TD340驱动器芯片是一种用于直流电机的控制器件,可用于驱动N沟道MOSFET管。 本文在第三、四届大学生智能车大赛中分别尝试了上面提到的5块电机驱动芯片设计的驱动电路,通过现场调试发现它们的优缺点,确定了驱动能力强、性能稳定的驱动方案,并得到了很好的应用。

1 直流电机驱动原理 目前直流电机的驱动方式主要有2种形式:线性驱动方式和开关驱动方式。其中线性驱动方式可以看成一个数控电压源。该驱动方式的优点是驱动电机的力矩纹波很小,可应用于对电机转速要求非常高的场合;缺点是该方式通常比较复杂,成本较高,尤其是要提高驱动的功率时,相应的电路成本将提升很多[1]。本文针对H桥驱动电路在智能车竞赛中的应用加以分析。 目前的H桥驱动主要有3种方式。图1(a)中H桥的4个桥臂都使用N沟道增强型MOS管;图1(b)中H桥的4个桥臂都使用P沟道增强型MOS管;图1(c)中上H桥臂分别使用P沟道增强型MOS管和N沟道增强MOS管。由于P沟道MOS管的品种少、价格较高,导通电阻和开关速度等都不如N沟道MOS管,因此最理想的情况应该是在H桥的4个桥臂都使用N沟道MOS管。但是在如图1(a)中可以看到,为了使电机正转,Q1和Q4应该导通,因此S4电压应该高于Q4的源极电压,S1电压应该高于Q1的源极电压,由于此时Q1的源极电压近似等于Vcc,因此就要求S1必须大于(Vcc+Vgs)。在很多电路中除非作一个升压电路否则是比较困难得到的,因此图1(a)这种连接方式比较少见。同理,图1(b)中为了使电机正转,S4电压就必须低于0V- VGS,在使用时也不方便。因此最常用的是图1(c)的电路,该电路结合了上述2种电路各自的优点,使用方便。本文针对3种形式电路进行设计,并进行实验比较分析。

飞思卡尔S12单片机ECT模块使用实例

/** ################################################################### ** Filename : Project_2.c ** Project : Project_2 ** Processor : MC9S12XEP100CAG ** Version : Driver 01.14 ** Compiler : CodeWarrior HCS12X C Compiler ** Date/Time : 2014-5-21, 8:55 ** Abstract : ** Main module. ** This module contains user's application code. ** Settings : ** Contents : ** No public methods ** ** ###################################################################*/ /* MODULE Project_2 */ /* Including needed modules to compile this module/procedure */ #include "Cpu.h" #include "Events.h" #include "Bit1.h" #include "Bit2.h" /* Include shared modules, which are used for whole project */ #include "PE_Types.h" #include "PE_Error.h" #include "PE_Const.h" #include "IO_Map.h" /* User includes (#include below this line is not maintained by Processor Expert) */ /************************************************************/ /* 初始化ECT模块*/ /************************************************************/ void initialize_ect(void){ //ECT_TSCR1_TFFCA = 1; // 定时器标志位快速清除 ECT_TSCR1_TEN = 1; // 定时器使能位. 1=允许定时器正常工作; 0=使主定时器不起作用(包括计数器) ECT_TIOS = 0x03; //指定所有通道为输出比较方式 ECT_TCTL2_OM0 = 0; // 后四个通道设置为定时器与输出引脚断开 ECT_TCTL2_OL0 = 1; // 前四个通道设置为定时器与输出引脚断开 ECT_TCTL2_OM1 = 0; // 后四个通道设置为定时器与输出引脚断开 ECT_TCTL2_OL1 = 1; // 前四个通道设置为定时器与输出引脚断开 //ECT_DL YCT = 0x00; // 延迟控制功能禁止 // ECT_ICOVW = 0x00; // 对应的寄存器允许被覆盖; NOVWx = 1, 对应的寄存器不允许覆盖

相关文档
相关文档 最新文档