CD74HC4067和CD74HCT4067器件是数字控制的模拟开关。
这个目前在某宝上可以买到按照顺序印刷好的PCB板,回来只需要焊接排针就行了。
这款芯片的Datasheet在这个链接当中。
CD74HC4067, CD74HCT4067 datasheet (Rev. C) (ti.com)
这款芯片的引脚定义如下所示:
其中:
Vcc接+5V
GND接地
Common Input/Output是通用输入输出的引脚
I0-I15是十六个输入输出的引脚
S0-S3是四个控制接通的引脚(控制I0-I15哪个引脚和通用输入输出接通)
E非引脚是控制整个的芯片是否工作的引脚
真值表如下图所示:
哪个引脚和通用引脚接通,是需要通过这个表格来确定的。
- 当E非引脚置于高电平的时候,16个引脚和通用引脚都不接通。所以为了让芯片工作,我们要把E非这个引脚置于低电平(可以接地)。
- 如果我想让通用引脚和I4这个引脚接通,那么就可以查询真值表,看S0 S1 S2 S3对应的电平是高是低,图中可以看到只有S2是对着高电平的,所以只需要把这一个引脚置于高电平,其他引脚置于低电平就行了。可能你已经发现了,这个对着的是8421码。
- 置于引脚怎么置高,我们可以使用STM32 GPIO的置位复位的方法。
高电平就写GPIO_SetBits,低电平就写GPIO_ResetBits
接下来就是想他的应用了。
我之前在项目中用到这个是为了拓展STM32的ADC接口,让ADC可以依次采集16个传感器的数据。
但是这个的精度没有办法保证,只能是作为一个大概的测量。在这个电路图上,STM32的ADC功能对应着的是PA5这个引脚,所以我把4067的通用输入输出的端口接在了这里,I0-I15的引脚接着传感器,这样就可以实现几乎同时测量16个传感器的功能了。