이 키트는 노르딕 BLE 칩인 nRF51422_xxAC 라는 ARM-Cortex-M0 로 되어 있습니다.
간단한 스펙을 말씀드리자면 다음과 같습니다.
- Single chip, highly flexible, 2.4 GHz multi-protocol device
- 32-bit ARM Cortex M0 CPU core
- 256kB/128kB flash and 32kB/16KB RAM
- Supports Bluetooth Smart protocol stacks
- Thread safe and run-time protected
- Event driven API
- On air compatible with nRF24L series
- 3 data rates (2Mbps/1Mbps/250kbps)
- +4dBm output power
- -93dBm sensitivity, Bluetooth Smart
- PPI system for maximum power-efficient applications and code simplification
- Flexible power management system with automatic power management of each peripheral
- Configurable I/O mapping for analog and digital I/O
일반적으로 BLE IC는 FLASH 메모리나 OTP ROM의 용량이 많은데, 이 메모리의 대부분은 스택이라는 BLE 관련 처리 Library 함수들이 들어가더군요. 다이얼로그 BLE 칩도 대부분 메모리가 OTP ROM 에서 BLE stack이 차지합니다. 노르딕도 마찮가지로 100KB가량을 노르딕에서 제공하는 Soft Device 라고 부르는 BLE STACK이 차지합니다. 이 스택은 전용툴인 NRF Go STUDIO 로 프로그램해서 넣어주고, Application 프로그램은 다른 어드레스 영역에 프로그램해서 돌아갑니다.
Application 프로그램은 BLE 에서 32KByte 가 안되도 충분히 돌아가고도 남습니다. 왜냐하면 필요한 함수가 STACK에 라이브러리로 이미 들어있으니까, 필요한 함수를 호출해서 쓰면 되니까 메모리가 더 필요 없게 되는 원리입니다.
^^. KEIL 컴파일러는 ARM 칩은 32KBYTE를 무료로 상용 버전과 똑같이 동작하므로 BLE 칩 업체들이 KEIL 컴파일러를 많이 사용하는 것 같습니다.얼핏, 알기로는 IAR 컴파일러는 ARM CORTEX-M0 는 16KB 밖에 지원 안되도록 정책이 바뀐 것으로 들었는데, 만약 이것이 사실이라면 업체에서 "왠만하면 KEIL 컴파일러를 사용하라"는 말의 의유는 무료 컴파일 코드사이즈 때문인 것 같네요.
제가 다루려는 SW는 BLE Peripheral 중 BLE-to-UART 라는 보통 SPP(Serial Port Profile)로 부르는 부분만 다루려고 합니다.
KC 인증을 받은 제품으로 BLE를 외주 개발로 잠깐 하는 것이라, 현재 다니는 회사 일과 연결이 안되고 시간도 없어서 그런 것이니 양해 바랍니다.
그리고 PCA10028 키트는 다음과 같은 페어차일드에서 파는 PBLN51822 모듈을 동작시키기 전에 SW 동작 확인을 위해 쓰기위한 중간과정입니다.
다음 번에는 BLE 프로그램 하는 방법을 다뤄 보겠습니다.