Odrive STM32F405配置说明

这篇具有很好参考价值的文章主要介绍了Odrive STM32F405配置说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Odrive STM32F405配置说明


通过Odrive V3.6版本电路板来编写自己电机驱动软件,以下是MCU部分的Cubemax配置。

1、原理图

Odrive STM32F405配置说明
此工程只配置M0(单轴)。
Odrive STM32F405配置说明

2、系统时钟配置

2.1 晶振配置

Odrive STM32F405配置说明
其他为默认配置

2.2 时钟树配置

外部晶振配置8MHz,系统时钟PLL倍频到168MHz
Odrive STM32F405配置说明

2.3 系统配置

时基源选择:TIM14
滴答定时器用于FreeRTOS
Odrive STM32F405配置说明

2.4 中断配置

(STM32中断,及FreeRTOS中断优先级配置:https://blog.csdn.net/ybhuangfugui/article/details/99827056)
1、STM32中断优先级数值越小,优先级越大
2、FreeRTOS任务优先级是数值越大,优先级越高

3、定时器TIM配置

3.1 TIMER1六路带死区PWM

Odrive STM32F405配置说明

Slave Mode选择Tigger Mode,Trigger Source选择ITR2。即TIM3(Encoder)内部触发启动
TIM1计数器
Odrive STM32F405配置说明

Channel4选择PWM Genneration No Output模式。此通道生成PWM,上升沿触发ADC注入通
道采样。
Odrive STM32F405配置说明

中心 对齐模式:
当选择中心对齐计数模式1时,只在向下计数过程中发生匹配动作时才置位比较事件标志CC4IF;
当选择中心对齐计数模式2时,只在向上计数过程中发生匹配动作时才置位比较事件标志CC4IF;
当选择中心对齐计数模式3时,在向上/向下计数过程中发生匹配动作时都会置位比较事件标志CC4IF。当然,比较事件标志被置位时可以触发中断或DMA请求
(原文链接:https://blog.csdn.net/weixin_38106263/article/details/108787090)
Odrive STM32F405配置说明

(第32章 TIM—高级定时器—零死角玩转STM32-F429系列:https://www.cnblogs.com/firege/p/5805894.html)
Repetition Counter(重复计数):
RepetitionCounter=1时,表示延长一倍的时间。
(STM32 定时器中TIM_RepetitionCounter 作用详解:https://blog.csdn.net/longgyue/article/details/80161380)
Counter Period :(斩波频率10KHz)
TIM1CLK / (PwmFreq * 2) = 168 * 10^6 / (10 * 10^3 * 2) = 8400
Dead Time :
Odrive STM32F405配置说明

0x94=10010100
【7:5】=100 【5:0】=10100=0x14=20
DTG[7:5]=100 => DT=(64+DTG[5:0]) * Tdtg = (64+20) * 2 / (168 * 10^6) = 1us
Odrive STM32F405配置说明
Odrive STM32F405配置说明
Odrive STM32F405配置说明

// 启动TIM1 PWM各通道 
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); 
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2); 
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3); 
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1); 
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2); 
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_3); 
// 启动触发ADC采样PWM 
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4); 
// 启动TIM1定时器溢出中断 
HAL_TIM_Base_Start_IT(&htim1);

3.2 TIMER3 编码器模式

Odrive STM32F405配置说明
Odrive STM32F405配置说明

Odrive STM32F405配置说明
Odrive STM32F405配置说明

Odrive STM32F405配置说明

// 启动TIM3编码器中断 
HAL_TIM_Encoder_Start_IT(&htim3, TIM_CHANNEL_ALL);

(STM32 编码器模式详解:https://blog.csdn.net/xuzhexing/article/details/107152512)

3.3 TIMER8 霍尔传感器模式

(【MM32】定时器:霍尔传感器接口与六步算法https://blog.csdn.net/chendu103/article/details/107689028
BLDC开发笔记3.霍尔接口与触发换相:
https://www.cnblogs.com/ckk-blog/p/13837457.html)
Odrive STM32F405配置说明

Odrive STM32F405配置说明
Odrive STM32F405配置说明
Odrive STM32F405配置说明
Odrive STM32F405配置说明

// 启动TIM4霍尔传感器中断 
HAL_TIMEx_HallSensor_Start_IT(&htim4);

4、ADC配置

Odrive STM32F405配置说明
Odrive STM32F405配置说明
Odrive STM32F405配置说明
Odrive STM32F405配置说明

4.1 规则通道配置

Odrive STM32F405配置说明
采样时间:1/(84/4)3=0.143us
ADC转换总时间:1/(84/4)
(3+15)=0.857us
开启DMA:
Odrive STM32F405配置说明

4.2 注入通道配置

采样触发方式:TIM1 CC4上升沿
ADC转换时间:1/(84/4)*(3+15)=0.857us
Odrive STM32F405配置说明

// 启动ADC1注入通道采样中断 
HAL_ADCEx_InjectedStart_IT(&hadc1);

5、CANopen总线配置

5.1 CAN驱动配置

Odrive STM32F405配置说明
Odrive STM32F405配置说明
Odrive STM32F405配置说明

// 启动CAN1 
HAL_CAN_Start(&hcan1); 
// 使能CAN1 FIFO0接收中断 
HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING);

5.2 TIM5定时器配置

Odrive STM32F405配置说明
Odrive STM32F405配置说明
Odrive STM32F405配置说明

定时中断周期Period = (13999+1) / (84 * 10^6 / (5+1)) = 1ms

// 启动定时器TIM5中断 
HAL_TIM_Base_Start_IT(&htim5);

5.3 CanFestival移植即对象字典生成

(CANopen STM32移植:https://blog.csdn.net/qq_27620407/article/details/109021175)
(STM32无系统移植CanFestival小白教程:https://blog.csdn.net/weixin_43072093/article/details/115245443)
(CANOpen协议详解(一):CANfestival源码分析:https://blog.csdn.net/u012846795/article/details/121008265)
(CANOpen协议详解(二):协议具体内容:https://lixiaoyao.blog.csdn.net/article/details/121008306)

6、SPI3配置

6.1 预驱DRV8301(DRV8303)

Odrive STM32F405配置说明

6.2 磁编码器AS5047

Odrive STM32F405配置说明

7、全速USB(虚拟串口)

Odrive STM32F405配置说明
Odrive STM32F405配置说明
Odrive STM32F405配置说明

8、GPIO配置

Odrive STM32F405配置说明

9、FreeRTOS配置

(【FreeRTOS】STM32CubeMX配置STM32FreeRTOS(一):https://blog.csdn.net/weixin_41865104/article/details/107399420)
Odrive STM32F405配置说明

9.1 添加Task

Odrive STM32F405配置说明

9.2 添加队列Quene

Odrive STM32F405配置说明

9.3 添加二值信号量

Odrive STM32F405配置说明

9.4 添加互斥信号量

Odrive STM32F405配置说明

10、NVIC中断配置

Odrive STM32F405配置说明
Odrive STM32F405配置说明文章来源地址https://www.toymoban.com/news/detail-449629.html

到了这里,关于Odrive STM32F405配置说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RT-Thread STM32F429 armfly-v6开发板BSP说明

    本文档为 RT-Thread 开发团队为 STM32F429 armfly-v6 开发板提供的 BSP (板级支持包) 说明。 主要内容如下: 开发板资源介绍 BSP 快速上手 进阶使用方法 通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮

    2024年01月18日
    浏览(56)
  • 【STM32】STM32F4 GPIO详解与配置

    GPIO是通用输入输出端口的简称,为STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。STM32芯片的GPIO被分成很多组,每组有16个引脚,所有的GPIO引脚都有基本的输入输出功能。 其中保护二极管使GPIO能够5V电压容忍。在

    2024年02月07日
    浏览(52)
  • STM32F407 GPIO口输出配置配置步骤

    STM32F407ZGT6 是意法半导体(STMicroelectronics)公司推出的一款高性能ARM Cortex-M4核心的32位微控制器(MCU)。它是 STM32F4 系列的一员,具备强大的处理能力和丰富的外设功能,适用于各种应用领域。 说明:STM32F4 的主频最高是 168Mhz,所以我们一般设置 PLLCLK 为 168Mhz(M=8,N=336,P=2),通

    2024年02月12日
    浏览(52)
  • STM32CubeMX生成C代码及时钟树配置(基于stm32f407)

    近来对于stm32单片机编程中,HAL库逐渐取代标准库成为主流的库。标准库支持的芯片型号有限,而且目前已经停止支持,而HAL库支持所有类型的芯片,可移植性也很高,再加上有神器STM32Cube可以生成工程模板,越来越多的编程开始从使用标准库转到使用HAL库。 新建工程后,在

    2024年02月15日
    浏览(61)
  • STM32F系列项目定时器配置-中断触发源详解

    1.以高级定时器为例:  2.触发源选择与极性选择:   3.触发源介绍 (282条消息) 【STM32技巧】(1)STM32定时器8种触发源之ITR0~ITR3说明_stm32 定时器触发定时器_小石头有大内涵的博客-CSDN博客 ITR0 内部触发0 ITR1 内部触发1 ITR2 内部触发2 ITR3 内部触发3 ITR3  

    2024年02月11日
    浏览(52)
  • STM32F103利用CubeMX配置开启定时中断

    1、外部晶振8MHz,下载方式SWD模式,需求配置定时器1,产生每100ms一次中断 新建工程、配置晶振、选择下载方式等略 2、查阅资料,STM32F103的时钟树分配  3、配置CubeMX的时钟树  4、配置定时器-开启定时中断  5、配置定时时间 ( 定时周期 = (Prescaler + 1) × (Period + 1) ÷ 时钟频率

    2024年02月15日
    浏览(49)
  • STM32F407 SPI配置和时序图讲解(二)

    上节讲了SPI的基本配置,这节主要讲解 如何看时序图 ,SPI数据到底是如何传输的。 SPI初始化后,就可以开始向对象发送数据了,但是要发送数据给W25Q128模块,需要按照它的时序图来发送( 个人用的是W25Q128模块 ) W25Q128模块简介 W25Q128是一款常见的串行闪存存储器模块,属

    2024年02月06日
    浏览(38)
  • Keil STM32F103系统时钟配置过程(标准库)

    平时我在做STM32项目的时候,一般是用别人的工程包,有时用别人的工程包的系统时钟不对,需要检查,下面是系统时钟配置过程。 1:在工程找到文件startup_stm32f10x_hd.s并打开,然后找到SystemInit,如下图 2:选择SystemInit,跳转到SystemInit函数,如下图: 3:SystemInit函数如下图:

    2024年02月16日
    浏览(64)
  • [STM32] - STM32F407VET6使用STM32CubeMX配置FatFs,以及挂载时返回03错误码问题的解决

    为测试新买的开发板TF卡读写是否正常,使用STM32CubeMX(后简称CubeMX)进行代码构建。生成代码后烧录测试,发现在挂载TF卡时无法成功,返回值为错误3( FR_NOT_READY )。经排查后问题已解决,遂记录配置过程供大家参考,并讲解挂载时返回错误3的解决方式。 ①为了输出TF卡(

    2024年02月22日
    浏览(71)
  • STM32F429IGT6使用CubeMX配置外部中断按键

    1、硬件电路 2、设置RCC,选择高速外部时钟HSE,时钟设置为180MHz 3、配置GPIO引脚  4、NVIC配置  PC13相同   5、生成工程配置   6、部分代码 中断回调函数 7、实验现象

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包