본문 바로가기

Nordic

(42)
[nRF51822 xBee EVM] - Arduino Serial, ADC Test [nRF51822 xBee EVM] 보드의 IO2는 [xBee EVM]보드의 표준 핀맵중 ADC에 할당되어 있다. Arduino 기본 예제를 이용해서 ADC 테스트 결과 값이 이상하게 출력된다. 핀맵 설정에 문제가 있을것 같은데... 뭐가 문제일까? variant.h 파일의 ADC 핀맵 정의를 보니 IO2가 PA1에 할당이 되어 있다. #define PIN_A1 (2) // P0.02 그래서 소스코드에서 ADC 핀설정을 A1으로 하니 nRF51822의 ADC값이 정상적으로 출력 되는것을 확인 할 수 있다. #define LED_PIN1 13 #define LED_PIN2 14 const int analogInPin = A1; int sensorValue = 0; void setup() { pinMode(..
[nRF51822 xBee EVM] - Arduino 성능 측정 nRF51822는 16Mhz로 구동되는 Cortex-M0 코어로 Arduino에서 GPIO 제어 속도를 측정해 보았다. 우선 Arduino에서 제공되는 기본 GPIO 제어 함수로 테스트 해 보면.. #define LED_PIN1 13 void setup() { Serial.begin(115200); pinMode(LED_PIN1, OUTPUT); } void loop() { digitalWrite(LED_PIN1, 1); digitalWrite(LED_PIN1, 0); } 1.8us로 상당히 느리다. GPIO를 레지스터로 직접 제어 해보자 GPIO 직접 제어 함수가 어디에 정의 되어 있을까? digitalWrite() 함수를 보면 아래와 같이 제어 하고 있다. void digitalWrite( uint3..
[nRF51822 xBee EVM] - Arduino Board 만들기 [xBee EVM] 보드는 ESP32 Arduino 확장 테스트 보드를 이용하여 쉽게 Arduino 보드로 제작 가능하도록 설계 하였다. Arduino IDE에서 nRF5x 를 보드 매니저 추가 하기 위해 하기 링크를 추가 해 주어야 한다. https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json 보드 매니저에서 nRF5 를 검색하면 Arduino nRF5 Board를 설치 할 수 있다. 보드 파일이 추가 되었다면 보드를 "Generic nRF51" 로 설정하고 하면 된다. [nRF51822 xBee EVM] 보드에 실장되어 있는 LED(IO13, 14)를 제어 해 보자 #define LED_PIN1 13 #define LED..
[nRF51822 xBee EVM] BLE 테스트 - BLE HID KeyBoard(IAR) nRF5 SDK에서 제공하는 BLE예제 중에 BLE HID Keyboard 예제를 테스트 해 보았다. /examples/ble_peripheral/ble_app_hids_keyboard 소프트디바이스 설정은 [nRF51822 xBee EVM] BLE 테스트 - BLE UART(IAR) 를 참고 해서 설정하고 펌웨어를 다운로드 한다. int main(void) { bool erase_bonds; uint32_t err_code; // Initialize. err_code = NRF_LOG_INIT(NULL); APP_ERROR_CHECK(err_code); timers_init(); buttons_leds_init(&erase_bonds); nrf_gpio_cfg_output(13); ble_stack_i..
[nRF51822 xBee EVM] BLE 테스트 - BLE UART(IAR) nRF51822의 가장 큰 특징인 BLE 동작 테스를 해 보자 nRF5 SDK에서 기본으로 제공하는 BLE UART 예제를 이용하여 테스트 해볼 예정이다. /examples/ble_peripheral/ble_app_uart BLE를 사용하려면 softdevice 라이브러리가 필요 한데 softdevice를 다운로그 하려면 nRFgo-Studio (https://www.nordicsemi.com/Products/Development-tools/nRFgo-Studio/Download ) 가 필요하다. 우선 nRFgo-Studio를 이용해서 hex 파일을 프로그램 해주어야 한다. /components/softdevice/s130/hex BLE 소스코드에서 BLE UART 앱에서 전송되는 데이터를 처리 하는 함..
[nRF51822 xBee EVM] 기본 동작테스트 - I2C 테스트(IAR) nRF5x 를 이용하는 프로젝트는 대부분 IOT용 센서가 많이 있으므로 I2C 는 가장 기본이 될것 같다. nRF5 SDK에서 제공하는 I2C 예제를 이용하여 테스트 해보자. 가장 쉽게 테스트 해 볼 수 있는 I2C 스캐너 예제를 구동해 보자. /examples/peripheral/twi_scanner [nRF51822 xBee EVM] 보드의 I2C는 IO21, IO20에 할당되어 있다. pca10028.h 파일에서 핀맵을 [nRF51822 xBee EVM] 보드에 맞도록 수정 한다. //#define ARDUINO_SCL_PIN 7 // SCL signal pin //#define ARDUINO_SDA_PIN 30 // SDA signal pin #define ARDUINO_SCL_PIN 21 // ..
[nRF51822 xBee EVM] 기본 동작테스트 - PWM 테스트(IAR) [nRF51822 xBee EVM] 보드의 LED를 이용하여 PWM 테스트를 해 보자 nRF5 SDK 예제 /examples/peripheral/pwm_library 를 이용한다. LED는 IO13, IO14에 할당되어 있다. PWM 주파수 및 핀을 설정한다. app_pwm_config_t pwm1_cfg = APP_PWM_DEFAULT_CONFIG_2CH(5000L, 13, 14); nRF5x PWM 테스트 소스 코드를 nRF51822 xBee EVM 보드에 맞도록 수정해서 구동하면 LED가 스무스하게 점등되는것을 확인 할 수 있다. APP_PWM_INSTANCE(PWM1,1); // Create the instance "PWM1" using TIMER1. static volatile bool read..
[nRF51822 xBee EVM] 기본동작테스트 - UART 테스트(IAR) [nRF51822 XBEE EVM] 보드의 UART는 IO0(RXD), IO1(TXD)에 할당 되어 있다. nRF5x ARDUINO 기본 할당 핀맵에 맞도록 설계 했다. nRF5 SDK의 /examples/peripheral/uart 폴더에 예제 코드를 이용하여 테스트 해 보았다. 우선 핀정의 파일을 보드에 맞도록 수정 한다. /components/boards/pca10028.h //#define RX_PIN_NUMBER 2 //#define TX_PIN_NUMBER 3 #define RX_PIN_NUMBER 0 #define TX_PIN_NUMBER 1 기본 예제 소스코드는 UART 에코 테스트 코드로 문제 없이 잘 동작 한다. int main(void) { uint32_t err_code; bsp_b..