嵌入式微控制器所需要的
PCB电路设计是个相当庞大的工程。对进阶的微控制器而言,光是资料表和技术文件就可以长达好几百页。
在开始设计电路前,最好可以先画出专题中所有主要元件的运作流程图,包含所有和微控制器之间有界面的周边装置。
ARM Cortex-M微控制器
本文将聚焦在导入ARM Cortex-M微控制器所需的PCB电路设计考量。ARM Cortex-M微控制器有不同晶片制造商供应的不同版本。
具有32位元架构的ARM Cortex-M和典型的8位元微控制器相比特别适合密集与计算强度高的工作。如果有需要更大记忆体容量空间或为未来的扩充需求而能简化系统平台转移的应用,32位元微控制器也具有优势。
我们要讨论的ARM Cortex-M微控制器是ST Microelectronics出品的STM32家族;更精确地说,我们会聚焦在STM32F4系列。
然而,STM32家族其实包含很多机型,例如超低功耗的STM32L系列和效能高于及低于STM32F4版本的系列。效能最高的版本是STM32F7,每秒能够执行10亿个指令。在效能最低的机型里则有每秒只执行2600万个指令的STM32L0。
请参考下方图1里本文所根据的STM32F4微控制器的电路图。
图 1. STM32F4微控制器的电路图。
电源设计
电路的供电是硬件设计最重要的环节之一;不要等到设计的后期才决定供电和接地的配置。
微控制器使用的电流由多重因素决定,例如工作电压、时脉频率,和输入/输出脚位的负载。
MCU上每个电源VDD脚位旁应该要有尽可能接近的位置安排1uF和100nF陶瓷电容器(例如图1的C7和C8)来提供电源解藕。另外应加装4.7uF陶瓷电容器(图1中C1)在接近供应VDD的主要电路布线上IC的位置。
具有类比数位转换器(ADC)的微控制器通常也有独立的电源(VDDA)和接地脚位(VSSA)专供类比讯号使用。这些脚位需特别避免杂讯。
VDDA脚位应有1uF和10nF陶瓷电容器(图1中C10、C11),位置尽可能接近VDDA脚位。在多数情况下,我发现最好在VDDA脚位也加装一个电感器(图1中L1),形成LC低通滤波器来提供更稳定的类比电压。
如果你的电源电压高于微控制器的输入电压上限,则通常需要降压型线性稳压器。举例来说,德州仪器出品的TPS795xx有特别低杂讯的特性,并且可以供应高达500mA的电流。
如果你的电源电压明显高于微控制器所需的电压,则降压型开关稳压器会是比较好的选择。当输入电压明显高于输出电压时,线性稳压器会浪费太多电力。
然而,通常能对开关稳压器的输出电压用线性稳压器进行次稳压还是最好,这是因为线性稳压器提供的电压杂讯低很多。
时钟
STM32F4可以内部或外部的系统时钟执行。启动时使用的系统时钟是内部时脉(16 MHz),在系统起始化后可以透过软体选取外部时脉来源。
STM32F4上的时钟脚位可以驱动一个外部4到26 MHz 的石英晶体(参见图1中X1)或可使用一个最高50 MHz的外部时钟来源。
晶体的配置上必须严格遵守资料表上的指示。一般而言,布线要短,而晶体上的负载电容要和晶体制造商建议的数值相同。
GPIO
微控制器上的通用输入输出(GPIO)脚位可程式化,且可以透过软体设定为输入或输出。
举例来说,图1中的S1是和一个被程式化为输入的GPIO脚位相连的按钮。STM32提供内建的上拉电阻器,所以这个按钮不需要加装外部的上拉电阻元件。此例的GPIO输出用来驱动LED。
多数的GPIO脚位亦具有其他功能,而晶片上的各种周边元件就是透过这些多功能脚位和外界联系。
并非所有内部功能都能透过每个GPIO脚位使用,而且有严格的脚位对应要遵守,所以选择要使用哪些脚位时务必参考资料表。
GPIO脚位可以用来驱动各种负载,而多数的脚位可以供应或承受最高25mA的电流。然而一般而言使用外部驱动电路来减轻微控制器GPIO驱动负载是较好的设计。可以参考图1中MN1驱动LED的例子。
STM32每个脚位都有额定的电流上限,也有所有GPIO脚位电流总和的上限。
连接周边元件
STM32透过UART、I2C、SPI和USB等界面来提供序列讯号连接。
举例来说,在图1里有一个温度感应器(U2 – LM75BDP)透过I2C汇流排连接到微控制器。I2C汇流排上需要两个上拉电阻器(R2、R3)连接汲极开路驱动器。
对于多数低速感测器这类的应用而言,我偏好使用I2C做为序列协定,因为它只用两条电线来进行通讯。另外,和需要额外晶片选择工作埠来处理每个周边元件的SPI不同的是I2C使用单一的位址。
图1里的SPI汇流排连接到Invensense出品的MPU-9250九轴动作感测器。MPU-9250包含一个三轴加速度计、一个三轴陀螺仪和一个三轴磁力仪。
编程连接器
STM32F4提供两种系统内程式编辑(ISP)界面:序列线除错(SWD)和JTAG。STM32较低价的版本只提供SWD界面。SWD和JTAG是微控制器最常采用的两种编程界面。
结论
在本文中我们讨论了微控制器的PCB电路设计,并针对能够读取输入按钮、驱动LED、和I2C温度感应器以及SPI动作感应器通讯的STM32F4进行介绍。
深圳宏力捷推荐服务:PCB设计打样 | PCB抄板打样 | PCB打样&批量生产 | PCBA代工代料