5. Bare Metal Programming On LPC1768 Microcontroller
Pin Configuration
- 사방으로 나와있는 PIN이 100개가 있다. 0번부터 번호가 매겨져 있다. port0부터 port5번까지 있다.(port는 32bit)
- PIN에 대해서 어떤 포트에 해당되는 PIN이고 각각의 port에서 몇번 PIN이 할당되어 있느냐
- pin 하나에 평균적으로 4가지 기능을 한다. 특정기능을 할 때는 다른 기능을 할 수 없다.
- port0에 pin0 -> 실제 mapping되는 핀은 46번
- port0에 pin1
Pin Connect Block
- 주어진 Pin configuration에서 내가 PIN을 어떤 목적으로 어떻게 쓰겠다라는 것을 설정해줄 수 있는 방법을 제공하는 것 -> Register 세팅을 통해
- PIN이 어떤 기능을 쓸거냐 PIN에 붙어있는 스위치들이나 회로의 특성을 설정해주는것
- Configuration register control the muliplexers to allow connection between the pin and the on chip peripherals.
- Pin connect block을 사용하려면 user manual을 참조하면 된다.
System(LPC1768 MCU) Control
- system control block : 특정 디바이스에 관련된 기능이 아니라 LPC 전체 시스템의 기본기능을 설정, 초기화
- system control block을 어떻게 초기화시켜주느냐에 따라서 같은 LPC라도 동작하는 방법이 달라질 수 있다.
- 4가지의 기능에 대해서 MCU가 가지고 있는 여러가지 옵션이 있는데 자신한테 필요한 옵션을 선택하여 초기화시킴으로써 MCU가 계속 그 상태로 동작할 수 있게 하는것
- System feature
- Reset
- Brown-Out Detection
power(전압)가 일정 수준 이하로 떨어지면 interrupt를 날린다.
- External Interrupt Inputs
- Miscellaneous System Controls and Status
- Each type of function has its own register(s)
LPC17xx library
- System Control 관련 구조체와 함수들은
core/cm3/lpc17xx.h
core/cm3/system_lpc17xx.c
core/cm3/system_lpc17xx.h
에 정의
- PINSEL 관련 구조체와 함수들은
drivers/source/lpc17xx_pinsel.c
drivers/include/lpc17xx_pinsel.h
에 정의되어 있다.
- Digital I/O ports
- Direction control of individual port bits
- All I/Os default to input with pull-up after reset
- Accelerated GPIO functions
- 값을 쓸 때 32bit를 한꺼번에 쓸 수 있고, 혹은 16bit를 한꺼번에 쓸 수도 있다.
- GPIO registers are located on a peripheral AHB bus for fast I/O timing
- Bit-level set and clear registers이 있다.
- bit-banding을 지원한다.
- GPIO pin description
- 관련 구조체 및 함수의 정의
drivers/source/lpc17xx_gpio.c
drivers/include/lpc17xx_gpio.h
에 정의