加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 目录
    • 1、GPIO详解
    • 2、ADC 配置
    • 3、TIME1  PWM配置
    • 4、比较器1配置
    • 5、TIMER2 配置
    • 6、比较器1、2配置
    • 7、电机启动换向过程及参数调试
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

【晟矽课堂】基于MS32F031电动工具控制外设应用详解

2023/04/18
2084
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

目录

1. GPIO详解

2. ADC配置

3. TIME1 PWM配置

4. 比较器1配置

5. TIME2配置

6. 比较器1、2配置

7. 电机启动换向过程及参数调试

电动工具主要外设资源总览

1、GPIO详解

输出:支持推挽输出和开漏输出(带上拉/下拉控制)

输入:支持浮空、上拉/下拉、模拟输入

每个 IO 速度可选

支持位操作(置位/复位寄存器 GPIOx_BSRR)

GPIOA 和 GPIOB 支持锁定配置

支持复用功能选择和模拟功能

支持 GPIO 快速翻转(2 clock)

输入模式

输入施密特触发器激活

由 GPIOx_PUPDR 寄存器激活上拉/下拉电阻控制

通过读取输入数据寄存器获取 I/O 状态

开漏模式:

输出数据寄存器写 0 激活输出 N-MOS(输出低),写 1 端口处于高阻态(P-MOS 不被激活)

推挽模式:

输出数据寄存器写 0 激活输出 N-MOS(输出低),写 1 激活输出 P-MOS(输出高)

上拉/下拉电阻控制

通过读取输入数据寄存器获取 I/O 状态

通过读取输出数据寄存器获取最后写入该寄存器的值

I/O 配置复用功能模式

输出缓冲器可被配置为开漏或推挽

外设信号(发送使能或数据)控制输出缓冲器

由 GPIOx_PUPDR 寄存器激活上拉/下拉电阻控制

通过读取输入数据寄存器获取 I/O 状态

芯片数据手册

引脚定义查询

端口功能复用

当 I/O 配置为模拟功能模式

输出缓冲器关闭

输入施密特触发器禁止输入, 施密特输出(数字输入)固定为 0

弱上拉/下拉电阻硬件关闭

读取输入数据寄存器固定为 0

2、ADC 配置

ADC 共有 16 个模拟通道

10 个外部模拟输入,从 GPIO 引脚引(ADC_IN0~9)

6 个内部模拟输入(温度传感器、内部参考电压、 VBAT 通道、 3 个运算放大器输出)

转换单一通道或自动扫描一个序列通道

每个模拟输入通道有专门的一位选择位 (CHSEL0~CHSEL21, 其中 CHSEL10~CHSEL15 位保留)

SCANDIR=0:正向扫描, 从通道 0 到通道 21

SCANDIR=1:反向扫描:从通道 21 到通道 0

温度传感连接到 ADC_IN16 通道,内部参考电压 VREFINT 连接到 ADC1_IN17 通道。VBAT 连接到 ADC1_IN18 通道。

模拟通道选择,配置模拟输入

a) ADC 异步时钟(16M HIRC),ADC 最大 ADC 时钟频率;

b) APB 时钟/2 或/4 ,避免时钟不同步,当 ADC 由定时器触发,且应用要求精确触发 ADC 时。

总的转换时间计算如下:

tCONV = 采样时间 + 12.5 x ADC 时钟周期

数据右对齐12bit

时钟选择独立时钟源16MHz

1.5个采样时钟周期

反向序列采样

独立的 ADC 供电和参考电压

ADC 使用用独立的电源供电 VDDA 和 VSSA

VDDA 供电或作为参考电压必须大于等于 VDD 电压

使用内部参考电压计算实际 VDDA 电压

单次转换模式;执行一次序列转换 ,转换所有被选的通道

TIME_TRGO信号触发ADC启动

DMA循环模式数据传输

禁止断续模式

溢出结果寄存器保持为原数据

ADC中DMA数据传输配置

ADC数据RAM缓存地址

ADC结果寄存器

DMA传输方向外设到内存

DMA数据传输个数

外设地址不自增

内存地址自增

外设数据位为半字16bit

内存数据位为半字16bit

DMA模式为循环模式

DMA通道优先级最高级

开启DAM传输完成中断

3、TIME1  PWM配置

输出IO口配置&开启复用功能

定时器基本配置

预分频为零

中心对齐模式(向上/向下计数)

自动重载计数器为PWM周期

重复计数器为1

在计数值为0时输出更新中断

输出通道配置

PWM 模式 1

输出通道使能输出

输出有效电平选择

驱动输出有效电平时序图

下管低有效输出

下管高有效输出

刹车和死区配置

运行模式下“关闭状态”使能

运行模式下“空闲状态”使能

死区时间设置

刹车控制使能

刹车高电平有效

自动输出使能关闭

COMG事件预装载

预装载使能

只能COMG事件允许更新通道输出

中断开启

开启刹车、更新中断

开启通道1中断

比较器通道选择宏定义

H_PWM_L_ON调制模式换向函数

H_PWM_L_ON调制模式

电机三相波形

6路PWM换向输时序图

4、比较器1配置

反电势采样比较器1配置

正向输入通道根据电机运行实时切换通道(BEMFU/ BEMFV /BEMFW )

反向输入通道BEMFN

滤波时间设定

输出极性选择

比较器输出端不要作为定时器1的刹车输入

开启比较器输出中断

通道21外部中断开启

ADC1_COMP_IRQHandler

5、TIMER2 配置

Timer2 基本定时器

时钟预分频1us计数周期

向上计数模式

时钟分频因子为0

自重复计数为0

Timer2 中断配置

溢出中断

通道1中断 T1时间触发实现换向

通道2中断 T2时间触发开启过零点检测

6、比较器1、2配置

比较器过零点检测原理

硬件过流比较器2配置

正向输入通道选择运放3输出

反向输入通道选择内部参考电压

内部参考电压档位选择

滤波时间设定

输出极性选择

比较器输出端作为定时器1的刹车输入

参考电压选择

选择外部 AVDD 作为参考电压 CRV

选择内部 VREF(2V) 作为参考电压 CRV

开启比较器输出中断

通道22外部中断开启

ADC1_COMP_IRQHandler

7、电机启动换向过程及参数调试

启动阶段过零检测

设定初始换向时间

等待过零点

如果没有过零点,强制换向

换向强拖阶段参数设定

ADC_ZeroCross_Commutator

初始启动参数设定

ADC_Commutator_Init

运行阶段过零检测

初始阶段过零点扇区时间逐步收敛

运行阶段扇区时间以实际过零点时间加入滤波

检测到过零点参数设定

ADC_ZeroCross_Processed

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
NFM41PC155B1H3L 1 Murata Manufacturing Co Ltd Ferrite Chip, 1 Function(s), 50V, 6A,

ECAD模型

下载ECAD模型
$1.65 查看
2904951 1 Phoenix Contact RELAY SAFETY SPST-NO 6A 24V
$153.83 查看
0501020.WR 1 Littelfuse Inc Electric Fuse, Fast Blow, 20A, 24VDC, 150A (IR), Surface Mount, 1206, ROHS COMPLIANT
$1.02 查看

相关推荐

电子产业图谱