历史上的今天
返回首页

历史上的今天

今天是:2024年10月05日(星期六)

正在发生

2018年10月05日 | 【STM32电机方波】记录2——NVIC中断基本设置

2018-10-05 来源:eefocus

NVIC概念:提供中断控制器,用于总体管理异常,称之为“内嵌向量中断控制器”。简单来说,就是MCU提供、处理内部中断的模块。

NVIC库函数:

【STM32电机方波】记录2——NVIC中断基本设置

中断优先级:

在配置NVIC之前得弄懂一个概念:中断优先级,即中断的执行顺序。中断优先级中,分为抢占式优先级(先占优先级)和响应优先级(从优先级)。抢断优先级,顾名思义,能再别人中断是抢占别人中断,实现中断嵌套。响应优先级则只能排队,不能抢在前面插别人的对,即不能嵌被嵌套。

STM32中指定优先级的寄存器为4位,其定义如下:

第0组:所有4位用于指定响应优先级  NVIC_PriorityGroup_0 => 选择第0组

第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级  NVIC_PriorityGroup_1 => 选择第1组  

第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级  NVIC_PriorityGroup_2 => 选择第2组

第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级  NVIC_PriorityGroup_3 => 选择第3组

第4组:所有4位用于指定抢占式优先级  NVIC_PriorityGroup_4 => 选择第4组                                                                抢占式优先级(先占优先级)和响应优先级(从优先级)值:

【STM32电机方波】记录2——NVIC中断基本设置

注意:

1. 选中NVIC_PriorityGroup_0,则参数NVIC_IRQChannelPreemptionPriority对中断通道的设置不产生影响。

2. 选中NVIC_PriorityGroup_4,则参数NVIC_IRQChannelSubPriority对中断通道的设置不产生影响。

中断通道:

【STM32电机方波】记录2——NVIC中断基本设置
NVIC中断基本设置步骤:

第一步:使用void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)函数对优先级分组配置。

例如:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0)配置为0组。

第二步:

中断初始化结构体配置,结构体类型定义如下:

typedef struct

{

 uint8_t NVIC_IRQChannel;               //中断通道

 uint8_t NVIC_IRQChannelPreemptionPriority;  //抢断优先级

 uint8_t NVIC_IRQChannelSubPriority;  //响应优先级    

 FunctionalState NVIC_IRQChannelCmd;     

} NVIC_InitTypeDef;

中断初始化结构体缺省值:

{

NVIC_IRQChannel = 0x0;

NVIC_IRQChannelPreemptionPriority = 0;

NVIC_IRQChannelSubPriority = 0;

NVIC_IRQChannelCmd = DISABLE;

}

第三步:中断初始化结构体初始化操作如下

NVIC_Init(&“NVIC_IRQChannel值”);

第四步:开关总中断操作。在STM32中是通过改变CPU优先级来允许和禁止中断的。

(1)   下面两个函数等效关闭总中断

void NVIC_SETPRIMASK(void);  

void NVIC_SETFAULTMASK(void); 

(2)   下面两个函数等效开放总中断

void NVIC_RESETPRIMASK(void); 

void NVIC_RESETFAULTMASK(void);

(3)   常用操作是先关后开中断

NVIC_SETPRIMASK();     // Disable Interrupts

NVIC_RESETPRIMASK(); // Enable Interrupts

两种类型函数要成对使用。



方波BLDC电机

主要完成任务:

由BLDC 的方波无霍尔程序起进行学习,对BLDC无霍尔元件的运行原理——六步转向法有了一定的理解。

六步转向法换相关键: 

控制BLDC转动的关键就是确定换相的时刻在每两个换相点的中间都对应着的反电动势的极性改变的点,即反电动势从正变化为负或者从负变化为正的点,称为过零点。利用反电动势的这个特性,只要我们能够准确检测出反电动势的过零点,将其延迟30°,即为需要换相的时刻。

BLDC的过零检测:

原理是:BLDC电机转动时,永磁体转子的旋转在电机内部产生变化的磁场,根据电磁感应定律,每相绕组都会感应出反电动势。BLDC电机的BEMF波形随转子的位置和速度变化,整体上呈现为梯形。

在PWM_OFF区间对反电动势采样,当驱动端的PWM由ON状态切换到OFF状态时,由于电机绕组的电感效应,绕组内的电流不会马上消失,于是经过下桥臂MOS管的体二极管续流形成回路,因此,在PWM OFF区间对断开相绕组的端电压进行采样,所得电压值与反电动势的大小成比例,其过零点也直接反映了反电动势的过零点。另外,在PWM刚进入OFF状态时,由于下桥臂MOS管的体二极管的续流,断开相的电压会被钳在-0.7V。将每一时刻所在位置检测的反电动势与上一时刻的反电动势进行对比。若满足过零条件,则返回过零信号,进行闭环调速。


推荐阅读

史海拾趣

E-CMOS(飞虹高科)公司的发展小趣事

随着全球化趋势的加剧,飞虹高科公司意识到,要想在国际市场上取得更大的成功,必须与国际同行展开合作。因此,公司积极寻求与国际知名企业的合作机会,通过技术合作、合资建厂等方式,共同开发新产品、拓展新市场。这些合作不仅为公司带来了资金和技术支持,还帮助公司扩大了国际影响力,提高了产品的国际竞争力。

Elpakco Inc公司的发展小趣事

Elpakco Inc公司深知,企业的成功离不开社会的支持和帮助。因此,公司始终将履行社会责任作为企业的重要使命。公司积极参与环保、公益等活动,努力减少生产过程中的环境污染和资源浪费。同时,公司还注重员工的成长和发展,为员工提供良好的工作环境和福利待遇,让员工在为企业创造价值的同时,也能实现个人的成长和发展。

Emerson公司的发展小趣事

1890年,Emerson在美国密苏里州圣路易斯市成立,最初是一家电机和风扇制造商。1892年,新公司靠交流电机起家,并生产出了第一批销往北美的电风扇,净销售额接近6万美元。随着技术的不断革新,Emerson于1897年开始生产吊扇,这一创新使得高层建筑更加宜居,吊扇业务迅速成为公司的重要收入来源。

Elite Enterprises (H K) Co Ltd公司的发展小趣事

Elite Enterprises (H K) Co Ltd成立于2002年,当时正值LED技术快速发展的时期。公司创始人凭借对LED市场的敏锐洞察,决定专注于LED产品的研发和生产。初期,公司面临资金、技术和市场等多重挑战,但通过不懈努力和持续创新,逐步在LED照明市场崭露头角。

Apacer公司的发展小趣事

随着科技的不断发展,Apacer宇瞻科技紧跟时代步伐,不断创新产品。2006年,公司推出了存储容量高达2GB的microSD卡,这款数码卡体积仅为普通SD卡的四分之一,但存储容量却与之不相上下。这一创新产品不仅满足了市场对高容量、小型化存储设备的需求,也进一步巩固了宇瞻科技在市场上的地位。

EPIGAP公司的发展小趣事

EPIGAP公司的创始人李先生在半导体领域拥有深厚的技术背景。在公司初创时期,他带领研发团队成功研发出一种新型的高性能芯片,该芯片在功耗和性能上均达到了行业领先水平。这一技术突破使得EPIGAP公司在激烈的市场竞争中脱颖而出,迅速获得了众多客户的青睐。凭借这一产品,EPIGAP成功打开了市场,为后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

小孩从小普及高科技知识

必要的教育,父母的的手机号码一定要小孩知道,同时给小孩配手机,最好带GPS功能,方便卫星定位。可以任何时候知道小孩在哪里?避免父母担忧…

查看全部问答>

为啥AD6突然需要注册?

整个走廊的同学用的都是我的AD6,结果给他们传完了我的突然就需要注册了,网上的注册机都是白扯,我的版本是6.8的.不知道该怎么办啊.…

查看全部问答>

通过以太网发送自定义的帧的问题

希望直接通过以太网发送自定义的帧 现在用muxSend函数的时候碰到一些问题 一是cookie只需要调用muxBind然后得到返回值就可以了? 二是对M_BLK结构不是很清楚, 是不是在调用这个函数的时候还涉及到netpool初始化操作呢? 在网上找了些例子,在 ...…

查看全部问答>

华为公司上海研究所招聘软件测试人员

职位要求: 1、电子信息相关专业,本科2年以上或硕士1年以上的工作经验; 2、具备扎实的计算机软件或通信基础知识,有着相关的软件项目开发或测试经验,或者自动化测试经验; 3、具备一定的软件工程知识,掌握基本软件开发、质量保证流程及相关 ...…

查看全部问答>

用外部电路实现零磁通?

请教各位大侠,如何利用外部电路来实现零磁通目的?谢谢…

查看全部问答>

送给你们《高质量C++C 编程指南》,养成编程的好习惯是挺重要的呀

我花了3小时看完了,感觉受益匪浅,对以后的编程之路垫了垫基础,传上来与大家分享一下…

查看全部问答>

2013电子设计大赛获奖名单

本帖最后由 paulhyde 于 2014-9-15 03:43 编辑 为什么查不到2013电子设计大赛重庆赛区所有的获奖名单    …

查看全部问答>

关于数控放大器

我大三,学校今天布置了一个用89C51制作数控放大器的任务。希望有经验的朋友给点指点。(尤其是将元件板和开发板连接到一起的部分,开发板是我事先做好的集成了数码管,51单片机,按键等元件的。)…

查看全部问答>