目录
前言
一、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的主要特点和特性如下:
-
多功能IO口: TCA6424提供了24个通用IO口,这些IO口既可以配置为输入模式,也可以配置为输出模式。这使得TCA6424非常适合于需要额外IO口的嵌入式系统和应用。
-
I2C接口: TCA6424使用标准的I2C总线进行通信,需要两根线(SCL和SDA)。这种串行通信协议使得芯片能够通过少量的引脚与主控器连接,从而减少了硬件复杂性。
-
可编程引脚方向: TCA6424的每个引脚都可以单独配置为输入或输出模式。这意味着您可以根据需求动态地改变引脚的工作方式。
-
中断功能: TCA6424支持引脚的中断功能,可以在引脚状态发生变化时产生中断请求,通知主控器进行相应的处理。
-
内部上拉和下拉电阻: TCA6424允许您配置引脚的上拉或下拉电阻,以便于在输入模式下实现信号的稳定采集。
-
低功耗设计: 芯片具有低功耗特性,适用于移动设备和需要长时间运行的嵌入式系统。
-
广泛的应用: TCA6424可用于各种应用,如工业自动化、嵌入式系统、家庭自动化、机器人、传感器节点等,为这些应用提供了额外的IO资源。
二、原理图连接
T113-S3采用I2C接口与TCA6424连接,具体连接示意图如下图所示:
三、设备树配置
通过原理图可知,扩展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
选中 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扩展功能!