在开发项目的时候,如果单片机的UART串口通信数量不够,怎么办?

芯片哥介绍了其中的一个解决方案,是采用WK2124芯片,它就能实现扩展单片机的UART串口通信接口数量。只需要用单片机原来的1个SPI通信,就可以转换成4路UART通信。

解决完了UART串口通信数量的问题,那如果单片机的IO引脚数量不够,又怎么办呢?

可能有工程师会说,选择一个引脚数量多的单片机型号不就解决了吗,多简单的问题啊。

是的,选择一个引脚数量多的单片机型号,的确是可以解决,而且还比较简单。只不过这只是其中的一个常用方法而已。

有没有不通过换单片机的型号来解决呢?做过软件代码开发的工程师都有体会,重新换一个单片机,对于程序的设计,是一个怎样的工作量。

如果是同一个品牌同一个系列的单片机,换一个型号这还好。如果是换品牌了,又换功能了,基本上就相当于程序需要重新开发了。

基于此,可以参考第二种方案

HTR3355芯片

HTR3355芯片,是一个可以扩展单片机IO引脚数量的芯片,它与单片机的接口是IIC通信,也就是说单片机通过一个IIC通信,就可以增加IO引脚的数量。

HTR3355芯片—嘉兴禾润

芯片的左边,有两个标准的IIC通信引脚,一个是SDA,一个是SCL,单片机就是通过这两个引脚进行IO引脚数量的扩展。

扩展的IO引脚是在芯片的“右边”,分别是P0.0~P0.7和P1.0~P1.7。不难发现,HTR3355芯片总共可以扩展16个IO引脚数量。

每个扩展的IO引脚,它的工作电压在2.2V~5.5V之间。

应用电路

既然HTR3355芯片能实现扩展单片机的IO引脚数量,那具体在项目开发中,该如何使用呢?相信这个问题,有不少工程师会比较关心的吧。

HTR3355芯片应用电路

在硬件方面,只需要将芯片的SDA引脚、SCL引脚和INT引脚连接到单片机就可以了。其中INT引脚是芯片的中断输出引脚,也要连接到单片机的外部中断引脚。

在软件方面,工程师可以等效认为,HTR3355芯片的IO引脚就是单片机自身的IO引脚,单片机的IO引脚能干啥,它也能干啥。

比如读取每个IO引脚的电平状态,控制输出每个IO引脚的高低电平,这些功能在HTR3355芯片上也能完成。

假如芯片的P0.5引脚设置为输入引脚,平时的状态为高电平,如果引脚的电平被拉低到0V了,芯片的INT引脚就会向单片机输出一个中断信号。

单片机检测到有中断信号,就会让IIC通信去读取HTR3355芯片内部的寄存器,去判断到底是哪个IO引脚触发了中断信号。

其他的IO引脚功能,也是类似的,这样就实现了软件方面的开发设计问题了。

备注说明

需要强调的是,HTR3355芯片扩展的IO引脚,每个IO引脚都能自由地进行配置,可以配置输入和输出,互不影响。

芯片的每个IO引脚,它驱动电流的能力是要强于单片机IO引脚的,简单的一个例子是它能直接驱动LED灯,不需要借助三极管和MOS管。

芯片的AD0、AD1和AD2引脚,它们是IIC通信的地址选择引脚,如果没有涉及到级联的应用,直接连到GND就可以了。

总结下来,单片机的IO引脚数量不够,如果不想换单片机的型号,可以使用扩展IO引脚数量的方法,通过HTR3355芯片,只需要用IIC通信的2个引脚,就能将单片机的IO引脚数量扩大到16个。

请持续关注【芯片哥】,后面会定期更新有关于电子元器件和芯片,包括一些电子产品项目开发案例的相关内容。