新闻  |   论坛  |   博客  |   在线研讨会
教程:如何设计自己的定制STM32微控制器板「视频」
EDA365 | 2023-03-06 12:07:17    阅读:345   发布文章

在本教程中,您将学习如何设计自己的定制微控制器板。

我将设计过程分为三个基本步骤:

步骤1 –系统设计

步骤2 –原理图电路设计

步骤3 – PCB布局设计

步骤1 –系统/初步设计

在开发新的电路设计时,第一步是高级系统设计(我也将其称为初步设计)。在详细介绍完整的原理图电路设计之前,最好始终首先关注整个系统的总体情况。

系统设计主要包括两个步骤:创建框图和选择所有关键组件(微芯片,传感器,显示器等)。系统设计将每个功能视为黑匣子

在工程中,黑匣子是一个对象,可以根据其输入和输出进行查看,但不了解其内部工作原理。在系统级设计中,重点是更高级别的互连性和功能。

框图

下面是我们将在本系列教程中使用的框图。如前所述,在本教程的第一篇中,我们将只关注微控制器本身。在以后的教程中,我们将扩展设计以包括此框图中显示的所有功能。

框图应包括每个核心功能的块,各个块之间的互连,指定的通信协议以及任何已知的电压水平(输入电源电压,电池电压等)。

以后,一旦选择了所有组件并知道所需的电源电压,我想将电源电压添加到框图中。包括每个功能块的电源电压,它使您可以轻松确定所需的所有电源电压以及任何电平转换器。

在大多数情况下,当两个电子组件通信时,它们需要使用相同的电源电压。如果它们由不同的电压供电,那么通常需要添加一个电平转换器。

图1 –系统级框图。本初始教程中包含黄色块。其他块/功能将在以后的教程中添加。

现在我们有了一个框图,我们可以更好地了解微控制器的必要要求。在您绘制出将要连接到微控制器的所有内容之前,不可能选择合适的微控制器。

选择微控制器

选择微控制器(或几乎任何电子组件)时,我喜欢使用电子分销商的网站,例如Newark.com。这样,您可以根据各种规格,价格和可用性轻松比较各种选项。这也是快速访问组件数据表的简便方法。

如果您经常阅读此博客,您会知道我是ARM Cortex-M微控制器的忠实拥护者。Arm Cortex-M微控制器很容易成为商用电子产品中最受欢迎的微控制器系列。它们已在数百亿个设备中使用。

Microchip的微控制器(包括Atmel)可能在制造商市场上占主导地位,而Arm则在商业产品市场上占主导地位。

Arm实际上并没有直接自己制造芯片。相反,他们设计处理器架构,然后由ST,NXP,Microchip,Texas Instruments,Silicon Labs,赛普拉斯和Nordic等其他芯片制造商授权和制造。

与8051,PIC和AVR内核等较旧的8位微控制器相比,ARM Cortex-M是32位体系结构,是执行更多计算密集型任务的绝佳选择。

手臂微控制器具有各种性能级别,包括Cortex-M0,M0 +,M1,M3,M4和M7。某些版本带有浮点单元(FPU),并在型号中标有F,例如Cortex-M4F。

Arm Cortex-M处理器的最大优势之一是它们以低廉的价格获得了您所需要的性能。实际上,即使8位微控制器足以满足您的应用,您仍应考虑使用32位Cortex-M微控制器。

Cortex-M微控制器的价格与某些较旧的8位芯片的价格相当。如果您希望将来添加其他功能,则将设计基于32位微控制器为您提供更大的发展空间。

图2:ST Microelectronics的STM32是我最喜欢的ARM Cortex-M微控制器产品线。

尽管众多芯片制造商都提供Cortex-M微控制器,但到目前为止,我最喜欢的是ST Microelectronics的STM32系列。的STM32微控制器的线相当与几乎所有的功能,以及你将永远需要的性能水平膨胀。STM32系列可以分为几个子系列,如下表1所示。

STM32系列皮质最大时钟(MHz)性能(DMIPS)
F0M04838F1M37261F3M47290F2M3120150F4M4180225F7M7216462H7M7400856L0M03226L1M33233L4M480100L4 +M4120150

表1:各种STM32微控制器变体的比较

STM32F子系列是它们的标准微控制器系列(相对于STM32L子系列,后者专门致力于降低功耗)。STM32F0价格最低,但性能最低。性能上的提升是F1子系列,其次是F3,F2,F4,F7,最后是H7。

下载免费的PDF- STM32微控制器终极指南

在本教程中,我选择了STM32F042K6T7,它以32引脚LQFP引脚封装。我之所以选择含铅封装,主要是因为您可以轻松访问微控制器引脚,从而简化了调试过程。而对于QFN之类的无铅封装而言,引脚隐藏在封装下方,因此没有测试点就无法访问。

带引线的包装还使您可以更轻松地更换会损坏的微控制器。最后,无铅封装焊接到PCB的成本更高,因此它们增加了原型设计和制造成本。

我选择STM32F042是因为它具有中等的性能,大量的GPIO引脚以及各种串行协议,包括UART,I2C,SPI和USB。这是一款入门级的STM32微控制器,仅具有32个引脚,但具有多种功能。更高级的版本附带多达216个引脚,这对于入门教程来说是不堪重负的。

在第一个视频中,我们不会使用其中的大多数功能,但是在本系列的后续视频中,我们将充分利用它们。

步骤2 –原理图电路设计


图3:第一个教程的电路原理图,显示了STM32微控制器,线性稳压器,USB连接器和编程连接器。

现在我们已经选择了微控制器,是时候设计原理图了。对于这些教程,我将使用名为DipTrace的PCB设计工具。

有许多PCB工具可用,但是在易用性,价格和性能方面,我发现DipTrace很难被击败,特别是对于初创企业和制造商而言。

如果您没有PCB设计包,那么您可能要考虑下载DipTrace的免费版本,以便您可以紧跟本教程。他们还提供完整版的免费试用版。学习某些东西的最好方法就是始终做到这一点。

对于此初始教程,DipTrace的免费版本就足够了,但对于大多数设计,您需要升级到付费版本。

提示:您可以在DipTrace上节省30%的折扣,我的硬件学院的会员可以享受折扣。

尽管如此,本教程将着重于设计定制微控制器板的过程,而不是如何使用任何特定的PCB设计工具。因此,无论最终使用哪种PCB软件,您都仍然会发现这些教程同样有用。

设计原理图的第一步是放置所有关键组件。对于此初始设计,它包括微控制器芯片,稳压器,microUSB连接器和编程连接器。

对于更复杂的设计,通常更有意义的是先完全设计每个子电路,然后将它们全部合并在一起。根据设计的复杂性(和个人喜好),您可能还希望将每个子电路放置在其自己的单独板上。这样可以避免原理图在一张纸上成为巨大的压倒性怪物。

电容器类

接下来,我们将放置所有各种电容器。在大多数情况下,您可以将电容器看作是很小的可充电小电池,可以保持电荷并有助于稳定电源线上的电压。

我们将从在线性稳压器的输入引脚上放置一个4.7uF电容器开始。这是由外部USB充电器提供的5VDC输入电压。该电压被馈入TLV70233线性稳压器,该稳压器将电压降低至3.3V,因为微控制器只能提供最大3.6V的电压。

另一个4.7uF电容器放置在稳压器的输出端,并尽可能靠近该引脚。该电容器用于存储电荷以提供瞬态负载,并起到稳定稳压器内部反馈环路的作用。没有输出电容器,大多数调节器将开始振荡。

去耦电容必须放置在尽可能靠近微控制器电源引脚(VDD)的位置。关于去耦电容器的建议,始终最好参考微控制器数据手册。

STM32F042的数据手册建议在两个VDD引脚(输入电源引脚)的每一个旁边放置一个4.7uF和一个100nF的电容器。它还建议在VDDA引脚附近放置1uF和10nF的去耦电容。

VDDA引脚是内部模数(ADC)转换器的电源,必须特别干净且稳定。在第一个教程中我们不会使用ADC,但将来会使用。

请注意,您通常会看到为解耦而同时指定了两个电容器尺寸。例如,4.7uF和100nF电容器。

较大的4.7uF可以存储更多电荷,这在需要较大负载电流尖峰时有助于稳定电压。较小的电容器主要用于滤除任何高频噪声。

微控制器引脚排列

尽管STM32F042提供了各种各样的功能,例如UART,I2C,SPI和USB通信接口,但是您不会在微控制器引脚上找到这些功能中的任何一个。这是因为大多数微控制器为每个引脚分配了多种功能,以减少所需的引脚数量。

图4:采用32引脚LQFP引线封装的STM32F042微控制器的引脚排列

例如,在STM32F042上,引脚9标记为PA3,这意味着它是GPIO引脚。启动时,此功能自动分配给该引脚。但是它也具有可以在固件程序中指定的替代功能。

引脚9可以编程为具有以下功能:接收用于UART串行通信的输入引脚,到模数转换器(ADC)的输入,计时器输出或用于电容式触摸传感器控制器的I / O引脚。

请参见微控制器数据表中的引脚定义表(STM32F042第33页),该表列出了每个引脚可用的所有各种功能。始终确保确认产品所需的两个功能不在同一引脚上重叠。

时钟

所有微控制器都需要一个时钟来进行计时。这个时钟只是一个精确的振荡器。微控制器在时钟的每个滴答声中依次执行编程的命令。

如果所选的微控制器可用,最简单的选择是使用内部时钟。此内部时钟称为RC振荡器时钟,因为它使用电阻器和电容器的时序特性。

RC振荡器的主要缺点是精度。电阻和电容器(尤其是嵌入在微芯片中的电阻)和电容器之间的差异很大,从而导致振荡器频率发生变化。温度也会显着影响精度。

RC振荡器适用于简单的应用,但是如果您的应用需要精确的时序,那么这将是不够的。在本入门教程中,我们将使用内部RC时钟使事情保持简单。在以后的教程中,我们将通过添加更精确的外部基于晶体的振荡器来改善设计。

编程连接器

通过以下两种协议之一对STM32进行编程:JTAG或串行线调试(SWD)。STM32的更高级版本(STM32F1和更高版本)同时提供JTAG和SWD编程接口。STM32F0子系列仅提供更简单的SWD编程接口,因此我们将在本教程中重点介绍它。

SWD接口仅需要5个引脚。它们是SWDIO(数据输入/输出),SWCLK(时钟信号),NRST(复位信号),VDD(电源电压)和地。

不幸的是,将用于对STM32进行编程的ST-LINK编程器设备使用20针JTAG连接器(具有SWD功能)。该连接器非常大,不适用于较小的电路板设计。

相反,您可以使用20针至10针的适配器板,例如Adafruit的适配器板,因此可以在板上使用较小的10针连接器。

在本教程中,我们将使用10针连接器。如果对于您的项目来说仍然太大,那么您始终可以使用5针接头和20针编程器输出中的跳线来仅连接SWD编程所需的5条线。

功率

我们将介绍的原理图的最后一部分是功率部分。STM32微控制器可用2.0至3.6V的电源电压供电。除非您使用可变电源,否则您将需要一个板载稳压器来提供适当的电源电压。

对于此设计,我们将使用输出5 VDC的外部USB充电器为电路板供电。然后,该电压将馈入线性稳压器(得克萨斯仪器公司提供的TLV70233),该稳压器将其降压至稳定的3.3V。

假设没有GPIO引脚提供任何电流(每个GPIO引脚可提供高达25mA的电流),则STM32仅需要24mA的最大值。假设各种GPIO引脚提供电流,则STM32所需的绝对最大电流为120mA。

TLV70233的额定最大电流为300mA,这对于该初始设计来说已经足够了。在以后的教程中,当我们添加其他功能时,可能需要重新访问该内容,以确保调节器可以处理所需的系统电流。

电气规则检查

设计原理图的最后一步是执行验证步骤,称为电气规则检查(ERC)。此验证步骤检查是否存在错误,例如网络之间的短路,仅一个引脚的网络,重叠的引脚以及未连接的引脚。

您还可以设置各种引脚类型错误。例如,如果一个输出引脚连接到另一个输出,您将得到一个错误。或者,如果将输出引脚连接到电源线,则会出现错误。DipTrace使用彩色网格矩阵,可让您定义哪种引脚类型的连接将给您错误或警告。

步骤3 –印刷电路板(PCB)布局设计

原理图设计完成后,就该设计印刷电路板了。首先将所有组件插入PCB布局。在DipTrace中,可以使用原理图中的“转换为PCB”功能自动创建插入了所有组件的PCB。

元件放置

尽管已经插入了所有组件,但是确定每个组件在PCB上的确切位置是您的工作。

大多数PCB设计软件包都包括自动放置功能,该功能可以放置组件,以最小化布线长度。但是我从未使用过它,几乎有必要手动将组件放置在最佳布局中。

对于我们的初始教程电路,组件放置非常简单。将microUSB连接器放置在线性稳压器旁边,使其输出尽可能靠近微控制器上的输入电源引脚(VDD)。最后,将编程连接器放在方便的地方。

微控制器(U1),调节器(U2),微型USB连接器(J1)和编程连接器(JTAG-1)

正确放置所有核心组件后,下一步就是放置所有无源组件(电阻器,电容器和电感器)。对于此初始设计,唯一的无源组件是电容器。

寄生学的概念是您需要学习的电子学设计的一个关键方面。寄生是您无意设计到电路中的无源组件(电阻器,电容器和电感器)。但是,它们仍然存在并影响性能。

例如,尽管信号走线打算是一个完美的短路,但实际上它具有一定的有限电阻,电容和电感,随着走线长度的增加以及弯曲和通孔数量的增加,所有这些都变得更加重要。

图2 –所有关键组件(U1,U2,J1和JTAG-1)和无源组件(电容器)的放置

因此,这意味着如果电压源位于远离负载的位置(在这种情况下为STM32微控制器),则在负载和电源之间实际上存在一个电阻(忽略任何电容和电感)。

如果微控制器突然需要快速的电流尖峰,那么它将导致该跟踪电阻两端的电压下降。

因此,即使稳压器的输出可能是理想的3.30V,在此电流浪涌期间,微控制器引脚上的电压也会降低。去耦电容器用于解决此问题。

请记住,电容器就像存储电荷的小电池一样。将它们直接放置在微控制器的电源引脚上可以使它们满足微控制器的任何快速瞬态电流需求。

一旦瞬态负载消失,电容器将通过电源再充电,因此它们为负载电流的下一次瞬态增加做好了准备。

PCB叠层

印刷电路板由堆叠的层组成。导电层被绝缘层隔开。导电层的最小数量为两层。这意味着顶层和底层可用于路由信号,这两层由内部绝缘层隔开。

在本教程中,我们将从2层板开始,以使事情变得简单。但是随着电路复杂性的增加,您会发现有必要添加更多的层。

导电层的数量始终是偶数,因此您的电路板可以具有2、4、6、8、10、12个导电层。大多数设计将需要4-6层,而更高级的设计可能需要8层或更多层。

路由

一旦正确放置了所有组件,就可以执行必要的布线了。路由有两个选项:手动和自动。

对于DipTrace中的自动路由,您只需选择Route- > Run Autorouter,该软件将自动执行所有路由。

不幸的是,自动路由通常做得很糟糕,几乎在所有情况下,您都需要手动进行所有路由。对于本教程,我们将手动进行所有路由。

图3 –布线PCB(顶层为黑色,底层为灰色)

在PCB上布线时,您要尽可能减少每条走线的长度。您还希望减少通孔的数量,并避免走线弯曲90度。这些建议对于高功率走线和高速信号尤其重要。

甲经由与导电材料,允许你在一起的两个迹线连接在不同层上的层之间的孔。大多数通孔就是所谓的通孔,这意味着通孔穿过电路板的所有层。

直通孔是最简单的制造方法,因为可以在组装完所有PCB层之后对它们进行钻孔。

图4 – 过孔#1是经典过孔,过孔#2是盲孔,过孔#3是埋孔。

仅通过一部分子层隧穿的通孔被称为掩埋和盲孔。盲孔将外层连接到内层(因此一端隐藏在PCB叠层内部)。埋孔连接两个内部层,并完全隐藏在组装好的PCB上。

盲孔和埋孔可让您更紧密地包装设计。这是因为它们不占用不使用它们的图层上的空间。另一方面,通孔会占用所有层的空间。

但是,请注意,盲孔和掩埋过孔会大大增加电路板的原型成本。在大多数情况下,应限制自己仅使用通孔。只有必须在非常小的空间中安装的非常复杂的设计才可能需要这些更高级的通孔类型。

在布线任何大电流电源线时,需要确保走线宽度能够承载必要的电流。如果通过PCB走线的电流过多,则会过热并熔化,从而导致电路板损坏。

为了确定必要的走线宽度,我喜欢使用PCB走线宽度计算器。为了确定所需的走线宽度,您需要首先了解特定PCB工艺的走线厚度。

PCB制造商允许您选择各种导电层厚度,通常以盎司/平方英尺(oz / ft 2)为单位,但也以密耳(密耳为千分之一英寸)或毫米为单位。

常见的导电层厚度为1 oz / ft 2。在本教程中,我将电源线制成了10密耳宽。使用上面链接的计算器,可以看到一条1 oz / ft 2的迹线(宽度为10密耳)实际上可以承载近900mA的电流。

这显然远远超出了我们的需要,我本可以轻松地使供应线更窄。在第一个教程中,我证明了STM32F042所需的绝对最大电流为120mA。也许令人惊讶的是,要处理120mA电流,我们仅需要0.635密耳的走线宽度!

大多数工艺允许的最小走线宽度为4-6密耳。在这种设计中,最小宽度的走线可轻松用于电源线。也就是说,走线越宽,电阻越小,每个组件的电源电压越稳定。

除非空间非常狭窄,否则您应始终过度设计电源走线。实际上,在许多情况下,您都希望电源布线位于其自己的层上,以便可以最大程度地增加布线宽度。

最后,在计算器中,您会注意到内部层与外部层的要求是不同的。对于这种简单的2层设计,两层都是外部的,因此我们需要使用“ 空气中外部层的结果 ”。

内部层可以承载的电流要少得多,因为它们没有暴露在空气中的冷却效果,因此走线会以更少的电流过热。

图5 –此初始教程的完整印刷电路板(PCB)布局。

验证

一旦完成所有路由,就可以执行验证以确保一切正确。这是自动化真正有效的地方,任何PCB设计工具都将提供自动验证功能。

验证大致分为两种:设计规则检查(DRC)和原理图比较。

DRC验证是否遵守了所有PCB工艺设计规则。这包括一些规则,例如最小允许的走线宽度,最小的走线间距,最小的走线与电路板边缘间距等等。

为了进行DRC验证,必须首先获取将要使用的特定PCB工艺的所有设计规则。

每个PCB原型制作过程都有一些略有不同的规则,因此在继续之前必须具有正确的规则。您可以从PCB原型供应商那里获得特定工艺的设计规则。

在DipTrace中,通过选择Verification-> Design Rules定义设计规则。正确定义所有规则后,您可以通过选择Verification-> Check Design Rules运行DRC 。

在确认您的PCB布局符合所有流程设计规则之后,现在该验证您的PCB设计是否与原理图匹配。要在DipTrace中做到这一点,您只需选择Verification-> Compare to Schematic即可。

在以后的教程中,我将向您展示各种类型的DRC和原理图比较错误,以及如何修复它们。

产生格柏

一旦验证了设计符合工艺设计规则并匹配了原理图,就可以订购PCB原型了。

为此,您需要将PCB布局设计(当前以专有文件格式存储)转换为称为Gerber的行业标准文件格式。

Gerber格式将PCB设计的每一层输出为单独的文件。生成的层不仅仅是板的导电层。其中一些层包括:

1)丝绸层 –包括文本和组件标识。

2)装配层 –类似于丝绸层,但有特定的装配说明。

3)阻焊层 –表示PCB上的绿色物质,掩盖了您不想焊接的任何导体。这样可以防止在焊接过程中意外短路。

4)焊膏层 –用于将焊膏精确地放置在会发生焊接的位置。

您还需要生成一个称为“ 放置”文件的文件,其中包括所有组件的坐标和方向。该文件由制造商的自动零件放置机使用。

最后,您需要输出一个钻孔文件,其中提供了任何孔(例如通孔和安装孔)的确切位置和大小。

有了Gerbers,取放文件和钻取文件后,您可以将这些文件发送给任何原型商店或制造商以生产您的电路板。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
送你一份见面礼: 超大半导体封装地图/PCB行业桌垫 PCB/半导体行业独家资料 私信我或者加v:eda365-app 获取领取方式
推荐文章
最近访客