创建微控制器电路板

电器工程 微控制器
2022-02-03 03:04:57

我不知道这是否是提出这个问题的正确论坛。并且知道 Stackexchange 我知道这个问题可能会因为过于广泛而被否决和关闭。我只是想确保我尝试了所有方法,有时这个小组中的某个人做了类似的事情并且可能能够提供帮助。

我的背景:我是一名开发人员,在空闲时间我曾经涉足电子产品。我用 Arduino 和 Raspberry 创建了许多电路。最近我创建了一个带有大约 9 个传感器的 IoT 设置,所有这些传感器都将数据发送到服务器,在该服务器上对数据进行大量可视化和分析。

在物联网项目之后,我的雇主要求我用定制板替换我使用的 Arduino(通过定制,他们想要一个我设计的板,而不是用 beaglebone 替换 arduino)。该板应该有一个微控制器、电池、Wifi 模块和一些传感器。

由于微控制器是电路中的主要组件,我想我将从最终确定微控制器开始。以下是我遵循的步骤:

  1. 阅读 Arduino 的 ATMega328P 的 wiki 页面我对wiki 页面 中的规范一个字都不懂
  2. 试图阅读 ATMega328P 的数据表, 我也没有看懂这个文件的一个字。
  3. 检查 Arduino Uno 的示意图, 我可以理解一些连接并将其与数据表相关联。但我还是不明白为什么会有一个 1K 电阻而不是一个 2K 电阻。我认为设计电路板需要知识。
  4. 谷歌如何选择微控制器。 这确实给了我一些想法。但我什至无法完成此链接的第一步我无法完成,因为我不知道 I2C 或 SPI 等是什么。
  5. 问同事他们不知道。

  6. 最后我决定从基础开始学习电子学,并在这个论坛上看到了一个阅读“电子艺术”一书的建议

@Transistor 在评论中提问

你能编辑你的帖子来解释对雇主有什么好处吗?例如,原型是否看起来有点凌乱和业余,而 PCB 会整理它?你要卖很多设备,等等。成本是个问题吗?需要案例吗?家庭/商业/工业应用?

对雇主的好处

  • 当前的设计很混乱(因为面包板)并且引脚连接可能会脱落

  • arduino 没有内置电池。所以必须为每个 arduino 提供电源线。所以新设计应该内置电池。

  • 板,面包板一起占用一些空间。他们想要一个紧凑的项目。

  • 没有对 arduino 板的专业支持。

成本不是问题。该设计主要不会出售,但会在组织内部使用。设计应该有一个案例。并将用于工业用途。

tl;dr -> 有没有办法让电子产品中的假人创建一个微控制器电路板?欢迎任何建议。

4个回答

“有没有办法让电子产品中的假人制造出微控制器电路板?”

  • 不快。

我真的很喜欢你的兴趣和渴望接受这个。我真的很欣赏你的兴趣和愿望,以及你愿意提出并提出要求的意愿。

我会告诉你,我的第二版“电子艺术”几乎毁于一旦(它也是一本装订良好的硬拷贝……或者曾经是),这和这本书一样好(这很好),它现在不适合你的水平。你只会用它在地上打你的头。话虽如此,我还是建议您获得一份副本。总有一天你会想要的。(而且作者不会活着制作第 4 版,所以购买第 3 版是安全的。)如果您确实购买了,请查找第 2 版的学生手册(如果有第 3 版的学生手册——您可以希望),得到它。学生手册是一个很大的帮助,我强烈推荐它,如果你要为这本优秀的 AofE 书苦苦挣扎。

Don Lancaster 曾经写过一些关于微控制器和内存的优秀教程,但是这对书(两卷集)现在有点过时了。但是,即使在今天,您也可以肯定地从中学习。

但是让我们看看你面前的情况:

  1. 电源设计。你可以通过购买电源、壁疣等来降低成本。但是,如果您不了解各种术语的含义以及它们的使用方式,没有什么可以保护您无需了解电压和电流合规性的含义以及短路的可能性。如果您无法弄清楚规格的含义,您也将无法利用 ebay 提供的一些非常便宜的降压或升压模块。您只需要了解共享公共点、电压、电流、功率、纹波的概念,与使用一个电源的一个系统连接到另一个使用不同电源的系统相关的问题,一个电源需要多长时间才能达到完整的操作,以及其他一些我现在懒得添加的东西。而且可以很详细,如果你真的尝试自己设计一个简单的基本的。当您认真对待一个非常简单的想法时,您会感到惊讶。
  2. 上电复位。我上面提到的一件事是电源可能需要一段时间才能完全运行。如果电源启动得太慢,一些微控制器可以做一些非常疯狂的事情。您可以使用一些想法来解决它,将微控制器保持在某种奇特的“重置模式”,直到电源正常启动。但是您可能必须设计其中之一。它们并不复杂,您也可以购买专门的 IC。但这只是另一个需要了解的问题。您不能总是假设一切正常,因为您对其应用了电源电路。
  3. 钟。你有电源,并且在电源准备好之前,你已经将微控制器放在了海湾。还有什么?嗯,它需要一个时钟。一些微型计算机具有内部时钟。一些微机只支持外部微机。一些外部的可以使用模块来处理。其他的,必须为平行切割或串联切割的晶体精心制作。不知道那些是什么?你可能需要。如果它有一个内部时钟,它可能有几个。其中一些 MSP430 将具有一个 VLO、一个 RC 和一个 DCO 内部时钟。加上支持一两个外部晶体时钟源的能力,以及。你知道如何管理这一切吗?
  4. 程序。好的。当你有电源、正确的重置和时钟时,你已经接近了。如果微机里有一个程序,它可能会运行。但是......你怎么把程序放在那里?电路板设计可能需要一种下载程序的方法。还有一种方法,可能仍然不同,也可以让您调试这些程序。杰泰格?听说过它?你可能需要。或者各种方法在内部(或外部)开发足够的电压来编程一个?发生这种情况的方式有很多种。他们中的一些人需要相当舒适的电子产品。有些没有。

您提到您甚至无法开始阅读数据表。所以这意味着你需要一些可以引导你完成这些事情的人的帮助。或者你需要花一些时间来学习和思考,让想法落到实处。最好是找到一群有兴趣帮助你开始你的旅程的当地人。所以我可能会首先推荐类似的东西。例如,机器人社会可能是一种方式。许多地方都有聚会小组,这可能会让有才华的人靠近你。我认为这是这些天开始的最佳方式。也许是一个专注于制造 3D 打印机(涉及微型打印机)的团队,或者……嗯,类似的东西。

去做吧。真的。你可以把这些东西捡起来并变得非常擅长。但是,如果可能的话,请给自己一些时间并尝试在本地建立一些联系。您需要接触可以与您互动的人的思想,听到您所缺少的内容,并通过描述您在进行过程中解决您的误解的描述来回应。

无论如何,一定要给自己买一本像样的关于直流电子学的书——我建议找一本教科书,因为它们将涵盖直流、交流、网格和节点分析,以及你真正需要的一些其他基础知识。并在双极晶体管上获得一个好的。(Mosfets 几乎太容易了,所以你可以从你遇到的人那里得到它。)是的,获得第 3 版的 AofE。但不要指望它是小菜一碟。它更像是一个有趣想法的精彩拼贴,它在各个方面激发你的灵感,让你接触到有趣的做事方式,否则就会变得很有意义。但前提是你有基础知识。

因此,假设您的项目由 Arduino、电源、少量传感器和您烧毁的代码组成。现在这些是使用跨接电缆连接起来的,你想把它们放在 PCB 上。

首先了解 Arduino UNO 的电路,然后是 PCB 电路,它将为您提供与 Arduino UNO 板相同的功能。此页面将为您提供帮助:https ://www.arduino.cc/en/Tutorial/ArduinoToBreadboard

现在不要为切换到新的微控制器而烦恼。你的盘子里有足够的东西。关注那篇文章。您应该完成前两个子主题:(1)刻录引导加载程序和(2)使用 arduino 板上传。如果您能够理解您正在阅读/在做什么,您可以走得更远,否则就停在那里。

一旦你烧毁了引导加载程序并且你可以上传代码,是时候找出 arduino 和 atmega328p 之间的引脚映射了,如下所示:

Arduino 引脚映射

现在,您可以继续尝试闪烁草图。您需要在 D13 上添加一个 LED,即 atmega328 的引脚 19,并带有一个限流电阻(470 欧姆就足够了)。如果您的草图正在上传和工作,那么您可以继续连接传感器和 wifi 模块并进行相应的编程。在面包板上完成所有工作后,您现在可以将其转换为 PCB。您只需要将电线转换为迹线。此时您会注意到您的电路比使用 arduino UNO 板的电路小得多。原因是 Arduino UNO 有很多额外的电路,所有项目都不需要这些电路。

一旦你的电路工作,你需要想办法给它加电。您可能想研究稳压器电路,因为您找不到可以直接连接到项目的 5V 电池。

要将其转换为 PCB,您需要选择任何 PCB 设计软件。我曾与 eagle 合作过,我认为这对初学者来说很容易。网上有很多教程可以参考。以下是 sparkfun 的两个不错的:

https://learn.sparkfun.com/tutorials/using-eagle-schematic

https://learn.sparkfun.com/tutorials/using-eagle-board-layout

到目前为止没有提到的一点是,除了基本的电子知识外,您还需要知道如何使用 PCB CAD 程序并获得硬件设计流程的知识。许多初学者都是从Eagle开始的,你会发现很多关于它的教程。我个人是从KiCAD开始的,与 Eagle 不同的是,它是免费软件。两者都可用于主要操作系统。Sparkfun 上的Eagle有一个不错的非压倒性教程系列。

一般来说,PCB 程序至少分为两个“部分”:原理图,您放置组件并将它们连接到纸上,以及布局,您实际指定实际 PCB 的尺寸,然后将组件放置在真正的PCB,走线,让元件连接等等。双方都有自己的问题。例如,您经常需要创建不在软件库中的部件。所以你需要绘制示意图,然后你需要为软件的布局部分创建一个封装等。你需要了解不同类型引脚的钻孔尺寸、焊盘类型和尺寸适用于不同类型的 SMD 元件等。

您既需要学习如何制作清晰易读的原理图,又需要学习如何将原理图从纸上(或计算机屏幕)转换为同样有效的真实 PCB 布局。

幸运的是,如果您只使用相对较慢的 AVR 微控制器,您很可能不会遇到在更复杂的电路中可能遇到的高频问题。

然后是机械方面。您需要查看可以轻松制造的 PCB 尺寸、需要多少板空间、需要多少板层。然后,您需要找到适合您能找到的 PCB 尺寸的 PCB 外壳,然后确保它们实际上都可以正确装配在一起。您还需要找到愿意为您制造电路板的人(或者自己制作,如果您有足够的时间),然后,当您拥有电路板时,您需要在其中填充组件,或者找人会为你做的。您需要测试这些板,以确保它们正常工作,为此,您需要制定一个测试计划。

然后,故事的另一面是运行所有这些所需的支持设备。您从普通零件经销商处获得的 AVR 微控制器不会安装 Arduino 引导加载程序,因此您需要一个程序员来刻录引导加载程序。如果您有任何问题,您将需要示波器或逻辑分析仪来调试问题。

总而言之,不要低估这个问题。在您真正生产出一个好的简单设备之前,很容易需要几个月的时间。也不要指望一切都能在第一次尝试时发挥作用。在解决所有问题之前,您很可能需要制作多个 PCB。一定要计划并期待这一点。

设计定制主板,而不是从头开始基于微控制器的设计。

一种折衷方案,有望在您想要的权力和您可以实际实现的目标之间找到一个中间立场,同时满足您的大部分目标(如果不是全部的话)。

像 Arduino 这样的东西是已知数量的优点。拥有强大的社区支持和信息,采用众所周知且广泛可用的设计以及许多兼容的现成产品。

本质上,使用主板,您正在将使用面包板所做的事情转移到 PCB 上。

这是一个例子:

在此处输入图像描述

这可能是面包板上的几个 PCB 和相关布线。

它有一个用于 uC 的插口式 Arduino Micro。

电源位于底部角落,带有直流桶和带有各种组件的接线端子。左侧有 2 个继电器和相关端子,右侧有几个 IC 和其他组件,接线端子位于右侧。

您可以根据自己的喜好设计具有内置功能的主板,或者使其模块化并使用现成的组装板来实现大多数功能(如果不是全部功能)。

如果您使用插座模块化部件更换或升级要容易得多,故障排除也是如此。

在图像中,您还可以看到它们在 uC 的两侧都有接头,它们都允许对电路进行故障排除和扩展或修改。

对于像电源这样的设计可能超出您当前能力的东西,您可以在小板上获得各种 DC-DC 转换器,或者在不需要或需要最少外部组件的情况下封装,该部分也可以模块化以及并使用可用于电池管理的现成组件。

外壳方面有多种选择,通常挤压金属外壳可能有槽或其他外壳样式在底座上有支架或螺丝孔。如果您使用板安装连接器,您可以设计您的电路板以完美地适合外壳并对其进行加工以适应。像这样:

在此处输入图像描述

最难的部分将是 PCB 布局,并确保一切物理上都正确安装,零件布局正确并适合您的情况。

您的布局应该作为最佳实践来完成,但对于初学者来说,在大多数情况下转移以前的空气布线面包板电路(例如您现在拥有的电路)应该不是不可能在 PCB 上实现的。

最后一个积极因素是电路板本身应该相当便宜,有各种各样的小批量晶圆厂可用于 PCB 制造。如果保持通孔和某些封装和更大尺寸的 SMD,如果需要,您或其他人也应该很容易填充。

希望这可以帮助。

编辑:已尝试重组我的答案,因此为了清楚起见,删除了一些信息和想法。slebetman 在评论中也提出了同样的想法。