热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

录入设备(3)——51单片机原理图及PCB设计

❤2018.3.25关于录入系统的原理图和PCB其实之前设计出一个版本了,是下面这个,但是因为好多功能还不明确,所以一直搁着࿰

❤2018.3.25

关于录入系统的原理图和PCB其实之前设计出一个版本了,是下面这个,但是因为好多功能还不明确,所以一直搁着,现在要准备做实物了,这下要好好做。

大概就是这样的

这个是控制板,还有一个驱动板,没弄好,就不放上去了。

这次要改的内容主要是把之前用的uln2803驱动芯片换成AQV201,朱总说这个在PLC上面应用很广,不过反正我在淘宝上搜了一下没几家有卖的感觉不怎么热门。

这个芯片的资料大概是这样的:

大概意思就是这是个光耦,里面有一个或者两个场效应管,同时起到隔离和驱动的效果(听起来还不错),而且驱动电流够大,里面自带续流二极管(是么?),不需要复杂的外围电路。

 

除了更改驱动芯片之外,还要做的的是把USB转串口功能集成到板子上,用的是CH340芯片。之前我觉得CH340的外围电路太复杂,自己做比较困难,可是前几天查了查相关资料感觉还挺简单的,没有我想象的那么复杂,而且作为一个完整的产品还是集成度高一点显得专业(汗。。),CH340的电路大概是这样的:

有一些需要注意的地方这篇文章讲的很详细:

CH340电路设计注意事项

https://blog.csdn.net/jazzsoldier/article/details/70158874

前辈们的文章在下拜读了。

另外我在查TXD和RXD数据线中用不用串电阻的问题的时候,在知道里查到了这样一句话:

其实还不太明白,另外对于到底需不需要串电阻这一点我依然不太了解,在arduino的原理图里我看到是有串的。

 

除此之外,我还借鉴了arduino和扩展板对插的连接方式,打算把排线连接改为对插。

 

    ♣啊对,还有一点,朱总说最好有个板载5v供电,不要只用USB口供电,怕电流不够,其实我觉得还好吧。。。不过朱总既然这样说了,我还是弄个降压模块吧。用7805直接把24v降到5v据说发热会很严重,查了很多资料还是没找到什么好的解决办法,我打算先用一个7812降到12v再用7805降到5v,然后再装散热片,尽量让热量更分散而且更容易散发出去。

 

❤2017.3.27

今天无意中查到51单片机最小系统有个31引脚需要注意的,当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行.这一点我以前都没注意过,虽然影响不大,但是还是要注意细节哈。

参见:

 


单片机最小系统

https://blog.csdn.net/mini92/article/details/71191718

 

❤2017.3.29

altium designer使用技巧:

1、通过工程→显示差异 实现一个原理图对应一个PCB

2、布线过程中按 * 键能实现切换布线层及放置过孔

3、环路自动消除能防止多余的布线,如下图

但在Vcc及GND是需要冗余布线的,大概过程是这样的。。

 

❤2018.4.4

    前两天在老板多次催促之下,通了个宵终于把pcb弄完了,时间原因还是有很多不完美的地方,这两天比较颓废,没有记笔记,今天把笔记补上哈。

 

    ♣之前问了朱总个问题,光耦是在单片机输出高电平的时候触发好,还是低电平触发好,朱总说从原理上来说没什么区别,但是有一点,当输出高电平时触发的话要考虑单片机复位或开机时,所有引脚都是输出高电平这样的情况,也就是说当所有引脚输出都是高电平时,不能对整个系统造成不利的影响,所以如果会有影响的话,那就还是用输出低电平触发的方式比较好。get√

 

    然后还有个特别需要注意的地方,手动布线的时候一定要一面走横线一面走竖线,然后最后再把影响不到的线优化,如果一开始就随意走那到最后会很抓狂。。。另外手动布线的顺序一定要把握好,最好不要一块一块的布线,这样后面有线需要穿过去的时候就很难受。。。最好是把连接多的线先布好,比如数据总线。

 

    然后就是这个版本的PCB图上一下哈,为了清晰点我先把敷铜去掉了。

控制板:

驱动板:

    还是要吐槽一下一根一根的布线真的很辛苦的!

第一版PCB实物图奉上:

 

❤ 2018.5.14

其实早就应该补充了,上次的板子焊好之后是这样的:

基本能满足功能,但是确定还是很大的,供电模块体积太大了,为了控制发热选择了用7812和7805级联的方式,还加装了散热片,其实从测试情况来看发热量其实并不严重。

另外一个很大的问题就是通讯不稳定。

这个就很严重了,经过压力测试,串口连接会不定期的断开,我把所有的芯片和元件都换过一遍还是会出现,所以怀疑是布线的问题,表现就是晶振不起振。我查了很多资料,好像这个问题还不是很罕见,有很多自己设计通选模块电路的同学都遇到过这种情况,也有人提供了各种解决方法,但是这些方法我经过测试并没有显著效果。其中提到最多的问题就是差分线的布线方式问题,里面强调了要用差分布线的方法,但是我查了很多资料都没有能够确切地了解什么是差分布线,还有比如说在数据线上加上拉,在晶振上并联电阻等等方法我试过都没能够解决问题。

这个网址讨论了一些处理方法可以参考:

点击打开链接

我最后的决定是不用自己设计的电路,买现成的模块,这个在现在看来是最能够解决问题并且成本最低最有效的方法,但是实际上对于我来说依然不知道该怎么去处理。所以如果将来有大神指点我再回来更新吧。

大概第一代PCB就是这样了,我以为朱总换方案之后我的工作差不多就结束了,但是没想到朱总又心血来潮搞了一个新的设计,然后我又脑洞大开的提了很多“建议”所谓自己挖的坑跪着也要填上,所以就有了下面这版设计。

这版本来朱总就是打算把之前的电磁铁部分换成圆形的,然后接我上次那个控制器,但是我就很厉害了,我说这个完全可以把控制和驱动都集成在上面嘛!于是又挖了个坑,为了在这么小的板子上放上所有的东西,我更改了不少封装,更改了电源模块,用了10mil的布线和8mil的间隔,还好勉强放下了,不过稳定性怎么样就不知道了,毕竟24v驱动电压和5v控制电压混合在一起,想想就不靠谱。。。(摊手)

不过从理论上毕竟实现了,下面就是等着到货然后装上测试了。

 

❤ 2018.6.19

我又偷懒了,漏了好多内容。

板子到了之后经过测试又发现很多问题,比较严重的是电源模块,DCDC的封装画反了,虽然勉强可以焊得上,但是不知道是什么问题,一通上24v就冒烟,吓得我赶紧把他掰下来。。。。

    然后还有个问题就是贴片真TM难焊。。。。

    刚焊好测试的时候一切正常,在长时间工作测试的时候出现了一个诡异的问题:工作一段时间之后就会出现两个电磁铁同步动作。

    在排除了是电路板布线的问题之后,经过观察,发现同步动作的都是对应单片机固定某几个管脚的电磁铁,经过逐步排除发现居然是P0口的上拉排阻短接,使用电烙铁轻点之后排除了部分故障。但是还有一部分电磁铁出现了更诡异的问题:只有在运行一段时间之后会出问题,放一段时间问题消失,这TMD什么鬼。

    后来在经过耐心排查之后发现是单片机管脚之间出现短接,而且只有在工作一段时间之后才会出现,我去。。。

    看来手残真的不能焊贴片。

    电源部分的问题依然没有解决,24v转5v要同时兼顾体积和散热,确实有点困难,不过还好经过讨论,5v供电打算使用外部输入,所以现在不用费力解决冒烟的问题了。

 

❤ 2018.6.19

    是这样的,上一个日期是为了把之前欠的内容补上,我现在面临的问题是,之前的东西都要作废了!!!

 

    因为本人能力有限,无法同时兼顾扫描和录入的问题,所以老师找来了欣师兄帮忙,欣师兄果然见多识广,针对IO口不足的问题选用了针脚更多的STM32单片机,从而节省了很大的铺设译码器和锁存器的空间。

    不过针对第一款设备来说,这个并不是那么需要,因为空间足够,所以我就继续做了。但是现在有两款体积更小的设备,于是我原来的方案就放不下了,于是就要改成欣师兄的方案,于是我之前做的所有工作就全白干了。。。。

    不过话说回来,既然有更先进的方案,确实没必要在旧方案上费脑筋改进,我也算是学到了不少东西吧。

 

    但是但是,现在的问题是欣师兄的方案在这两款新设备上依然空间有限(主要是布线的问题),所以可能需要使用4层板,关于四层板我查了下相关的东西:

○ 四层板的布局:

    一般top和bottom是信号,里面两层是vcc和gnd

○ 四层板的设置:

    参考这个:

百度知道:AD设置四层板

○ 四层板的设计流程

    包括不同电压Vcc的分割,模拟地和数字地的分割等等。

    参考这个:

四层板的设计流程简介

 

    好了先这样,剩下的后面补,我先画着。

 

❤ 2018.9.14

    是这样的,其实我觉得这版51单片机的版本已经做的很完善了,但是鉴于整体改为了stm32的版本,所以第一款保留51的设计就没有必要了,于是。。。。

。。。

。。。

    算了从新来吧,新开一篇文章记stm32版本的。

    over

 

 


推荐阅读
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • U盘测试の量产过程及量产前后性能比较
    测试优盘:亿捷速豹CM981优盘大小:4G优盘芯片:ITE(联阳)IT1167FlashID:E ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • https:www.bilibili.comvideoav43996494?p61补充说明(修正前面代码存在问题):#先验框筛选defchoose_anchor_boxes(sel ... [详细]
  • 很多同学对热备,冷备,云备了解不深,我科普一下IT行业各种备份术语。以后别闹笑话了。假设你是一位女性,你有一位男朋友&#x ... [详细]
author-avatar
sijiamian_767
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有