본문 바로가기

분류 전체보기

(1991)
[ESP32-C3 SSM] BLE HID Keyboard 테스트 라이브러리는 https://github.com/T-vK/ESP32-BLE-Keyboard 를 사용 하였다. BleKeyboard 예제를 조금 수정하여 동작 시켜보자 ESP32-C3 SSM EVM에서 실행 후 장치를 검색하면 검색은 되지만 연결이 되지 않는다. 디버깅 메시지는 장치를 찾을 수 없다고 출력이 된다. Starting BLE work! E (23994) BT_BTM: btm_proc_smp_cback received for unknown device E (53994) BT_BTM: btm_proc_smp_cback received for unknown device E (57024) BT_BTM: Device not found BLE 5.0이라 그런가? ESP-IDF로 테스트 해봐야 할 것 같다...
ESP32-C3 - BLE5 UART 테스트 ESP32-C3를 이용하여 BLE UART를 테스트 해보자 기본 펌웨어 다운로드 하고 장치 검색하면 설정한 장치로 인식이 된다 // Create the BLE Device BLEDevice::init("ECPC3 UART"); BLE UART 초기화 #define SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E" // UART service UUID #define CHARACTERISTIC_UUID_RX "6E400002-B5A3-F393-E0A9-E50E24DCCA9E" #define CHARACTERISTIC_UUID_TX "6E400003-B5A3-F393-E0A9-E50E24DCCA9E" //1)BLE Device를 생성하고 BLEDevice::init(..
ESP32-C3 - BLE CUSTOM SERVICE 테스트 ESP32-C3의 가장 큰 장점으로 BLE 5.0이 있다. 저렴한 가격에 소형의 BLE 칩으로 사용하면 좋을것 같다. BLE 예제를 테스트 해보자 가장 간단한 CUSTOM SERVICE 코드로 테스트 했다. 라이브러리가 잘되어 있어 아주 간단하게 BLE 구현이 가능하다. #include #include #include // See the following for generating UUIDs: // https://www.uuidgenerator.net/ #define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b" #define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8" class MyCallbac..
ESP32-C3 3채널 UART 사용하기 ESP32-C3는 2개의 하드웨어 UART가 있고 USB CDC를 사용하면 3채널의 UART를 사용 할 수 있다. PC에서 UART로 제어 하면서 외부 UART 2채널을 사용할 수 있는 것이다. ESP NOW를 이욯하면 무선 UART 전송장치를 만들기에 딱 좋은 솔루션이 될 수 있다. UART0는 주로 디버깅용 및 다운로드용으로 많이 사용한다. Arduino 의 디폴트 핀정의는 아래와 같다. static const uint8_t TX = 21; static const uint8_t RX = 20; 디버깅 메시지는 부팅시 GPIO8의 설정 상태에 따라 선택 할 수 있다. UART1는 ESP32의 Any IO 타입으로 PIN MUX에 의해 원하는 핀에 할당해서 사용 할 수 있다. Arduino Code는 아..
ESP32-C3 SSM EVM - USB (USB CDC) ESP32-C3의 또다른 특징중 하나로 USB지원 한다. 처음에는 USB 풀스펙을 지원하는줄 알았는데 자세히 보면 USB Serial/JTAG 만 지원 한다고 한다. 약간 아쉬움이 있긴 한데 아무튼 ESP32-C3의 USB Seral(USB CDC) 테스트를 해 보자. ESP32-C3 메뉴에서 USB CDC On Boot 를 Enabled로 설정해야 한다. 이후 Serial 은 USB CDC로 출력 하게 된다. Arduino main 코드를 보면 USB 옵션에 따라 USB CDC가 Serial 으로 설정이 되는것을 확인 할 수 있다. extern "C" void app_main() { #if ARDUINO_USB_CDC_ON_BOOT Serial.begin(); #endif #if ARDUINO_USB_..
ESP32-C3 SSM EVM - 성능 측정 ESP32-C3는 기존 ESP32 시리즈(240Mhz)와 달리 160Mhz 32-bit RISC-V core 를 탑제하고 있다. 성능보다는 가격과 소비전력에 장점을 두고 있지 않을까.. 아무튼 기존 ESP32 Arduino 코드의 성능과 비교해서 ESP32-C3 의 성능 테스트를 해 두면 좋을것 같다. 우선 CPU Frequency를 160Mhz 로 설정해서 GPIO 코글 테스트를 해 보자 Arduino에서 제공하는 GPIO 제어 함수로 테스트 해 보면 #define LED_PIN1 3 void setup() { pinMode(LED_PIN1, OUTPUT); } void loop() { digitalWrite(3, 0); digitalWrite(3, 1); } 2.3us로 상당히 느리다. ESP32-C..
ESP32-C3 SSM EVM - 개발환경 설정 (Arduino 만들기) ESP32-C3 도 Arduino 개발 환경에서 테스트 가능하다. 다만 ESP32 Board Manager 버전이 2.0이상이어야 한다. Board Manager 에서 "ESP32C3 Dev Module"을 선택한다. 간단한 코드를 작성하고 다운로드 하면 정상적인 다운로드가 된다. 다운로드 까지는 잘 동작 하는데... 실행시 계속 리셋이 발생한다. rst:0x8 (TG1WDT_SYS_RST),boot:0xc (SPI_FAST_FLASH_BOOT) Saved PC:0x40380082 SPIWP:0xee mode:DIO, clock div:1 load:0x3fcd6100,len:0x484 load:0x403ce000,len:0x90c load:0x403d0000,len:0x2398 SHA-256 compar..
ESP32-C3 SSM EVM 보드 제작 ESP32 시리즈중 WiFi + BLE Soc ESP32-C3 칩셋이 저렴하게 판매 되고 있어 표준 핀맵의 SSM Type 으로 제작 해 보았다. 특히 ESP32-C3FH4는 4MB 플래시 메모리 까지 포함되어 있어 저렴한 MCU로 사용해도 좋을것 같다. Core는 ESP32와 달리 RISC-V 단일 코어라 성능은 조금 문제가 될수 있지만 WiFi, BLE 5.0, USB가 내장 되어 있어 가격대비 성능으로 보면 정말 좋은 칩인것 같다. (여기서 USB는 Serial,JTAG 기능만 한다고 하니 다른용도로 쓰기는 어려울것 같다.)