0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

​Robomaster C板再体验

云深之无迹 来源:云深之无迹 2023-07-17 10:40 次阅读

这篇文章是Robomaster C板初体验的擦屁股篇,但是还没有写完,估计还有好几篇。

第一个是PWM点灯大法:

05652910-22fe-11ee-962d-dac502259ad0.png

占空比的设计

05785dd2-22fe-11ee-962d-dac502259ad0.png

在MX里面的PWM通道的设计

058fa3de-22fe-11ee-962d-dac502259ad0.png

这个是具体的参数设置

05ac3404-22fe-11ee-962d-dac502259ad0.png

时钟使用是APB1

05c2d4c0-22fe-11ee-962d-dac502259ad0.png

蜂鸣器的参数提前要在宏定义里面限制一下

05d75242-22fe-11ee-962d-dac502259ad0.png

在while之前的初始化

05ec50ac-22fe-11ee-962d-dac502259ad0.png

蜂鸣器的打开和关闭需要在另外一个函数里面打开

060df3c4-22fe-11ee-962d-dac502259ad0.png

如果这个数据结构是外面定义的,记得extern,第一个是预设定时器的新值,第二个函数是TIM的通道以及比较寄存器的初值。

0635a05e-22fe-11ee-962d-dac502259ad0.png

响的时候传进去的参数

064b686c-22fe-11ee-962d-dac502259ad0.png

程序的框图

065cc60c-22fe-11ee-962d-dac502259ad0.png

在keli里面的path

06851706-22fe-11ee-962d-dac502259ad0.png

调试的口子,这里我写错了

06a5fe08-22fe-11ee-962d-dac502259ad0.png

在所有的引脚下面都ESD保护了

06b902a0-22fe-11ee-962d-dac502259ad0.png

一些适用的场景

06cd9116-22fe-11ee-962d-dac502259ad0.png

原理图的内部结构

06e2b064-22fe-11ee-962d-dac502259ad0.png

应用的时候都接在回地的回路上面就行

06f1853a-22fe-11ee-962d-dac502259ad0.png

这个是C型的电源树,原理图

07098b1c-22fe-11ee-962d-dac502259ad0.png

说明书

071b0ec8-22fe-11ee-962d-dac502259ad0.png

看这个下一级,其实就包括了电机的电源

0733b0f4-22fe-11ee-962d-dac502259ad0.png

完整的主供电

0752e866-22fe-11ee-962d-dac502259ad0.png

这个就是5V的链路

0767d62c-22fe-11ee-962d-dac502259ad0.png

和参考电路一模一样

07854ac2-22fe-11ee-962d-dac502259ad0.png

布线

应该如何使用带有模拟地 (AGND) 和电源地 (PGND) 的开关稳压器

这是许多设计开关电源的开发人员提出的问题。一些开发人员习惯于处理数字 GND 和模拟 GND;然而,当涉及到电源 GND 时,他们的经验常常让他们失望。然后,设计人员经常复制所选开关稳压器的电路板布局,然后不再考虑这个问题。 PGND 是流过较高脉冲电流的接地连接。根据开关稳压器拓扑,这意味着通过功率晶体管的电流或功率驱动级的脉冲电流。这对于开关控制器(例如具有外部电源开关)的情况尤其重要。 AGND,有时称为 SGND(信号地),是其他通常非常平静的信号用作参考的接地连接。这包括调节输出电压所需的内部参考电压。软启动和使能电压也参考 AGND 连接。 由于存在两种不同的技术理念,因此专家们对于这两种接地连接的处理也有不同的看法。 根据一种理念,开关稳压器 IC 上的 AGND 和 PGND 连接应在各自引脚旁边相互连接。这使得两个引脚之间的电压偏移保持相对较低。因此,可以保护开关调节器IC免受干扰甚至损坏。所有电路的接地连接和可能的接地平面都将链接到星形拓扑中的这个公共点。

07bc51ac-22fe-11ee-962d-dac502259ad0.png

电路板布局显示在这里。它是一个10A降压微型模块。电路板上单独的接地连接彼此相邻连接(参见图中的蓝色椭圆形)。由于硅片与外壳之间各自焊线的寄生电感,以及各自引脚的电感,PGND和AGND已经有一定程度的去耦,导致电路之间的相互干扰量很小在硅上。 另一种理念涉及将电路板上的 AGND 和 PGND 额外分离成两个单独的接地层,并在一点上相互连接。通过这种连接,干扰信号(电压偏移)大部分保留在 PGND 区域中,而 AGND 区域中的电压保持非常平静,并且与 PGND 很好地解耦。然而,其缺点是,根据脉冲电流的瞬变和电流强度,各个引脚上的 PGND 和 AGND 之间可能存在显着的电压偏移。这可能导致开关稳压器 IC 功能异常,甚至损坏。下图显示了这一理念的实现。

07e6d3e6-22fe-11ee-962d-dac502259ad0.png

分开连接

然后就是马总发了个好玩的:

一块走的快让我迷茫的板子

原来是乐天派的机器人

早年这个EMO是ESP32做的,9美元的零头都能买三块ESP32

蚌湖住了

让上面的PWM接口输出一下:

09bf239e-22fe-11ee-962d-dac502259ad0.png

原理图的连接是这样的

09de476a-22fe-11ee-962d-dac502259ad0.png

TIM8

09f37eb4-22fe-11ee-962d-dac502259ad0.png

TIM1

0a08af6e-22fe-11ee-962d-dac502259ad0.png

PWM 占空比最小为 500/20000 即 2.5%,对应高电平时间为 20ms 乘以 2.5%等于 0.5ms,最大为 2000/20000 即 10%,对应高电平时间20ms 乘以 10%等于 2ms。

0a24ea4e-22fe-11ee-962d-dac502259ad0.png

先开启总的定时器,然后在打开里面的通道

0a4ef2d0-22fe-11ee-962d-dac502259ad0.png

后面操作的捕获寄存器,为什么是宏呢?这里写的是为了历史的遗留

0a6e486a-22fe-11ee-962d-dac502259ad0.png

其实实现的时候也是在这里

0a7fc748-22fe-11ee-962d-dac502259ad0.png

参数

0aa70790-22fe-11ee-962d-dac502259ad0.png

具体的意思

0ab56a4c-22fe-11ee-962d-dac502259ad0.png

按键电路

0ad97fd6-22fe-11ee-962d-dac502259ad0.png

在这里

0afc5b3c-22fe-11ee-962d-dac502259ad0.png

选一个感知的引脚

0b7fec36-22fe-11ee-962d-dac502259ad0.png

0b9e635a-22fe-11ee-962d-dac502259ad0.png

设置一下触发

0bb171fc-22fe-11ee-962d-dac502259ad0.png

0bc36812-22fe-11ee-962d-dac502259ad0.png

0be87224-22fe-11ee-962d-dac502259ad0.png

所有地方的中断全都打开了

0bffb646-22fe-11ee-962d-dac502259ad0.png

函数签名

0c23f7e0-22fe-11ee-962d-dac502259ad0.png

这个就是在it文件的中断口

0c432bba-22fe-11ee-962d-dac502259ad0.png

在响应以后会跳转到这里,判断引脚的真实情况

0c5869da-22fe-11ee-962d-dac502259ad0.png

接着就是到了回调的函数口,这里是弱定义,还是看自己的实现

0c7b9ae0-22fe-11ee-962d-dac502259ad0.png

如果是按键响应了,就看看标志位

0c922940-22fe-11ee-962d-dac502259ad0.png

这些就是我们所有用到的引脚

0ca43cfc-22fe-11ee-962d-dac502259ad0.png

这个函数是读取一个引脚的状态的

0cbdd662-22fe-11ee-962d-dac502259ad0.png

返回的就是头文件这些

0cd19328-22fe-11ee-962d-dac502259ad0.png

上面的是后台程序,就是简单的知道按键有没有动

真实的逻辑是这样的:

0cf03fa8-22fe-11ee-962d-dac502259ad0.png

知道引脚的这个状态

0d07b2dc-22fe-11ee-962d-dac502259ad0.png

然后就是等一会儿

0d1e260c-22fe-11ee-962d-dac502259ad0.png

dji用的是Tek的示波器

0d35636c-22fe-11ee-962d-dac502259ad0.png

0d478268-22fe-11ee-962d-dac502259ad0.png

采样是比较简单的一步,而比较与转换的方法,STM32 采用的是逐次逼近法,在STM32F4中是12位逐次逼近型ADC (SAR-ADC) ,下面以一个信号在3位逼近法中的比较过程为例讲解比较过程 首先你要知道的是,在3位逼近法中,可以认为ADC在未转换之前的值是一个3位二进制数,这3位二进制数字存储的数值取决于这3位比较的出来的值:

0d642a26-22fe-11ee-962d-dac502259ad0.png

采样到模拟信号的值之后: 1.首先与内部参考电压 Vref 的 1/2 进行比较。发现大于其值,则将第一个标志位记为1;反之为0由于大于 1/2 Vref 值,所以下一个比较的值为 1/2 + 1/4 = 3/4 Vref 2.然后与Verf 的 3/4 进行比较。发现小于其值,则将第二个标志位记为0由于小于 3/4 Vref 值,所以下一个比较的值为 3/4 - 1/8 = 5/8 Vref 3.然后与Vref 的 5/8 进行比较。发现小于其值,则将第三个标志位记为0 所以输出的的结果为100,其对照的结果为 1/2 Vref。如果是12位逼近的方法,这样的过程需要经过12次,输出一串12位的二进制数,然后转化为数值,其完整流程如下:

0d7bf138-22fe-11ee-962d-dac502259ad0.png

一般 ADC 的位数越多则转换精度越高,但与此同时转换的速度也会变慢。此外,STM32 内部有一个校准电压VREFINT ,电压为1.2 V,当供电电压不为 3.3 V,可以使用内部的 VREFINT 通道采集1.2 V电压作为 Vref,以提高精度

0d8b6244-22fe-11ee-962d-dac502259ad0.png

0daafb0e-22fe-11ee-962d-dac502259ad0.png

这个是DJI的文档

0dc4bf44-22fe-11ee-962d-dac502259ad0.png

在开发板中有一个用于读取电池电压使用的电阻分压电路。由于电池提供的电源是24 V的高电压,而单片机引脚的耐压只有0~3.3 V,所以需要通过分压电路进行处理,并使用滤波和二极管限幅电路进行保护。

0de6d854-22fe-11ee-962d-dac502259ad0.png

管球它,拼拼凑凑的就可以看了

0dff36a6-22fe-11ee-962d-dac502259ad0.png

输入的电压范围是这样的

0e116984-22fe-11ee-962d-dac502259ad0.png

时钟

0e2e7f88-22fe-11ee-962d-dac502259ad0.png

在MX里面的设置

0e4bba4e-22fe-11ee-962d-dac502259ad0.png

今天有事情,写不完了,跑了。

DJI的文档也是抄的别人的,,,没事,我也抄。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5281

    浏览量

    119746
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5109

    浏览量

    213049
  • 时钟
    +关注

    关注

    10

    文章

    1710

    浏览量

    131242
  • 定时器
    +关注

    关注

    23

    文章

    3228

    浏览量

    114256

原文标题:​Robomaster C板再体验

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RoboMaster全新开发套件发布,助力机器人爱好者开发!

    。 然而,当要完成复杂的功能,开发者需要用到单片机的多种接口 ,自行设计和焊接原件,十分耗时。 因此,RoboMaster发布最新研发的开发套件,包含RoboMaster开发A型、
    发表于 05-11 10:29

    RoboMaster开发C型学习笔记 精选资料分享

    https://github.com/RoboMaster/Development-Board-C-Exampleskeil配置点击5工程设置,进行工程相关设置,选择Output,其中Create
    发表于 07-13 09:13

    RoboMaster开发C型学习笔记 精选资料推荐

    https://github.com/RoboMaster/Development-Board-C-Exampleskeil配置点击5工程设置,进行工程相关设置,选择Output,其中Create
    发表于 07-13 07:38

    从STM32开始的RoboMaster

    同步博客地址:从STM32开始的RoboMaster生活:进阶篇 IV [DMA]项目&教程仓库:-STM32-RoboMaster-1.0 什么是DMA1.1 DMA的定义Direct
    发表于 08-03 07:02

    如何用Robomaster C610/820R电调组成伺服电机控制系统?

    如何用Robomaster C610/820R电调组成伺服电机控制系统?
    发表于 09-30 08:13

    从STM32开始的RoboMaster简介

    RoboMaster主题STM32系列的文章,均以RoboMaster开发A型为说明和测试目标,其芯片代号为STM32F427IIHx,如果您的芯片代号不同,则不能直接使用本教程代码和引脚配置,请酌情修改!...
    发表于 12-13 07:27

    RoboMaster 6623 电调使用说明

    RoboMaster 6623 电调采用高性能32bit MCU结合磁场定向控制(FOC)技术,搭配ROBOMASTER 6623无刷电机,专为ROBOMASTER机器人战车云台打造。电机与电调的一体化设计,整合了高精度绝对式编
    发表于 04-20 10:37 97次下载

    中南大学FYT机器人战队超级电容开发经验记录及分享(ROBOMASTER

    中南大学FYT机器人战队超级电容开发经验记录及分享(ROBOMASTER)概述robomaster18赛季robomaster19赛季robomaster20赛季FYT超级电容整体方案
    发表于 01-14 12:50 6次下载
    中南大学FYT机器人战队超级电容开发经验记录及分享(<b class='flag-5'>ROBOMASTER</b>)

    Robomaster开发c型嵌入式软件教程

    Robomaster开发c型嵌入式软件教程
    发表于 06-10 14:09 17次下载

    机器人主控原理图

    RoBoMaster 开发 C 型原理图
    发表于 06-13 14:46 5次下载

    RoboMaster开发用户手册

    开发具有防反接和缓启动等多重保护。经过RoboMaster竞赛的打磨和改进,开发不仅满足比赛机器人的控制需求,也非常适合用户DIY。
    发表于 06-21 16:35 12次下载

    基于RT-Thread的RoboMaster电控框架(三)

    使用的开发为大疆的 RoboMaster-C 型开发,基础工程为 rt-thread>bsp>stm32f407-robomaster-c
    的头像 发表于 09-20 15:21 789次阅读

    基于RT-Thread的RoboMaster电控框架(四)

    使用的开发为大疆的 RoboMaster-C 型开发,基础工程为 rt-thread>bsp>stm32f407-robomaster-c
    的头像 发表于 09-20 15:28 652次阅读

    基于RT-Thread的RoboMaster电控框架(五)

    使用的开发为大疆的 RoboMaster-C 型开发,基础工程为 rt-thread>bsp>stm32f407-robomaster-c
    的头像 发表于 10-30 17:10 1020次阅读

    基于RT-Thread的RoboMaster电控框架(六)

    使用的开发为大疆的 RoboMaster-C 型开发,基础工程为 rt-thread>bsp>stm32f407-robomaster-c
    的头像 发表于 10-30 17:41 433次阅读