ARM 关于PINSEL的解释

ARM 416浏览
RM LPC2131 关于PINSEL的解释

概念引脚连接模块通过配置寄存器控制多路开关,来连接引脚与片内外设;(P0.1/RXD0/PWM3/EINT0)

用途:引脚连接模块的用途是将引脚配置为需要的功能,可实现独立的引脚配置;

应用:引脚选择寄存器PINSEL0PINSEL1的复位值都是0x00000000;具体设置需要参照配置表

  1. PINSEL0总共32位,2个一组(暗含取值范围00
    - 11
    ,示例
    P0.1/RXD0/PWM3/EINT0四个功能通过00/01/10/11来选择),从P0.0P0.15;
  2. PINSEL0总共32位,2个一组(暗含取值范围00
    - 11
    ),从P0.0P0.15;
  3. PINSEL1总共32位,2个一组,P0.16P0.31;
  4. 单独将PINSEL2列出,是因为它比较特殊,因为对它的使用需要用“读 - 修改 - 写”的方法来访问。

 

 

注解:对位0
~ 2
/或位3的意外写操作,会造成调试和/或跟踪功能的丢失。

           复位值        述
                                                                           

10        00          保留,用户不得向其写入1                                                   

  2                     该位为0时,P1.36
: 26
用作GPIO
     P1.26(有个上划线,表示低电平)

                        该位为1时,P1.36
: 26
用作一个调试端口;  TRACE(有个上划线,表示低电平)

 3                      该位为0时,P1.25
: 16
用作GPIO
       P1.20(有个上划线,表示低电平)

                                          该位为1时,P1.25
: 16
用作一个跟踪端口; TRACESYNC(有个上划线,表示低电平)

31 4                   保留                      

 

 

 

    一般在设置引脚的功能时,为了不影响其它的引脚都采用“读取 - 修改  回写”的方式进行,即先读取寄存器值,然后进行逻辑“与”、“或”操作,再回写到此寄存器。

如将P0.8P0.9设置为TxD1RxD1功能(P0.8P0.9均对应2位,故其应为17:1619:18

PINSEL0 = ( PINSEL0 & 0xFFF0FFFF ) | ( 0x05
<< 16 )
 //一次性设置完2个引脚,对应值

                    这里0对应的16-19         //需要参照寄存器功能表

 

常见的,在选用PINSEL2,使得P1[25:16]引脚连接GPIO时,设置如下:

PINSEL2
= PINSEL2 & ( ~ 0x08 )
     //就是将PINSEL2选择寄存器2的第3位设置为0