Bluetooth 4.x2014.06.18 00:27

앞서 설명한 nRF51822 개발환경을 올바르게 설치했다면 SDK 폴더 안의 Board 폴더에서 다양한 예제를 확인할 수 있다.


일단 여기에서는 nRF51822 에서 Cortex-M0 MCU 기능을 설명하는 예제의 종류와 기능에 대해서 설명하도록 하겠다.


SDK 예제를 보면 MCU 기본 예제가 있는 폴더 레벨에 BLE 관련 예제가 있기는 하다. (솔직히 왜 그런지는 모르겠다.... 은근히 NORDIC SDK 는 정리가 잘 된듯 하면서도 어딘가 어색해 보이는 것도 사실이다.)


하지만 기본적인 정리는 매우 잘 되어 있는 편이므로 더이상 바라지는 않겠다. 


nRF51822 의 MCU Core 인 Cortex-M0 의 예제 경로는 아래와 같다.


C:\Keil\ARM\Device\Nordic\nrf51822\Board\nrf6310


일단 MCU 기능에 대한 예제는 (BLE 예제도 마찬가지지만) KEIL MDK ARM 컴파일러의 Project 단위로 이루어져 있다.


여기에서는 기본적인 Blink 예제와 UART 예제를 Step by Step 으로 나 좋을대로 설명하도록 하겠다.


그럼 먼저 기본적인 예제 테스트에 앞서서 nRF51822-DK 상에서의 Default Connector 연결에 대해 설명하겠다.

(자세한 사항은 nRF51822-DK User Guide 를 참조 바란다.)




위의 사진은 nRF51822-DK 의 Mother Board 인 nRF6700 와 nRF51822-DK 와의 Default Connector 연결이다.


기본적으로 모든 nRF51822-DK 의 모든 Example은 위의 연결을 기반으로 수행된다. 


위의 사진에서 P8 은 P0.00~P0.07 까지의 GPIO 이며, P10은 P0.08~P0.15 까지의 GPIO 이다.


P1은 Button Interface 에 대한 연결이며, P2는 LED Interface 에 대한 연결이다.


위와 같이 Default Connector 연결을 마쳤다면 가장 만만해 보이는 blinky_example 을 테스트 해 보겠다. (MCU 관련 Example에서는 거의 Hello World 수준이라고 보면 된다.)


일단 blinky_example 폴더에 들어가서 하위 폴더인 arm 폴더에 가면 고맙게도 blinky.uvproj 라는 이름의 KEIL Project 가 있다.


실행해보면 Example Project 가 열린다.





main.c 파일을 열어보면 아주 간단하게 GPIO Output에 관한 설정과 제어에 대한 예제로 구성되어 있다. 추가로 Delay 함수는 덤이다.


nRF51822-DK 와 nRF6310 Mother Board 상에서는 그대로 컴파일하여 Program Write 하여 사용하면 된다. (컴파일은 위의 그림 참조 바란다.)


나머지 예제는 예제명과 예제 기능으로 간략하게 설명하며, 더이상 자세한 설명은 생략한다. (솔직히 예제 주석이 매우 잘 되어 있다... 너무 꽁으로 바라지만 말고 주석을 좀 세심히 보기 바란다. Code 작성자는 시간이 남아돌아서 취미로 주석 쓰는 것이 아니다.)


덧붙여서, 본 글에서는 MCU 기본 예제 폴더에 위치하더라도 BLE 관련 예제는 제외하고 설명하도록 하겠다.


MCU 기본 예제 폴더에 위치한 BLE 관련 예제는 다음 글인 BLE 관련 예제 글에서 설명하도록 하겠다.


blinky_example -> LED ON/OFF 예제 (GPIO Output 및 Delay 제어)

debouncer_example -> Input Button 떨림 현상 제거 예제 (GPIO Input 및 Timer 제어)

flashwrite_example -> Flash 영역 접근 제어 예제

gpiote_example -> GPIOE (Event) 접근 제어 예제

pin_change_int_example -> Interrupt 제어 예제

ppi_example -> MCU에 독립적인 Event & Task 우선 순위 제어

pwm_analyzer & pwm_example -> PWM 관련 예제

radio_example -> 2.4GHz RF 송수신 예제

radio_test_example -> 2.4GHz RF Radio 성능 검사용 예제 (전파 인증시 사용)

ram_retention_example -> Power Mode 변경에 따른 RAM Retention 예제

rng_example -> Random Number Generator 예제

rtc_example -> Real-Time Clock 관련 예제

simple_pwm_motor_control_example -> 간단한 PWM Motor 관련 예제

spi_master_example -> SPI Master 예제

spi_master_example_with_spi_slave -> SPI Master/Slave 병행 예제

spi_slave_example -> SPI Slave 예제

temperature_example -> 내부 온도 측정 예제

template_project -> Project Template (혹시 무슨 기능이냐고 묻지는 않겠지? -_-;;)

timer_example -> Timer 동작 예제

twi_sw_master_example -> TWI (I2C) 예제

uart_example -> UART 예제

uicr_config_example -> User Information Configuration Register 예제








저작자 표시 비영리 변경 금지
신고
Posted by USN-Pioneer USN-Pioneer

티스토리 툴바