ARM之PWM控制
- 格式:doc
- 大小:155.00 KB
- 文档页数:6
0 前言在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用,无论在工业农业生产、交通运输、国防航空航天、医疗卫生、商务与办公设备,还是在日常生活中的家用电器,都在大量地使用着各式各样的电动机。
据资料统计,现在有的90%以上的动力源来自于电动机,电动机与人们的生活息息相关,密不可分。
随着现代化步伐的迈进,人们对自动化的需求越来越高,使电动机控制向更复杂的控制发展。
直流电动机具有优良的调速特性,调速平滑、方便,调速范围广,过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转,能满足生产过程自动化系统各种不同的特殊运行要求。
直流调速技术不断发展,走向成熟化、完善化、系列化、标准化,在可逆脉宽调速、高精度的电气传动领域中仍然难以替代。
直流电机的数字控制是直流电动机控制的发展趋势,用单片机的数字控制的发展趋势,用单片机进行控制是实现电动机数字控制的最常用的手段。
由于电网相控变流器供电的直流电机调速系统能够引起电网波形畸变、降低电网功率因数,除此之外,该系统还有体积大、价格高、电压电流脉动频率低、有噪声等缺点。
而采用直流电动机的PWM调速控制系统可以克服电网相控调速系统的上述诸多缺点。
电动机的控制技术的发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、电动控制技术、微机应用技术的最新发展成果。
正是这些技术的进步使电机控制技术在近20多年内发生了翻天覆地的变化,其中电动机的控制部分已由模拟控制逐渐让位于以单片机为主的微处理器控制,形成数字和模拟的混合控制系统和纯数字控制的应用,并曾向全数字化控制方向快速发展。
电动机的驱动部分所用的功率器件经历了几次更新换代,目前开关速度更快、控制更容易的全控型功率器件MOSFET和IGBT成为主流。
功率器件控制条件的变化和微电子技术的使用也使新型的电动控制方法能够得到实现,脉宽调制控制方法(PWM和SPWM),变频技术在直流调速和交流调速中获得广泛的应用。
2016 南阳理工学院本科生毕业设计论文学院系电子与电气工程学院专业电子信息工程学生指导教师完成日期南阳理工学院本科生毕业设计论文基于ARM的四旋翼自主飞行控制系统设计Autonomous control system for the quadrotor unmannedaerial vehicle based on ARM processors总计毕业设计论文25 页表格0 个插图20 幅3 南阳理工学院本科毕业设计论文基于ARM的四旋翼自主飞行控制系统设计Autonomous controlsystem for the quadrotor unmanned aerial vehicle based on ARM processors学院系电子与电气工程学院专业电子信息工程学生姓名学号指导教师职称评阅教师完成日期南阳理工学院Nanyang Institute of Technology4基于ARM的四旋翼自主飞行控制系统设计[摘要]针对改变传统以单片机为处理器的四旋翼自主控制飞行器控制方式的问题设计了一种基于嵌入式ARM的飞行控制系统的设计和实现方案。
这是一种基于ARM的低成本、高性能的嵌入式微小无人机飞行控制系统的整体方案。
详细介绍了控制系统的总体构成以及硬软件设计方案包括传感器模块、视屏采集模块、系统核心控制功能模块、无线通信模块、地面控制和数据处理模块。
实验结果表明该设计结合嵌入式实时操作系统保证了系统的高可靠性和高实时性能满足飞行器起飞、悬停、降落等飞行模态的控制要求。
[关键词]ARM四旋翼自主飞行器控制系统。
Autonomous control system for the quadrotor unmannedaerial vehicle based on ARM processors Abstract In order to change the conventional control of four—rotor unmanned aerial vehicles using microcontroller as the processor a solution of flightcontrol system based on embedded ARM was presented which is low-cost,small volume, low power consumption and high performance. The purpose ofthe work is for attending the National Aerial Robotics Competition. The mainfunction of the system the hardware structure and the software design werediscussed in detail including the sensor module the motor module the wirelesscommunication module With embedded real time operating system to ensurethe system’s high reliability and real-time performance the experiments resultsshow that the requirements of flight mode are satisfied including taking ofhovering and landing and so onKey words ARM four-rotor unmanned aerial vehicles control system5 of the control signals 1 四旋翼飞行器的简介 1.1题目综述微型飞行器MicroAir Vehicle/MAV的概念最早是在上世纪九十年代由美国国防部远景研究局DARPA提出的。
stm32f412ret6例子STM32F412RET6示例STM32F412RET6是一款由STMicroelectronics开发的基于ARM Cortex-M4内核的微控制器。
它具有丰富的外设和功能,适用于各种应用场景。
以下是几个STM32F412RET6的示例,展示了该微控制器的某些功能和应用领域。
1. LED闪烁示例:通过使用STM32F412RET6的GPIO外设,可以轻松地控制外部LED的闪烁。
通过编写简单的代码,可以配置GPIO引脚为输出模式,并按照一定的时间间隔设置引脚的电平状态,从而实现LED的闪烁效果。
这种示例通常是用于验证开发板的基本功能。
2. 蜂鸣器控制示例:使用STM32F412RET6的定时器和GPIO外设,可以轻松地控制外部蜂鸣器的鸣叫。
通过配置定时器的时间间隔和占空比,可以产生不同频率和持续时间的脉冲信号,从而控制蜂鸣器的声音。
这种示例通常用于提醒、报警等场景。
3. 串口通信示例:STM32F412RET6支持多个串口接口,如USART、UART等。
通过配置串口参数,并编写相应的发送和接收代码,可以实现与其他设备的串口通信。
这种示例通常用于与外部设备进行数据交互,如传感器、显示屏、通信模块等。
4. PWM信号生成示例:STM32F412RET6的定时器外设提供了丰富的PWM输出功能。
通过配置定时器的工作模式、频率和占空比,可以生成不同电平和周期的PWM信号。
这种示例通常用于控制电机、舵机、LED调光等应用。
5. ADC采样示例:STM32F412RET6配备了多个ADC通道,用于模拟信号的采样与转换。
通过配置ADC参数,并编写相应的代码,可以实现模拟信号的采样和转换成数字形式。
这种示例通常用于传感器的数据采集和处理。
STM32F412RET6是一款功能强大且灵活的微控制器,具有丰富的外设和功能。
通过以上示例,我们可以了解到它在LED控制、蜂鸣器控制、串口通信、PWM信号生成和ADC采样等方面的应用。
utp1605s使用手册800字左右UTP1605S是一款高性能的数字信号控制器,广泛应用于自动化控制、电机驱动、智能家居等领域。
下面是UTP1605S的使用手册,供您参考:一、概述UTP1605S是一款基于ARM Cortex-M0+内核的高性能数字信号控制器,具有高速、低功耗、高集成度等特点。
它采用了先进的半导体工艺,集成了多种常用的外设接口,如PWM、ADC、DAC、UART、I2C等,方便用户进行各种应用开发。
二、硬件连接UTP1605S的硬件连接主要包括电源、接地、晶振和外部接口等部分。
电源和接地是保证控制器正常工作的基础,晶振为控制器提供时钟源,外部接口则用于连接各种外设和传感器等。
具体连接方式请参考UTP1605S的硬件手册。
三、软件编程UTP1605S的软件编程主要使用Keil MDK或IAR Embedded Workbench 等集成开发环境,采用C语言或汇编语言进行编程。
在编程时,需要按照实际需求进行外设配置和控制算法的实现。
下面简单介绍几个常用的外设接口和编程方法:1. PWM接口:UTP1605S提供了多个PWM接口,可以用于控制电机、调节灯光亮度等。
在编程时,需要配置PWM的周期、占空比等参数,并使用PWM中断或定时器来实现精确控制。
2. ADC接口:UTP1605S内置了多个ADC通道,可以用于采集模拟信号。
在编程时,需要配置ADC的采样速率、分辨率等参数,并使用ADC中断或轮询方式来实现数据采集。
3. UART接口:UTP1605S提供了多个UART接口,可以用于串口通信。
在编程时,需要配置UART的波特率、数据位、停止位等参数,并使用UART中断或轮询方式来实现数据收发。
4. I2C接口:UTP1605S内置了I2C接口,可以用于与外部器件进行通信。
在编程时,需要配置I2C的通信速率、地址等参数,并使用I2C中断或轮询方式来实现数据读写。
四、注意事项在使用UTP1605S时,需要注意以下几点:1. 保证电源和接地质量,避免因电源波动或接地不良导致控制器工作异常。
脉宽调制器与通用定时器毕业论文中英文资料外文翻译文献ARM Cortex-M3脉宽调制器(PWM)与通用定时器1.PWM脉宽调制(PWM)是一项功能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。
在脉宽调制中使用高分辨率计数器来产生方波,并且可以通过调整方波的占空比来对模拟信号电平进行编码。
PWM通常使用在开关电源(switching power)和电机控制中。
StellarisPWM模块由3个PWM发生器模块1个控制模块组成。
每个PWM 发生器模块包含1个定时器(16位递减或先递增后递减计数器),2个PWM比较器,PWM信号发生器,死区发生器和中断/ADC-触发选择器。
而控制模块决定了PWM 信号的极性,以及将哪个信号传递到管脚。
每个PWM发生器模块产生两个PWM信号,这两个PWM信号可以是独立的信号(基于同一定时器因而频率相同的独立信号除外),也可以是一对插入了死区延迟的互补(complementary)信号。
这些PWM发生模块的输出信号在传递到器件管脚之前由输出控制模块管理。
StellarisPWM模块具有极大的灵活性。
它可以产生简单的PWM信号,如简易充电泵需要的信号;也可以产生带死区延迟的成对PWM信号,如供半-H桥(half-H bridge)驱动电路使用的信号。
3个发生器模块也可产生3相反相器桥所需的完整6通道门控。
PWM定时器每个PWM发生器的定时器都有两种工作模式:递减计数模式或先递增后递减计数模式。
在递减计数模式中,定时器从装载值开始计数,计数到零时又返回到装载值并继续递减计数。
在先递增后递减计数模式中,定时器从0开始往上计数,一直计数到装载值,然后从装载值递减到零,接着再递增到装载值,依此类推。
通常,递减计数模式是用来产生左对齐或右对齐的PWM信号,而先递增后递减计数模式是用来产生中心对齐的PWM信号。
PWM定时器输出3个信号,这些信号在生成PWM信号的过程中使用:方向信号(在递减计数模式中,该信号始终为低电平,在先递增后递减计数模式中,则是在低高电平之间切换);当计数器计数值为0时,一个宽度等于时钟周期的高电平脉冲;当计数器计数值等于装载值时,一个宽度等于时钟周期的高电平脉冲。
实验报告实验名称PID控制与PWM输出实验课程名称嵌入式系统华北电力大学一、实验目的及要求:1.实验目的初步了解PID算法与PWM的工作原理;2.实验要求通过编写一个PID控制与PWM输出小程序,进一步掌握基于LabVIEW的嵌入式(ARM)模块工程的建立、运行;初步了解PID算法与PWM的使用。
二、仪器用具:三、实验原理通过ADC0端口输入电压,将它连接到OLED中并显示出来,主程序前面板输出控制计数值并将计数值通过OLED显示出来。
四、实验方法与步骤:1、建立工程:“PWM.lvproj”;2、添加模拟输入端口AI0和脉宽调制端口PWM1;3、项目浏览器中右击EK-LM3S8962选择新建→虚拟文件夹并将其重命名为❽PID SubVIs”;右击PID SubVIs虚拟文件夹,新建三个VI并分别保存为“PID Derivative Action.vi”、“PID Integral Action.vi”和“PID.vi”(参考下图):4、参考下图建立子VI PID Derivative Action.vi前面板和程序框图:5、参考下图建立子VI PID Integral Action.vi前面板和程序框图;6、参考下图建立子VI PID.vi前面板和程序框图;7、参考下图建立主程序PWM.vi的前面板和程序框图8、单击运行按扭,观察处理器状态和实验板的运行;调节输入电压观察实验板上的OLED显示器。
五、实验结果与数据处理:六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见。
)(1)当输入的电压低于设定值的时候, PWM输出数值增加(最大为99) ,且相差越犬,增加速度越快;(2)当输入的电压高于设定值的时候, PYM输出数值减小(最小为0) ,且相差越大,减小速度越快;(3)当输入的电压与设定值相同的时候, PWM输出数值保持不变。
基于M054芯片的船用数字调光器设计蒋元星;邵忠辉【摘要】介绍了一种船舶仪表背光照明数字调光器的设计,主要包括MCU微处理器控制模块、控制输出模块、RS485通信模块、输入与显示模块、限流与保护模块等.采用M054微控制器输出脉宽调制(PWM)信号来控制背光照明灯的亮度,实现了PWM全数字调光.经过实船使用测试,该调光器性能优越、可靠性高.【期刊名称】《机电设备》【年(卷),期】2014(031)005【总页数】4页(P64-67)【关键词】数字调光器;M054微控制器;脉宽调制(PWM);RS485通信【作者】蒋元星;邵忠辉【作者单位】浙江同济科技职业学院,浙江杭州311231;浙江欣亚磁电发展有限公司,浙江舟山316000【正文语种】中文【中图分类】U665.26为了保证安全航行,现代船舶驾驶台装有大量的自动化驾控设备与仪表。
船舶夜间航行时为了不使众多设备背光照明干扰驾驶员的视线,船舶规范要求所有安装于驾控台的仪表、设备必须安装调光器。
传统的船用设备背光照明调节都以大功率绕线式可调电阻为主,体积笨重,发热严重,效率低,且不具有远程控制接口。
本文介绍一种用于船舶仪表背光照明的数字调光器的设计,由具有ARM结构的M054微控制器产生的PWM(脉宽调制)信号来控制背光照明灯的亮度。
从实际使用要求出发,增加了限流与短路保护、RS485通信模块,所设计的调光器性能优越、可靠性高,已经由浙江欣亚磁电发展有限公司生产并在船上应用。
采用PWM可调占空比输出的方式来控制负载的平均有效电压。
该方法的基本思想就是利用单片机具有的PWM端口,在不改变PWM方波周期的前提下,通过软件的方法调整单片机的PWM控制寄存器来调整PWM的占空比[1]。
PWM信号占空比是信号高电平时间与周期之比,其调制频率是周期的倒数。
根据船舶驾驶仪表背光灯的实际要求,本调光器控制对象为30W以下的直流灯泡以及新型节能LED,直流24V、负载最大电流1.5A。
K60各模块入门培训教程K60是一款ARM Cortex-M4内核的微控制器系列,由恩智浦半导体(NXP)公司推出。
K60系列微控制器具有高性能、低功耗、丰富的外设和丰富的开发工具支持等特点,适用于各种应用场景。
本教程将重点介绍K60微控制器的各个模块,包括GPIO(通用输入输出)、UART(串口通信)、SPI(串行外设接口)、I2C(串行接口)、ADC(模拟数字转换器)、PWM(脉冲宽度调制)等。
每个模块都将详细介绍其功能和使用方法。
一、GPIO模块GPIO模块是K60微控制器的通用输入输出模块,用于控制外部硬件设备。
K60系列微控制器通常具有多个GPIO引脚,可以配置为输入或输出。
在本教程中,我们将介绍如何配置GPIO引脚的方向(输入或输出)、读取输入引脚的状态和设置输出引脚的状态等。
二、UART模块UART模块是K60微控制器的串口通信模块,用于与外部设备进行异步通信。
K60系列微控制器通常具有多个UART模块,每个UART模块都包含发送和接收功能。
在本教程中,我们将介绍如何配置UART模块的波特率、数据位、停止位和校验位等,并编写代码实现通过UART与外部设备进行通信。
三、SPI模块SPI模块是K60微控制器的串行外设接口模块,用于与外部设备进行全双工的串行通信。
K60系列微控制器通常具有多个SPI模块,每个SPI模块都包含主机和从机模式。
在本教程中,我们将介绍如何配置SPI模块的工作模式(主机或从机)、时钟极性和相位等,并编写代码实现通过SPI与外部设备进行通信。
四、I2C模块I2C模块是K60微控制器的串行接口模块,用于与外部设备进行双向的串行通信。
K60系列微控制器通常具有多个I2C模块,每个I2C模块都可以配置为主机或从机。
在本教程中,我们将介绍如何配置I2C模块的工作模式(主机或从机)、时钟频率和从机地址等,并编写代码实现通过I2C与外部设备进行通信。
五、ADC模块ADC模块是K60微控制器的模拟数字转换模块,用于将模拟信号转换为数字信号。
微机原理实验报告
实验名称: PWM输出实验
院 系:物理与机电工程学院
专业班级: 08电子信息工程
学 号:
学生姓名:
指导教师:
完成时间: 2011-5-10
报告成绩:
一、 实验目的
1、掌握LPC2131的脉宽调制器PWM。
2、掌握脉宽调制器的特性。
3、了解其引脚的连接设置及结构。
4、知道其寄存器功能的描述及其基本操作。
二、 实验设备
EasyARM2131开发板、PC机、ADS1.2软件等。
三、 实验原理
通过改变PWMMR0的值,可以改变PWM 输出的频率。实验设定
PWM输出单边沿PWM方波,控制蜂鸣器BEEP发声,改变PWM的频
率,蜂鸣器放出不同的频率的声音,甚至可以播放音乐。
进行PWM音乐输出实验,需要了解一些简谱和频率的关系,在文件
music.h中可以得到部分信息。流程图如下:
四、 实验内容及清单
PWM 音乐输出实验程序:
#include "config.h"
#include "music.h"
#define HC595_CS (1 << 29) // P0.29口为74HC595的片选
const uint32 LEDS8 = (0xFF << 18); // P1[25:18]控制LED8~LED1,低电平点亮
uint8 rcv_data;
/* 歌曲曲谱 - 虹彩妹妹*/
const uint32 HCMM[] =
{
_LA, _SO, _MI, _LA, _SO, _MI,
_LA, _LA, _SO, _LA,
_LA, _SO, _MI, _LA, _SO, _MI,
_RE, _RE, _DO, _RE,
_MI, _MI, _SO, _LA, _DO1, _LA, _SO,
_MI, _MI, _SO, _DO,
_MI, _MI, _MI, _MI, _MI,
_1LA,_1LA,_1SO,_1LA,
};
/* 歌曲节拍 */
const uint32 HCMM_L[] =
{
_4, _8, _8, _4, _8, _8,
_8, _4, _8, _2,
_4, _8, _8, _4, _8, _8,
_8, _4, _8, _2,
_4, _8, _8, _8, _8, _8, _8,
_8, _4, _8, _2,
_4, _4, _4, _8, _8,
_8, _4, _8, _2,
};
const uint32 LED_TBL[] = {
0x20,0x10,0x04,0x20,0x10,0x04,
0x20,0x20,0x10,0x20,
0x20,0x10,0x04,0x20,0x10,0x04,
0x02,0x02,0x01,0x02,
0x04,0x04,0x10,0x20,0x01,0x20,0x10,
0x04,0x04,0x10,0x10,
0x04,0x04,0x04,0x04,0x04,
0xA0,0xA0,0x90,0xA0,
};
const uint32 SMG_TBL[] = {
0x82,0x92,0xB0,0x82,0x92,0xB0,
0x82,0x82,0x92,0x82,
0x82,0x92,0xB0,0x82,0x92,0xB0,
0xA4,0xA4,0xF9,0xA4,
0xB0,0xB0,0x92,0x82,0xF9,0x82,0x92,
0xB0,0xB0,0x92,0xF9,
0xB0,0xB0,0xB0,0xB0,0xB0,
0xA1,0xA1, 0xC6,0xA1
};
void Delay(uint8 dly)
{
uint32 i;
for(; dly > 0; dly--)
for(i = 0; i < 0x7FFFF; i++);
}
void MSPI_Init(void)
{
//PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500; // 设置管脚连接SPI
PINSEL0 = (PINSEL0 & (~(0xFF << 8))) | (0x55 << 8) ;
SPI_SPCCR = 0x52; // 设置SPI时钟分频
SPI_SPCR = (0 << 3) | // CPHA = 0, 数据在SCK 的第一个时钟沿采
样
(1 << 4) | // CPOL = 1, SCK 为低有效
(1 << 5) | // MSTR = 1, SPI 处于主模式
(0 << 6) | // LSBF = 0, SPI 数据传输MSB (位7)在先
(0 << 7); // SPIE = 0, SPI 中断被禁止
}
/***********************************************************************
*********************************
** 函数名称:MSPI_SendData()
** 函数功能:向SPI总线发送数据。
** 入口参数:data 待发送的数据
** 出口参数:返回值为读取的数据
************************************************************************
********************************/
uint8 MSPI_SendData(uint8 data)
{
IOCLR = HC595_CS; // 片选74HC595
SPI_SPDR = data;
while( (SPI_SPSR & 0x80 ==0 )); // 等待SPIF置位,即等待数据发送完毕
IOSET = HC595_CS;
return(SPI_SPDR);
}
/*
************************************************************************
*********************************
** 函数名称 :main()
** 函数功能 :PWM音乐输出实验。
** 调试说明 :需要将music.h包含进来。
************************************************************************
*********************************
*/
int main (void)
{
uint8 i;
// IO1DIR = LEDS8; // 设置LED1控制口为输出
PINSEL0 = (0x02 << 18)|(0x55<<8); // P0.9选择PWM6功能 // 设置
SPI管脚连接
PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO
IO1DIR = LEDS8; // 设置LED1控制口为输出
IO0DIR = HC595_CS;
MSPI_Init();
/* PWM初始化 */
PWMPR = 0x00; // 不分频,计数频率为Fpclk
PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC
PWMPCR = 0x4000; // 允许PWM6输出,单边PWM
PWMMR0 = Fpclk / 1000;
PWMMR6 = PWMMR0 / 2; // 50%占空比
PWMLER = 0x41; // PWM0和PWM6匹配锁存
PWMTCR = 0x02; // 复位PWMTC
PWMTCR = 0x09; // 启动PWM输出
while(1)
{
for(i = 0; i < 40; i++)
{
rcv_data=MSPI_SendData(SMG_TBL[i]);
Delay(HCMM_L[i/3]); // 延时,控制播放速度
PWMMR0 = Fpclk / HCMM[i]; // 设置输出频率
PWMLER = 0x41; // 更新匹配值后,必须锁存
IO1CLR = ((LED_TBL[i]) << 18);
Delay(HCMM_L[i/3]); // 延时,控制播放速度
IO1SET = ~((LED_TBL[i]) << 18);
Delay(HCMM_L[i]/3); // 延时,控制播放速度*/
}
}
return 0;
}
五、 实验心得与体会
通过这次实验我了解了脉宽调制器,掌握了其特性。了解了其引脚连
接设置。知道其寄存器的功能。通过与数码管显示,led灯的闪烁实验结
合,令我温故知新,对综合知识的运用很大的促进。