1. 项目的文件结构

设计PCB项目时,文件结构主要分为四个模块

  • 第一个文件夹用来存放设计PCB时用到芯片的数据手册。
  • 第二个文件夹用来存放设计PCB时用到的参考设计,包括所用芯片最小系统电路图,各种规范手册,别人设计的PCB等。
  • 第三个文件夹用来存放原理图库和封装库。
  • 第四个文件夹用来存放AD的project文件,最好在每做一些修改时,就保存为一个版本。

2. 原理图设计

首先进行原理图设计。
在此之前提一下,芯片的原理图库可以从立创商城下载,使用立创EDA的导出功能就能完成原理图库的下载。

2.1 最小系统

如下图所示,此模块的MCU选用了STM32F103RCT6,即64引脚的MCU。倒不是说非要用64引脚的才能实现,48引脚的也可以,而且利用率更高,只是因为手头刚好有STM32F103RCT6,而且这个模块只是一个用来做练习的,所以就使用此款芯片作为主控芯片。

在最小系统中,采用3.3V供电,8M的外部晶振电路,并且对BOOT0采用下拉电阻,NRST采用了上拉电阻。
为了减小模块尺寸,又考虑到功耗方面,电阻与电容的封装均采用0603。

2.2 USB转串口


一般见到USB转串口电路,使用的芯片都是CH340G,但由于本模块只是一个实验性模块,不需要使用到很多的功能,因此在查阅资料后,选用了尺寸更小但又能刚好满足需求的CH330N模块。
在CH330N的TXD以及RXD引脚都各自外接了一个LED灯,这样,在本模块开始通讯的时候,指示灯就会亮起来:上位机发送数据时,TXD1指示灯亮;上位机接收数据时,RXD1指示灯亮。
一开始设计LED灯的驱动电路时,考虑到,若直接接电阻然后驱动LED灯,将会损耗很多电流,这样可能会影响到数据的收发。因此,还有一个思路是,采用MOS管来驱动LED灯,这种方案损耗的电流很小,不会影响数据的收发,但缺点是占用的面积更大,电路更复杂。最后在网上查阅各种参考电路后,发现存在直接驱动LED灯的电路,因此最终采用了直接驱动LED灯的方案。

2.3 CAN通信


CAN收发器采用TJA1050。
CAN的外部接口采用5引脚的接插件,这样的设计是为了匹配安装CAN转USB模块的外壳。
一般来说,CAN通信部分要加上隔离电路,例如光耦隔离或电阻隔离或磁耦隔离等。但还是由于本模块只是一个实验用模块,就没有设计隔离电路。
SW1这个开关,是为了让CAN总线的一端能够根据情况,可以选择挂载或者不挂载120Ω的电阻。

2.4 JLINK仿真器


为了进一步减小尺寸,选用了J-Link仿真器的SWD模式。根据博客STM32中使用J-Link仿真器选择JTAG模式和SWD模式的区别就可设计出此电路。

2.5 电源

本模块采用外部USB供电,由于USB供电电压为5V,因此需要采用AMS1117-3.3将5V转为3.3V。
外接了一个保险丝F1,确保电路的安全。

3. PCB设计

注意,芯片的封装库也可以从立创商城下载,使用立创EDA的导出功能就能完成封装库的下载。

3.1 布局

原理图设计好后,进行编译,编译通过后,就可以将其导入到pcb文件了。但在导入元件之前,我们最好先进行一下pcb板子的尺寸设计
根据CAN转USB模块的外壳设计出的PCB尺寸图如下图所示。

根据尺寸图在keepout layer中绘制出PCB的外边框。

然后选中所有的框线,点击define from selected objects。

完成pcb板子的形状尺寸设计。接下来进行布局。

设计好后,就可以将元件导入pcb了。

布局时要注意,每一个小模块内的所有元件,在布局时最好放在一起。用已经设计好的pcb图中的电源部分举个例子,电源部分的布局如下图所示。

3.2 布线

本模块采用双层板设计。
在打过孔时,要注意:信号线采用内径为0.2mm,外径为0.45mm的过孔;电源线采用内径为0.5mm,外径为1mm的过孔。并且过孔要离焊盘远一些。
走线时,要注意:信号线采用0.2mm的线;电源线根据情况选择,至少要0.5mm的线。
CANL和CANH要采用0.5mm的线。

3.3 敷铜

本模块正反面敷铜。
敷铜时注意与GND网络连接。例如,top层敷铜时的设置如下图所示。

正反面敷铜后的pcb板子如下图所示。

基于STM32的CAN转USB模块的PCB设计相关推荐

  1. K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示

    K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 UART对应程序: IIC对应程序: 四.部分 ...

  2. 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)

    本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...

  3. K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示

    K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序 对应程序: 四.部分代码说明 1.接线引 ...

  4. B45 - 基于STM32单片机的家庭防火防盗系统的设计

    文章目录 设计要求 实物 人脸识别模块的调试 传感器采集与显示 模块设计 温湿度模块 烟雾浓度MQ2 GSM模块 人脸识别模块 语音报警模块 资源占用 源程序 主程序 处理逻辑 AD/DA转换检测烟雾 ...

  5. 基于STM32人群定位,调速智能风扇设计

    基于STM32人群定位,调速智能风扇设计(论文,源码,流程图,设计报告) 1.本系统采用 STM32 , ATmega16 , AT89S52 三款单片机为控制器, 分为主控台和工 作区两部分. 2. ...

  6. 物流配送系统设计java,基于Java的物流配送中心系统仿真模块研究与设计

    基于Java的物流配送中心系统仿真模块研究与设计摘要:本文选取物流工程中的配送中心作为研究对象,根据实际需要建立了离散事件系统模型,并按照事件安排和时间推进的机制采用java程序设计语言设计仿真模块. ...

  7. 基于stm32的正点原子Lora模块教程

    基于stm32的LoRa模块调试教程 初识LoRa 上手LoRa 程序编写 结果演示 再见LoRa 初识LoRa 简单来讲,LoRa就是一种低功耗远程无线通信技术.它是基于Semtech公司SX127 ...

  8. 基于STM32的高精度温度测控系统-原理图设计

    基于STM32的高精度温度测控系统,本篇为原理图设计分析篇 高精度温度测控仪设计原理图篇(已更新) 高精度温度测控仪设计PCB篇(已更新) 高精度温度测控仪设计STM32代码篇(未更新) 高精度温度测 ...

  9. 基于STM32和LD3320的智能语音识别柔光台灯设计

    目录标题 基于STM32智能语音识别柔光台灯设计 设计说明 原理图 系统各模块器件介绍 LD3320语音识别模块 OLED显示模块 PCB图 源程序 程序设计框架 程序流程图 主函数 OLED程序 设 ...

最新文章

  1. 性能定位常用命令整理
  2. BroadcastReceiver 接收系统短信广播
  3. Spring入门第五课
  4. 搜索背后的奥秘——浅谈语义主题计算
  5. 视频监控技术 迎来网络“多媒体”时代
  6. java验证码画布类型,【Java工具类】使用Kaptcha生成验证码写回页面中
  7. Python之 while循环
  8. 解决tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm.
  9. 百度地图开发实例文章(一)
  10. 计算机基础远程教育答案,浙大远程教育2013年计算机作业答案-1-计算机基础知识题.docx...
  11. 图解Kafka中的数据采集和统计机制
  12. Porsche保时捷Taycan维修手册电路图接线图技术培训手册维修技术资料
  13. 001-前端课程介绍
  14. Vue.js开发基础 05
  15. grep正则表达式后面的单引号和双引号的区别?
  16. web im环信陌生人聊天或客服聊天功能
  17. Linux系统中使用vim编写C语言代码实现过程
  18. RS485_Modbus通讯笔记
  19. 社群运营中品牌化和IP化运营实践
  20. 群晖服务器216j增加硬盘,群晖DS216j影视库搭建方法 | 群晖DS216j存储服务器怎么样_什么值得买...

热门文章

  1. Hadoop环境搭建(ssh免密)
  2. C#条型码二维码批量识别工具 可以从粘贴板获取图片或路径等 MFC消息示例
  3. matlab-自控原理 bode 由传递函数画出bode图(幅频特性曲线)
  4. vista下3dsmax 9 DxDDS.bmi 未能初始化的修复方法
  5. java随机数代码解析,实例解析常用的java随机数生成办法
  6. 电商收付通,商户进件,上传身份证、营业执照自动识别相关信息
  7. Python学习笔记(十一)——第三十讲
  8. 二叉树的遍历和二叉查找树
  9. emu8086:如何实现数组的倒置
  10. 利用CAN进行简单的数据发送