티스토리 뷰

특징

더보기

범용 레지스터 16개 
memory mapped I/O
512KB 플래시 메모리, 89 I/O
ARM Cortex-M4F core
최대 112MHz(보통 80MHz)

 

프로젝트 생성 방법

  1. Keil v5 실행

  2. Project → new uvision project 

  3. 생성할 프로젝트 폴더 선택

  4. Project → Select Device for Target
    나타난 창에서 코어 선택
    NXP S32K144 이므로 S32K144HAxxxLHx 로 찾아서 선택 

  5. Manage Run-time Environment
    → CMSIS → CORE
    → Device → Startup 선택 

  6. Option for Target
    1. C/C++ 탭→ include Paths → 현재 프로젝트 경로의 RTE 폴더 선택 → Device 폴더 선택 → S32K144HAxxxLHx 선택
    2. Linker 탭  → Scatter File → Device 폴더의 S32K144_64_Flash.sct 선택
    3. Debug 탭 → Pemicro Debugger 선택 후 세팅 클릭 → Select New Device 에서NXP - S32K144F512M15 선택 
    4. Output 탭 → 현재 프로젝트 이름 확인, create HEX File 선택 
  7. 타겟의 Source group에서 파일 추가 가능 

 

GPIO 

GPIO ports memory map

A ~ E 포트

각 (Base address + 40*a)h

GPIO 레지스터

레지스터는 각 32비트로 레지스터의 비트 값을 바꿔 GPIO 핀 설정을 할 수 있다.

예를 들어 포트 D의 17번 핀에 관한 설정을 하고 싶다면,

포트D의 시작 주소가 Base+C0h 이고 PDDR 레지스터의 offset이 14h 이므로

시작주소에 14h를 더한 곳에 PDDR레지스터가 있다.

그리고 해당 레지스터의 17 비트의 값을 바꿔주면 17번 핀의 설정을 바꿀 수 있는 것이다. 

  역할 offset

PDOR (Port Data Output Register)

출력에서 어떤 값이 나오는지 확인할 수 있는 레지스터  0h

PSOR (Port Set Output Register)

출력을 줄 수 있는 레지스터 4h

PCOR (Port Clear Output Register)

1이면 출력을 0으로 만드는 레지스터 8h

PTOR (Port Toggle Output Register)

1이면 출력을 토글하는 Ch

PDIR (Port Data Input Register)

인풋이 어떤 값인지 확인 10h

PDDR (Port Data Direction Register)

입력 혹은 출력으로 설정하는 레지스터 14h

PIDR (Port Input Disable Register)

  18h

 

PCR for GPIO

GPIO에 관한 여러 설정을 할 수 있음

대표적으로 8~10비트가 MUX 기능을 하는데 이를 001로 만들면 GPIO로 사용한다는 뜻임 

 

C programming for embedded 

프로그래밍 흐름은 다음과 같이 구성할 수 있음

  1. clock 설정
  2. PCR MUX 설정
  3. GPIO 입력 설정
    - 포트의 PDDR을 0으로 하면 GPIO 입력
  4. GPIO 출력 설정
    - 포트의 PDDR을 1로 하면 GPIO 출력
  5. 동작 부분
    ex) PSOR로 출력 핀을 1로 만들거나
    PCOR로 출력 핀을 0으로 만들기 
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함