热门标签 | 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

 

 


推荐阅读
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • redis没有直接提供一个http的接口,要是用php,python,当然也是可以实现的。性能的比较的话,lua的能力要比p ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 本文介绍了如何在 Spring 3.0.5 中使用 JdbcTemplate 插入数据并获取 MySQL 表中的自增主键。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
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社区 版权所有