Pippi工作室
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于STM32L4XX 、HAL库的A4915METTR-T三相无刷直流电机(BLDC)驱动应用C语言程序设计
define SPEED_PWM_CHANNEL TIM_CHANNEL_1 // 使用通道1。// 对于 A4915,换相逻辑由内部实现,MCU只需读取霍尔状态,并在正确的时刻给出方向和使能。#define ENABLE_PIN GPIO_PIN_0 // 使能引脚。#define DIR_PIN GPIO_PIN_1 // 方向引脚。#define BRAKE_PIN GPIO_PIN_2 // 刹车引脚。原创 2026-04-29 10:47:18 · 43 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的L6234PD013TR三相无刷直流电机(BLDC)驱动应用C语言程序设计
STEP1_U_H_V_L_W_OFF = 0, // 电流从 U 进,V 出。STEP2_U_H_W_L_V_OFF, // 电流从 U 进,W 出。STEP3_V_H_W_L_U_OFF, // 电流从 V 进,W 出。STEP4_V_H_U_L_W_OFF, // 电流从 V 进,U 出。STEP5_W_H_U_L_V_OFF, // 电流从 W 进,U 出。STEP6_W_H_V_L_U_OFF // 电流从 W 进,V 出。原创 2026-04-29 10:42:27 · 60 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV11873PWPR三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 简化后: RPM = (tmp_count * 60000) / (time_diff * 2)// 计算比较值: (ARR + 1) * duty / 100 = 3200 * duty / 100。// 获取当前转速 (转/分)// 公式: RPM = (脉冲数 / 时间差(秒)) * 60 / (极对数/6)// 2. PWM 引脚配置 (TIM1 CH1, PA8)原创 2026-04-29 10:38:02 · 61 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV10964FFDSNR三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ PWM定时器句柄。// 初始占空比为0。// 2. 配置 FG 输入捕获 (假设已由CubeMX完成)// FG 回调:计算周期并转为转速 (假设 1 pulse/rev)// 设置速度,duty = 0-1000 对应 0%-100%// 缓慢启动:避免 DRV10964 启动失败。// RPM = 60 / (周期秒数)// 此处做除法需注意数据类型,防止溢出。// 初始化:配置PWM和FG输入捕获。// 1. 配置 PWM 输出。// 读取当前转速 (RPM)// 设置转速 0-1000。原创 2026-04-29 10:31:18 · 33 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8306HRSMR三相无刷直流电机(BLDC)驱动应用C语言程序设计
通过额外提供的制动 (nBRAKE) 和方向 (DIR) 引脚可制动BLDC电机和设 置电机方向。// 输入捕获定时器 (读取FGOUT)MX_TIM1_Init();原创 2026-04-29 10:25:25 · 56 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的SBD63006MUV-E2三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 数组元素: {PWMU_EN, PWMV_EN, PWMW_EN}// FG 捕获定时器。// PWM 定时器。// 3. 配置PWM定时器 (TIM1 CH1/2/3)// 预编译换向表 (索引为 Hall A/B/C 组合值)// 引脚映射 (以STM32L4为例,根据实际电路修改)原创 2026-04-29 10:18:42 · 38 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8317HREER三相无刷直流电机(BLDC)驱动应用C语言程序设计
该芯片支持高度可配置性,可通过SPI接口(DRV8317S)或引脚(DRV8317H)进行设置—— PWM 模式、转换速率、电流检测增益均为可配置参数。DRV8317集成了多项保护功能,包括欠压锁定(UVLO)、过压保护(OVP)、电荷泵欠压保护(CPUV)、过流保护(OCP)、过温警告(OTW)及过温关机(OTS),旨在保护器件、电机及系统免受故障影响。// 3. 配置 PWM 输出引脚 (IN_A, IN_B, IN_C)// 电压值 = (adc_value * 3.3 / 4096)原创 2026-04-29 10:11:13 · 86 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的BD63006MUV-E2三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 这里需根据实际硬件连接,调用 HAL_TIM_PWM 的 Channel 使能/禁用。// U相PWM通道。// 需要根据硬件连接具体定义 UH/UL, VH/VL, WH/WL 的组合。// 霍尔传感器中断回调 (每个引脚上升沿/下降沿触发)原创 2026-04-29 10:04:34 · 43 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8316CTRGFR三相无刷直流电机(BLDC)驱动应用C语言程序设计
DRV8316C还集成电源管理电路,包括可调压降压稳压器(3.3V/5V,200mA)和 LDO(3.3V/30mA),可用于为外部电路供电。DRV8316C集成了多项保护功能,包括供电欠压锁定(UVLO)、过压保护(OVP)、电荷泵欠压保护(CPUV)、过流保护(OCP)、过温警告(OTW)及过温关机(OTSD),旨在保护器件、电机及系统免受故障影响。// 1. 配置 SLEEP 和 nFAULT 引脚 (已在 HAL_MspInit 或 MX_GPIO_Init 中)// V相 High。原创 2026-04-29 09:57:37 · 348 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的MP6540GU-Z三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 对应关系:-500(0% 下管开) -> 0;// 设置三相占空比 (值范围: -TIM_PERIOD/2 至 TIM_PERIOD/2,用于简易矢量控制)// 换算示例 (假设 3.3V 参考,12位 ADC,放大倍数 20,采样电阻 0.01 Ohm)// 将带符号数 (-500 ~ 500) 映射到 PWM 比较值 (0 ~ 1000)// 简单测试:U 相以 50% 占空比导通,V 相接地,W 相高阻(或关闭)// 注意:这只是锁定转子测试,实际运行需要正确的位置反馈(霍尔/无感观测器)原创 2026-04-29 09:50:16 · 85 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的STSPIN32G4三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 设置PWM模式为6步换相。│PA5-7 ├── SPI ────►│SCK/MISO│ │ 三相桥 │。– 2路电机控制高级定时器(16位,支持6路 PWM 通道)// 60度电气周期对应转速 = 60/(极对数 * 6 * 周期)// 电气角度(0-3599)原创 2026-02-13 16:17:53 · 146 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8313PWPR三相无刷直流电机(BLDC)驱动应用C语言程序设计
DRV8313 提供三个可独立控制的半H桥驱动器。/* 私有变量 ------------------------------------------------------------------*//* 函数实现 ------------------------------------------------------------------*//* 底层驱动宏 ---------------------------------------------------------------*/原创 2026-02-13 16:06:11 · 382 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8300DPWR三相无刷直流电机(BLDC)驱动应用C语言程序设计
栅极驱动架构支持高达 750mA 的峰值拉电流和 1.5A 的灌电流。/* ==================== 私有函数声明 ==================== *//* ==================== 引脚配置 ==================== *//* ==================== 故障状态 ==================== *//* ==================== 函数声明 ==================== *//* 内部上拉 */原创 2026-02-13 16:00:19 · 63 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8302DCAR三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 基本公式:I = ADC_value * (Vref / (4096 * gain * R_shunt))// 40V/V增益。DRV8302_REG_STATUS_2 = 0x01, // 状态寄存器2。DRV8302_REG_CONTROL_1 = 0x02, // 控制寄存器1。DRV8302_REG_CONTROL_2 = 0x03, // 控制寄存器2。原创 2026-01-14 10:31:19 · 370 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8323RSRGZR三相无刷直流电机(BLDC)驱动应用C语言程序设计
define DRV8323_DEFAULT_GATE_DRIVE_MA 50 // 50mA驱动电流。// 需要在主循环中调用。#define DRV8323_DEFAULT_DISABLE_CSA 0 // 使能CSA。#define DRV8323_FAULT_VDS_HA (1 << 4) // VDS高侧A相故障。原创 2026-01-14 10:21:55 · 139 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的SS6343M三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 1. 配置使能、休眠、故障引脚为输出/输入模式 (在main.c中通过MX_GPIO_Init完成){0, 0, 1, 4}, // Step 2: C high, B low (注意: 需调整EN)// PWM占空比 (0-1000,对应0-100%)// 编码格式: [EN_A, EN_B, EN_C, 有效PWM相位]原创 2026-01-14 10:08:12 · 62 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8311HRRWR三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 写命令:R/W位为0。// 读命令:R/W位为1。• SPI 和硬件器件型号– 10 MHz SPI 通信 (SPI/tSPI)#define DRV8311_REG_CONTROL1 0x01 // 控制寄存器1。#define DRV8311_REG_CONTROL2 0x02 // 控制寄存器2。#define DRV8311_REG_STATUS 0x00 // 状态寄存器。原创 2026-01-14 09:58:49 · 236 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的A4931METTR-T三相无刷直流电机(BLDC)驱动应用C语言程序设计
* 关闭使能, 设置刹车, 方向默认 */原创 2026-01-14 09:49:33 · 106 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8317三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 假设 T_ck_psc = 1/80MHz = 12.5ns -> 500ns / 12.5ns = 40 -> DTG = 39。: 使用6个PWM输入(INH_A, INL_A, INH_B, INL_B, INH_C, INL_C)直接控制每个半桥的上管和下管。// 计算公式:T_dts = T_ck_psc, DT = (DTG[7:0] + 1) * T_dts。原创 2025-09-05 13:30:21 · 153 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8332-HT三相无刷直流电机(BLDC)驱动应用C语言程序设计
可通过硬件引脚或SPI配置为6个独立的PWM输入、3个PWM输入(带使能)、1个PWM输入(带PH/EN方向控制)等。// 更常见的做法是使用 HAL_TIM_PWM_Start 和 HAL_TIMEx_PWMN_Start 配对。// 也可以使用 HAL_TIM_PWM_Start 来启动高侧,但Ex版本通常一起配置。// 这是一个简化的示例,实际应用中需要更精细的控制(例如关闭所有输出后再开启新的)// 使用HAL_TIMEx_PWMN_Start是启动互补通道(低侧)的关键。原创 2025-09-05 13:25:55 · 166 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8329三相无刷直流电机(BLDC)驱动应用C语言程序设计
支持硬件(H/W)模式(直接使用 PWM 输入)和串行外设接口(SPI)模式。SPI 模式可以灵活配置芯片参数、读取故障状态和运行数据。包括欠压锁定(UVLO)、过流保护(OCP)、过温保护(OTSD)、短路保护(SCP)、击穿保护(SHoot-Through)等。DRV8329 是德州仪器(TI)推出的一款集成度高、功能强大的三相无刷直流电机驱动器。内置三个半桥,驱动电流能力强(峰值可达 65A),减少了外部元件数量和PCB面积。支持三相中的两相或三相电流采样,无需外部运放。原创 2025-09-05 13:21:44 · 186 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8161三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 设置PH/EN模式。{TIM_CHANNEL_5, TIM_CHANNEL_6} // Phase C: PH=CH5, EN=CH6 (可能需要高级定时器TIM1/TIM8)// 三相的PH和EN通道 [Phase][0:PH, 1:EN]* @param dir: 方向 (MOTOR_DIR_CW 或 MOTOR_DIR_CCW)// 用于电流检测的ADC句柄。原创 2025-09-05 13:17:13 · 120 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8311三相无刷直流电机(BLDC)驱动应用C语言程序设计
是德州仪器(TI)推出的一款针对三相无刷直流(BLDC)电机或永磁同步电机(PMSM)的集成驱动器芯片。:集成了三个半桥MOSFET、门极驱动电路、电荷泵(支持100%占空比)、稳压器以及多种保护电路。:工作电压最高可达,持续输出电流可达,峰值电流可达。:通过引脚直接控制每个半桥的PWM和使能。这种方式需要MCU输出6路信号,控制更灵活。:通过SPI总线配置内部寄存器,仅需PWMA/B/C三路PWM信号即可控制电机。可以读取故障状态、配置参数(如死区时间、电流保护阈值等),是更常用和推荐的方式。原创 2025-09-02 13:59:39 · 550 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8376三相无刷直流电机(BLDC)驱动应用C语言程序设计
ADC1_INx | CSA_OUT, CSB_OUT, CSC_OUT | 相电流检测 | 可选,用于FOC或过流检测 || GPIO Output | nSLEEP | 芯片使能 | 高电平有效,用于启动/关闭驱动器 || SPIx_MISO | SDO | SPI 数据输出 | 用于读取故障寄存器 |: 使用SPI总线配置寄存器并控制驱动器,提供更精细的控制和诊断功能。| SPIx_MOSI | SDI | SPI 数据输入 | || SPIx_SCK | SCLK | SPI 时钟 | |原创 2025-09-02 13:54:01 · 230 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8363-Q1三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 地址左移一位,最低位是R/W位(0)原创 2025-09-02 13:48:45 · 125 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的DRV8301三相无刷直流电机(BLDC)驱动应用C语言程序设计
* DRV8301 SPI帧格式: [15:11] 地址, [10] R/W位 (0=Write), [9:0] 数据 */// 设置R/W位为读。/* DRV8301 SPI帧格式: [15:11] 地址, [10] R/W位 (1=Read) */原创 2025-09-02 13:42:38 · 617 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的MIC4607A三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 例如 { {TIM_CHANNEL_1, TIM_CHANNEL_1N},// 在CubeMX中配置TIM1为互补PWM,设置死区时间、ARR=1000-1、PSC=0。// 初始化PWM定时器,配置ARR、PSC、死区时间等应在CubeMX中完成或在此处调用HAL_TIM_PWM_Init。// 注意:PWMN_Start用于启动互补通道,PWM_Start用于启动主通道。原创 2025-09-02 13:36:12 · 152 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的MCP8027三相无刷直流电机(BLDC)驱动应用C语言程序设计
ADC Input <- |<--------| HALL2 (经内部运放) |<--------| || ADC Input <- |<--------| HALL3 (经内部运放) |<--------| || ADC Input <- |<--------| HALL1 (经内部运放) |<--------| 霍尔传感器|丰富的内置保护,包括欠压锁定(UVLO)、过流保护(OCP)、过温保护(OTSD)、故障指示等。原创 2025-09-02 13:32:22 · 124 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的MCP8021三相无刷直流电机(BLDC)驱动应用C语言程序设计
if (/* 故障引脚检测到低电平 */ HAL_GPIO_ReadPin(FAULT_GPIO_Port, FAULT_Pin) == GPIO_PIN_RESET) {// 例如,对于 Step 1 (hall_val=1): {INHA=1, INHB=0, INHC=0, INLA=0, INLB=1, INLC=0}// 需要在stm32l4xx_it.c中的EXTI中断服务程序里调用HAL_GPIO_EXTI_IRQHandler,// 用于PWM生成的定时器句柄(如TIM1)原创 2025-09-02 13:27:20 · 129 阅读 · 0 评论 -
基于STM32L4XX 、HAL库的ATA6847 三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ IN1 | L | PWM| PWM| L | L | L | // 注意:此表为示例,具体逻辑需根据ATA6847数据手册和应用电路调整。// INHx 始终为高电平(使能),我们只对需要接地的相施加PWM,对浮空的相施加低电平。// 或者,如果需要实时改变速度,可以在这里更新所有PWM通道(如果当前都在活动)。原创 2025-09-02 13:22:52 · 225 阅读 · 0 评论
分享