基于STM32的核心板制作流程(适用零基础学习)

2023-05-16

文章目录

  • 前言
  • 一、什么是核心板?
  • 二、核心板最小系统电路
  • 三、电路设计与制作流程
    • 1.传统流程(适合有经验的人)
    • 2.新手流程(适合零基础小白)
  • 总结


前言

   购买过STM32开发板进行学习的小伙伴都清楚,一块普通的STM32开发板根据芯片型号,贵则两三百块大洋,哪怕使用最基础的STM32F103C8T6芯片的核心板,也需要四十块大洋。本篇开始的系列文章,作者将介绍自己如何自制一款基于STM32的核心板,该核心板使用的是STM32F103C8T6芯片,单块开发板成本¥10(芯片占¥8)。


一、什么是核心板?

   核心板又称最小系统板,是将主控MCU及必要外围电路集成到一个名片大小的电路板上,再将MCU的通信接口,GPIO,存储器接口等通过排针或者排母引到板外给用户使用。
   我们学习使用的开发板,实际上就是核心板+功能模块的集合。可以说,如果我们学会了如何自己制作一块核心板,就可以根据自己需求在核心板的基础上添加所需功能模块完成开发板的制作。

  • 作者设计的STM32核心板,如下图所示:

在这里插入图片描述

二、核心板最小系统电路

  • LED电路:包括电源指示LED灯和验证测试LED灯。
  • 外扩引脚:帮助核心板外接其他功能模块,实现更多功能的电路。
  • 复位电路:使电路恢复到起始状态的电路,对芯片进行强制复位。
  • 晶振电路:分为高速外部晶振电路和低速外部晶振电路,提供准确的时钟信号。
  • 电源转换电路:将USB输出的5V电压转换为芯片所需的3.3V电压。
  • SWD下载电路:将软件程序从PC端下载到芯片内部所需要的电路。
  • STM32微控制电路:STM32主控芯片连接以上六个电路,是开发板的核心的电路。

三、电路设计与制作流程

1.传统流程(适合有经验的人)

步骤流程具体工作
1需求分析按照需求,设计一个原理图(列出所需要的功能和设计方案)
2电路仿真使用电路仿真软件,对设计好的原理图进行仿真,验证功能是否正确
3绘制原理图元件库绘制电路中使用到的原理图元件库(常用的电路符号)
4绘制原理图加载原理图元件库,在PCB设计软件中绘制原理图,并进行电气规则检查
5绘制元器件封装绘制电路中使用到的元器件的PCB封装库
6设计PCB电路板将原理图导入PCB设计环境,对电路板进行布局和布线
7输出生产文件包括BOM清单、Gerbar文件、丝印文件以及坐标文件
8电路板制作按照输出的文件,进行电路板的打样和贴片,并对电路板进行验证

2.新手流程(适合零基础小白)

  • 该流程为作者在自学时,经历了无数血泪史以及踩了无数坑后总结得出,希望读者点个关注。
步骤流程具体工作
1下载元件库和封装库从作者资源中获取、百度搜索下载、以及找淘宝元器件卖家均可
2搜索原理图图片寻找要设计的相关芯片核心板原理图的图片,可直接百度图片
3绘制原理图根据下载的元件库和搜索的原理图图片,在PCB设计软件中绘制原理图
4导出BOM清单(重要)导出原理图中的物料清单,根据物料清单对焊接所需元件下单
5设计PCB电路板将原理图导入PCB设计环境,对电路板进行布局和布线
6电路板制作按照输出的文件,进行电路板的打样和贴片,并对电路板进行验证
  • 流程分析如下:

  (1)网上有许多元件库和封装库资源,所以并不需要我们手动绘制,可直接下载使用。

  (2)该流程适合无电路基础/电路基础不深厚的小白进行学习,因此我们可以暂时省略电路设计和仿真,在网上搜索原理图图片,使用别人设计并验证过的原理图直接进行绘制。

  (3)我们可选用AltiumDesigner或立创EDA进行绘制,后期会出一篇文章进行讲解。

  (4)小白必须在绘制完原理图后,马上进行元器件(芯片、晶振、电阻、电容等)采购。这是作者的辛酸史,你无法想象绘制完原理图、完成PCB的布局布线以及PCB打样完成后,再进行元器件采购时,发现该元器件已经停产,买不到了。这意味着你要去修改PCB的元件封装,重新布局布线以及打样的崩溃感。

  (5)布局布线采用以下四个原则:A.走线禁止直角;B.电源线尽可能的大;C.模块化布局;D.就近原则布局。

  (6)将设计好的电路板,交给使用嘉立创(国产良心公司)进行免费打样,并将打样好的电路板进行焊接验证。


总结

   以上就是基于STM32的核心板制作流程(适用零基础)的所有内容,希望大家阅读后都能有所收获!原创不易,转载请标明出处,若文章出现有误之处,欢迎读者留言指正批评!

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于STM32的核心板制作流程(适用零基础学习) 的相关文章

  • 如何在 Cortex-M3 (STM32) 上从 RAM 执行函数?

    我正在尝试从 Cortex M3 处理器 STM32 上的 RAM 执行函数 该函数会擦除并重写内部闪存 所以我肯定需要在 RAM 中 但我该怎么做呢 我尝试过的是 使用 memcpy 将函数复制到 RAM 中的字节数组 检查它是否正确对齐
  • 在没有 IDE 的情况下如何使用 CMSIS?

    我正在使用 STM32F103C8T6 并想使用 CMSIS 这本质上只是寄存器定义 没有代码 让我的生活更轻松 同时仍保持在较低水平 问题是我不知道如何安装该库以便在命令行上使用 Makefile 使用 所有文档似乎都与特定于供应商的 I
  • CMSIS 库是否应该包含在版本控制中? [复制]

    这个问题在这里已经有答案了 通常 我曾经在版本控制中包含芯片供应商 ST 提供的设备特定标头和源以及 CMSIS Core 标头 数量不多 也没有更新的习惯 我使用STM32微控制器 但我不使用立方体框架 or the 标准外设库 最近 我
  • 优化 ARM Cortex M3 代码

    我有一个 C 函数 它尝试将帧缓冲区复制到 FSMC RAM 这些函数将游戏循环的帧速率降低至 10FPS 我想知道如何分析反汇编的函数 我应该计算每个指令周期吗 我想知道CPU把时间花在哪里 在哪个部分 我确信该算法也是一个问题 因为它的
  • 当数据大小较小时,内存到内存 DMA 传输是否需要权衡?

    我正在学习 STM32 F4 微控制器 我正在尝试找出使用 DMA 的限制 根据我的理解和研究 我知道如果数据量较小 即设备使用DMA生成或消耗少量数据 则开销会增加 因为DMA传输需要DMA控制器执行操作 从而不必要地增加系统成本 我做了
  • rt-thread studio中新建5.02版本报错

    先吐槽一下 rt thread studio出现BUG真多 好多时间都是在找BUG 但里面用好多控件还是挺好用的 真是又爱又恨 所以一般使用功能不多的话还是用keil多一点 创建5 02版本工程之后直接进行编译 直接会报下面这个错误 资源
  • 物联网网关

    物联网网关是 连接物联网设备和互联网的重要桥梁 它负责将物联网设备采集到的数据进行处理 存储和转发 使其能够与云端或其它设备进行通信 物联网网关的作用是实现物联网设备与云端的无缝连接和数据交互 物联网网关功能 数据采集 物联网网关可以从物联
  • HAL库学习

    CMSIS简介 CMSIS Cortex Microcontroller Software Interface Standard 微控制器软件接口标准 由ARM和其合作的芯片厂商 ST NXP 软件工具厂商 KEIL IAR 共同制定的标准
  • STM32 GPIO工作原理详解

    STM32 GPIO介绍 1 STM32引脚说明 GPIO是通用输入 输出端口的简称 是STM32可控制的引脚 GPIO的引脚与外部硬件设备连接 可实现与外部通讯 控制外部硬件或者采集外部硬件数据的功能 以STM32F103ZET6芯片为例
  • 解决KEIL编译慢问题

    两种方案 使用v6版本的ARM Compiler 如果v6版本编译不过 必须使用v5版本的 则可以勾选掉Browse Information选项 提升很明显 1分多钟能优化到几秒 看代码量 但是这个有个弊端 在KEIL中会影响函数跳转 建议
  • 在 Atollic TrueStudio、STM32CubeMX 中导入 C 库

    我目前正在开发 STM32F767ZI Nucleo 板和一个小安全芯片 microchip atecc508a 通过 i2c 连接进行连接 该芯片有一个可用的库加密验证库 https github com MicrochipTech cr
  • 擦除后无法写入闪存

    所以我不能在擦除后直接写入内部闪存 如果写操作之前没有擦除操作 那么我可以 有什么想法吗 编程函数返回 成功写入 值 但查看内存时 没有写入任何数据 这是代码 uint32 t pageAddress 0x08008000 uint16 t
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • 无法使用 OpenOCD 找到脚本文件

    我正在尝试按照本教程将 OpenOCD 与我的 ST 发现板一起使用 https japaric github io discovery README html https japaric github io discovery READM
  • for循环延时时间计算

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 之前做led点亮的实验 好像是被delay函数影响了 因为delay参数设置的不对
  • systick定时器

    systick定时器 文章目录 前言 一 前期疑惑 二 解答 1 关于systick是阻塞的吗 2 非阻塞 三 软件编写 总结 前言 这边记录systick相关知识点 一 前期疑惑 在学习systick志气啊 其实对于systick还是一脸
  • 嵌入式 C++11 代码 — 我需要 volatile 吗?

    采用 Cortex M3 MCU STM32F1 的嵌入式设备 它具有嵌入式闪存 64K MCU固件可以在运行时重新编程闪存扇区 这是由闪存控制器 FMC 寄存器完成的 所以它不像a b那么简单 FMC 获取缓冲区指针并将数据刻录到某个闪存
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

    我想问一下 在以下情况下 STM32 中的 DMA SPI rx 会如何表现 我有一个指定的 例如 96 字节数组 名为 A 用于存储从 SPI 接收到的数据 我打开循环 SPI DMA 它对每个字节进行操作 配置为 96 字节 是否有可能
  • stm32l0: 执行MI命令失败。使用 vFlashErase 数据包擦除闪存时出错

    我正在使用 Nucleo STM32L031 和 AC6 STM32 工作台 eclipse 我编写应用程序并进入调试模式 一切正常 直到我在应用程序中添加另一个功能 我注意到当我删除 评论 新函数 软件可以再次进入调试模式 但是当我添加

随机推荐

  • [ C++ ] 在C++中,空指针用NULL来初始化还合适吗?

    问题引入 xff1a 在C 43 43 11新特性中 xff0c 我们用nullptr来表示指针空值 xff0c 这是为什么呢 xff1f 好好地NULL为什么不继续使用呢 xff1f 说明在创造C 43 43 的大佬们一定发现了什么Bug
  • [ Linux ] 动静态库 手把手教你写一个自己的库

    目录 静态库与动态库 生成 发布动静态库 形成发布静态库 形成发布动态库 一个makefile同时生成动静态库 如何使用动静态库 使用静态库 正确做法 xff1a 使用动态库 运行动态库 为什么动态库运行时有找库的步骤 静态库与动态库 静态
  • Linux安装部署DM8详细步骤与问题解决

    一 安装前准备 用户在安装 DM 数据库之前需要检查或修改操作系统的配置 xff0c 以保证 DM 数据库能够正确安装和运行 检查网络 拷贝一个文件到远程服务器的 opt目录下 root 64 scp r xxx dmdba 64 ip o
  • stm32 40道选择题解1

    第一题 xff1a 型号解读 xff08 1 xff09 STM32 xff1a STM32代表ARM Cortex M系列内核的32位微控制器 xff08 2 xff09 F xff1a F代表芯片子系列 xff08 3 xff09 40
  • h5修改软键盘文字,将换行改为前往或发送

    怎么修改h5软键盘的文字 xff0c 将右下角的回车换行更改为前往或发送 xff1f 文档中很多都是修改为前往 xff0c 搜索 xff0c 提交等 修改的 lt input type 61 34 search 34 gt 属性 xff0c
  • C语言 BMP图片的中值滤波

    工作用到了这方面的知识 xff0c 记录一下 xff0c 用大白话说明一下 2023年3月30日新增 xff1a BMP图片格式解析 xff0c 快速求数组的中值 xff0c 可以了解一下BMP图片的格式 xff0c 快速求数组中值 在滤波
  • Gettimeofday的用法

    先看gettimeofday的语法定义 xff1a 使用前先包含头文件 include lt sys time h gt 第一个参数 xff1a 是个timeval 类型的结构体 xff0c 该结构体如下 timeval tv sec 就是
  • 快速求数组的中值(不是中间序号的值)

    电脑上食用更佳哦 之前需要做3 3的中值滤波 xff0c 将图片的数据取出来之后要找出3 3窗口中的中值 xff0c 并替换掉中间序号的值 xff0c 所以快速找到中值很重要 xff0c 这对程序运行时间影响很大 一般要处理数组的元素个数都
  • C语言指针的释放问题

    PC端食用更佳哦 一 指针参与运算后无法释放 1 看代码 xff0c 下面的代码很显然没有任何问题 xff0c 来看第二个 include lt stdio h gt include lt malloc h gt int main int
  • C语言-str家族之strchr,strrchr,strchrnul

    文章目录 一 strchr1 声明2 作用3 源码4 说明5 示例 二 strrchr1 声明2 作用3 源码4 说明5 示例 三 strchrnul1 声明2 作用3 源码4 说明5 示例 PC上食用更佳哦 xff01 代码目录 xff1
  • Linux下新建文件和目录的权限(rwx)及umask

    文章目录 一 Linux下umask二 Linux下新建文件三 Linux下新建目录 前几天在整samba xff0c 文件权限搞得我头大 xff0c 今天来学一下默认新建文件的权限 xff01 一 Linux下umask 1 umask是
  • C语言--截取两个特定字符之间的字符串

    有时候 xff0c 需要截取字符串中的两个特定字符之间的字符串 xff0c 啥意思呢 xff1f 举个例子 需要截取目录 34 home book temp hello c 34 中的hello xff0c 有人会说了 xff0c 直接使用
  • 数组名取址&a+1和a+1

    第一天 xff0c 取址数组名 amp a C语言中的指针很重要 xff0c 关于指针的使用 xff0c 牛逼的那是真牛逼 xff0c 不行的那是真不行 xff0c 为了加深印象 xff0c 争取做到每日一练 xff01 如有错误 xff0
  • BMP图片格式解析

    BMP图片解析 一 BMP图片格式1 BMP图片的组成 二 BMP图片十六进制解析1 文件头2 信息头3 调色板4 图片数据 之前做了一个 BMP图片的中值滤波 xff0c 也只是大概了解BMP图片格式怎样的 xff0c 参考了很多资料 x
  • 工作中libusb的使用

    libusb的使用 1 下载编译2 使用1 虚拟机设置2 查看usb设备3 代码读取相机数据 用libusb在虚拟机上采集相机的数据 连接方式如下图 1 下载编译 官网下载 xff0c 选择Downloads xff0c 会跳转到Githu
  • 服务器更换后,vscode里面的svn远程仓库修改

    第一步 xff1a 终端打开本地项目目录 第二步 xff1a 查看当前svn信息 xff1a svn info 第三步 xff1a svn switch relocate 旧仓库地址 新仓库地址 第四步 xff1a 输入密码 成功
  • 网络摄像头OSD叠加RGN图片

    OSD叠加RGN图片 1 OSD叠加原理2 OSD叠加处理3 代码中的细节 xff08 供自己食用 xff09 3 1 分配rgn3 2 读bmp并复制到rgn的buf3 3 显示结果 4 最终解决方案5 总结 xff08 自用 xff09
  • 数据结构版学生管理系统

    简易学生管理系统设计 要求 xff1a 选择一种数据结构实现对每个学生信息的存储 xff0c 并实现如下功能 插入一个学生信息删除一个学生信息修改学生信息查找学生信息 实现时要求做一个简单的界面 xff0c 能让程序反复的执行不同功能 采用
  • docker镜像管理

    docker镜像管理 文章目录 docker镜像管理docker镜像的制作Docker Hubdocker镜像的获取 docker pull lt registry gt lt port gt lt namespace gt lt name
  • 基于STM32的核心板制作流程(适用零基础学习)

    文章目录 前言一 什么是核心板 二 核心板最小系统电路三 电路设计与制作流程1 传统流程 xff08 适合有经验的人 xff09 2 新手流程 xff08 适合零基础小白 xff09 总结 前言 购买过STM32开发板进行学习的小伙伴都清楚