Microprocessor/DSP (TMS320F28x) F2833X General Purpose I/O (GPIO) 사용법
  • 728x90
    반응형

     

    GPIO 설정

     

    Step 1. 핀의 기능을 계획한다.

    F2833X 는 멀티 플렉싱 방식으로 하나의 핀을 GPIO로 사용할 수도 있고 최대 3개까지의 DSP의 부가기능을 사용하기 위한 핀으로 선택할 수 있다.

     

    Step 2. 내부 풀업(pull-up)저항 사용여부 선택

    GPIO pullup disable 레지스터(GPAPUD, GPBPUD, GPCPUD)를 이용하여 내부 풀업저항의 사용여부를 선택한다. 기본값으로 GPIO~GPIO11은 풀업저항을 사용하지 않는 것으로 설정되어 있고 GPIO12~GPIO79는 사용하는 것으로 되어있다.

     

    Step 3. 입력 Qualification 선택

    특정 핀을 입력으로 사용할 때, 필요한 입력 Qualification을 선택한다. GPACTRL, GPBCTRL, GPAQSEL1, GPAQSEL2, GPBQSEL1, GPBQSEL2 레지스터를 사용하여 설정한다. 초기값으로 모든 입력 신호는 SYSCLKOUT에 동기되도록 설정되어있다.

     

    Step 4. 핀의 기능 선택

    GPxMuUXn 레지스터를 통해 핀을 GPIO로 사용할 것인지 아니면 다른 기능의 핀으로 사용할 것인지를 선택한다. 모든 GPIO 가능 핀들은 리셋시 GPIO로 사용하는 것으로 초기화 된다.

     

    Step 5. 디지털 GPIO의 입출력 방향 선택

    핀의 기능이 GPIO로 선택되었다면 GPADIR, GPBDIR, GPCDIR 레지스터를 통해 핀의 입출력 방향을 결정한다. 모든 핀은 초기값으로 입력핀으로 설정되어있다. 입력에서 출력으로 바꾸기 위해서는 우선 GPxCLEAR, GPxSET, GPxTOGGLE 레지스터에 적절한 값을 써서 출력레치에 값을 로드한 다음, GPxDIR 레지스터를 통해 출력으로 방향을 바꾼다. 모든 출력 레치의 값은 리셋시 삭제된다.

     

    Step 6. 저전력 모드에서 정상 모드로 깨워주는 신호를 받을 핀 설정 

    필요하다면, HALT나 STANDBY 저전력 모드에서 께어나기 위한 신호를 받을 핀을 GPIOLPMSEL 레지스터를 이용하여 설정한다.

     

    Step 7. 외부 인터럽트 신호를 받을 핀 설정

    XINT1~XINT7, XNMI 인터럽트 신호를 받을 핀을 GPIOXINTnSEL 과 GPIOXNMISEL 레지스터를 통해 설정한다. XINT1~XINT3은 포트 A중에서 XINT4~XINT7은 포트 B 중에서 선택한다. 인터럽트의 극성은 XINTnCR과 XNMICR 레지스터를 통해 설정 가능하다.

     

    디지털 GPIO 제어

     

    핀이 GPIO로 설정되었을 때, 그 핀의 출력 값은 다음 레지스터들을 이용하여 변경할 수 있다.

     

     

    GPxDAT

    모든 I/O 포트는 하나의 데이터 레지스터가 있고 각 레지스터의 비트는 그 포트안의 핀들과 대응된다. 핀의 기능 선택이 어떻게 되어있든지 데이터 레지스터의 각 비트는 각 핀의 현재 값을 나타낸다. GPxDAT에 값을 쓰면 각 출력 레치의 값을 변경하게 되어 출력값이 변경된다. 하지만 출력값을 변경하기 위해 GPxDAT에 값을 직접 쓰는 것은 read-modify-write 동작시 오동작을 일으킬 수 있으므로 이 방법은 사용 하지 않는 것이 좋다. 대신 다음의 레지스터를 이용하여 값을 변경하는 것이 안전하다.

     

    GPxCLEAR

    GPIO 핀을 LOW로 만들기 위해 사용한다. GPxCLEAR 레지스터의 값을 읽을 경우, 항상 0이 읽히며 GPxCLEAR 레지스터에 1을 쓰면 출력 레치의 값이 LOW가 되어 출력이 LOW가 된다. 0을 쓰는 경우, 출력에 아무런 영향을 미치지 않는다.

     

    GPxTOGGLE

    GPIO 핀의 현재 값을 반전 시키기 위해 사용한다. GPxTOGGLE 레지스터의 값을 읽을 경우, 항상 0이 읽히며 GPxTOGGLE 레지스터에 1을 쓰면 출력 레치의 값이 반전되어 출력이 반전된다. 0을 쓰는 경우, 출력에 아무런 영향을 미치지 않는다.

     

     

     

     

     

     

    728x90
    반응형

    'Microprocessor > DSP (TMS320F28x)' 카테고리의 다른 글

    TR28335 개발 KIT CPU Timer 인터럽트 사용  (0) 2017.06.23
    TR28335 개발 KIT GPIO LED 제어  (0) 2017.06.23
    TR28335 개발 KIT SCI 통신  (0) 2017.06.22
    TR28335 개발 KIT CAN 통신  (1) 2017.06.21
    TR28335 Spec  (0) 2017.06.14
상단으로