본문 바로가기

Nordic/nRF52

(27)
nRF52832 SSM - BLE HID Key Board 테스트 Bluefruit 라이브러리에 BLEHidAdafruit 클래스를 이용하면 쉽게 BLE HID Keyboard를 구현 할 수 있다. 제공예제에서 필요한 부분만 이용해서 가장 간단하게 테스트 할 수 있는 코드를 작성하고 테스트 해 보자 #include #define LED1_PORT 22 #define SW1_PORT 21 BLEHidAdafruit blehid; bool hasKeyPressed = false; void setup() { pinMode(SW1_PORT, INPUT_PULLUP); pinMode(LED1_PORT, OUTPUT); digitalWrite(LED1_PORT, 1); Serial.begin(115200); while ( !Serial ) delay(10); // for nrf5..
nRF52832 SSM - 9axis IMU ICM-20948(MPU9250) BLE 전송 테스트 (Roll, Pitch, Yaw 그래프 출력) nRF52832 SSM 보드에는 9축 IMU센서 ICM-20948(MPU9250)가 실장되어 있다. 3축 자세 정보를 측정해서 BLE를 통해 전송하는 테스트를 해 보자. BLE 서비스는 BLE-UART를 이용하고 ICM-20948(MPU9250)의 센서 데이터를 주기적(10ms)로 전송하는 코드 #include #include #define LED_BUILTIN 22 // BLE Service BLEUart bleuart; // uart over ble MPU9250 mpu; void InitSensor(void) { Wire.begin(); delay(2000); if (!mpu.setup(0x68)) { // change to your own address while (1) { Serial.print..
nRF52832 SSM - BLE UART 테스트 (Adafruit Bluefruit) Adafruit 예제를 참고로 BLE의 가장 기본이 되는 BLE UART 테스트를 해 보자. 필요 없는 기능은 다 제거 하고 가장 심플하게 코드를 수정 했다. BLE앱에서 nRF52832 보드의 LED를 On/Off 하는 기본 예제 #include #define LED_BUILTIN 22 // BLE Service BLEUart bleuart; // uart over ble void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); Serial.begin(115200); Serial.println("nRF52832 SSM BLE-UAR Test"); // Setup the BLE LED to be enabled on CONNE..
nRF52832 SSM - W5500 이더넷 웹서버 테스트 nRF52832 SSM 보드에서 W5500 EVM 모듈을 이용하여 간단한 Ethernet Webserver 예제를 테스트 했다. W5500 모듈은 nRF52832의 SPI와 GPIO11의 CS핀에 연결되어 있다. 코드는 RP2040에서 테스트 했던 웹서버 코드를 이용해서 작성 하였다. byte mac[] = {0x00, 0x08, 0xDC, 0x00, 0x00, 0x00}; #include #include "Ethernet_Generic.h" #include #define W5500_CS_PIN 11 #define LED1_PIN 22 #define Led1On() digitalWrite(LED1_PIN, 1) #define Led1Off() digitalWrite(LED1_PIN, 0) Ethernet..
nRF52832 SSM - Dhrystone, Whetstone, IIR Benchmark 성능 테스트 nRF52832는 64Mhz로 동작하고 FPU를 탑제한 Cortex-M4 코어 MCU이다. MCU의 성능 측정을 위해 밴치마크 테스트를 해 보았다. MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. 벤치마크 테스트결과 BLE 기능이 있는 ESP32 벤치마크 테스트 와 비교 해보면 클럭이 낮아 그런지 정수연산은 느리지만 FPU 성..
nRF52832 SSM - Arduino 만들기 (Adafruit nRF52) nRF52832 SSM 보드는 사용자가 쉽게 프로그램을 작성하고 수정할 수 있어야 하는 것이 큰 미션중에 하나이기 때문에 Arduino 환경에서 구동이 되어야 할것 같다. (Arduino에서만 개발이 가능하다고 한다.) 아무튼 nRF52를 지원하는 Arduino Board 파일은 몇가지 존재 하는데 그중에 가장 많이 사용하고 예제도 풍부한 Adafruit nRF52 Board 파일을 사용하기로 결정 Arduino Board 파일을 설치 https://github.com/adafruit/Adafruit_nRF52_Arduino https://adafruit.github.io/arduino-board-index/package_adafruit_index.json Adafruit nRF52 보드를 선택해도 되지..
nRF52832 SSM - BLE HTS 테스트 (IAR) nRF52832로 BLE관련 한가지더 테스트를 해 보자. 많이 사용하는 온도 전송 서비스(HTS)를 테스트하는 코드가 있다. 코드는 전형적인 BLE GATT 예제이다. int main(void) { bool erase_bonds; // Initialize. log_init(); timers_init(); buttons_leds_init(&erase_bonds); power_management_init(); ble_stack_init(); gap_params_init(); gatt_init(); advertising_init(); services_init(); sensor_simulator_init(); conn_params_init(); peer_manager_init(); // Start executi..
nRF52832 SSM - BLE UART 테스트 (IAR) 빠른 테스트를 위해 기존에 사용했던 BLE UART예제를 구동 했는데 기존 코드가 정상 동작을 하지 않는다. 옛날 버전이라 그런가? 최신 버전을 다운로드 해서 테스트 해 보자. 노르딕사에서 제공하는 최신 SDK, Softdevice 를 다운로드 해서 테스트 해 보았다. 컴파일 에러가 발생한다. nRF5x 시리즈는 버전의 호환성이 너무 떨어져 새로운 버전을 사용할때마다 한번에 진행 되는 것이 없는것 같다. 계속 문제가 생기네.. 소프트 디바이스도 버전에 따라 용량설정과 헤더 파일을 다 꿔줘야 하는(?) 일을 해 주어야 하고... nRF52832로 꼭 진행 해야 한다고 하니... 어쩔수는 없다. 구글링 결과 컴파일러의 라이센스 문제라고 한다. https://www.nordicsemi.com/Products/..

반응형