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

合集下载

飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置

飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置

飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置手把手教你写S12XS128程序--PWM模块介绍该教程以MC9S12XS128单片机为核心进行讲解,全面阐释该16位单片机资源。

本文为第一讲,开始介绍该MCU的PWM模块。

PWM 调制波有8个输出通道,每一个输出通道都可以独立的进行输出。

每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。

每一个P WM 输出通道都能调制出占空比从0—100% 变化的波形。

PWM 的主要特点有:1、它有8个独立的输出通道,并且通过编程可控制其输出波形的周期。

2、每一个输出通道都有一个精确的计数器。

3、每一个通道的P WM 输出使能都可以由编程来控制。

4、PWM 输出波形的翻转控制可以通过编程来实现。

5、周期和脉宽可以被双缓冲。

当通道关闭或PWM 计数器为0时,改变周期和脉宽才起作用。

6、8 字节或16 字节的通道协议。

7、有4个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时钟频率。

8、通过编程可以实现希望的时钟周期。

9、具有遇到紧急情况关闭程序的功能。

10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。

1、PWM启动寄存器PWMEPWME 寄存器每一位如图1所示:复位默认值:0000 0000B图1 PWME 寄存器每一个PWM 的输出通道都有一个使能位P WMEx 。

它相当于一个开关,用来启动和关闭相应通道的PWM 波形输出。

当任意的P WMEx 位置1,则相关的P WM 输出通道就立刻可用。

用法:PWME7=1 --- 通道7 可对外输出波形PWME7=0 --- 通道7 不能对外输出波形注意:在通道使能后所输出的第一个波形可能是不规则的。

当输出通道工作在串联模式时(PWMCTL 寄存器中的CONxx置1),那么)使能相应的16位PWM 输出通道是由PWMEx 的高位控制的,例如:设置PWMCTL_CON01 = 1,通道0、1级联,形成一个16位PWM 通道,由通道 1 的使能位控制PWM 的输出。

飞思卡尔MC9S12G系列芯片之【GPIO】模块总结

飞思卡尔MC9S12G系列芯片之【GPIO】模块总结

位数 8 8 8 8 2
小注: a. 由上表可知,这五个寄存器通过同一个电阻控制寄存器 PUCR 的 0~4 位分别
对应控制端口 A~D;
b. 在学习板中(这是前提,以下模块与寄存器的连接仅限此开发板):
LED 灯是通过 PORTA 寄存器控制,LED1~LED8 分别对应 PORTA 的 P0~P7 位(注意
置 0:输入 置 1:输出 置 0:上拉设备禁止 置 1:上拉设备使能 置 0:下降沿触发 置 1:上升沿触发 置 0:中断禁止 置 1:中断使能 置 0:无极性沿发生 置 1:有极性沿发生
位数 8
8
端口 P 和 J 都含有 7 个寄存器,其中与中断有关的寄存器有两个:
中断使能寄存器 PIEx 及中断标志寄存器 PIFx。
置 0:低电平 置 1:高电平 用于检测过载或输出 引脚短路条件 置 0:输入 置 1:输出 置 0:上拉设备禁止 置 1:上拉设备使能 置 0:下降沿触发 置 1:上升沿触发
WOMN 寄存器为 PORTS 和 PORTM 特有的寄存器,不常用。
位数 8
8
端口名称
寄存器种类 数据寄存器(PTT)
PORTT (PT)
GPIO 模块总结(以 MC9S12G128 为例)
一、常见功能
功能 设置输入/输出端口 设定 I/O 口的高低电平 选择内置上拉/下拉电阻 中断输入方式的选择 驱动能力的设置
需配置寄存器 DDRx(置 0 为输入,置 1 时为输出) PORTx(置 0 低电平、置 1 高电平) PERx PIEX XS128 芯片具有
EnableInterrupt;
// 定义主函数
// 禁止中断 // 设置 I/O 方向为输出 / *对 data 取反后为 0111 1111,因 LED 在低

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

智能车电机驱动模块使用详解(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)小车使用的电源电压不高,因此开关管的饱和压降应该尽量低。

飞思卡尔k系列_ftm模块详解

飞思卡尔k系列_ftm模块详解

1.5FTM模块1.5.1 FTM模块简介FTM模块是一个多功能定时器模块,主要功能有,PWM输出、输入捕捉、输出比较、定时中断、脉冲加减计数、脉冲周期脉宽测量。

在K10中,共有FTM0,FTM1,FTM2三个独立的FTM模块。

其中FTM0有8个通道,可用于电机或舵机的PWM输出,但不具备正交解码功能,也就是对旋转编码器输入的正反向计数功能。

而FTM1和FTM2则具备正交解码功能,但是FTM1和FTM2各只有两个通道。

FTM模块的时间基准来自一个16位的计数器,该计数器的值可读取,即可作为无符号数对待,也可作为有符号数的补码对待。

1.FTM模块特性●时钟源可选择,FTM的时钟源可以来自系统时钟或外部时钟。

可对时钟分频,分频比为1,2,4,8,16,32,64,128。

●FTM的一个16位计数器,该计数器可设置为自由运行或由用户设置起始和结束值,可递增计数也可递减计数。

●FTM的每个通道都可以设置为输入捕捉、输出比较或边沿对其的PWM输出。

●在输入捕捉模式下,可捕捉上升沿、下降沿或两个边沿都捕捉,有些通道可选择输入滤波器。

●在输出比较模式下,在比较成功时可选择输出信号置位、清零或翻转。

●所有的通道都可以设置为中心对齐的PWM输出模式。

●每对通道都可以级联以产生PWM信号。

●FTM的通道可成对工作在相同输出或互补输出,也可各通道独立输出。

●当通道成对互补输出时可使用死区插入。

●可产生触发信号。

●软件控制PWM输出。

●最多4个全局错误控制使用的错误输入。

●每个通道的极性可设置。

●每个通道都可产生中断。

●错误条件发生时也可产生中断。

●同步载入或写入带缓冲的FTM寄存器。

●关键寄存器有写保护功能。

●和HS08系里的TPM兼容。

●对于维持在低电平或高电平的信号也可进行输入捕捉的测试。

●双边沿捕捉可用于脉冲或周期信号宽度测量。

2.FTM模块框图由图可见,FTM模块的核心是一个16位计数器,该计数器的时钟源可以选择,如果我们选择由FTM来实现PWM,输入捕捉,或者输出比较,定时中断,脉宽测量等功能,则一般选择system clock。

飞思卡尔MC9S12XS128单片机重点模块讲解

飞思卡尔MC9S12XS128单片机重点模块讲解


这一点和 51 单片机的 I/O 口有区别,在典型的 51 单片中 P0 口内部没有上拉电阻,但作为 I/O 口使用时需要外接排阻。其他 P1-P3 口则可以直接作为双向口使用,51 单片在上电复位 后端口被默认的置 1.在 51 单片中端口的某一位置 0 时端口作为输出口使用,置 1 时作为输 入口使用。例如如果我们想把 P1 作为输出口使用时我们可以在程序开始时写 P1=0x00; 如果 我们想把 P1 口作为输入口使用时我们可以写 P1=0xff; 这一点正好和飞思卡尔的 128 单片机 相反,另外 128 单片有专门的数据方向寄存器 DDRA 或者 DDRB 等来管理各个端口的输入 输出选择,51 单片没有。如果我们想把端口 A 作为输入口使用,我们只需写 DDRA=0x00; 即所有位都置 0,如果我们想把端口 A 作为输出口使用,我们只需要写 DDRA=0xff; 即所有 位都置 1 ,而如 果我们想要 把端口 A 的高四 位做输入口 ,低 4 位做输 出口时我们 就 写 DDRA=0x0f; 当我们需要将该端口的某一位做输出或者输入口使用时只需要将该端口对应的 方向位置 1 或者置 0 即可。例如我们想把 A3 口作输入口, A4 口作输出口使用时我们只需 要写: DDRA_DDRA3=0; DDRA_DDRA4=1; 即可。 � � 对于数据方向寄存器的使用只要记住:置 1——输出 置 0——输入 PORTA 数据寄存器也是由 8 位组成,任何时候都可以对它进行读写操作。
#define uchar unsigned char //数据类型宏替换 #define uint unsigned int /*------------------------延时函数--------------------------------------*/ void delay(uint a) { uint i,j; for(i=0;i<a;i++) for(j=0;j<a;j++) ; } /*--------------------------指示灯闪烁函数-------------------------------*/ void light() { while(INPUT) { PORTB=0x3f; delay(500); PORTB=0x00; delay(500); } } //6 只灯全点亮 //延时一段时间 //6 只灯全熄灭 //延时一段时间 //判断输入电平的高低

C语言实现控制电机加减速正反转(飞思卡尔C代码)

C语言实现控制电机加减速正反转(飞思卡尔C代码)

用单片机控制直流电动机的正反转、加减速的程序如何用C语言写参考一下这个例子吧。

#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit PW1=P2^0 ;sbit PW2=P2^1 ; //控制电机的两个输入sbit accelerate=P2^2 ; //调速按键sbit stop=P2^3 ; //停止按键sbit left=P2^4 ; //左转按键sbit right=P2^5 ; //右转按键#define right_turn PW1=0;PW2=1 //顺时针转动#define left_turn PW1=1;PW2=0 //逆向转动#define end_turn PW1=1;PW2=1 //停转uint t0=25000,t1=25000; //初始时占空比为50%uint a=25000; // 设置定时器装载初值 25ms 设定频率为20Hz uchar flag=1; //此标志用于选择不同的装载初值uchar dflag; //左右转标志uchar count; //用来标志速度档位void keyscan(); //键盘扫描void delay(uchar z);void time_init(); //定时器的初始化void adjust_speed(); //通过调整占空比来调整速度//**********************************//void main(){time_init(); //定时器的初始化while(1){keyscan(); //不断扫描键盘程序,以便及时作出相应的响应}}//*************************************//void timer0() interrupt 1 using 0{if(flag){flag=0;end_turn;a=t0; //t0的大小决定着低电平延续时间TH0=(65536-a)/256;TL0=(65536-a)%256; //重装载初值}else{flag=1; //这个标志起到交替输出高低电平的作用if(dflag==0){right_turn; //右转}else{left_turn; //左转}a=t1; //t1的大小决定着高电平延续时间TH0=(65536-a)/256;TL0=(65536-a)%256; //重装载初值}}void time_init(){TMOD=0x01; //工作方式寄存器软件起动定时器定时器功能方式1 定时器0TH0=(65536-a)/256;TL0=(65536-a)%256; //装载初值ET0=1; //开启定时器中断使能EA=1; // 开启总中断TR0=0;}//****************************************//void delay(uchar z) //在12M下延时z毫秒{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//******************************//void keyscan(){if(stop==0){TR0=0; //关闭定时器0 即可停止转动 end_turn;}if(left==0){TR0=1;dflag=1; //转向标志置位则左转}if(right==0){TR0=1;dflag=0; //转向标志复位则右转}if(accelerate==0){delay(5) ; //延时消抖if(accelerate==0){while(accelerate==0) ; //等待松手count++;if(count==1){t0=20000;t1=30000; //占空比为百分之60}if(count==2){t0=15000;t1=35000; //占空比为百分之70}if(count==3){t0=10000;t1=40000; //占空比为百分之80}if(count==4){t0=5000;t1=45000; //占空比为百分之90}if(count==5){count=0;}}}}功能特点:1)总线速度高达40 M Hz,CAN总线:3个1Mbps的CAN总线,兼容CAN2.0 A/B;2)128 KB程序Flash和8 KB DataFlash,用于实现程序和数据存储,均带有错误校正码(E CC);3)可配置A/D:16通道模数转换器;可选8位10位和12位精度,3μs的转换时间4)内嵌MS CAN模块用于CAN节点应用,内嵌支持LIN协议的增强型SIC模块和SPI模块;5)4通道16位计数器,CRG时钟和复位发生器:锁相环、看门狗、实时中断;增强型捕捉定时器;6)出色的低功耗特性,带有中断唤醒功能的10,实现唤醒休眠系统的功能;7)通道PWM:8位8通道或16位4通道PWM,易于实现电机控制。

飞思卡尔PWM程序(含详细指令说明)

飞思卡尔PWM程序(含详细指令说明)
//4、5 通道可选用 A、SA 时钟,2、3、6、7 通道可选用 B、SB 通道。此寄存器
//在任何时间都是可读、可写的,复位时全置0。应当注意的是,如果当一个 PWM
//输出波形正在产生时,时钟改变,这时就会产生一个平头的或线形脉冲。
//用法: PCLK1=1; 1 通道的时钟源设为 SA。 PCLK1=0; 1 通道的时钟源设为 A。
//如果通道不可用,那么对周期寄存器进行写操作,将会直接导致周期寄存器同缓冲器一起
//闭锁。
//周期的计算方法:(因为左对齐和居中对齐方式输出时的计数器工作方式不一样)
//1) 当 CAEx=0时,即进行左线性输出时:
// `PWMx 周期=通道时钟周期*PWMPERx
PWMPOL_PPOL3=1; // Duty=High Time 极性设置
//3通道对外输出为先高后低(PWMPOL_PPOL3=0 则3通道对外输出为先低后高)
PWMCAE_CAE3=0; // Left-aligned 对齐方式设置
//------------------------------------------------------------------------------------------------------------------//
//功能说明:MC9S12XS128--PWM例程
//使用说明:实现通道3(PTP3)输出频率为1KHz,占空比为50%的方波,用示波器观察
//决定了相关 PWM 通道的周期。 每一个通道的周期寄存器都是双缓冲的,因此如果当通
//道使能后,改变他们的值,将不会发生任何作用,除非当下列情况之一发生:
//*有效的周期结束。

飞思卡尔 硬件分析

飞思卡尔 硬件分析

系统硬件电路由驱动电路板和核心控制板两部分组成:一、电机驱动模块:驱动电路板安装在车体后部,它主要负责系统各部分电压的分配以及电机的驱动。

由于这部分电路功耗较大,单独设计一块电路板后可使散热性能更好。

目前电路板上将两片33886并联,PWM信号一路直接输入到A1,一路经过反向后输入到A2。

这样如果PWM波的占空比高于50%时,电机朝一个方向转;占空比低于50%时,电机朝另一个方向转。

通过这种方式,可以在程序中实现反向制动,而这对于赛车在直道上提高速度是有帮助的。

(但是今年的C车车模有两个电机,这两天我会研究下两个电机怎么控制)33886制定的参数范围是-40°C≤TA≤125 °C、5.0V≤V+≤28V。

集成电路也可以工作在40V通过降低规定的定额值。

集成电路能够在表面安装带散热装置的电源组件.(听说还有一种驱动芯片也不错,可是没有研究过)二、系统电源模块:全部硬件电路的电源由7.2V、2A/h的可充电镍镉电池提供。

由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电电池电压转换成各个模块所需要的电压。

主要包括如下不同的电压:A、5V电压。

主要为单片机、信号调理电路以及部分接口电路(如速度传感器)提供电源,电压要求稳定、噪声小,电流容量大于500mA。

B、6V电压。

主要是为舵机提供工作电压。

实际工作时,舵机所需要的工作电流一般在几十毫安左右,电压无需十分稳定。

C、7.2V电压。

这部分直接取自电池两端电压,主要为后轮电机驱动模块提供电源。

D、12V电压。

采用摄像头进行道路检测时,需要12V工作电源。

整个电源模块的电路结构为:由于CCD需要12V供电,而且CCD供电电压过高容易使CCD发热,虽然短时间内信号质量将提高,但长时间会使CCD输出信号质量下降,而CCD供电电压过低会使CCD信号质量降低。

为了保证CCD的正常供电,12V电路较为复杂且占用电路板空间较大。

飞思卡尔智能车各模块原理及元器件

飞思卡尔智能车各模块原理及元器件

飞思卡尔智能车各模块原理及元器件在准备比赛的过程中,我们小组成员经过分析讨论,对智能车各模块的元器件使用方面做如下说明:1、传感器模块:路径识别模块是智能车系统的关键模块之一,目前能够用于智能车辆路径识别的传感器主要有光电传感器和CCD/CMOS传感器。

光电传感器寻迹方案的优点是电路简单、信号处理速度快,但是其前瞻距离有限;CCD 摄像头寻迹方案的优点则是可以更远更早地感知赛道的变化,但是信号处理却比较复杂,如何对摄像头记录的图像进行处理和识别,加快处理速度是摄像头方案的难点之一。

在比较了两种传感器优劣之后,考虑到CCD传感器图像处理的困难后,决定选用应用广泛的光电传感器,相信通过选用大前瞻的光电传感器,加之精简的程序控制和较快的信息处理速度,光电传感器还是可以极好的控制效果的,我们使用11个TK-20型号的光电传感器。

2、驱动模块:驱动电路的性能很大程度上影响整个系统的工作性能。

电机驱动电路可以用MC33886驱动芯片或者用MOS管搭建H桥驱动电路。

MC33886体积小巧,使用简单,但由于是贴片的封装,散热面积比较小,长时间大电流工作时,温升较高,如果长时间工作必须外加散热器,而且MC33886的工作内阻比较大,又有高温保护回路,使用不方便。

采用MOS管构成的H桥电路,控制直流电机紧急制动。

用单片机控制MOS管使之工作在占空比可调的开关状态,精确调整电动机转速。

这种电路由于MOS管工作在饱和截止状态,而且还可以选择内阻很小的MOS管,所以效率可以非常高,并且H桥电路可以快速实现转速和方向控制。

MOS管开关速度高,所以非常适合采用PWM调制技术。

所以我们选择了用MOS管搭建H桥驱动电路。

3、电源模块:比赛使用智能车竞赛统一配发的标准车模用7.2V 供电,而单片机系统、路径识别的光电传感器、光电码编码器等均需要5V电源,伺服电机工作电压范围4V到6V(为提高伺服电机响应速度,采用7.2V 供电),直流电机可以使用7.2V 蓄电池直接供电,我们采用的电源有串联型线性稳压电源(LM2940、7805等)和开关型稳压电源(LM2596)两大类。

飞思卡尔单片机AD功能模块课件

飞思卡尔单片机AD功能模块课件

加快AD转换速度
通过优化硬件设计和配置,例如选择更高转换速率的 ADC器件,或者在软件中实现并行处理和快速算法来加 快AD转换的速度。
提高电源稳定性
通过优化电源设计和供电方式,例如使用线性稳压器降低 电源电压的波动,或者在软件中实现电源监控和保护机制 来提高电源的稳定性。
06 未来展望与研究方向
AD功能模块的技术发展趋势
飞思卡尔单片机AD 功能模块课件
目录
• 飞思卡尔单片机简介 • AD功能模块概述 • 飞思卡尔单片机AD功能模块详解 • AD功能模块的应用实例 • AD功能模块常见问题与解决方案 • 未来展望与研究方向
01 飞思卡尔单片机简介
单片机的基本信息
定义
单片机是一种集成电路芯片,采用超大规模集成电路技术将 CPU、随机存储器、程序存储器、定时器/计数器、串行通信 接口等集成在一块芯片上,构成一个微型的计算机系统。
B
C
可靠性高
飞思卡尔单片机经过严格的质量控制和可靠 性测试,能够在恶劣的环境条件下稳定工作 。
开发工具丰富
飞思卡尔单片机提供了丰富的开发工具和软 件库,方便用户进行开发和调试。
D
飞思卡尔单片机的应用领域
智能仪表
飞思卡尔单片机广泛应 用于各种智能仪表,如 智能电表、智能水表等 。
工业控制
由于其高性能和可靠性 ,飞思卡尔单片机在工 业控制领域也有广泛的 应用。
AD转换器出现。
集成化
随着物联网和嵌入式系统的发展,对设备的功耗要求 也越来越高,未来将会有更低功耗的AD转换器出现。
AD功能模块的应用前景与挑战
应用前景
随着物联网和智能化的发展,AD功能模块的应用前景非常广泛,如智能家居、 智能仪表、医疗设备等领域都有广泛的应用。

EN-FSROB 飞思卡尔智能车各模块调试指南

EN-FSROB 飞思卡尔智能车各模块调试指南

EN-FSROB飞思卡尔智能车各模块调试指南1、下载Motor文件夹下面的程序,测试电机驱动模块,系统控制底板:蜂鸣器、按键、OLED 接口及XS128最小系统;步骤:(1)连线:系统底板P11插针P7、P5、P3、P1/2接电机驱动模块的排针7、5、3、1/2;(2)连接电机,调节4、3按键,可发现电机转速及转向发生变化;(3)分别按下1、2按键,可关闭、打开蜂鸣器,并可观察OLED液晶显示数据是否正常;2、下载A_CarTest文件夹下面的程序,测试XS128核心板串口排针及系统控制底板舵机控制电路:步骤:(1)上电,调节电位器,万用表测试P10舵机插接排针的6V、GND引脚电压调整至6V;(2)XS128核心板UART排针通过杜邦线插上蓝牙模块,注意插线顺序;(3)手机安装蓝牙串口测试工具,并打开,通过摇动手机左右晃动可发现舵机旋转;3、CC2500模块测试:1)将T103模块插入电脑,打开《CC2500无线串口数据传输下载软件》文件夹下的下载软件;给T103模块下载程序2)给XS128下载CC2500测试程序;3)插上CC2500模块到底板,把另外一块CC2500模块通过转接座插入到T103模块,并打开串口调试助手,并按照下图进行配置:4)此时,通过串口调试助手发送数据可在底板OLED模块的R_Buff区显示出来发送的数据,然后按下地板上的四个按键中的其中一个,可在OLED模块的S_Buff区显示所按下的按键号并通过CC2500模块传送到串口调试助手;4、CCD测试;1)下载CCD测试程序;2)连接CCD传感器到智能车底板的P3或P4接口;3)电脑安装PL2303驱动,插入USB-TTL小板,并且用杜邦线将USB-TTL小板与XS128核心板连接;4)打开智能车调试助手,按如下方法配置,配置好打开串口可发现数据上传到调试助手上面;5、摄像头测试;1)下载OV7620测试程序;2)正确连接摄像头到底板上的P7OV7620转接接口;3)电脑安装PL2303驱动,插入USB-TTL小板,并且用杜邦线将USB-TTL小板与XS128核心板连接;4)打开智能车调试助手,按如下方法配置,配置好打开串口可发现摄像头所拍照片上传到调试助手上面;6、编码器测试;编码器改装,褐色——VCC;蓝色——GND;白色——IN;。

飞思卡尔DSC电机控制产品方案介绍 - 告别C2000

飞思卡尔DSC电机控制产品方案介绍 - 告别C2000
IEC60034-30 (国际标准) IE4 IE3 IE2 IE1 GB18613-2012 (我国2012版标准) 能效一级 能效二级 能效三级 能效一级 能效二级 能效三级 GB18613-2006 (我国2006版标准)
• •
• •
TM
External Use
2
飞思卡尔电机控制的多种选择 飞思卡尔电机控制的多种选择
Production Planning
New 90nm
TM
External Use
7
Freescale DSC兼容性
56F84789/786 /587/585
256
128
56F84763 /462 56F84550 /451 56F84540 /441 56F82743 56F8255 56F8256 56F82746 56F8246 56F82736 56F82726 56F82316 44LQFP 48LQFP 64LQFP 56F84553 /452 56F84543 /442 56F8257 56F82748 56F8247 56F82738 56F82728
GPIO
DMA 增加处理器的吞吐量, 使得控制算法更高效
输入分主和次,功能有: 边沿,窗口,正交,带 符号,触发,级联,捕 获,比较
TM
External Use
6
Freescale DSC Roadmap
-成本与性能优化 …. 高级控制环算法 苛刻的实时应用 - 包括 高级电机控制 太阳能逆变 更多………..
56800E V3 Core 100MHz
JTAG/EOnCE
PLL
OSC 8Mhz / 32KHz 2 x PIT (RTC) Inter-Module CrossBar

飞思卡尔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)。

飞思卡尔智能车S12XS128PWM控制程序编写

飞思卡尔智能车S12XS128PWM控制程序编写

飞思卡尔智能车S12XS128PWM控制程序编写SeptStringS原创,转载请注明。

对于飞思卡尔智能车,电机和舵机的控制通常使⽤的都是以PWM脉冲宽度调制的⽅法实现的,其可⾏性基于电机可以由占空⽐控制转速,⽽舵机也由脉宽控制摆动。

PWM 调制波有 8 个输出通道,每⼀个输出通道都可以独⽴的进⾏输出。

每⼀个输出通道都有⼀个精确的计数器(计算脉冲的个数),⼀个周期控制寄存器和两个可供选择的时钟源。

每⼀个 PWM 输出通道都能调制出占空⽐从 0—100% 变化的波形。

PWM控制程序的编写⼀般按照以下的⼀种流程:1,禁⽌PWM模块;//这是由于改变周期和脉宽等操作需要在PWM禁⽌的情况下才能被设置2,PWM级联选择,是否级联通道67,45,23,01;//最多单独使⽤8个8位和级联使⽤4个16位3,给通道选择时钟源控制位;//0,1,4,5通道可选择ClockA和ClockSA;2,3,6,7通道可选择ClockB和ClockSB4,给时钟源A\B预分频;//可对总线时钟进⾏预分频,确定ClockA和ClockB,满⾜1,2,4,8,16,32,64,128这8个分频量5,根据时钟源A\B确定时钟源SA\SB;//由ClockA和ClockB、分频设值来确定ClockA和ClockB,满⾜1-255的分频量6,输出极性的选择;//也就是选择输出极性先低后⾼还是先⾼后低7,对齐⽅式的选择;//可设置为左对齐或者中间对齐⽅式8,实际通道频率的计算;//也就是周期的设定9,占空⽐寄存器的设置;//占空⽐常数的设定,可以以此决定占空⽐10,使能PWM模块。

//你已经⾸尾呼应了,有⽊有接下来通过寄存器的介绍,以上⾯流程为⼤纲,详细地说明⼀下该如何操作~~【PWME】寄存器PWME = (PWME~7 | PWME~6 | PWME~5 | PWME~4 | PWME~3 | PWME~2 | PWME~1 | PWME~0)将每⼀位设置为1即可使能该位,0对应的既是禁⽌。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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)
第7位,RECIRC控制PWM波极性。

0表示—,1表示+ ;
第6到第1位系统保留;
第0位,MCTOIE,为0表示Motor Controller Timer Counter Overflow Interrupt禁止,为1标志使能。

3 .MCPER Motor Controller Period Register
控制PWM周期,DITH=0,分辨率为10位;DITH=1,分辨率为11为,且MCPR1最低位系统保留。

4. Motor Controller Channel Control Register x (MCCCx)
即MCCC0—MCCC7寄存器,以MCCC0为例,第7和第6位为MCOM[1:0],控制PWM输出通道工作模式,如下图:
第5第4位为MCAM[1:0],控制PWM波形的对齐方式。

具体如下:
第3位和第2位系统保留;
第1位和第0位为CD[1:0],这两位控制这PWM输出延时,每个通道可通过可编程的PWM定时计数器时钟号来分别1确定。

延时时间为n/f TC,如下表:
5、Motor Controller Duty Cycle Register x (MCDCx)
即MCCC0—MCCC7寄存器,以MCCC0为例,第15位,S位,为0表示PWM波形低有效,为1表示PWM波形高有效,即
说明:
(1) /PWM: The PWM signal is low active. e.g., the waveform starts with 0 in left aligned mode. Output M generates the PWM signal.
Output P is static high.
(2) PWM: The PWM signal is high active. e.g., the waveform starts with 1 in left aligned mode. output P generates the PWM signal.
Output M is static low.
(3) S位在half-bridge模式中不起作用.
其余各位为保留位和确定占空比的数据位。

相关文档
最新文档