'2014/06'에 해당되는 글 7건

  1. 2014.06.18 [nRF51822] 03. BLE 기본 예제 실행하기
  2. 2014.06.18 [nRF51822] 02. MCU 기본 예제 실행하기
  3. 2014.06.03 [nRF51822] 01. 개발환경 꾸미기
  4. 2014.06.03 nRF6700
  5. 2014.06.03 nRF51822-EK
  6. 2014.06.03 nRF51822-DK
  7. 2014.06.02 nRF51422
Bluetooth 4.x2014.06.18 00:30

[nRF51822] 03. BLE 기본 예제 실행하기


이번에는 nRF51822 의 주기능인 BLE 관련 기본 예제에 대하여 설명한다.


nRF51822 SDK 상에서의 BLE 기본 예제는 아래 경로에 위치한다.


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

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


위의 경로를 보면 2가지 경로를 제시했는데... 살펴보면 s110 과 s120 으로 구분되는 것을 확인 할 수 있다.


s110 은 Peripheral Stack 으로서 기존의 Classic Bluetooth 기준으로 보자면 Slave로 생각하면 된다.

s120 은 Central Stack 으로서 기존의 Classic Bluetooth 기준으로 보자면 Master로 생각하면 된다.


Datasheet를 보면 나오는 사항이지만 NORDIC의 nRF51822은 Pre-Compiled Binary 를 제공한다.


즉, Lib 와 같이 Application Binary 와 병합되는 형태가 아닌 별도의 Stack Hex 파일을 Application Hex와 서로 다른 영역의 Flash 공간에 Program Writing 하는 것이다.


NORDIC 에서는 이러한 Pre-Compiled Binary 형태의 BLE Stack 을 Soft Device 라고 부른다.


따라서 NORDIC 의 nRF51822 에서는 s110이라는 이름을 가진 Peripheral Hex 와 s120이라는 이름이 가진 Central Hex .....2가지의 각기 다른 Soft Device 가 존재한다.


물론 s110 폴더의 예제에는 s110 Soft Device Hex를 별도의 영역에 Program Writing 하여야 하며, s120 폴더의 예제에도 s120 Soft Device Hex를 별도의 영역에 Program Writing 하여야만 한다.


s130 이라는 Peripheral + Central Stack 도 있지만 이 글을 쓰는 시점에서는 Alpha Version 이므로 권장하지 않기 때문에 차후 정식 Version으로 릴리즈되면 별도의 글로 설명을 하도록 하겠다.


일단 본 글에서는 최초에 BLE 로 Issue 를 만든 대표적인 Profile 인 Proximity Profile 에 대한 예제로 설명을 하도록 하겠다.


참조로 nRF51822의 BLE 예제는 거의 대부분 Bluetooth SIG 에서 제정한 Standard GATT Profile 만을 다루고 있으니 참조 바란다.


물론 Proximity Profile 도 Standard GATT Profile 이다.


Proximity Profile 예제의 경로는 아래와 같다.


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


일단 이전 MCU 기본 예제 글과 같이 위 경로의 하위 폴더인 arm 폴더에 있는 Project 파일을 실행한다.


기존 MCU 기본 예제와 같이 Compile 을 한 이후에 Program Writing을 하면.... 아마도... 실행이 안될 것이다.


앞서 설명한 바와 같이 해당 예제에 맞는 Soft Device 를 Program Writing 하여야 한다.


아래 그림을 보면 NORDIC에서 제공하는 nRFgo Studio를 이용해서 Soft Device를 어떻게 Program Writing 하는지 손쉽게 파악할 수 있을 것이다.





위의 예시에서는 Soft Device 버전을 6.0.0 으로 선택하였는데 Soft Device 버전은 사용하는 SDK 의 버전과 연관이 있다.


즉, Soft Device에 맞는 SDK 의 버전이 있다는 말이다.


s110 의 경우 Soft Device 버전이 5.2.1 이면 4.x.x 의 SDK 를 사용하고


Soft Device 버전이 6.0.0 이면 5.x.x의 SDK 를... Soft Device 버전이 7.0.0 이면 6.x.x의 SDK 를 사용한다.


현재 이 글을 작성할 때의 시점에서는 Soft Device 의 최신 버전은 7.1.0 이고 SDK 의 최신 버전은 6.1.0 이다.


이후의 Soft Device 및 SDK 대응 버전은 NORDIC Homepage의 White paper 를 참조하기 바란다.


그럼 이제 nRFgo Studio 에서 Soft Device 를 Program 한 이후에 Application Program을 Writing 해보자.


nRF6310 Mother Board + nRF51822-DK 기반의 개발환경이라면 처음에 첫번째 LED 가 켜져 있을 것이다.


현재 Advertising 상태라는 말이다.


고맙게도 NORDIC 에서는 iOS 및 Android 의 운영체제를 가지는 스마트폰 에서 nRF51822 과 연동될 수 있는 Application 을 제공한다. App Store 및 Google Play 에서 무료로 다운로드 가능하다. 


iPhone 의 경우 BLE 지원은 iPhone s4 이후 기종부터.... Android 는 Android OS 4.3 이상 기종부터 지원된다. 


원래부터 안되는 스마트폰 기종으로 힘빼지 말자.


nRF Toolbox 라고 검색어를 쳐서 해당 Application을 다운로드 받고 실행하고 Proximity 를 선택한 후 Connect 를 누르면 nRF51822-DK 와 연결이 이루어져서 서로 알람 통신을 주고 받고 특정 거리 이상 떨어지면 서로 떨어짐을 알리는 알람이나 LED 가 켜지게 된다.


구성은.... 해당 Code 를 참조하기 바란다. 다 가르쳐 주면 매력 없다... ㅋ


나머지 예제들도 대부분 Proximity Profile 과 같은 Standard Profile 이다.   


BLE Profile 및 Service에 대한 내용은 아래의 Bluetooth 홈페이지를 참조하기 바란다.


https://developer.bluetooth.org/TechnologyOverview/Pages/Profiles.aspx











저작자 표시 비영리 변경 금지
신고
Posted by USN-Pioneer USN-Pioneer
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
Bluetooth 4.x2014.06.03 00:04

nRF51822의 개발환경 꾸미기에 대하여 알아보겠다.


전체 개발환경 설치 순서는 아래와 같다.


1. KEIL ARM 설치

2. JLink Driver 설치

3. nRF51 SDK 설치

4. nRFgo Studio 설치




1. KEIL ARM 설치


일단 KEIL ARM Compiler를 설치하도록 하겠다. 


NORDIC에서는 KEIL ARM Compiler 뿐만 아니라 IAR, GCC Compiler도 지원되지만 예제들이 KEIL Project로 구성된 관계로 KEIL ARM Compiler를 추천 한다.


왜 ARM 이냐고 생각하시는 분들은... Datasheet를 다시 읽어보기를 권한다.                 


여기에서는 KEIL ARM 4.60 을 설치하도록 하겠다.









KEIL ARM 설치 후


KEIL 설치 폴더 (기본값은 C:\KEIL 이다) 의 ARM\Device 폴더로 이동해 보자.


현재는 ARM 폴더 밖에 없지만 nRF51 SDK 설치 후 여기에 Nordic 폴더가 생길 것이니 일단 확인만 해 두자.





2. JLink Driver 설치


KEIL ARM 을 성공적으로 설치하였으면


J-Link Driver 를 설치해 보자


J-Link Driver 는 Segger 홈페이지에서 다운 받거나 Nordic에서 제공하는 J-Link + J-Link OB Driver 인 nRF Tools 를 사용하여 설치하면 된다.


J-Link Driver 설치 후 연동할 Compiler 를 선택하는 화면이 나오는데 KEIL ARM을 꼭 선택할 수 있도록 하자.























3. nRF51 SDK 설치


이제는 nRF51 SDK 를 설치 하자, 설치 옵션에서는 웬만하면 전부 설치하는 것으로 하자.


J-Link Driver 를 nRF Tools를 이용하여 설치 하였으면 J-Link OB CDC 는 이미 설치되어 있으니 추가로 설치하지 않아도 된다.


nRF51 SDK 가 성공적으로 설치되면 이전에 설명한 KEIL 폴더의 ARM\Device 폴더에 Nordic 폴더가 생긴 것을 확인 할 수 있다. 이 Nordic 폴더에 SDK 의 Source 및 Document 가 포함되어 있으니 참조하기 바란다.


이후 Bluetooth Stack 인 SoftDevice 를 Writing 할 수 있는 nRFgo Studio를 설치하면 기본적인 nRF51822 개발환경 꾸미기가 완성 된 것이다.

 










4. nRFgo Studio 설치


nRFgo Studio 설치 순서는 아래와 같다.


그냥 Next 연속으로 선택하자.


설치 하라는 Driver 가 나오면 더 설치하자. 이전에 J-Link OB CDC 를 설치한 사람이면 안해도 되는데... 


설명하기 귀찮다. 그냥 설치해라.









이제 기본적인 개발환경 설치가 완료되었다.


사실 위 내용은 nRF51xxx-DK 의 User Guide 에 전부 명시된 사항이다. 추가적인 사항은 해당 User Guide 문서 참조 바란다.


또한 개발환경은 nRF51822 뿐만 아니라 nRF51422 에도 공통적으로 해당되는 개발환경 설치 사항이니 nRF51422 개발환경을 꾸미는 사람 역시 해당 내용을 참조해도 된다.





저작자 표시 비영리 변경 금지
신고
Posted by USN-Pioneer USN-Pioneer
Review/Kit2014.06.03 00:03

NORDIC 개발 키트에 공통적으로 사용되는 Mother Board 로서,


nRF6310 Mother Board 2대로 구성되어 있으며, 


해당 nRF6310 Mother Board에 nRF51822-DK 및 nRF51422-DK를 체결하여 동작 시키는 것이 기본 개발 환경이다.



저작자 표시 비영리 변경 금지
신고

'Review > Kit' 카테고리의 다른 글

nRF51 DK  (0) 2014.11.03
nRF6700  (0) 2014.06.03
nRF51822-EK  (0) 2014.06.03
nRF51822-DK  (0) 2014.06.03
Posted by USN-Pioneer USN-Pioneer
Review/Kit2014.06.03 00:02

nRF51822-EK는 nRF51822을 이용한 Bluetooth 4.0의 개발 Kit 이다.


PCA10000 이라는 이름의 EK Board 와 PCA10001이라는 이름의 USB Dongle Type의 Kit가 포함되어 있다.


nRF51822-DK + nRF6700 개발 환경에 비하여 상대적으로 LED 및 Switch, UART 자유도가 제한되어 있다.



저작자 표시 비영리 변경 금지
신고

'Review > Kit' 카테고리의 다른 글

nRF51 DK  (0) 2014.11.03
nRF6700  (0) 2014.06.03
nRF51822-EK  (0) 2014.06.03
nRF51822-DK  (0) 2014.06.03
Posted by USN-Pioneer USN-Pioneer
Review/Kit2014.06.03 00:01

nRF51822-DK




저작자 표시 비영리 변경 금지
신고

'Review > Kit' 카테고리의 다른 글

nRF51 DK  (0) 2014.11.03
nRF6700  (0) 2014.06.03
nRF51822-EK  (0) 2014.06.03
nRF51822-DK  (0) 2014.06.03
Posted by USN-Pioneer USN-Pioneer
Review/Chip2014.06.02 23:53



NORDIC nRF51422 Linkhttp://www.nordicsemi.com/eng/Products/ANT/nRF51422


NORDIC에서 만든 Cortex-M0 기반의 Bluetooth 4.0 Single Mode 및 ANT+ 를 동시에 적용할 수 있는 Chip으로 대체적인 사양은 아래와 같다.


■ Single chip, highly flexible, 2.4GHz multi-protocol device

■ 32-bit ARM Cortex M0 CPU core

■ 128/256KB flash 16KB RAM

■ Supports ANT and Bluetooth low energy protocol stacks

■ Thread-safe and run-time protected

■ 3 data rates (2Mbs/1Mbs/250kBs)

■ +4dBm to -20dBm output power

■ PPI system for maximum power-efficient applications and code simplification

■ Flexible power management features

■ Configurable I/O mapping for analog and digital I/O


Bluetooth 4.0 및 ANT+ Stack 으로는 NORDIC에서 제공하는 S210 (ANT+ Only) / S310 (Bluetooth 4.0 / ANT+) 을 사용한다.


저작자 표시 비영리 변경 금지
신고

'Review > Chip' 카테고리의 다른 글

nRF51422  (0) 2014.06.02
nRF51822  (0) 2014.02.06
Posted by USN-Pioneer USN-Pioneer

티스토리 툴바