前言

  做个usb转串口,同时兼容ttl,讲述硬件模块基础的开发流程,本篇描述了全流程过程,然后选型了合适的元器件。

 

基本流程

  以下是笔者个人从事过相关硬件研发,总结出来的流程,仅代表个人意见。

设计原理图

  原理图至关重要的第一步,后续PCB依据原理图设计,本模块涉及电源电路,485与ttl芯片以及其外围电路,还有模块输出输入。
  设计原理图的时候是与选型芯片方案相辅相成的:

  • 如果已经设计好或者有了只是更改下主芯片,那么就是先选型芯片后修改原理图了。
  • 如果什么都没有,那么也可以先选择主485与ttl转换芯片,然后设计依据其需要的外围电路设计电路图。

  此步骤并没有什么标准,是做硬件最关键的步骤,后续的一切都基于原理图的正确设计,原理图一旦设计存在错误,后续能补救的空间是没有的(硬件出版后的调试 过程中,可以采取外接电源,外接信号,飞线等方式进行硬件上的调试)。

封装映射阶段

  此阶段是需要对上述原理图使用到的一些元器件的示意图进行元器件硬件上的映射,元器件的大小引脚映射。
元器件封装库:一般来说供应商公司、官网等相关渠道会提供其出售的元器件封装,以避免设计者自行创建,网上也有封装库购买,硬件工程师有积累的封装库。

PCB设计阶段

  PCB设计阶段,就是将原理图与封装库映射完后,然后生成PCB,生成的PCB是杂乱无章的,元器件的引脚是通过线网络来连接的(实际上物理上的连接是没有的),需要自己通过比如机械层来划定PCB的实际大小,然后把元器件布上去(多层板,焊盘,过孔,差分,屏蔽,DIP涉及的知识非常多,设计者需要知识经验的长期积累)。

PCB打样阶段

  PCB设计好后,导出bom表和可供生产的文件,交给打板子常见,bom表用于采购元器件,如果是像量比较多或者bga等封装,都是等样板出来后,交给专门的贴片厂子去贴片,元器件比较少又没有难焊接的,则一般都是研发人员手焊。

PCB的程序调试研发测试阶段

  PCB成型之后,需要驱动系统人员联合硬件人员一起调试并测试,确认板子上的电路基本没啥问题(只能说明调试的时候没问题,一般调试的时候没问题不涉及高速等复杂电路,后续生产一般也不会有问题),则可以开始进入小批量阶段。有些电磁干扰,震动实验一般也是在此阶段测试。

小批量生产阶段

  小批量阶段一般是生产10-50块板子,然后刷入程序(此时基础的测试程序都已经完成,如果是应用开发,可能应用开发也完成),然后进行老化等相关的测试(高温、48小时连续运行等一些出厂前的老化测试),通过测试之后,小批量可以发货。

批量生产阶段

  小批量稳了,然后就会根据需求进入批量阶段,批量阶段有些传统企业(笔者就认识这样一家企业,月出货3-4K左右),都会进行老化测试,进一步确保产品质量稳定。(其实产品前期不做足够的实验,发出去出现问题的几率更大,而维保售后的费用成本则更高)

 

USB转232按照需求大致选型过程

选型usb转串口芯片

   
  选型的过程,不多说,一般是需要什么模块就查看什么模块,也可以使用自己有存货的模块。
选型还涉及选型后的芯片的外围器件,外围器件多了成本也高了,总直硬件设计一个复杂的过程,复杂在成本计算(芯片,外围器件,是否贴片等),个人熟悉程度等等,挺麻烦的一个事。

usb转ttl芯片选型

CH340+SP232

  usb转ttl的usart,不带232电平功能,这样既可以拿到5V又可以拿到3.3V的ttl。
  
  
  电脑的USB是5V的,所以需要匹配个5V的ttl转232电平:

  • 5V的TTL转232电平芯片:max232,sp232
  • 3.3V的TTL转232电平芯片:max3232,sp3232
      ttl分为5V和3.3V,设计的时候,我们全部留出来,然后看看,选择5V,

CP2102

  
  只能输出3.3V的ttl。

PL2303

   

最终选型结果:CH340G+MAX232

  

5V转3.3V电源芯片

  

晶振

  2DIP的即可,CH340G需要一个有源12MHz的晶振。
  

USB口

  这个不需要选型,找个便宜的即可,使用dip的牢固些。
  

芯片转换口

  这个是切换输出的ttl是3.3V和5V的,使用标准2.54mm的DIP:
  

232切换口

  是否输出rs232,如果输出,那么需要将芯片电平输出转换切换至5V。
  同“芯片转换口”

输出DIP口

  要很好的伸出来,考虑到水平,所以选择90弯折的DIP针,其实大部分类似模块也是这么做的。
  

透明热缩管

  做成长条状,我们可能需要把他包住,选个透明管吧
  
  得根据实际设计出得PCB再选择尺寸。

硬件开发笔记(二):硬件开发基本流程,制作一个USB转RS232的模块(一):开发基本过程和元器件选型的更多相关文章

  1. 硬件开发笔记(四):硬件开发基本流程,制作一个USB转RS232的模块(三):设计原理图

    前者   前面建立好的基础的元器件,下面开始设计原理图.   需求 USB转RS232,输出RS232 可以选择性输出5V的TTL 可以选择性输出3.3V的TTL   设计原理图 步骤一:CH340G ...

  2. Django开发笔记二

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.xadmin添加主题.修改标题页脚和收起左侧菜单 # ...

  3. SDL开发笔记(二):音频基础介绍、使用SDL播放音频

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  4. EasyUI 开发笔记(二)

    接上篇 :EasyUI 开发笔记(一)  (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...

  5. Hi3516开发笔记(六):通过HiTools使用USB/串口将uboot、kernel、roofts和userdata按照分区表烧写镜像

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121706033红胖子(红模仿)的博文大全:开发技术集合( ...

  6. Vue-cli开发笔记二----------接口调用、配置全局变量

    我做的一个项目,本身是没用任何框架,纯手写的前端及数据交互,项目已经完结.最近学Vue,于是借用这个项目,改装成vue项目. (一)接口问题:使用axios的调用方法,proxyTable解决开发环境 ...

  7. 离线谷歌地图API的开发笔记(二)

    一.地图引擎介绍 离线地图引擎运行在WINDOWS平台上,底层由Visual c++语言开发,编译为OCX插件方式.占用文件少,便于二次开发的快速安装部署. 具有专业地图的基础操作功能:地图放大.缩小 ...

  8. RBL开发笔记二

     17:13:55 2014-08-25 有以下几个点:  第一 :怎么在预处理阶段能够做到识别某个宏是否给定义了  这里就定义了一个SystemConfig.h 专门做这个事情  当然是需要make ...

  9. openwrt开发笔记二:树莓派刷openwrt

    前言及准备 本笔记适用于第一次给树莓派刷openwrt系统的玩家,对刷机过程及注意事项进行了记录,刷机之后对openwrt进行一些简单配置. 使用openwrt源码制作固件需要花费一点时间. 平台环境 ...

  10. 高性能JavaScript笔记二(算法和流程控制、快速响应用户界面、Ajax)

    循环 在javaScript中的四种循环中(for.for-in.while.do-while),只有for-in循环比其它几种明显要慢,另外三种速度区别不大 有一点需要注意的是,javascript ...

随机推荐

  1. [转帖]KingbaseES 事务总结

    目录 1. 什么是事务? 2. 事务的属性-ACID 3. 数据库事务的操作方式 3.1. SET TRANSACTION 3.2. BEGIN 3.3. COMMIT 3.4. ROLLBACK 3 ...

  2. kubeadm 搭建 k8s 时用到的常用命令汇总

    简单记录一下 kubeadm config images list 修改镜像名称 docker tag registry.cn-hangzhou.aliyuncs.com/google_contain ...

  3. CTT Day3

    T1 忘了叫什么名字 对于一个排列 \(p\),定义它的权值为其有多少个子串是一个值域从 \(1\) 开始的排列.给定排列 \(p\),对于 \(1\le i\le j\le n\),定义 \(f(i ...

  4. Spring Boot 统一RESTful接口响应和统一异常处理

    一.简介 基于Spring Boot 框架开发的应用程序,大部分都是以提供RESTful接口为主要的目的.前端或者移动端开发人员通过调用后端提供的RESTful接口完成数据的交换. 统一的RESTfu ...

  5. vscode中快速声明数据类型

    如何快速声明数据类型 上面这张图 let obj1= reactive({ listArr: [], backArr: [{name:'张三',age:10, info:'本科'}], age: 10 ...

  6. 【二】强化学习之Parl基础命令--PaddlePaddlle及PARL框架{飞桨}

    相关文章: [一]飞桨paddle[GPU.CPU]安装以及环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习入门简 ...

  7. 【编写环境一】遇到常见python函数处理方式

    1.python实现两个一维列表合并成一个二维列表 >>> list1 = [1,2,3,4,4] >>> list2 = [2,3,4,5,2] >> ...

  8. 2000元内最超值游戏处理器!锐龙5 7500F首发评测:轻松超频5.6GHz游戏追平i5-13600K

    一.前言:首款不带核显的锐龙7000处理器 以往的桌面锐龙处理器,带核显型号的很少,而到了Zen4时代,此前已上市的锐龙7000系列处理器都集成了核显. 现在,AMD锐龙5 7500F来了,这是AMD ...

  9. DNS反向解析

    一:创建反向解析区 1.和创建正向解析区的步骤类似,选主要区域 这里设置的IP是192.168.1,一直点确定即可 2.指针记录即反向解析记录,记录ip对应的域名,是反向解析区最常用的记录 输入ip和 ...

  10. Linux服务器查看端口是否开启或占用

    一.查看端口是否启用 (1)lsof -i :8080 查看8080端口被哪个进程占用 (2)netstat -lnp|grep 8080 查看8080端口被哪个进程占用  (3)ss -nlap | ...