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

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

3天内不再提示

如何设计微控制器开发板

454398 来源:wv 2019-08-29 11:04 次阅读

步骤1:考虑元件封装

表面贴装器件(SMD)可以定位在采用贴片机的PCB,自动化装配过程。如果还有通孔组件,则可以通过回流焊炉或波峰焊机运行PCB。

小型SMD的元件引线也会减少,导致阻抗大大降低,电感和EMI是一件非常好的事情,尤其适用于射频和高频设计。

采用表面贴装路线还可以提高机械性能和耐用性,这对于振动和机械应力测试非常重要。/p》

第2步:选择您的微控制器

每个微控制器开发板的核心,如Arduino及其衍生产品,是微控制器。在Arduino Uno的情况下,这是ATmega 328P。对于我们的开发板,我们将使用ESP8266

价格便宜,运行频率为80MHz(超频至160MHz)并且内置WiFi子系统。当用作独立的微控制器时,它可以执行某些操作,速度比Arduino快170倍。

步骤3:选择USB转串口转换器

微控制器需要某种方式与您的计算机连接,因此您可以加载您的程序在它上面。这通常由外部芯片完成,该芯片负责在计算机上的USB端口使用的差分信号之间进行转换,以及通过其串行通信外设(如UART)在大多数微控制器上提供的单端信号。

在我们的例子中,我们将使用FTDI的FT230X。 FTDI的USB转串口芯片在大多数操作系统中都得到了很好的支持,因此对开发板来说是一个安全的选择。流行的替代品(更便宜的选择)包括来自SiLabs的CP2102和CH340G。

步骤4:选择您的稳压器

电路板将需要通过某个地方获得电力 - 在大多数情况下,您将通过线性稳压器IC找到这种电力。线性稳压器价格低廉,简单,虽然效率不如开关模式,但可提供清洁功率(噪声更小)和易于集成。

AMS1117是大多数开发板中最常用的线性稳压器,我们的开发板也是一个相当不错的选择。

第5步:选择你的电源订购方案

如果你将让用户通过USB为开发板供电,并通过电路板上的一个引脚提供电压输入,你需要一种在两个竞争电压之间进行选择的方法。这最简单地通过使用二极管来实现,二极管仅允许较高的输入电压通过并为电路的其余部分供电。

在我们的例子中,我们有一个双肖特基势垒,为此目的,它在一个封装中包含两个肖特基二极管。

步骤6:选择外围芯片(如果有)

您可以在接口上添加芯片使用您选择的微控制器来增强您的开发板为其用户提供的可用性或功能。

在我们的例子中,ESP8266只有一个模拟输入通道,并且只有很少的可用GPIO。

为了解决这个问题,我们将增加一个外部模数转换器IC和一个GPIO扩展器IC。

选择ADC通常需要在转换速率或速度和分辨率之间进行权衡。较高的分辨率不一定更好,因为由于使用不同的采样技术而具有更高分辨率的芯片通常具有非常慢的采样率。典型的SAR ADC的采样速率超过每秒数十万个样本,而更高分辨率的Delta Sigma ADC通常每秒只能处理少量样本 - 远离快速SAR ADC和快速流水线ADC。

MCP3208是一款12位ADC,具有8个模拟通道。它可以在2.7V-5.5V之间的任何地方工作,最大采样率为100ksps。

增加一个流行的GPIO扩展器MCP23S17可以使用16个GPIO引脚。

步骤7:电路设计

电源输出电路使用两个肖特基二极管为电源输入提供简单的OR-ing功能。这在来自USB端口的5V和你希望提供给VIN引脚的任何东西之间建立了一场战斗 - 电子战的胜利者在顶部出现并为AMS1117稳压器供电。一个不起眼的SMD LED用作指示电源实际上被传送到电路板的其余部分。

USB接口电路采用铁氧体磁珠,可防止杂散EMI和嘈杂的时钟信号向下辐射到用户的计算机。数据线上的串联电阻(D +和D-)提供基本的边沿速率控制。

ESP8266使用GPIO 0,GPIO 2和GPIO 15作为特殊输入引脚,在启动时读取它们的状态以确定是否以编程模式启动,这样您就可以通过串行通信来编程芯片或闪存启动模式,启动您的程序。在引导过程中,GPIO 2和GPIO 15必须分别保持逻辑高电平和逻辑低电平。如果GPIO 0在启动时为低电平,则ESP8266放弃控制并允许您将程序存储在模块内的闪存接口中。如果GPIO 0为高电平,ESP8266将启动存储在闪存中的最后一个程序,并且您已准备就绪了。

为此,我们的开发板提供启动和复位开关,让用户切换GPIO 0的状态,并复位器件,使芯片进入所需的编程模式。上拉电阻可确保器件默认启动进入正常启动模式,启动最近存储的程序。

步骤8:PCB设计和布局

一旦涉及高速或模拟信号,PCB布局就变得更加重要。特别是模拟IC对接地噪声问题很敏感。地平面能够为感兴趣的信号提供更稳定的参考,从而降低通常由接地环路引起的噪声和干扰。

模拟走线必须远离高速数字走线,例如属于USB标准的差分数据线。差分数据信号走线应尽可能短,并应与走线长度匹配。避免转弯和过孔以减少反射和阻抗变化。

使用星形配置为设备供电(假设您尚未使用电源平面)还有助于通过消除当前返回路径来降低噪声。

步骤9 :PCB Stack-Up

我们的开发板基于4层PCB堆栈,具有专用电源层和接地层。

您的“叠加”是PCB上图层的顺序。层的排列会影响您的设计的EMI兼容性,以及电路的信号完整性。

PCB叠加中要考虑的因素包括:

层数

层次顺序

层间间距

每层的目的(信号,平面等)

层厚度

成本

每个堆叠都有自己的优点和缺点。与2层设计相比,4层板将产生大约15dB的辐射。多层板更可能具有完整的接地层,降低接地阻抗和参考噪声。

步骤10:PCB层和信号完整性的更多考虑因素

理想情况下,信号层应位于电源或接地旁边平面,信号层与它们各自的邻近平面之间的距离最小。这样可以优化通过参考平面的信号返回路径。

电源和接地层可用于在层之间提供屏蔽,或用作内层的屏蔽。

电源和地平面相互靠近时,会产生一个通常对你有利的平面电容。该电容随PCB的面积及其介电常数而变化,与平面之间的距离成反比。这种电容非常适用于具有不稳定电源电流要求的IC。

快速信号理想地存储在多层PCB的内层,以包含迹线产生的EMI。

电路板上处理的频率越高,必须遵循更严格的要求。低速设计可能会以较少的层数甚至单层来消除,而高速和RF设计需要更复杂的PCB设计和更具战略性的PCB堆叠。

高速设计,适用于例如,更容易受到皮肤效应的影响 - 这是观察到在高频率下,电流不会穿透导体的整个主体,这反过来意味着增加厚度的边际效用递减铜在一定频率下,因为无论如何都不会使用额外的导体体积。在大约100MHz时,趋肤深度(实际流过导体的电流厚度)约为7um,这意味着甚至标准的1oz。厚信号层未充分利用。

步骤11:关于过孔的侧注

过孔形成不同层之间的连接多层PCB。

使用的过孔类型将影响PCB生产的成本。与通孔过孔相比,盲/埋孔的制造成本更高。通孔穿过整个PCB,终止于最下层。隐藏的过孔隐藏在内部并且仅互连内层,而盲孔从PCB的一侧开始但在另一侧之前终止。通孔过孔是最便宜和最容易制造的,因此如果通过孔过孔优化成本使用。

步骤12:PCB制造和组装

现在电路板已经设计完毕,您需要将设计输出为您选择的EDA工具中的Gerber文件,然后将它们发送到电路板上进行制作。

I让我的电路板由ALLPCB制造,但您可以使用任何电路板制造商。我强烈建议在决定选择哪个板房用于制造时使用PCB Shopper来比较价格 - 所以你可以在价格和功能方面进行比较。

一些板房还提供PCB组装,你如果你想实现这个设计,可能需要它,因为它主要使用SMD甚至QFN部件。

步骤13:那就是所有人!

这个开发板被称为“Clouduino Stratus”,一个基于ESP8266的开发板,我设计用于加速硬件/物联网启动的原型设计过程。

它仍然是非常早期的设计迭代,很快就会有新版本。

我希望你们从本指南中学到很多东西! :D

步骤14:奖励:组件,Gerbers,设计文件和致谢

[微控制器]

1x ESP12F

[外设]

1 x MCP23S17 GPIO扩展器(QFN)

1 x MCP3208 ADC(SOIC)

连接器和接口]

1 x FT231XQ USB转串口(QFN)

1个USB-B迷你连接器

2个16针母头/公头接头

[电源]

1 x AMS1117 - 3.3稳压器(SOT-223-3)

[其他]

1 x ECQ10A04-F双肖特基势垒(TO-252)

2 x BC847W( SOT323)

7 x 10K 1%SMD 0603电阻器

2 x 27 ohm 1%SMD 0603电阻器

3 x 270 ohm 1%SMD 0603电阻器

2 x 470 ohm 1%SMD 0603电阻器

3 x 0.1uF 50V SMD 0603电容器

2 x 10uF 50V SMD 0603电容器

1 x 1uF 50V SMD 0603电容器

2 x 47pF 50V SMD 0603电容器

1 x SMD LED 0603绿色

1 x SMD LED 0603黄色

1 x SMD LED 0603蓝色

2 x欧姆龙BF-3 1000 THT轻触开关

1 x铁氧体磁珠600/100mhz SMD 0603

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

    关注

    48

    文章

    6809

    浏览量

    147627
收藏 人收藏

    评论

    相关推荐

    在自定义PSoC6微控制器上建立BLE连接,BLE启动不起作用的原因?

    我正在尝试在自定义 PSoC 6 微控制器上建立 BLE 连接。 我正在使用一个适用于我的开发板的 BLE 示例项目。 布局包括两个用于 BLE 的 ECO 和 WCO 晶体振荡
    发表于 02-01 07:10

    stm32移植ucos iii教程

    移植µC/OS-III的教程。 准备工作 在开始移植之前,您需要准备以下工具和环境: STM32系列微控制器开发板 STM32CubeMX工具(用于生成底层驱动代码) Keil MDK(用于编译和下载
    的头像 发表于 01-02 16:29 376次阅读

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)
    的头像 发表于 12-07 10:55 199次阅读
    【<b class='flag-5'>微控制器</b>基础】——从历史切入,了解<b class='flag-5'>微控制器</b>的五个要素(上)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)
    的头像 发表于 12-06 17:23 272次阅读
    【<b class='flag-5'>微控制器</b>基础】—— 从历史切入,了解<b class='flag-5'>微控制器</b>的五个要素(下)

    如何在RT-Thread Studio中使用树莓派Pico开发板

    Raspberry Pi Pico 是一款低成本,高性能的微控制器开发板,具有灵活数字接口。
    的头像 发表于 11-21 16:43 1020次阅读
    如何在RT-Thread Studio中使用树莓派Pico<b class='flag-5'>开发板</b>?

    嵌入式软件开发常用工具有哪些?

    系统。它支持多种微控制器开发板,并且可以与多个流行的IDE集成。 8、Atmel Studio:这是由Atmel公司推出的一款针对其处理产品的集成开发环境,支持C/C++等语言的
    发表于 11-10 11:03

    MicroPython应用基础-准备基于MM32F5的MicroPython开发板

    本文主要面向 **2023年全国大学生物联网设计竞赛安谋科技命题** ,使用星辰处理器的灵动MM32F5微控制器开发板,基于MicroPython开发应用系统。
    的头像 发表于 10-19 18:27 402次阅读
    MicroPython应用基础-准备基于MM32F5的MicroPython<b class='flag-5'>开发板</b>

    Banana Pi 开源硬件基于ESP32-S3开发的物联网开发板系列

    是专为物联网设计的低功耗微控制器开发板。 BPI-Leaf-S3板载ESP32-S3芯片,支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (Bluetooth® LE) 双模无线通信,外围兼容低功耗硬件
    发表于 09-27 17:10

    STM32 Nucleo开发板介绍

    STM32 Nucleo开发板是带多种STM32微控制器系列的开发板,她为用户提供可接受的价格和灵活的方式进行产品创新和原型开发。用户可以从MCU的性能,功耗和产品特点选择不同的组合。
    发表于 09-12 06:28

    Banana Pi BPI-PicoW 和 BPI-Leaf-S3 创客教育与物联网开发板介绍

    BPI-PicoW 和 BPI-Leaf-S3 创客教育与物联网开发板 今年早些时候,Banana Pi 开源社区推出了一系列新的微控制器开发板 BPI-PicoW 和 BPI-Leaf-S3。虽然
    发表于 09-07 10:05

    使用Raspberry Pi Pico W和MicroPython开发物联网应用

    当我们提及物联网(IoT, Internet of Things)开发,可能首先想到的是Arduino或是ESP8266这样的微控制器开发板。然而,Raspberry Pi的微控制器
    的头像 发表于 07-21 09:36 1025次阅读
    使用Raspberry Pi Pico W和MicroPython<b class='flag-5'>开发</b>物联网应用

    搭载RP2040双核处理器芯片,BPI-Pico-RP2040 开发板开发实例展示

    BPI-Pico-RP2040 是 Banana Pi 推出的一款搭载RP2040芯片的微控制器开发板,在尽量保留Raspberry Pi Pico的功能,外形尺寸,引脚布局的前提下,板载一颗
    的头像 发表于 06-27 08:25 8947次阅读
    搭载RP2040双核处理器芯片,BPI-Pico-RP2040 <b class='flag-5'>开发板</b><b class='flag-5'>开发</b>实例展示

    LPC54606J512BD100微控制器无法连接到目标怎么解决?

    我正在使用LPC54606J512BD100微控制器并面临一个非常严重的问题。 问题是,在成功对控制器进行编程并随机工作后,我无法再次上传代码并出现错误。 关于编程: 使用 LPC-Link
    发表于 05-31 07:48

    求分享LPC1778FET208开发板原理图和技术参考手册

    我可以得到这个微控制器开发板原理图和技术参考手册吗? 零件号: LPC1778FET208K
    发表于 05-17 11:37

    如何从另一个微控制器更新ESP8266上的闪存?

    我过去在几个项目中使用过 ESP8266/ESP32(通常在某些 Adafruit 开发板上);但现在我有一个小项目,将 ESP8266 作为另一个微控制器 (Teensy4.1) 的外围设备。我有
    发表于 05-11 07:08