最近两年(date:2022年3月3日)MCU主控芯片的价格和货源都比较不稳定,让人担忧。
在芯片型号稳定的时候,IO不够换一个封装的芯片就好,价格不会差太多,但在当前这个形式下,价格相差太多,甚至有些封装不是那么号采购。
于是又有了扩展IO的需求,方式多样。
一、专用IC
一些IIC接口的 ,如CH422 CH423 ,AW9523B,CAT9555YI,PCA95535,PCA9555,
https://www.ti.com/interface/i2c/general-purpose-ios-gpios/products.html
二、74系列芯片的组合,优点是成本低,货源稳定,4根总线可以扩展级联很多出来。
自己用过 74HC595 + 74HC166的组合
发现 74HC595 + 74HC165的组合网上用的较多,做一些比较日记。
关于74HC165与74HC166
HC165
SH/LD 与输入信号构成的输入逻辑电路
SH/LD | A…H | R | S |
---|---|---|---|
0 | 1 | 1 | 0 |
0 | 0 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 0 | 1 | 1 |
Shift or Load input, When High Data, shifted. When Low data is loaded from parallel inputs.
SH/LD 为高电平时候 ,移位寄存器的数据不随外部变动,此时做平移操作可以移出数据。
SH/LD 为低电平时候 ,移位寄存器的数据随外部变动发生置位和清零(R/S),用于读取外部数据。
74HC166
SH/LD 与输入信号构成的输入逻辑电路
用于选择D触发器的输入数据是“上一级的输出”还是“外部数据”
SH/LD 为高电平时候 ,移位寄存器的数据为上一级数据,此时做平移操作可以移出数据。
SH/LD 为低电平时候 ,移位寄存器的数据为外部数据,用于读取外部数据。
两者相比较
HC166带有clr功能,输入读入的时候,需要LD在低电平的时候,发一次CLK↑,来读入,之后LD切到高电平,再发CLK来读出数据。表现为同步载入的功能。
HC165 SH/LD为低电平的时候即读取了外部数据到D触发器,只需切换LD为高电平后,发CLK即可读出输出出来。表现为异步载入数据
SRCLK上升沿的时候将SER的数据读进存储器,读满后通过RCLK的上升沿将存储器数据一次同步输出。带有清零功能,清零后需要发一个rclk脉冲 才能将输出清零。