본문 바로가기

분류 전체보기

(1991)
Raspberry Pi PicoW - BLE Serial Profile 서비스 테스트 BLE는 Classic Bluetooth SPP와 같은 시리얼 서비스가 제공되지 않는다. 대신 BLE UART Custom 서비스로 구현해야 한다. Pi PicoW BLE Custom Profile 테스트 코드를 이용해서 간단히 BLE UART로 송수신 하는 테스트 코드를 작성해 보자. 참고로 Nordic UART 테스트 코드에서 서비스 UUID를 사용 하였다. #include #include #define SerialSerial1 #define SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E" // UART service UUID #define CHARACTERISTIC_UUID_RX "6E400002-B5A3-F393-E0A9-E50E24DCCA9E" #de..
Raspberry Pi PicoW - BLE Custom Profile 서비스 테스트 Raspverry Pi Pico W의는 Bluetooth Classic 및 BLE(Bluetooth Low Energy) 기능을 지원한다. BLE 기능을 테스트 해보자. Pico W의 BLE 설정 테스트를 참고 하여 코드를 작성할 수 있다. 가장 간단하게 테스트 해 볼수 있는 BLE Custom Profile로 데이터를 송수신 하는 코드를 작성하자. #include #include static char characteristic_data = 'H'; //BLE 연결 콜백 함수 void deviceConnectedCallback(BLEStatus status, BLEDevice *device) { (void) device; switch (status) { case BLE_STATUS_OK: Serial.p..
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..
Raspberry Pi Pico W - Bluetooth BT Serial SPP 테스트 Raspberry Pi Pico W Bluetooth 는 BLE 및 Classic Bluetooth 기능를 제공하고 시리얼 기능이 있는 SPP를 테스트 해보자. SPP는 기존 시리얼 통신 프로그램 기반 프로그램을 별다른 변경없이 무선으로 바꿀수 있다. 테스트 코드는 시리얼 포트로 송수신되는 데이터를 Bluetooth SPP로 주고 받을 수 있는 간단한 코드 이다. #include #define SerialDebug Serial1 void setup() { SerialBT.begin(); SerialDebug.begin(115200); SerialDebug.println("Pico W BT Serial Test."); pinMode(LED_BUILTIN,OUTPUT); } void loop() { byte..
Raspberry Pi PicoW - Bluetooth 설정 테스트 (BT Keyboard) Raspverry Pi Pico W의 무선 기능은 Infineon CYW43439를 사용한다. 이 장치에는 802.11n Wi-Fi와 Bluetooth 5.2를 모두 제공하는 2.4GHz 무선 장치가 포함되어 있으며 Bluetooth Classic 및 BLE(Bluetooth Low Energy) 기능을 지원한다. 기존에는 Bluetooth가 아닌 Wi-Fi만 지원했는데 이제 BLE를 지원 한다고 한다. C SDK 버전 1.5.1 과 최신 MicroPython 에서 Pico W가 Bluetooth 및 Bluetooth LE 장치를 사용할수 있다. 특히 ACL/SCO를 일시적으로 제외하고 BLE Central 및 Peripheral 역할과 함께 Bluetooth Classic을 지원한다고 한다. 우선 Pi..
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..