【驱动】RK3576修改驱动,实现RS485自动收发
1、引脚编号
1)GPIO 层级结构:
芯片的 GPIO 通常分为多个 bank(主组),如 GPIO0、GPIO1、GPIO2…(编号从 0 开始)。
每个 bank 内部又分为多个 子组(A/B/C/D…),每个子组包含 8 个引脚(编号 0~7)。
2)子组(A/B/C/D)的引脚数量:
标准设计中,每个子组(A/B/C/D)固定包含 8 个引脚(0~7),对应二进制寄存器的 8 个位(便于通过寄存器操作控制引脚电平、方向等)。
例如:
A 子组:引脚 0~7(共 8 个)
B 子组:引脚 8~15(共 8 个)
C 子组:引脚 16~23(共 8 个)
D 子组:引脚 24~31(共 8 个)
实例对应(以 RK3576 为例):
- GPIO4_C0 → GPIO4 主组,C 子组,0 号引脚 → 对应 bank4 的第 16 号引脚(C 子组起始为 16 = 2×8)。
- GPIO4_C1 → GPIO4 主组,C 子组,1 号引脚 → 对应 bank4 的第 17 号引脚。
3)引脚编号:
引脚编号为计算公式为:
bank编号*32 + 组号*8 + 引脚号
以 GPIO2_D7 为例:
- bank为2;
- A、B、C、D分别对应0、1、2、3
因此:GPIO2_D7 = 232+83+7 = 95
4)RK3576 的 GPIO 引