​Robomaster C板再体验

描述

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

第一个是PWM点灯大法:

定时器

占空比的设计

定时器

在MX里面的PWM通道的设计

定时器

这个是具体的参数设置

定时器

时钟使用是APB1

定时器

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

定时器

在while之前的初始化

定时器

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

定时器

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

定时器

响的时候传进去的参数

定时器

程序的框图

定时器

在keli里面的path

定时器

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

定时器

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

定时器

一些适用的场景

定时器

原理图的内部结构

定时器

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

定时器

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

定时器

说明书

定时器

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

定时器

完整的主供电

定时器

这个就是5V的链路

定时器

和参考电路一模一样

定时器

布线

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

 

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

定时器

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

定时器

分开连接

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

 

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

 

原来是乐天派的机器人

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

 

蚌湖住了

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

定时器

原理图的连接是这样的

定时器

TIM8

定时器

TIM1

定时器

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

定时器

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

定时器

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

定时器

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

定时器

参数

定时器

具体的意思

定时器

按键电路

定时器

在这里

定时器

选一个感知的引脚

定时器

定时器

设置一下触发

定时器

定时器

定时器

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

定时器

函数签名

定时器

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

定时器

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

定时器

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

定时器

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

定时器

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

定时器

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

定时器

返回的就是头文件这些

定时器

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

真实的逻辑是这样的:

定时器

知道引脚的这个状态

定时器

然后就是等一会儿

定时器

dji用的是Tek的示波器

定时器

定时器

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

定时器

采样到模拟信号的值之后: 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位的二进制数,然后转化为数值,其完整流程如下:

定时器

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

定时器

定时器

这个是DJI的文档

定时器

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

定时器

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

定时器

输入的电压范围是这样的

定时器

时钟

定时器

在MX里面的设置

定时器

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

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

审核编辑:汤梓红

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分