彻底搞定数字逻辑电平TTL、CMOS互相驱动问题以及74系列选型指导

原创文章,转载请注明出处!
在硬件电路设计过程中,最常遇到的基础问题就是各种逻辑电平匹配,74系列逻辑电路选型的问题。我们知道74系列有很多门类,比如74LS00、74HCT00、74LVC00等等,这些LS、HCT、LVC代表什么意思呢?互相之间能不能连接呢?网上以前也看到过有人总结,什么COMS驱动TTL可以,反过来不可以之类的描述,内在原因是什么?下面我就依据自己的总结慢慢道来。

74系列逻辑电路分类

74系列逻辑分类的问题,我就偷个懒,直接从书上截取了一幅图,这本书的名字是 Digital Fundamentals 11th Ed ,By Thomas L. Floyd ,强烈建议做电路设计的工程师认真完整地读一遍、至少一遍。国外的教材之所以优秀,在于作者真实的工程经历,不是照本宣科。
在这里插入图片描述
从这个表格中,就一目了然的看出来了,比如74AHCTxx系列是TTL、CMOS复合电路,既具备TTL大的驱动能力,又具备CMOS的高响应速度。

现在又可能有一个新的疑问,这些不同系列的逻辑电路,电平是多少伏的?可以随便互联吗?随着现代数字电路速度越来越快,5V电平的逻辑电路在高性能电路中基本上没有了,对于数字电路的一个常识是速度越快的电路,逻辑电平越低。再次偷个懒,不同系列逻辑电路所支持的逻辑电平如下图所总结的。
在这里插入图片描述

不同逻辑电平互联原则

假如我们约定前级的输出叫Driver,简称D;后级的输入叫Reciever,简称R。
在这里插入图片描述
大家都已经知道对于数字逻辑,需要有一个约定,输入端的电压高于一定值才认为是逻辑“1”,输入端的电压低于一定值判断为逻辑“0”,对于不同的电平逻辑,约定如下图。
在这里插入图片描述
不同电平的逻辑电路直接互联的原则说起来也挺简单,只要驱动端输出的电平逻辑能够让接收端准备识别是“1”还是“0”即可。记住如下两句话!!

  1. 输出端D的 Voh > 接收端R的 Vih
  2. 输出端D的 Vol < 接收端R的 Vil

依据这个原则,可以总结如下表。注意,这个表不需要死记,只需谨记上面两个原则即可。
在这里插入图片描述

从上面表格中可以看出,TTL输出的电路不能轻易驱动CMOS输入端,因为TTL的Voh比较低,相同供电电压的情况下,低于CMOS的Vih。
带星号的意思就是需要查一下芯片手册,能否容许接收的逻辑电平高于此芯片的供电电平。比如有些3.3V的逻辑芯片,是不能输入5V逻辑电平的。

74系列逻辑芯片选型手册

74系列逻辑电路丰富多样,为电路设计提供了极大的便利,别看有些逻辑功能简单,但灵活运用会产生意想不到的效果。小身材大身手我会在其它博文中再介绍。(有需要详细表格或开发交流的加)
在这里插入图片描述

模拟开关系列:
在这里插入图片描述
总线开关系列:
在这里插入图片描述
逻辑驱动、缓冲、转换系列:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### PyCharm 打开文件显示不全的解决方案 当遇到PyCharm打开文件显示不全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure里的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值