NRF51822 S130 BLE APP UART 구현하기

NRF51822 S130 BLE APP UART 구현하기

이번 포스팅은 BLE UART를 구현하려고 한다. 그러니까..음 블루투스의 SPP를 BLE버젼으로 구현하겠다는 건데, 암튼 좀 구리다.

**다만 이 칩은 더이상 SDK 지원이 끊겨서 더이상 활용이 불가하고, 더군다나 BLE를 사용한다고하면 코드 용량이 넘쳐 KEIL로 빌드가 불가하다.

그렇다고 Embeded Studio으로 빌드를 하자니 SDK 지원이 끊겼지 말이다. 그냥 뺑이쳐서 어거지로 하던, 그냥 편하게 보드를 NRF52시리즈로 갈아타던 해야한다.

유념하길 바란다.

 

본 포스팅은 SDK 12.3버젼으로 진행한다. 그 이후 SDK 버젼은 NRF51시리즈의 업데이트가 끊겼고, NRF51822를 사용하는 PCA10001는 아예 예제에 없으니 커스터마이징을 해야한다.

다행인 점은, 12.3 문서에서 PCA10001과 같이 지원이 끊긴 보드도 사용하는 방법을 다루고 있으니 위안 삼을 수 있다.

 

문서를 참고해보자.

위 그림을 보면 PCA10001도 사용은 가능 한 것으로 나와있다. 다만 #define으로 추가를 해줘야 한다는 점이 번거롭다. 그래서 아래와 같이 #define을 추가해줬다.

 

 

만약 검색되는 BLE장치의 이름을 바꾸고 싶다면 디바이스 네임을 찾아서 바꿔주면 된다.

 

 

이대로 빌드하면 끝! 이면 좋겠지만, 것 참. STM과 달리 겁나게 까탈스럽다. 이 프로그램이 돌아가기 위해서는 SOFTDEVICE라는 놈을 올려줘야 하는데 예제를 돌려본 사람은 알겠지만 S130폴더에 들어가 있는 것을 알 수 있다. 따라서 알아서 S130 2.0.1버젼 HEX파일을 구해서 프로그램을 해줘야한다. NRFGO STUDIO에서 Program SoftDevice탭에서 파일을 선택해 준 뒤 플래싱을 해줘야한다.

그리고 프로그램 어플리케이션에 올려주면 끝! 이면 좋겠지만, 영역이 겹친다고 안돌아간다(…) 아아..키보드 두들기는 손가락에 힘이 점점 실린다.

 

영역을 보면 빌드한 프로그램은 메모리 영역 1b000부터 플래싱을 해줘야 함을 알 수 있다. 참고로 사용하는칩은 nRF51822_XXAC이므로 256kb의 용량을 가지고 있다.

근데, 데이터시트를 봐도 어플리케이션은 어디까지 지정하세요. 같은 내용이 없더라..하.. 그래서 그냥 구글링해서 때려 넣었다.

일단 KEIL 상단의 마술 지팡이 같이 생긴 놈을 누른다.

 

타겟 탭에 들어가서 IROM1과 IRAM1의 사이즈를 수정해준다. 문서를 보면 0x200013C8부터 사용하라는데..음 안된다. 그냥 2000부터 해라. 뭣하러 문서를 만든건지;

that's nono

니네 문서 그렇게 만들믄 안돼.

 

 

암튼 위처럼 값 입력해서 빌드해서 어플리케이션에 플래싱하면

 

그토록 원하던 메세지가 나올 것이다.

 

이제 BLE 안드로이드 앱 중 자신이 원하는 것 실행해서 보내면 될 것이다.

검색한 장치에서 본인 장치를 선택하고

메세지를 보내면

수신이 된다! 역으로 어떻게 하냐고? 글쎄..그건 나도 모르겠다.

해결 방법 생기면 포스팅 하겠다.

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

%d 블로거가 이것을 좋아합니다: