Ble 썸네일형 리스트형 nRF52832 시작하기 하드웨어 개발을 하는 입장에서 맨날 8bit PIC 프로세스만 개발하다가 ARM 코어를 개발하려니 공부가 필요하다는것을 느꼈다. 하지만 세상에는 똑똑한 사람도 많고 그걸 나 같은 초보자(?)들이 쉽게 사용할 수 있게 공유해주는 사람도 많다. 처음에는 아두이노 부트로더를 올려서 아두이노 라이브러리를 이용하여 프로그램였는데 간단한것을 프로그램 할때는 개발 속도도 빠르고 좋았는데 깊에 들어가다 보니 안되는 것들이 많이 결국 직접 개발하는 쪽으로 방향을 틀었다. 그래서 앞으로 공부하면서 다시 여기에 내가 작업하는 내용을 올리려고 생각중이다. 생각중이라는게 핵심이다;;;;;; 일단은 아두이노 부트로더 사용하는 방법 부터 올릴거 같다. nrf51 Pin Function nRF51 시리즈는 문서 종류가 너무 많다. 이런 문서에 Pin Function 내용이 있어 포스팅한다. Pin Pin name Pin function Description 1 VDD Power Power supply. 2 DCC Power DC/DC output voltage to external LC filter. 3 P0.30 Digital I/O General purpose I/O pin. 4 P0.00 AREF0 Digital I/O Analog input General purpose I/O pin. ADC/LPCOMP reference input 0. 5 P0.01 AIN2 Digital I/O Analog input General purpose I/O pin. ADC/LPCOMP input .. simple_dc_pca10028 (nRF51 PCA10028) 예제에 타이머 인터럽트 추가하기 simple_dc_pca10028 (nRF51 PCA10028) 예제를 실행 시키고 예제 실행하는 방법을 모른다면 아래 포스팅을 먼저 보고 오세요."nrf51 시리즈 개발환경 구축" 바로가기또한 nRF51 시리즈에서는 app_timer와 nrf_drv_timer 2종류를 사용할 수 있습니다. 이번에는 nrf_drv_timer를 사용하는 방법을 소개 하겠습니다. app_timer 추가는 방법은 아래 포스팅을 참고 하시면 됩니다."타이머 인터럽트 추가하기" 바로가기 본격적으로버튼을 눌려 Manage Run-Time Environment를 실행 시킵니다.nRF_Drivers - nrf_drv_timer와 nRF_Drivers - nrf_timer 옆에 체크 표시를 한 후 OK를 누룰러 창을 닫아줍니다. 화면 .. nRF51 ADC 사용하기 nRF51에는 총 8개의 ADC 포트가 존재한다.AIN0 ~ AIN7문제는 ADC 포트가 실제 몇번 포트와 연결되어 있는지 모르겠다;;;;;; 실험을 통해 알아낸 정보는 아래와 같다.(참고로 PCA10028 보드 기준이다.)AIN0 : 알 수 없음 P0.26AIN1 : 알 수 없음 P0.27AIN2 : P0.01AIN3 : P0.02AIN4 : P0.03AIN5 : P0.04AIN6 : P0.05AIN7 : P0.06 AIN0과 AIN1은 몇번이랑 연결되어 있는지 모르겠다.내부 온도계가 있는것 같던데 그거랑 연결되어 있지 않나 추축할 뿐;;;또한 다른 포트에 연결 하여 사용할수 있을것 같은데 관련 정보를 더 찾아봐야겠다.역시 모든 내용은 데이터 시트에 있었다.문제는 데이터 시트 하나가 아니라는거;;;;;.. 타이머 인터럽트 추가하기 ble_app_uart_s130_pca10028(nRF51822 PCA10028) 예제에 타이머 인터럽트를 추가하기nRF51에서 타이머 인터럽트를 구현하는 방법은 여러가지가 있지만 저는 app timer를 추가하는 방법을 소개 하겠습니다.방법은 아래 소스를 전부 넣어 주고 메인문에 "timers_init"와 "Z application_timers_start"함수를 호출해 주면 됩니다.당연히 초화 함수를 먼저 호출하고 스타트 함수를 호출해야됩니다.타이머 인터럽트가 발생되면 "battery_level_meas_timeout_handler"함수가 실행됩니다. 첫줄의 UNUSED_PARAMETER(p_context);는 무슨 역할을 하는지 모르겠습니다.아래 소스는 LED_2번을 1초마다 깜빡이는 소스입니다.인터.. UART 양방향 통신이 되지 않을 때 ble_app_uart_s130_pca10028(nRF51822 PCA10028) 예제를 실행하고 PC에서 시리얼통신을 연결하면PC(테스트 보드) -> 스마트폰 전송은 되지만 스마트폰 -> PC(테스트 보드) 전송은 되지 않는다.정확히는 스마트폰과 nRF51 칩과는 통신이 되는데 nRF51 칩과 USB to Serial 칩과의 통신이 되지 않는것이다.이를 해결하기 Main.c에서 아래 부분을 찾아12345678910111213141516171819202122static void uart_init(void){ uint32_t err_code; const app_uart_comm_params_t comm_params = { RX_PIN_NUMBER, TX_PIN_NUMBER, RTS_PIN_NUMBER, C.. nrf51 시리즈 개발환경 구축 nrf51 시리즈 개발환경 구축에 관한 글은 많은데 포스팅 일자도 오래되기도 해서 다시 정리해서 보스팅합니다. 글에 앞서 제가 사용하는 보드는 PCA10028, PCA10031 테스트 보드와 NRF51822 Eval Kit + J-Link BASE를 사용합니다. 1. 먼저 keill을 다운 받아야합니다. 무료 버전과 유료 버전이 있는데 컴파일 파일 사이즈 말고는 차이점을 모르겠습니다.기간 제한이 있는지는 확인하지 못했습니다.저도 무료 버전을 사용하는데 아직까지는 아무 문제 없었습니다.https://www.keil.com/download/product/우리는 MDK-ARM을 다운 받으면 됩니다.들어가면 이름, 이메일, 주소등 여러가지 정보를 입력하라고 하는데 입력하면 메일로 다운로드 링크를 보내줍니다. 이.. LED 인티케이터 동작시 다른 LED가 꺼지는 현상 제목 그대로 BLE Advertising 중에 LED 1번에 깜밖이는데문제는 LED 1번이 켜질때는 문제 없지만 꺼질때는 다른 LED들도 같이 꺼지는 것을 확인했습니다.이를 수정하기 위해서는 Board Support의 bsp.c 파일을 열어static uint32_t bsp_led_indication(bsp_indication_t indicate) 함수를 찾습니다.1234567891011121314151617181920212223242526272829303132333435static uint32_t bsp_led_indication(bsp_indication_t indicate){ uint32_t err_code = NRF_SUCCESS; uint32_t next_delay = 0; switch (ind.. 이전 1 2 다음