본문 바로가기

BLE/펌웨어

(6)
[Noise Detector] nRF51 (6) : 소스 코드 및 플래시 방법 GitHub nRF5 SDK 12.3 환경에서 만들어 졌으며, 여기에서 다운받은 후 압축 푼 폴더에 덮어씌우면 됩니다. 플래시하기 위해 PCA10028에 있는 OB(On-Board) J-Link를 사용했습니다. PCA10028의 OB J-Link과 nRF51422 연결을 끊고 다른 nRF 보드에 사용하는 방법은 이 링크에 나와 있습니다. 개발환경을 셋팅하는 방법과 플래시하는 방법은 노르딕 개발자 홈페이지 튜토리얼에 자세하게 나와있습니다. nRF51822 M1 모듈 핀 배열 : 칩이 있는면이 위쪽 OB J-Link와 연결 저작권 문구는 WaveData 모듈과 동일합니다. Copyright (c) 2017, JoonDong All rights reserved. Copyright holder's blog : ..
[Noise Detector] nRF51 (5) : 배터리 잔량 계산 관련 링크 2017/12/09 - [회로/Noise Detector] - Noise Detector 2단계 -회로 (4) : 배터리 잔량 측정 회로 배터리 전압은 사용할 수록 조금씩 떨어지는데, 이것을 이용하여 잔량을 구합니다. 그런데 일정하게 떨어지는 것이 아니라 몇개의 변곡점이 나타나는데요. 회로 카테고리에 포스팅된 배터리 잔량 회로에서 출력되는 전압을 그대로 측정하여 배터리 서비스를 사용하여 피어로 전송하면, nRF Logger 어플리케이션에 의해 로그에 기록되는데, 이 기록으로 누적시간에 대한 그래프로 만들어 보니 아래 그림과 같았습니다. 원본 파일은 위에 첨부했습니다. 완충시 측정되는 최대값인 210(3.98V)부터 제가 임의로 정한 최소값인 147까지 총 64범위(분해능)를 측정했습니다. 각 ..
[Noise Detector] nRF51 (4) : 시스템 흐름 각 모듈에서 핵심 기능을 담당하는 함수들과 그 함수들 또는 모듈 간의 관계를 블록 다이어그램으로 표현했습니다. 전 메세지 시퀀스 정도만 그리고 코드를 작성했고, 아래 블록 다이어그램은 코드의 이해를 돕기 위해 추가로 그린 것입니다. 각 함수들이 어떻게 연결되는 지는 노르딕 인포센터를 참조하거나 SDK 함수를 천천히 보면 알 수 있습니다. 참고로 bsp는 bsp_custom_1_btn_ble.c가 구현했습니다. - Detected Noise Value(ADC 배열 20바이트씩) 방송 과정 - Noise Detector(Op-Amp + m_noise_detector_timer_id 타이머) 동작 제어 과정(- Noise Detector 명령/결과 수송신) - BUTTON_1로 연결 상태를 제어하는 과정 - ..
[Noise Detector] nRF51 (3) : NDS Message Sequence 일반적인 Message Sequence입니다. 세로축은 시간의 흐름, 화살표 위의 글자는 이벤트, 아래 글자는 이벤트와 함께 전달되는 내용입니다. 피어는 안드로이드 Noise Detector 어플리케이션을 의미합니다. 전체 과정을 ① Noise Detector ON 단계, ② Detected Value 전송 단계, ③ Noise Detector OFF 단계로 구분했습니다. ① Noise Detector ON 단계 이전 포스트에서 Noise Detector Controlpoint Characteristic(이하 NDCP 특성)은 쓰기 요청에 대해 어플리케이션의 인증이 필요하다고 했습니다. 따라서 피어가 NDCP 특성에 {0x02, 0x00} 쓰기 요청을하면, 요청을 수신한 소프트디바이스는 속성 테이블에 요..
[Noise Detector] nRF51 (2) : Noise Detector Service 구성 BLE(Bluetooth Low Energy) 프로토콜 중 서비스에 대해 간단히 설명하겠습니다. BLE 프로토콜에 대해 하나도 모르면 이해할 수 없지만, 이전 포스트에서 추천한 서적을 읽고, BLE 프로토콜을 이해하기 위해 노력했다면 약간 정리된 듯한 느낌을 받을 수 있을지도.. 모르겠습니다. BLE를 시작하는 개발자들이 BLE 프로토콜에 대한 약간의 느낌이라도 얻을 수 있으면 좋겠네요. BLE 프로토콜에서 서비스는 자바에서 추상 클래스, 특성(Characteristic)은 서비스의 서브 클래스와 비슷한 개념입니다. 그리고 각 특성의 디스크립터와 값 속성은 서브 클래스의 필드와 비슷한 개념입니다. 이것들은 BLE 스택에서 GATT 프로파일(Generic Attribute Profile) 위에 위치하기 때..
[Noise Detector] nRF51 (1) : 레이어 구성 노르딕은 MCU에 BLE(Bluetooth Low Energy) 모듈 자체를 내장하는 것이 아니라, BLE 프로토콜 스택을 구성할 때, 소프트웨어로는 구현하기 힘들거나 부담되는 작업인 RNG, ECB(암호화 동작 수행) 등을 수행하는 페리페럴들과 2.4GHz 주파수를 송수신하는 RADIO 페리페럴을 사용하여 BLE 통신을 구현합니다. 이 페리페럴들을 이용하여 자신만의 2.4GHz 무선 통신 스택을 만들 수도 있지만, 아직은 너무나 먼 길입니다. 일단 BLE 시스템을 제대로 구현해 보기로 했습니다. 개발 보드로는 PCA10028을 사용했으며, 이 보드는 J-Link와 nRF51422가 내장되어 있습니다. Mouser에서 39달러에 구매할 수 있네요. 단 50달러 미만은 배송비가 발생합니다. 이 보드보다는 ..