stm32 霍尔传感器接口

发布者:calmrs最新更新时间:2016-09-12 来源: eefocus关键字:stm32  霍尔传感器接口 手机看文章 扫描二维码
随时随地手机看文章
13.3.18 与霍尔传感器的接口

使用高级控制定时器(TIM1或TIM8)产生PWM信号驱动马达时,可以用另一个通用TIMx(TIM2、TIM3、TIM4或TIM5)定时器作为“接口定时器”来连接霍尔传感器,见图93,3个定时器输入脚(CC1、CC2、CC3)通过一个异或门连接到TI1输入通道(通过设置TIMx_CR2寄存器中的TI1S位来选择),“接口定时器”捕获这个信号。

从模式控制器被配置于复位模式,从输入是TI1F_ED。每当3个输入之一变化时,计数器从新从0开始计数。这样产生一个由霍尔输入端的任何变化而触发的时间基准。 “接口定时器”上的捕获/比较通道1配置为捕获模式,捕获信号为TRC(见图76)。捕获值反映了两个输入变化间的时间延迟,给出了马达速度的信息。 “接口定时器”可以用来在输出模式产生一个脉冲,这个脉冲可以(通过触发一个COM事件)用于改变高级定时器TIM1或TIM8各个通道的属性,而高级控制定时器产生PWM信号驱动马达。因此“接口定时器”通道必须编程为在一个指定的延时(输出比较或PWM模式)之后产生一个正脉冲,这个脉冲通过TRGO输出被送到高级控制定时器TIM1或TIM8。 举例:霍尔输入连接到TIMx定时器,要求每次任一霍尔输入上发生变化之后的一个指定的时刻,改变高级控制定时器TIMx的PWM配置。

 ● 置TIMx_CR2寄存器的TI1S位为’1’,配置三个定时器输入逻辑或到TI1输入,

● 时基编程:置TIMx_ARR为其最大值(计数器必须通过TI1的变化清零)。设置预分频器得到一个最大的计数器周期,它长于传感器上的两次变化的时间间隔。

● 设置通道1为捕获模式(选中TRC):置TIMx_CCMR1寄存器中CC1S=01,如果需要,还可以设置数字滤波器。

 ● 设置通道2为PWM2模式,并具有要求的延时:置TIMx_CCMR1寄存器中的OC2M=111和CC2S=00。

 ● 选择OC2REF作为TRGO上的触发输出:置TIMx_CR2寄存器中的MMS=101。 在高级控制寄存器TIM1中,正确的ITR输入必须是触发器输入,定时器被编程为产生PWM信号,捕获/比较控制信号为预装载的(TIMx_CR2寄存器中CCPC=1),同时触发输入控制COM事件(TIMx_CR2寄存器中CCUS=1)。在一次COM事件后,写入下一步的PWM控制位(CCxE、OCxM),这可以在处理OC2REF上升沿的中断子程序里实现。 下图显示了这个实例

 

  stm32 霍尔传感器接口 - liuyunqian@yeah - 嵌入式学习

  stm32 霍尔传感器接口 - liuyunqian@yeah - 嵌入式学习
无刷电机每运行一圈,霍尔有六个状态,在每个状态均会进入一次中断,
正常运转的时候电机是按照1,3,2,6,4,5

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3764371&bbs_page_no=1&search_mode=1&search_text=hall&bbs_id=3020

  stm32 霍尔传感器接口 - liuyunqian@yeah - 嵌入式学习

 

Setting up the system when using Hall-effect sensors
Hall-effect sensors are devices capable of sensing the polarity of the rotor’s magnetic field;
they provide a logic output, which is 0 or 1 depending on the magnetic pole they face and
thus, on the rotor position.
Typically, in a three-phase PM motor three Hall-effect sensors are used to feed back the
rotor position information. They are usually mechanically displaced by either 120° or 60° and
the presented firmware library was designed to support both possibilities. To set up the
PMSM FOC software library for use with three Hall sensors, simply modify the
stm32f10x_MCconf.h and MC_hall_param.h header files according to the indications given
in Section 4.1 and Section 4.4, respectively.
As shown in Figure 30, the typical waveforms can be visualized at the sensor outputs in
case of 60° and 120° displaced Hall sensors. More particularly, Figure 30 refers to an
electrical period (i.e. one mechanical revolution in case of one pole pair motor).
Figure 30. 60° and 120° displaced Hall sensor output waveforms

  stm32 霍尔传感器接口 - liuyunqian@yeah - 嵌入式学习

Since the rotor position information they provide is absolute, there is no need for any initial
rotor prepositioning. Particular attention must be paid, however, when connecting the
sensors to the proper microcontroller inputs.
In fact, as stated in Section 3.11, this software library assumes that the positive rolling
direction is the rolling direction of a machine that is fed with a three-phase system of positive
sequence. In that case to properly work, the software library expects the Hall sensor signal
transitions to be in the sequence shown in Figure 30 for both 60° and 120° displaced Hall
sensors.
For these reasons, it is suggested to follow the instructions given below when connecting a
Hall-sensor equipped PM motor to your board:

1. Turn the rotor by hand in the direction assumed to be positive and look at the B-emf
induced on the three motor phases. For this purpose if the real neutral point is not
available, it can be reconstructed by means of three resistors for instance.
2. Connect the motor phases to the hardware respecting the positive sequence. Let
“Phase A”, “Phase B” and “Phase C” be the motor phases driven by TIM1_CH1,
TIM1_CH2 and TIM1_CH3, respectively (e.g. when using the MB459 board, a positive
sequence of the motor phases could be connected to J5 2,1 and 3).
3. Turn the rotor by hand in the direction assumed to be positive, look at the three Hall
sensor outputs (H1, H2 and H3) and connect them to the selected timer on channels 1,
2 and 3, respectively, making sure that the sequence shown in Figure 30 is respected.
4. Measure the delay in electrical degrees betweenthe maximum of the B-emf induced on
Phase Aandthe first rising edge of signal H1. Enter it in the MC_hall_param.h header
file (HALL_PHASE_SHIFT). For your convenience, an example with
HALL_PHASE_SHIFT equal to –90 °C is illustrated in Figure 31.

  stm32 霍尔传感器接口 - liuyunqian@yeah - 嵌入式学习

关键字:stm32  霍尔传感器接口 引用地址:stm32 霍尔传感器接口

上一篇:关于STM32串口的理解
下一篇:STM32单片机的具体介绍和技术知识

推荐阅读最新更新时间:2024-03-16 15:09

stm32最小系统原理及结构组成
本文为大家带来stm32最小系统原理及结构组成的介绍。 stm32最小系统原理及结构组成----结构组成 1.晶振,至于大小由你单片机时钟周期要求而决定(用于计时,与两个电容并联使用,电容大小由你的晶振决定,一般用22pF) 2.复位电路(用于复位) 3.电源(用于供电,一般用电脑的USB口供电) 4.烧制程序的口(swim或者是jtag都可以,用于调试烧写仿真程序) STM32F103微控制器外部结构 STM32F103总线和存储器结构 stm32最小系统原理及结构组成----原理图
[单片机]
<font color='red'>stm32</font>最小系统原理及结构组成
STM32内部温度传感器实验——串口 delphi上位机
家里气温15度 我对着芯片使劲哈气 把他哈到了 20度 下位机关键代码 int main(void) { double v,temp,Value; /* System clocks configuration ---------------------------------------------*/ RCC_Configuration(); /* GPIO configuration ------------------------------------------------------*/ GPIO_Configuration(); /* USARTx configured as follow: - Bau
[单片机]
<font color='red'>STM32</font>内部温度传感器实验——串口 delphi上位机
STM32步进电机苗板应用设计
这个电机也是小苗板的一个应用,这是个28BYJ-48的步进 电机 ,下面是步进电机的资料: 这个是步进 电机 的参数,可以看出,这个是带减速器的电机,这样的电机只能当舵机之类的东西使用,不能直接用作马达,除非加上变速齿轮,从参数中可以看出电机内部转4096的周期外部才会转360度,因此这种 电机 运行起来是很慢的。 下面是内部每周期的运行顺寻,这是标准的8相位,实际上用四相位的也绝对能跑起来。 下我程序中的时我程序中用的是2.4.6.8这四个顺序,时序图见下图: 从上图可以看出每个管脚的波形都是一样的,只不过每两个之间查了四分之一个相位,程序中用了三个定时器,其中PA0和PA1用的TIM2,PA6和PA7用的T
[电源管理]
<font color='red'>STM32</font>步进电机苗板应用设计
零基础入门stm32的一些学习方法
  1.首先我们先看看与STM32相关的文档   我们假定大家已经对STM32的书籍或者文档有一定的理解。如不理解,请立即阅读STM32的文档,以获取最基本的知识点。   如果你手上拥有ST官方主推的STM32神舟系列的板子,那么光盘都会配好这些文档,STM32的学习与ARM9的学习有一个很大的区别。ARM9的学习   一般是需要购买书籍的。比如三星的S3C2440,官方的文档都是英文的,大部分工程师只能去看国内出版的书籍。英文好的同学,请不要以为   你很牛,可以只看英文文档。毕竟你是中国人,你最熟悉的,理解最好的还是中文。看英文的速度还是比看中文慢一些,我们要的是最短的时   间,而不是追求短时间内记住所有细节。当然,如果是一
[单片机]
STM32看门狗WWDG和IWDG的区别是什么
STM32有2个看门狗:独立看门狗和窗口看门狗。 独立看门狗IWDG:独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误。 窗口看门狗WWDG:系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。 简单的讲,看门狗就是检测系统故障的,如果因为系统故障而没有及时喂狗,则引发复位重启。 对于一般的独立看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但是这样有一个隐患,有可能程序跑乱了又跑回正常的地方,或者跑乱的程序正好执行了刷新看门狗操作,这样的情况下一按的看门狗就检测不出来故障了;但是如果使用窗口看门狗,程序员可以根据程序正常执行
[单片机]
<font color='red'>STM32</font>看门狗WWDG和IWDG的区别是什么
基于STM32电源模块开发
1. 需求分析 使用220-9V的电源适配器进行供电 输出2-5V可调,并且可以监控输出电流 带oled屏幕显示电压电流等信息 带MCU主控可做通信或测试功能使用 2. 硬件设计 2.1 硬件选型及原理图设计 MCU部分原理图设计如下,主要参考的是我之前买的一个STM32F103的一个核心板提供的原理图,主要部分有USB接口、9.6英寸OLED屏幕接口(SPI通信)、SWD及UART接口、按键及指示灯、多余的引脚尽量通过排针引出。 电源部分原理图如下,芯片选型主要使用的是TI的WEBENCH设计工具设计后提供的参考芯片,数字电阻和电流监控的跨阻放大器也都是在TI官网搜的。这里为什么我都用TI的芯片,主要是因为TI
[单片机]
基于<font color='red'>STM32</font>电源模块开发
STM32 TIM1的PWM没有输出
设置了TIM1的CHN1及CHN4输出PWM,代码如下,但是仿真的波形不对,上设备也不正确: RCC- APB2ENR|=1 11; //TIM1时钟使能 RCC- APB2ENR|=1 2; //使能PORTA时钟 GPIOA- CRH&=0XFFFFFFF0;//PA8输出 GPIOA- CRH|=0X0000000B;//通用推挽输出 GPIOA- ODR|=1 8;//PA8上拉 GPIOA- CRH&=0XFFFF0FFF;//PA11输出 GPIOA- CRH|=0X0000B000;//通用推挽输出 GPIOA- ODR|=1 11;//PA11上拉
[单片机]
STM32 ADC时钟配置
一 STM32 ADC 采样频率的确定 先看一些资料,确定一下STM32 ADC 的时钟: (1),由时钟控制器提供的ADCCLK 时钟和PCLK2(APB2 时钟)同步。CLK 控制器为ADC 时钟提供一个专用的可编程预分频器。 (2)一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟相同 RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); (3)在时钟配置寄存器(RCC_CFGR) 中 有 为ADC 时钟提供一个专用的可编程预分器 位15:14 ADCPRE:ADC预分频 由软件设置
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved