小藤开发者套件40PIN中GPIO的复用配置
收藏回复举报
小藤开发者套件40PIN中GPIO的复用配置
发表于2023-08-17 18:07:54
0 查看

1. 为什么要进行GPIO复用?

小藤Atlas 200I DK A2提供了标准的40PIN低速GPIO接口,包括UARTSPII2C等接口,在官方文档-40Pin接口介绍40Pin接口顺序图可以查看GPIO号与引脚号的对应关系,40Pin连接器定义则可以查看到各引脚的默认功能。但是除了默认功能,GPIO口还有其他更丰富的功能,若你的项目需要,可以对其进行灵活配置以满足多样的使用需求。

2. 如何进行GPIO复用配置?

答案是修改GPIO引脚的寄存器地址的值,可以使用devmem工具配置实现,这种方法是临时的,重启后则恢复默认需再次配置,优点是简单快捷

devmem是Linux系统下的一个命令行工具,其作用是直接对系统物理内存或设备地址进行访问与读写。在开发者套件的官方镜像中可以直接使用,不过最近发布的RC2版本暂不支持,需要额外进行安装配置,可以参考另一篇帖子的devmem安装部分。

复用配置需要参考官方文档-40Pin接口复用关系中的复用寄存器信息表,表中列出了开发者套件的40Pin接口中可复用的26个功能管脚的信息,包括复用寄存器基地址及偏移地址、对应的管脚号、GPIO位号、复用寄存器取值等信息。配置复用功能时需要查询该表格,找到对应管脚的地址,查询或修改寄存器后即可进行查询或配置。

看两个栗子:

cke_367166.png

①查询

先找到寄存器基地址偏移地址,两者相加得到该GPIO的寄存器地址,调用devmem工具进行查询:

比如查询32号引脚,即GPIO12的功能,0x00C4000000 + 0x0D0 = 0x00C40000D0

./devmem 0x00C40000D0

查询得到的值对应的复用信号则是该GPIO的功能。

②修改复用

先找到寄存器基地址偏移地址,两者相加得到该GPIO的寄存器地址,再找到想要复用的功能对应的复用信号值,调用devmem工具进行赋值修改:

比如将8号引脚,即GPIO14的功能修改为GPIO,0x00C4000000 + 0x0B4 = 0x00C4000B4,GPIO功能对应的复用信号值为0x3,即3

./devmem 0x00C40000B4 32 3

命令中的参数32表示写入32位,为固定值,最后一个参数为需要写入的复用信号值。

至此,便完成了GPIO的复用配置,可以参考官方文档进行后续功能的使用啦!

注意!!这种方法只能临时修改复用寄存器的值,若开发板重启则恢复默认,若要再次复用,需重新配置!

若想要复用配置永久生效怎么办?可以参考官方文档-接口复用操作进行操作~

本帖最后由 匿名用户2025/04/01 17:20:57 编辑

我要发帖子