H3 GPIO笔记

NanoPi-NEO-Core最近买了一块,这个板子使用全志H3。查看H3的数据手册,把GPIO这部分做个笔记。

H3有7组GPIO,如下

分别是PA,PC,PD,PE,PF,PG,PL.没有PB这一组

PA有22个端口

PC有19个端口

PD有18个端口

PE有16个端口

PF有7个端口

PG有14个端口

PL有12个端口

其中两组IO支持中断。PA和PG支持中断

PIO的基址为0x01c2_0800

抛却中断配置,主要PIO的寄存器有4个,Pn_CFG, Pn_DAT,Pn_DRV,Pn_PUL

每组IO有4个Pn_CFG寄存器,Pn_CFG0-Pn_CFG3,每4bit配置一个端口模式

                           PA有22个端口,则需要4×22=88bit,则需要配置寄存器Pn_CFG0-Pn_CFG2

                例如PA的端口0配置,在Pn_CFG0的bit2-0,bit3保留位

 Pn_CFG地址计算:基址+n*36+(0-3)*4.

例如:

        PA_CFG0地址=0x01c2_0800 + 0×36 +0×4=0x01c2_0800

        PA_CFG1地址=0x01c2_0800 + 0×36 +1×4=0x01c2_0804

        PA_CFG2地址=0x01c2_0800 + 0×36 +2×4=0x01c2_0808

        PA_CFG3地址=0x01c2_0800 + 0×36 +3×4=0x01c2_080c

        ....

        PC_CFG0地址=0x01c2_0800 + 1×36 +0×4=0x01c2_0824

每组IO有1个Pn_DAT寄存器,每一bit代表IO的状态。当IO配置输出,写此寄存器改变输出状态,当配置输入,读此值代表输入状态。

Pn_DAT地址计算:基址+n*36+(4)*4

例如:

        PA_DAT地址=0x01c2_0800 + 0×36 +4×4=0x01c2_0810

        PC_DAT地址=0x01c2_0800 + 1×36 +4×4=0x01c2_0834

        .....

每组IO由2个Pn_DRV寄存器。此寄存器中每2bit表示一个IO的驱动能力。共有level0-level3

Pn_DRV 地址计算:基址+n*36+(5,6)*4

例如:

PA_DRV0地址=0x01c2_0800 + 0×36 +5×4=0x01c2_0814

PA_DRV1地址=0x01c2_0800 + 0×36 +6×4=0x01c2_0818

每组IO有2个Pn_PUL寄存器,此寄存器中每2bit表示IO上下拉配置。2'b00:上下拉禁止,2'b01:上拉,2'b10:下拉,2'b11:保留

Pn_PUL地址计算:基址+n*36+(7,8)*4

例如:

PA_PUL0地址=0x01c2_0800 + 0×36 +7×4=0x01c2_081c

PA_PUL1地址=0x01c2_0800 + 0×36 +8×4=0x01c2_0820

综上所述,每组IO有9个寄存器,所占空间9×4=36=0x24字节空间

io中断寄存器

只有PA和PG支持中断

 每组IO的中断,也是4类寄存器:PA_INT_CFG,PA_INT_CTL,PA_INT_STA,PA_INT_DEB

PA_INT_CFG0-3:每4bit配置一个IO的中断类型

        4'b0000:上升沿

        4'b0001:下降沿

        4'b0010:高电平

        4'b0011:低电平

        4'b0100:双边沿

        其它:保留

PA_INT_CTL:每bit控制中断的使能和禁止

PA_INT_STA:中断状态,每一bit表示中断状态,挂起或者没有中断挂起

PA_INT_DEB:中断防抖设置。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjinl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值