智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2677|回复: 6
打印 上一主题 下一主题

[策略类] pwm ATD 分压稳压 功率放大

[复制链接]

1

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
125
威望
174
贡献
21
兑换币
0
注册时间
2010-2-15
在线时间
4 小时
跳转到指定楼层
1#
发表于 2010-2-24 19:55:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
pwm  ATD 分压稳压 功率放大 有谁可详解一下

2

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
263
威望
224
贡献
37
兑换币
0
注册时间
2010-2-24
在线时间
1 小时
2#
发表于 2010-2-24 20:44:10 | 只看该作者
5.3.2 PWM模块
MC9S12DG128B集成了8路8位独立PWM通道,通过设置相应控制寄存器可变成4个16位PWM通道,每个通道都有专用的计数器,PWM输出极性和对齐方式可选择,8个通道分成两组,共有4个时钟源控制。
PWM[2]主要是用于控制舵机的转向和电机的驱动。
1、通过将PWM0和PWM1级联,提高其控制精度来控制舵机的转向,由PWM1输出。在单片机总线频率为24MHz时,若设置级联PWM周期常数为60000,对应的PWM周期为20ms,PWM占空比常数为4500对应为1.5ms。改变占空比常数可以改变输出脉冲的宽度。同时为了提高舵机的响应速度使在弯道时能顺利过弯,将舵机的频率设置成10ms。
2、为了实现MC33886的正向和反向控制,用PWM2和PWM3级联,PWM6和PWM7级联,两路PWM级联来驱动电机。为提高电机的驱动能力对电机驱动频率进行了反复的调整。

最终PWM的初始化程序如下:
void pwm_init(void){
PWME=0x8A;
PWMCTL=0xB0;
PWMPRCLK=0x11;
PWMSCLA=0x01;
PWMSCLB=0x01;
PWMCLK=0xEA;
PWMPOL=0xFF;
PWMCAE=0xFF;
PWMCNT01=0;
PWMCNT23=0;
PWMCNT67=0;
PWMPER01=30000;
PWMPER23=1000;
PWMPER67=1000;
}
5.3.3 ATD模块
S12内部设置了2个10位/8位的A/D模块[2],可自行设置其转化精度和采样模式等。为了提高采样的分辨率,此次设计采用了15路AD输出。通过红外传感器采样到道路的信息,并经过ATD的模数转化,最终将结果存在相应的寄存器中,读取控制舵机的转向以及电机的速度。
其初始化程序如下:
void atd_init(void){
ATD0CTL2=0xC0;
ATD1CTL2=0xC0;
ATD0CTL3=0x02;
ATD1CTL3=0x02;
ATD0CTL4=0x8A;
ATD1CTL4=0x8A;
ATD0CTL5=0xB0;
ATD1CTL5=0xB0;
}
- 22 -
5.3.4 ECT模块
由于S12系列的MCU的定时器模块在HC12的标准定时器模块上增加了输入捕捉及脉冲累加器的功能,因而称为增强型定时器模块[2]。此次设计就用了脉冲累加和输入捕捉的功能,另外还有定时器中断的功能。
捕捉有传感器检测到的脉冲的个数,并通过脉冲累加器累加得到当前的速度值,40ms测试一次当前速度。
其初始化程序如下:
void ect_init(void){
MCCTL=0xCF;
MCFLG=0x80;
MCCNT=60000;
TCTL4=0x01;
TIOS_IOS0=0;
PBCTL=0x40;
PACN10=0x0000;
}
利用定时器进行中断反馈速度值,实时获得当前的速度。中断服务程序:
#pragma CODE_SEG NON_BANKED
void interrupt 26 ect_interrupt(void){
pulse=PACN10;
PACN10=0x0000;
MCFLG=0x80;
}
#pragma CODE_SEG DEFUALT
5.3.5时钟模块
为了提高系统的响应速度,使用单片机内部的锁相环[2]电路将外部晶振电路的16MHz通过设置SYNR,REFDV寄存器倍频到48MHz,总线时钟为24MHz。其初始化程序如下:
void crg_init(void){
SYNR=0x02;
REFDV=0x01;
while((CRGFLG & 0x08)==0 ){}
CLKSEL |=0x80;
}
回复

使用道具 举报

2

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
263
威望
224
贡献
37
兑换币
0
注册时间
2010-2-24
在线时间
1 小时
3#
发表于 2010-2-24 20:57:12 | 只看该作者
5.3.2 PWM模块
MC9S12DG128B集成了8路8位独立PWM通道,通过设置相应控制寄存器可变成4个16位PWM通道,每个通道都有专用的计数器,PWM输出极性和对齐方式可选择,8个通道分成两组,共有4个时钟源控制。
PWM[2]主要是用于控制舵机的转向和电机的驱动。
1、通过将PWM0和PWM1级联,提高其控制精度来控制舵机的转向,由PWM1输出。在单片机总线频率为24MHz时,若设置级联PWM周期常数为60000,对应的PWM周期为20ms,PWM占空比常数为4500对应为1.5ms。改变占空比常数可以改变输出脉冲的宽度。同时为了提高舵机的响应速度使在弯道时能顺利过弯,将舵机的频率设置成10ms。
2、为了实现MC33886的正向和反向控制,用PWM2和PWM3级联,PWM6和PWM7级联,两路PWM级联来驱动电机。为提高电机的驱动能力对电机驱动频率进行了反复的调整。

最终PWM的初始化程序如下:
void pwm_init(void){
PWME=0x8A;
PWMCTL=0xB0;
PWMPRCLK=0x11;
PWMSCLA=0x01;
PWMSCLB=0x01;
PWMCLK=0xEA;
PWMPOL=0xFF;
PWMCAE=0xFF;
PWMCNT01=0;
PWMCNT23=0;
PWMCNT67=0;
PWMPER01=30000;
PWMPER23=1000;
PWMPER67=1000;
}
5.3.3 ATD模块
S12内部设置了2个10位/8位的A/D模块[2],可自行设置其转化精度和采样模式等。为了提高采样的分辨率,此次设计采用了15路AD输出。通过红外传感器采样到道路的信息,并经过ATD的模数转化,最终将结果存在相应的寄存器中,读取控制舵机的转向以及电机的速度。
其初始化程序如下:
void atd_init(void){
ATD0CTL2=0xC0;
ATD1CTL2=0xC0;
ATD0CTL3=0x02;
ATD1CTL3=0x02;
ATD0CTL4=0x8A;
ATD1CTL4=0x8A;
ATD0CTL5=0xB0;
ATD1CTL5=0xB0;
}
- 22 -
5.3.4 ECT模块
由于S12系列的MCU的定时器模块在HC12的标准定时器模块上增加了输入捕捉及脉冲累加器的功能,因而称为增强型定时器模块[2]。此次设计就用了脉冲累加和输入捕捉的功能,另外还有定时器中断的功能。
捕捉有传感器检测到的脉冲的个数,并通过脉冲累加器累加得到当前的速度值,40ms测试一次当前速度。
其初始化程序如下:
void ect_init(void){
MCCTL=0xCF;
MCFLG=0x80;
MCCNT=60000;
TCTL4=0x01;
TIOS_IOS0=0;
PBCTL=0x40;
PACN10=0x0000;
}
利用定时器进行中断反馈速度值,实时获得当前的速度。中断服务程序:
#pragma CODE_SEG NON_BANKED
void interrupt 26 ect_interrupt(void){
pulse=PACN10;
PACN10=0x0000;
MCFLG=0x80;
}
#pragma CODE_SEG DEFUALT
5.3.5时钟模块
为了提高系统的响应速度,使用单片机内部的锁相环[2]电路将外部晶振电路的16MHz通过设置SYNR,REFDV寄存器倍频到48MHz,总线时钟为24MHz。其初始化程序如下:
void crg_init(void){
SYNR=0x02;
REFDV=0x01;
while((CRGFLG & 0x08)==0 ){}
CLKSEL |=0x80;
}
回复

使用道具 举报

9

主题

199

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8268

论坛元老奖章

QQ
威望
529
贡献
7627
兑换币
0
注册时间
2010-1-10
在线时间
56 小时
4#
发表于 2010-3-17 12:38:45 | 只看该作者
谢谢
回复

使用道具 举报

9

主题

199

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8268

论坛元老奖章

QQ
威望
529
贡献
7627
兑换币
0
注册时间
2010-1-10
在线时间
56 小时
5#
发表于 2010-3-19 09:02:36 | 只看该作者
xiexie
回复

使用道具 举报

1

主题

217

帖子

0

精华

高级会员

Rank: 4

积分
577
威望
395
贡献
124
兑换币
0
注册时间
2009-8-12
在线时间
29 小时
6#
发表于 2010-3-19 13:52:36 | 只看该作者
顶!!!!!!!!!!!
回复

使用道具 举报

11

主题

212

帖子

0

精华

常驻嘉宾

侠客

Rank: 8Rank: 8

积分
5969

论坛元老奖章

威望
2649
贡献
3234
兑换币
0
注册时间
2010-1-13
在线时间
43 小时
7#
发表于 2010-3-23 10:23:10 | 只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 08:35 , Processed in 0.161949 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表