T113-S3-TCA6424-gpio扩展芯片调试

目录

前言

一、TCA6424介绍

二、原理图连接

三、设备树配置

四、内核配置

五、gpio操作

总结


前言

        TCA6424是一款常用的GPIO(通用输入输出)扩展芯片,可以扩展微控制器的IO口数量。在T113-S3平台上,使用TCA6424作为GPIO扩展芯片可以方便地增加可用的IO口。本篇博客将为您提供一份详细的调试指南,帮助您顺利将TCA6424与T113-S3集成,并实现GPIO功能的扩展。


一、TCA6424介绍

        TCA6424是德州仪器(Texas Instruments)公司推出的一款IO扩展器,用于将微控制器的数字IO口数量扩展。它提供了24个独立的GPIO引脚,可以通过I2C总线与主控器(如微控制器、FPGA等)进行通信。TCA6424的主要特点和特性如下:

  1. 多功能IO口: TCA6424提供了24个通用IO口,这些IO口既可以配置为输入模式,也可以配置为输出模式。这使得TCA6424非常适合于需要额外IO口的嵌入式系统和应用。

  2. I2C接口: TCA6424使用标准的I2C总线进行通信,需要两根线(SCL和SDA)。这种串行通信协议使得芯片能够通过少量的引脚与主控器连接,从而减少了硬件复杂性。

  3. 可编程引脚方向: TCA6424的每个引脚都可以单独配置为输入或输出模式。这意味着您可以根据需求动态地改变引脚的工作方式。

  4. 中断功能: TCA6424支持引脚的中断功能,可以在引脚状态发生变化时产生中断请求,通知主控器进行相应的处理。

  5. 内部上拉和下拉电阻: TCA6424允许您配置引脚的上拉或下拉电阻,以便于在输入模式下实现信号的稳定采集。

  6. 低功耗设计: 芯片具有低功耗特性,适用于移动设备和需要长时间运行的嵌入式系统。

  7. 广泛的应用: TCA6424可用于各种应用,如工业自动化、嵌入式系统、家庭自动化、机器人、传感器节点等,为这些应用提供了额外的IO资源。

二、原理图连接

        T113-S3采用I2C接口与TCA6424连接,具体连接示意图如下图所示:

T113-S3-TCA6424-gpio扩展芯片调试_第1张图片

T113-S3-TCA6424-gpio扩展芯片调试_第2张图片 

 T113-S3-TCA6424-gpio扩展芯片调试_第3张图片

三、设备树配置

        通过原理图可知,扩展io芯片通过T113-S3 i2c2相连接,在SDK里面通过修改device/config/chips/t113/configs/evb1_auto/board.dts设备树配置文件,添加设备树配置文件内容,具体内容如下所示:

&twi2_pins_a{
	/*pins = "PE12", "PE13";*/
	pins = "PG14", "PG15";
	function = "twi2";
	drive-strength = <10>;
};

&twi2_pins_b{
	/*pins = "PE12", "PE13";*/
	pins = "PG14", "PG15";
	function = "gpio_in";
};

//TCA6424ARGJR
&twi2 {
	status = "okay";
	pinctrl-0 = <&twi2_pins_a>;
	pinctrl-1 = <&twi2_pins_b>;
	
	tca6424@22 {
		compatible = "ti,tca6424";
		reg = <0x22>;
		status = "okay";
		
		gpio-controller;
        #gpio-cells = <2>;
        interrupt-parent = <&pio>;
        interrupts = <&pio PG 12 GPIO_ACTIVE_HIGH>;
        interrupt-names = "int1";
	};
};

四、内核配置

        linux内核需要打开TCA6424驱动配置,在gpio driver下找到tca6424驱动配置项点,并*选中编译进内核即可,配置选项如下截图所示:

 > Device Drivers > GPIO Support > I2C GPIO expanders

T113-S3-TCA6424-gpio扩展芯片调试_第4张图片

 选中 PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports 选项。

正常启动后在/sys/class/gpio下可以看到如下部分内容即可表示加载成功:

 特别注意:其中gpiochip392表示该IO扩展芯片的gpio基地址为392,其24个gpio pin号为392~415区间,使用sysfs方式操作gpio即可。

五、gpio操作

       在392~415区间选择可操作的gpio,假设选择一个该芯片未使用的一个管脚对应的管脚号 X,执行以下命令,如果能看到相应目录的值发生预期的改变的话,则说明该 GPIO是可操作的:

1. 导出
/sys/class/gpio# echo X> export

2. 设置方向
/sys/class/gpio/gpioX# echo out > direction

3. 查看方向
/sys/class/gpio/gpioX# cat direction

4. 设置输出
/sys/class/gpio/gpioX# echo 1 > value

5. 查看输出值
/sys/class/gpio/gpioX# cat value

6. 取消导出
/sys/class/gpio# echo X > unexport

X 导出gpio号 > 芯片基号 < 可扩展io号


总结

        通过本指南,您应该能够成功调试T113-S3平台上搭载TCA6424 GPIO扩展芯片的GPIO功能。确保在每个步骤中仔细阅读相关文档和数据手册,并进行逐步调试。如果遇到问题,可以参考官方文档、开发社区或寻求专业帮助。祝您在调试过程中获得成功,实现GPIO扩展功能!

你可能感兴趣的:(全志平台,全志,linux,c语言,T113-S3,TCA6424)