打印机-STM32版本 硬件部分

news/2024/9/23 13:25:45/

最终PCB EDA工程:

一、确定芯片型号

根据项目需求,梳理需要用到的功能,

  • 电量检测:ADC

  • 按键:IO input+外部中断

  • LED:IO output

  • 温度检测:ADC

  • 电机控制:IO output

  • 打印通讯:SPI

  • 打印时序:IO input&output

  • 蓝牙:UART连接透传模组

  • 日志:UART

最终得出需要的外设和功能:UART、SPI、ADC、IO、中断、定时器、RTOS

外设部分一共需要27个IO,其中特殊外设包括两个ADC,一个SPI,两个UART,一个用于蓝牙通讯,一个用于日志打印。

最终选择 STM32F103C8T6

  • 描述:CPU内核:ARM Cortex-M3 CPU最大主频:72MHz 工作电压范围:2V~3.6V 程序存储容量:128KB 程序存储器类型:FLASH RAM总容量:20KB GPIO端口数量:37 ST 32位 ARM内核 MCU芯片

二、确定外设接到哪个IO

1、查看芯片Datasheet确定

手册与设计资料:www.st.com

打开芯片手册,然后找到pin definitions页面,这里主要查看一些特殊功能的引脚,例如adc、uart、spi用的是哪些io,确定下来后,把其它的通用IO也逐一确定即可,这些通用的IO后续绘制原理图时,还可以调整。

手册与设计资料:www.st.com

打开芯片手册,然后找到pin definitions页面,这里主要查看一些特殊功能的引脚,例如adc、uart、spi用的是哪些io,确定下来后,把其它的通用IO也逐一确定即可,这些通用的IO后续绘制原理图时,还可以调整。

2、使用STM32Cubemx工具确定

2-1、安装STM32Cubemx

https://www.st.com/zh/development-tools/stm32cubemx.html

stm32cubemx安装教程(包含安装包)

2-2、打开软件,创建工程

File->New Project->stm32f103cb

2-3、设置系统时钟为外部时钟

因为我们高速时钟想使用外部8MHz的晶振,当然了,也可以使用内部时钟,对精度要求不高的话,低速时钟就不需要的,因为我们用不到RTC功能。

设置时钟为72MHz,外部晶振8MHz

2-4、设置Debug方式支持Serial Wire

后续可以使用Jlink SWD进行烧录仿真

2-5、确定对应IO

到这里,你就可以选择对应功能的引脚了,例如ADC SPI UART分别是芯片的哪个引脚,记录下来

然后剩余的常规IO,就可以比较随意,大部分引脚都是可以复用的,直接在右边的芯片上点击选择即可,对应IO设置为输出输入,这一步可以打开示例工程参考哦!!

三、绘制原理图和PCB Layout

1、外设部分原理图的绘制

2、STM32的最小系统绘制

绘制完外设后,我们看下STM32的最小系统如何绘制

  • 电源

  • 外部时钟

  • 运行模式

  • 烧录仿真接口

外设:

3、BLE透传模组

由于STM32是没有蓝牙功能的,而我们需要和手机进行通讯,这里我们使用了蓝牙透传模组,通过串口与STM32进行数据透传。

蓝牙部分我们使用串口2进行数据交互,所以需要重写串口2的处理函数

我们使用的蓝牙模组是RF Crazy/智汉的模组,主要是立创上购买方便,大家也可以根据自己需要选择其它模组。

模组的连接非常简单,只需要提供电源和地,然后串口连接STM32的串口即可通讯。

4、把芯片IO和外设连接起来

有了芯片和外设,那芯片如何控制外设或者读取外设状态呢?这里就需要把芯片IO和外设连接起来了。只需要用标签连接起来即可。

5、接下来就是PCB Layout

四、生产、焊接、快速调试

1、生产

2、焊接

  1. 准备好PCB、元器件、电烙铁、焊锡、镊子、万用表。

  2. 打开BOM表或者PCB工程,然后从电源模块开始,找到要焊接的元器件型号,逐个模块焊接,切记不要一下子焊完所有模块,否则很难定位排查问题。

  3. 每个模块焊接完成后,对照原理图、PCB工程,用万用表先检查下有没有焊接错误、短路、虚焊等情况,一个焊点一个焊点确认,确认没问题后在焊接下一个模块。

一般的焊接流程是:

  • 充电管理模块

  • 开关

  • 电源指示灯

  • 稳压3.3V (先焊接模块11,才能使用开关打开电源到稳压3.3V)

  • CH340

  • 打印头相关

  • STM32芯片

  • 升压模块

3、焊接完排查说明

焊接完成后,切记不要马上上电,先目测、用万用表检测下,有没有焊接错的地方,特别是要检查各路电源有没有短路,确保没有短路后,上电第一时间也要观察下有没有异常,有异常迅速拔掉电源。

目测没有异常后,先检测下所有的电源电压是否正常,在确定所有电源电压正常后,就可以接到电脑,烧录程序啦。


http://www.ppmy.cn/news/1443168.html

相关文章

Liunx发布tomcat项目

Liunx在Tomcat发布JavaWeb项目 1.问题2.下载JDK3.下载Tomcat4.Tomcat本地JavaWeb项目打war包、解压、发布5.重启Tomcat,查看项目 1.问题 1.JDK 与 Tomcat 版本需匹配,否则页面不能正确显示 报错相关:Caused by: java.lang.ClassNotFoundException: java…

区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测(Matlab)

区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测(Matlab) 目录 区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基…

人货场协同作战,新零售社交电商如何打造无敌商业模式?

大家好,我是微三云周丽,今天给大家分析当下市场比较火爆的商业模式! 小编今天跟大伙们分享什么是新零售社交电商? 随着互联网的快速发展,新零售社交电商作为一种新型的商业模式,正在逐渐改变着传统电商的格…

Pytorch迁移学习训练病变分类模型

划分数据集 1.创建训练集文件夹和测试集文件夹 # 创建 train 文件夹 os.mkdir(os.path.join(dataset_path, train))# 创建 test 文件夹 os.mkdir(os.path.join(dataset_path, val))# 在 train 和 test 文件夹中创建各类别子文件夹 for Retinopathy in classes:os.mkdir(os.pa…

纯血鸿蒙APP实战开发——Navigation实现多设备适配案例

介绍 在应用开发时,一个应用需要适配多终端的设备,使用Navigation的mode属性来实现一套代码,多终端适配。 效果图预览 使用说明 将程序运行在折叠屏手机或者平板上观看适配效果。 实现思路 本例涉及的关键特性和实现方案如下&#xff1a…

【多选一】OpenPlanner规划算法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言【多选一】OpenPlanner规划算法一、OpenPlanner整体效果二、OpenPlanner介绍1.OpenPlanner介绍2.OpenPlanner开源框架的特点3.Autoware和OpenPlann…

redis 使用互斥锁或逻辑过期两种方案解决缓存击穿,和缓存穿透(用缓存空值 或布隆过滤器)的解决方案

缓存穿透 缓存穿透是指在缓存中查找一个不存在的值,由于缓存一般不会存储这种无效的数据,所以每次查询都会落到数据库上,导致数据库压力增大,严重时可能会导致数据库宕机。解决方案: 1 缓存空值 (本文此方案) …

【深度学习实战(22)】解决样本类别不均衡问题之Focal Loss

一、Focal Loss公式介绍 Focal loss是何恺明大神提出的一种新的loss计算方案。其具有两个重要的特点。 1、控制正负样本的权重 2、控制容易分类和难分类样本的权重 论文: 二分类问题交叉熵损失 公式: 我们可以利用如下Pt简化交叉熵loss。 此时&…