STM32学习—如何选择各个电路部分的主要芯片

发布者:JFET最新更新时间:2020-02-16 来源: elecfans关键字:STM32  电路部分  主要芯片 手机看文章 扫描二维码
随时随地手机看文章

电路设计的基本过程一般是这样的:需求分析——元件选型——原理图设计——PCB设计——焊接调试。


▼需求分析:

在这里,主要是确定小车需要哪些模块、外设或接口。首先,STM32最小系统是必须的,这是小车控制的核心。然后小车的两个轮子需要两个H桥驱动和编码器接口。需要陀螺仪感知小车的姿态(包括倾角,转向角,角速度等)。需要一些调试和指示用的外设(蜂鸣器,LED等)。需要电源电路为系统供电。需要电池电压采集电路来实时采集电池电压,做低压报警,防止电池过放。需要下载接口和调试用的串口。基本就是根据自己想要实现功能,然后确定需要那些部分的电路。


▼元件选型:

为需要的各个部分电路选择元件,一般来说,主要是选择何种型号、什么封装的芯片,对于一些比较特殊的电路,即使是电阻电容这样常见的无源器件也需要认真选择,然而平衡小车的电路中并不需要一些高精度或很高速的电路部分,所以,下面主要介绍如何选择各个电路部分的主要芯片。


1.最小系统:考虑到小车的主控板可以作为今后做四轴或其他更高级的机器人的基础电路,所以主控选择了STM32F405RGT6,这款主控是M3内核的,主频可以达到168M,有丰富的外设资源可以使用,性能非常强悍,非常适合以后的开发和拓展。


2.电机驱动:小车的两个轮子电机需要两个H桥驱动。驱动的选择和电机的参数紧密相关。我选用的电机的正常工作电流360mA,并且考虑到小车在正常情况下基本不会出现赌转的情况,并且为了尽量减小PCB板的面积,所以选择了东芝的电机驱动芯片TB6612,该芯片有两个集成的H桥,可以同时驱动两个电机,每个H桥可以持续输出1.2A的电流,PWM频率可以到100kHz,芯片的供电电压最大可以到15V,适合用3S电池供电,并且芯片封装很小,节省PCB面积。


3.电源电路:主要考虑输入电压、输出电压、输出电流等。小车电池采用3S锂聚合物电池,放电率25C,以后做四轴还能用。电池的满电电压12.6V左右,电路中需要5V和3.3V的电源,因此需要选择两款款芯片将12V电压降压到5V,然后再将5V降压到3.3V。12V-5V的芯片可以选择MPS公司的DCDC降压芯片MP2482,该芯片支持最大5A电流输出,最大28V电压输入,0.8至25V可调电压输出,符合需求。5V-3.3V选用常见的AMS1117-3.3。


4.陀螺仪:选用MPU6050模块,模块自带了软件滤波算法,采用串口对外输出数据,在115200波特率的情况下,每秒钟可以输出100帧的数据。

▼原理图设计:

1.最小系统:包括stm32f405rgt6,晶振电路,复位电路。R2和R3用于配置启动方式。C9和C12是单片机内部电源变换部分的滤波电容。最小系统基本都是一样的,按照常用的电路设计一般没有错。那几个电容式芯片的去耦电容,注意一下,模拟电压、模拟地和数字电源、数字地之间用磁珠隔离,防止数字电路的高频噪声影响到模拟电路的精度。

2.电源电路:R22和R23将电池电压分压到1.2V,接到单片机内部的ADC引脚,监控电池电压,防止过放。

3.电机驱动和编码器电路:基本就是按照芯片datasheet上的参考电路设计的,注意做好电源去耦,因为电机的电压较高、电流较大,容易通过电源网络对其它电路产生影响。

4.陀螺仪:集成的模块,没啥好说的,把引脚连到单片机上就好了,简单在电源脚上并一个电容做一下电源去耦(不做也无妨,因为模块内部已经做了)。

5.CAN通信:在小车上并没有用到CAN通信,但是CAN通信在现在的机器人设计中应用的非常广泛。并且我们做小车本来就是要学东西的,加上调一下,多学习些知识,何乐而不为呢?CAN通信用的芯片是飞利浦的TJA1050,这是一个CAN收发器,stm32内部集成了CAN控制器。R4是阻抗匹配的电阻,在整个CAN通信网络中有且只有两个节点焊接此电阻,电阻阻值为120ohm。现在也还没有深入学习CAN通信相关的知识,在以后调试CAN通信的时候再详细学习吧。(^.^)

6.调试电路和其他的接口:SWD下载接口,USART调试串口,蓝牙接口(根据选择的蓝牙模块不同确定接口不同引脚的用途,比如使能脚、状态输入脚等,后面写蓝牙的时候详细描述)。蜂鸣器和双色LED灯用于调试和指示。另外又引出了几个定时器的引脚,可以留作拓展使用。

▼PCB设计:

不详细说了吧。注意事项主要有电源去耦(具体做法可以参考我之前关于电源去耦的博文)、线宽控制(大电流的走线要尽量宽)、开关电源的布局布线(一般来说主要记住三点就好了:一是芯片的SW的信号是电压高,频率高的开关信号,会对其他电路产生严重的干扰,要尽量远离敏感的电路。二是反馈网络是很敏感的网络,尽量避免受干扰。三是电源的电流较大,注意线宽和过孔的数量、孔径等,保证有能力通过这么大的电流。注意了这三点,集成的DCDC电路一般没有问题)等。


这里贴一下板子正反两面的3D效果图:

▼焊接调试:也不多说了,平时多练练手,0603 QFP这些封装的元件就能轻松搞定了。焊接的时候先焊接电源部分,上电测试电源没有问题的话再焊接其他部分,否则一旦电源有问题,整板全白焊了。。下面贴一个焊接调试好了的实物图。

就先写这么些吧。上面写的比较啰嗦,也没有什么高大上的技术,差不多都是硬件电路设计需要的基础知识吧。只是希望将自己设计这块平衡小车电路板的过程比较系统和通俗的介绍一下,能将自己这实践过程中学到的只是和经验分享出来,没怎么接触过这方面的朋友可以将其当作参考,快速入门。同时希望各位高手和达人能多多指教。

关键字:STM32  电路部分  主要芯片 引用地址:STM32学习—如何选择各个电路部分的主要芯片

上一篇:基于stm32的PWM输出呼吸灯(包括stm32呼吸灯代码)
下一篇:STM32片内FLASH被异常改写的问题分享

推荐阅读最新更新时间:2024-11-13 09:07

ARM学习《六》——从头文件开始自己动手设置STM32串口通讯
运用STM32的库函数时,有时候为了看懂一句语句需要翻遍整个头文件,找到头文件中预定义的名字到底代表的是什么意思,具体寄存器设置的数值是多少,相当麻烦。我花了一天的时间才明白串口设置的具体过程,只是库函数想的比较周全。下面是我调试好的串口设置程序,头文件是我自己定义的,舍去了库文件中繁琐的结构体定义 首先定义头文件: / RCC_CFGR &= (uint32_t)0xF8FF0000; RCC_CR &= (uint32_t)0xFEF6FFFF; // RCC_CR &= (uint32_t)0xFFFBFFFF; // RCC_CFGR &= (uint32_t)0
[单片机]
keil中STM32设置DEBUG起始地址
在做IAP的时候,分两部分 Bootloader部分起始是0x8000000 APP部分是0x08008000 调试的时候默认设置不能直接写入0x08008000部分 所以作一下设置即可直接DOWNLOAD分别DEBUG APP部分KEIL设置 简单两步即可设置,其实设置的是.scf文件的地址分布
[单片机]
基于W5500+STM32的SNMP协议应用
概述 工具: PC W5500EVB Net-SNMP软件包编译环境:Keil4 &IAR功能:通过网络管理协议SNMP及基本的控制命令实现简单的LED控制 一、W5500简介 韩国WIZnet公司生产的以太网控制芯片W5500整合了五层结构中的前四层,即物理层、数据链路层、网络层和传输层,并在内部利用硬件实现了TCP/IP协议栈。开发者无需专业的网络知识,使用W5500如同控制外部存储器一样简单,为用户提供了最简单的网络接入方法。全硬件TCP/IP协议栈完全独立于主控芯片,可以降低主芯片负载且无需移植繁琐的TCP/IP协议栈,便于产品实现网络化更新。以太网控制芯片W5500具有以下特点: 1、W5500支持硬件TCP/IP
[单片机]
STM32之PVD电压检测
如果VDD或者VDDA电压高于或低于PVD设定阈值都产生中断,表现为每中断一次,LED1就亮变灭或者灭变亮。 /******************************************************************************** * @file PWR/PVD/main.c * @author MCD Application Team * @version V3.4.0 * @date 10/15/2010 * @brief Main program body. *********************************************
[单片机]
stm32定时器中断程序
STM32的定时器是个强大的模块,定时器使用的频率也是很高的,定时器可以做一些基本的定时,还可以做PWM输出或者输入捕获功能。 以下是进行stm32定时器中断的主要程序: stm32定时器主函数程序 stm32外部中断嵌套控制程序 stm32外部设备中断初始化程序 stm32定时器中断初始化程序 stm32定时器嵌套控制程序 中断服务程序
[单片机]
<font color='red'>stm32</font>定时器中断程序
STM32 I2C 死锁问题
背景 其实这篇文章在很久之前就写过解决方法了。在经过不断的实践和深究后发现,硬件 I2C 死锁的问题在ST的官方手册中的勘误手册(errata)中早就提供解决方案,只是我没有重视官方的文档,一直在网络寻求帮助。 即使已经有官方的解决方案,但是还有很多人(包括以前的我)在怀疑 STM32 系列的 I2C 有硬件 BUG。这也告诉我们:网上资源虽丰富,但还是得通过“金睛火眼”来辨别。 讲真的,为了解决 I2C 问题,我在网上看了 N 多篇的文章、Blog 和帖子,还没看到几个人说 “STM32 硬件 I2C 没问题”,反而是看到很多类似这样的:“都听说STM32 硬件 I2C 有问题,一试,发现还真是有问题,改用 IO 模拟吧
[单片机]
<font color='red'>STM32</font> I2C 死锁问题
STM32的ADC精度说明
以下所有的说明来源于《STM32F103xx数据手册》(2008年5月 第7版)。这里没有新的信息,只是把数据手册中的相应部分翻译了一下。 在阅读这个数据手册中各个参数时,首先必须搞清楚这些参数是如何得到的。根据手册中5.1.1节和5.1.2节的说明,有些参数是在一定条件下在生产线上测试得到,有些则是根据样本测试后推算得出。下面这段话是5.1.1节和5.1.2节的译文摘录: 5.1.1 最小和最大数值 除非特别说明,在生产线上通过对100%的产品在环境温度TA=25℃和TA=TAmax下执行的测试(TAmax与选定的温度范围匹配),所有最小和最大值将在最差的环境温度、供电电压和时钟频率条件下得到保证。 在每个表格下方的注解中
[单片机]
<font color='red'>STM32</font>的ADC精度说明
STM32生态系统工具和软件介绍
STM32能被这么多开发者认可,它的强大生态系统起了关键作用。本文围绕STM32生态各软件工具进行相关描述,其中包含一些技术细节。 一、STM32生态系统总预览STM32提供了全套开发工具,以及开发所需的软件包,下面看一张图,从全局来了解STM32生态系统工具和软件: 主要分为两大类:1.软件工具:即左边部分的STM32CubeMX、 CubeIDE、 CubeProgrammer、 CubeMontor等。 2.嵌入式软件包:STM32CubeMCU Packages 和 扩展软件包CubeExpansions. STM32Cube生态系统几个特点: 免费自由使用; 接口一致,方便移植 可裁剪、可扩展 易使用和理解 节约
[单片机]
<font color='red'>STM32</font>生态系统工具和软件介绍
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved