嵌入式硬件实战基础篇(三)-四层板PCB设计-步进电机驱动(TMC2208/TMC2209)

news2024/11/22 11:53:27

引言:我们在嵌入式硬件杂谈(三)中有提到阻抗匹配的问题,也引入了高速PCB设计的思想,并且此篇实战基础篇主要是基础的四层板的绘制设计,后续实战会对高速板展开,本篇主要是提升读者的设计PCB板的能力,以及对于嵌入式硬件设计能力的提升,对前面的理论作为实践性导向进行强化以及学习。

本教程针对于已经初步掌握二层半绘图技巧,正打算进阶的设计者。教程深入浅出讲解了四层板设计技巧,将会从普通四层板、高速四层板几个角度来讲解。采用项目式的教学方式,通过一个个项目助你学会四层板的绘画方法,对于信号完整性、阻抗匹配也有一定教学,电源和地平面的处理才用二层半穿插讲解的方法,理解轻松愉快,是不可多得的好PCB线路板设计好课程。 本节课讲述的是PCB实战部分。

目录

阻抗匹配-引入多层板

1.信号源与接收端的阻抗

2.阻抗控制的影响因素

3.参考面与地平面

电机驱动模块基础 TMC2208/TMC2209

1.TMC2208/TMC2209 驱动模块的初识

2.芯片引脚功能

3.Layout TMC2209示例

3.1. 供电电路设计

3.2. 电机连接设计

3.3. 散热设计

3.4. 控制信号接口设计

3.5. 模式选择电路设计

3.6. 保护电路设计

3.7. 参考电阻与配置内部感测电阻

3.8. 调试与诊断设计

原理图设计

PCB四层板设计思想

PCB多层板设计思想

PCB设计

3D图预览


阻抗匹配-引入多层板

我们在嵌入式硬件杂谈(三)中有提到阻抗匹配的问题,这里就稍微带过一下。

在高速电路设计中,阻抗匹配是保证信号完整性的重要环节。随着信号速率的提高,对PCB走线的阻抗控制要求也随之提升。在传统的双层板设计中,受限于板材厚度和走线宽度,较小阻抗的走线(如USB差分对的90欧姆阻抗)通常需要非常宽的线宽,甚至可能超过30 mil。这种设计不仅增加了布线难度,也限制了板子的整体布局。为了解决这些问题,采用多层板设计成为更优的选择。

在多层板中,通过调整走线层与参考层之间的距离,以及适当控制线宽和铜厚,可以实现更灵活的阻抗匹配设计。例如,四层板及以上的结构能够为高速信号提供专用的参考层,从而有效降低干扰,稳定阻抗,满足信号完整性的要求。此外,不同的PCB厂家提供的板材参数略有不同,因此实际的阻抗计算需要结合具体厂商的生产能力和材料参数进行定制。

1.信号源与接收端的阻抗

在高速信号设计中,信号源和接收端的阻抗是预先定义好的。例如,USB差分信号的阻抗要求为90欧姆,SDIO单端信号为50欧姆。这些标准由协议规范决定,设计过程中需要确保走线的特性阻抗与之匹配,以避免反射和信号质量下降。

2.阻抗控制的影响因素

阻抗值的控制主要取决于以下参数:

  • 层数:多层板设计能提供更好的参考平面,适合高速信号。通常,高速PCB设计从四层板起步。
  • 线宽和线间距:对于差分对信号,线宽和线间距的组合对阻抗有直接影响。
  • 铜厚:不同的铜厚会影响走线的特性阻抗和传输线电感。
  • 介质材料与介电常数:PCB板材的介电常数直接影响信号的传播速度和特性阻抗。

3.参考面与地平面

阻抗匹配不仅与走线本身有关,还与其参考面密切相关。在多层板中,走线通常设计在信号层(Top或Inner层),而下方是连续的接地层或电源层。参考层的完整性对于稳定阻抗至关重要,缺失或不连续的参考面可能导致信号完整性问题,甚至引入 EMI 干扰。

电机驱动模块基础 TMC2208/TMC2209

1.TMC2208/TMC2209 驱动模块的初识

TMC2208和TMC2209是Trinamic推出的高性能步进电机驱动芯片,广泛应用于3D打印机、CNC设备和机器人等领域。它们通过先进的电流控制技术和微步插值功能,实现了步进电机的无声运行和高精度控制。以下是它们的基本特点和功能说明:

上述为数据手册的相关内容,具体可以去读读内容,总结如下:

1. 基本参数与电流能力

  • 支持 两相步进电机,最大线圈电流可达 2.8A(峰值)2A(RMS值),满足大多数中小型步进电机的驱动需求。
  • 支持 电压范围4.75V至29V DC,适合广泛的供电场景,包括电池供电设备。

2. 步进信号接口与控制

  • 提供 STEP/DIR 接口,支持8、16、32或64微步的硬件配置,适配多种应用需求。
  • 内置 MicroPlyer 技术,可将低分辨率微步信号平滑插值为256微步,实现更细腻的电机运行效果。

3. 高效与无声运行

  • 支持 无声电机运行,通过“StealthChop”隐形斩波模式,大幅降低电机噪音,适合对静音要求高的场景。
  • 配备 节能电流控制技术,通过智能调节电流,可节省高达 75% 的能耗,延长设备电池寿命。
  • 提供 负载和失速检测功能,可监控电机运行状态,避免因超负载或失速导致的损坏。

4. 高级功能与易用性

  • 内置 单线UART接口,用于高级配置和实时监控,无需额外信号线。
  • 支持 OTP(一次性可编程存储器),可将配置参数永久保存,无需重复初始化。
  • 提供 内部感测电阻器选项,简化外围电路设计,节省PCB空间。
  • 支持 被动制动、自由轮和自动断电 等功能,有效提升系统安全性和可靠性。

5. 保护与诊断功能

TMC2208/TMC2209 提供全面的保护机制,包含:

  • 过温保护
  • 过流保护
  • 短路保护
  • 欠压锁定
    通过集成诊断功能,实时监测电机和驱动模块的状态,便于系统调试和故障排查。

2.芯片引脚功能

其次就是针对于引脚功能得了解,这样才可以对PCB相关设计有优先级的思想。

3.Layout TMC2209示例

如下为数据手册的layout内容,我们对其进行参考,对后续的原理图设计做出保障。

3.1. 供电电路设计
  • 电压范围:TMC2208/TMC2209 支持 4.75V 至 29V 的工作电压,建议为 VCC 和 VM 提供稳定的直流电源。
    • VCC(逻辑供电):典型值 3.3V 或 5V,根据控制系统的逻辑电压配置。
    • VM(电机供电):根据电机要求选择电压,建议加滤波电容以稳定电源。
  • 电源滤波:在 VM 和地之间放置大容量电解电容(如 47uF~100uF)和小容量陶瓷电容(如 0.1uF)以滤除电源纹波,减小电机启动瞬间的电源干扰。
3.2. 电机连接设计
  • 电机绕组接口:将电机的 A+、A- 和 B+、B- 接口与芯片的输出端(OUT1A/OUT1B 和 OUT2A/OUT2B)正确连接,确保绕组方向一致。
  • 续流二极管:TMC2208/TMC2209 内部已集成续流二极管,无需外部额外添加。
3.3. 散热设计
  • 散热布局:芯片工作时的发热量较大,建议在芯片底部设计大面积地铜,必要时添加散热孔或散热片。
  • 电流限制:通过配置寄存器或外部电阻合理设置运行电流,避免过高电流导致过热。
3.4. 控制信号接口设计
  • STEP/DIR 信号接口
    • STEP 信号用于控制电机的步进脉冲,DIR 信号用于设置电机方向。
    • STEP 和 DIR 需要通过单独的接地电阻(如 10kΩ)下拉,确保信号稳定。
    • 设计时可添加小电容(如 100pF~1nF)滤除高频干扰。
  • UART 接口
    • 单线 UART 用于高级配置和诊断,需通过电阻(典型值 1kΩ)连接主控芯片。
    • 如果不使用 UART 功能,应通过电阻将 UART 引脚拉高或拉低,避免浮空。
3.5. 模式选择电路设计
  • 微步模式配置
    • 通过 MS1 和 MS2 引脚配置微步模式(8、16、32 或 64 微步)。
    • 未使用的配置引脚需通过电阻(如 10kΩ)拉高或拉低。
  • 隐形斩波模式(StealthChop):默认为开启状态,无需额外硬件支持。
3.6. 保护电路设计
  • 过流保护:芯片内置过流保护功能,无需额外设计,但需确保电源线路和地线宽度足够以承载电流。
  • 静态电保护:在关键信号引脚(如 STEP、DIR、UART)添加 TVS 管或保护电容,防止静电击穿。
3.7. 参考电阻与配置内部感测电阻

TMC2208/TMC2209 支持内部感测电阻,无需外接电阻,这简化了设计并节省空间。

  • 电流设置电阻:使用外部参考电阻时,应根据芯片手册计算合适阻值,确保电流设置准确。
3.8. 调试与诊断设计
  • 诊断引脚(DIAG)
    • DIAG 引脚用于监控芯片的状态(如过热、短路检测),建议连接到主控的 GPIO 引脚。
    • 可外接 LED 指示灯直观显示工作状态。
  • 测试点预留:在关键信号和电源节点预留测试点,方便后续调试与验证。

原理图设计

通过上述理论知识的补充,我们可以得出如下的原理图,易得!

PCB四层板设计思想

四层板通常采用以下典型结构:

  • 顶层(Top Layer):信号层,用于放置主要元器件和布线。
  • 内层1(Inner Layer 1):通常为接地层(GND),提供信号的参考面并降低EMI。
  • 内层2(Inner Layer 2):通常为电源层(VCC),用于提供稳定的电源分布。
  • 底层(Bottom Layer):信号层,用于布置较少的元器件或辅助布线。

这种分层结构确保了电源和接地的完整性,同时为信号提供了良好的参考平面。

由于上述我的元器件放在了底部,所以换了下位置,本质其实是一样的,都是人为规定的,是非常灵活的,

主要就是针对如下内容:

  • 信号完整性:信号层与接地层紧密耦合,减少信号的回路面积,从而降低电磁辐射。
  • 电源完整性:电源层和接地层的紧密耦合形成平面电容,有效降低电源噪声。
  • 对称性:层叠结构尽量保持对称,避免板材翘曲。
  • 阻抗匹配:确保走线的特性阻抗与系统设计相匹配,减少信号反射和干扰。

PCB多层板设计思想

多层板的层数根据设计需求决定,常见的有4层、6层、8层甚至更多。这边就举例子说明一下采用6层板,层叠结构如下:

层次功能备注
顶层信号层放置STM32主控芯片、以太网PHY、USB接口等主要元器件和布线。
内层1接地层(GND)提供信号参考面,降低辐射噪声。
内层2电源层(Power)分区3.3V和5V,供电稳定。
内层3信号层高速信号布线层(以太网、USB等差分信号)。
内层4接地层(GND)为内层信号提供回流路径。
底层信号层UART、I2C等低速信号布线及辅助元器件。

本质都是可以变化的,但是一定要注意参考地平面与信号层之间了,具体问题具体分析。

PCB设计

层叠结构如下所示:

顶层:

底层:

PWD层:

GND内电层:

3D图预览

到这里,我们的基础篇三就要到此为止了!如下为预览图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2244595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp 选择 省市区 省市 以及 回显

从gitee仓库可以拿到demo 以及 json省市区 文件 // 这是组件部分 <template><uni-popup ref"popup" type"bottom"><view class"popup"><view class"picker-btn"><view class"left" click"…

C语言练习.while语句

题目&#xff1a; 1.用C语言编程&#xff0c;运用while语句&#xff0c;写一段简短的代码。 分析&#xff1a; 1.运用while语句要注意&#xff1a;while语句&#xff0c;要设置好退出条件&#xff0c;不然就会造成无限循环的结果&#xff0c;导致程序停不下来。 2.编写代码…

Linux编辑器 - vim

目录 一、vim 的基本概念 1. 正常/普通/命令模式(Normal mode) 2. 插入模式(Insert mode) 3. 末行模式(last line mode) 二、vim 的基本操作 三、vim 正常模式命令集 1. 插入模式 2. 移动光标 3. 删除文字 4. 复制 5. 替换 6. 撤销上一次操作 7. 更改 8. 调至指定…

24.11.20 sevlet2

1.servlet是否线程安全 (线程特性) 线程安全的指标 //1.是否有共享数据 //2.多线程对共享数据做写操作 servlet中 不要创建成员变量 servlet是单实例的 所以成员变量(不加static) 就会在多线程间共享 如果service()方法中 对成员变量有写操作 则线程不安全 servlet中非特殊情…

【编译器】Dev C++建立C语言工程

【编译器】Dev C建立C语言工程 文章目录 [TOC](文章目录) 前言一、创建工程二、添加.c.h三、主函数处理四、在桌面中打开exe文件五、参考资料总结 前言 在使用了很多编译器之后&#xff0c; 要么是太大了&#xff0c; 要么是太新了&#xff0c; 要么是在线编译器&#xff0c;用…

【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰

文章目录 1. Map Viewer中打开2. 场景查看器中打开3. ArcGIS中打开4. QGIS中打开5. Globalmapper中打开6. ArcGIS Earth中打开官网地址:https://www.arcgis.com/home/item.html?id=504a23373ab84536b7760c0add1e0c1c 1. Map Viewer中打开 以下展示不同底图样式的珠穆朗玛峰壮…

vscode uniapp 微信小程序 view、text、image标签红色波浪线

没修改前的红色波浪线样式 看好多人没解决方法&#xff0c;我的这种反正成功了&#xff0c;解决方法如下&#xff1a;首先降级Vue - Official 为 v2.0.12 选择版本 配置tsconfig.json "vueCompilerOptions": {// experimentalRuntimeMode 已废弃&#xff0c;现调整为…

SCTransNet验证测试

SCTransNet 是PRCV 2024、ICPR 2024 Track 1、ICPR 2024 Track 2 三项比赛冠军方案的 Baseline, 同时也是多个优胜算法的Baselines. Bilibili 视频分享 【工作分享】SCTransNet:面向红外弱小目标检测的空间 - 通道交叉 Transformer_哔哩哔哩_bilibili 极市平台 推文分享 …

电路模型和电路定理(二)

电路元件 是电路中最基本的组成单元。 电阻元件&#xff1a;表示消耗电能的元件 电感元件&#xff1a;表示产生磁场&#xff0c;储存磁场能的元件 电容元件&#xff1a;表示产生电场&#xff0c;储存电场能量的元件 电压源和电流源&#xff1a;表示将其他形式的能量转变成…

2023AE软件、Adobe After Effects安装步骤分享教程

2023AE软件是一款由Adobe公司开发的视频编辑软件&#xff0c;也被称为Adobe After Effects。它在广告、电影、电视和网络视频等领域广泛应用&#xff0c;用于制作动态图形、特效、合成和其他视觉效果。该软件支持多种视频和音频文件格式&#xff0c;具有丰富的插件和预设&#…

AI Large Language Model

AI 的 Large Language model LLM , 大语言模型&#xff1a; 是AI的模型&#xff0c;专门设计用来处理自然语言相关任务。它们通过深度学习和庞大的训练数据集&#xff0c;在理解和生成自然语言文本方面表现出色。常见的 LLM 包括 OpenAI 的 GPT 系列、Google 的 PaLM 和 Meta…

【大数据学习 | Spark】关于distinct算子

只有shuffle类的算子能够修改分区数量&#xff0c;这些算子不仅仅存在自己的功能&#xff0c;比如分组算子groupBy&#xff0c;它的功能是分组但是却可以修改分区。 而这里我们要讲的distinct算子也是一个shuffle类的算子。即可以修改分区。 scala> val arr Array(1,1,2,…

SrpingBoot基础

SpringBoot基本框架中重要常用的包讲解: .idea包和.mvn包框架生成不经常用 src包下主要存放前后端代码: main包下的java包存放的是后端java代码主要负责数据处理 resource包下存放的是配置资源和前端页面,其中static中存放的是前端html网页一般存放静 态资源,templates包…

Spring6 MyBatis

1. 依赖 <dependencies><!-- spring核心--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.1.14</version></dependency><!-- Resource注解的依赖…

JavaEE专栏介绍

专栏导读 在当今快速发展的信息技术时代&#xff0c;JavaEE作为企业级应用开发的核心技术之一&#xff0c;扮演着至关重要的角色。本“JavaEE”专栏旨在为对JavaEE感兴趣的开发者提供一个全面的学习平台&#xff0c;从基础概念到高级应用&#xff0c;帮助读者深入理解JavaEE框…

互联网数字化商品管理浪潮思考:从信息化到精准运营

目录 一、商品数字化转型面临的现状分析 &#xff08;一&#xff09;运营方向分析 &#xff08;二&#xff09;商品归类分析 二、商品数字化管理建设分析 三、基础建设——商品信息数字化 &#xff08;一&#xff09;商品信息质量数字化的目的 &#xff08;二&#xff0…

一文读懂Redis6的--bigkeys选项源码以及redis-bigkey-online项目介绍

一文读懂Redis6的--bigkeys选项源码以及redis-bigkey-online项目介绍 本文分为两个部分&#xff0c;第一是详细讲解Redis6的--bigkeys选项相关源码是怎样实现的&#xff0c;第二部分为自己对--bigkeys源码的优化项目redis-bigkey-online的介绍。redis-bigkey-online是自己开发的…

随机场模型与命名实体识别:深入理解CRF及其应用

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

Qlik Sense QVD 文件

QVD 文件 QVD (QlikView Data) 文件是包含从 Qlik Sense 或 QlikView 中所导出数据的表格的文件。QVD 是本地 Qlik 格式&#xff0c;只能由 Qlik Sense 或 QlikView 写入和读取。当从 Qlik Sense 脚本中读取数据时&#xff0c;该文件格式可提升速度&#xff0c;同时又非常紧凑…

ESP8266 AP模式TCP客户端 电脑手机网络调试助手

1.AP模式TCP客户端和电脑网络调试助手 2.AP模式TCP客户端和手机网络调试助手