ALL125 IoT 데이터수집장치 보드 - USB to UART 회로 이슈 1. EasyEDA로 설계한 데이터수집장치 디바이스가 도착하였다.2. USB 장치 인식 성공 USB를 PC에 연결하여 정상적으로 CP2102 USB to UART가 인식하는 것을 확인하였다.문제는 펌웨어 업로드시에 부팅모드로 진입이 불가능한 것인데 이를 해결하고자 원인을 분석해야했다.3. 펌웨어 업로드 실패 원인 찾아보기(1) 부팅모드 진입 신호 확인펌웨어 바이너리 파일을 업로드하다가 자꾸 실패하여 부팅모드가 실시간으로 정상적인지 확인하였다.일단 정상적으로 작동중 이였다.(2) 부팅 시 GPIO LOW, HIGH 동작 확인새 펌웨어를 업로드시에 문제가 되는 GPIO는 12, 15, 2, 0, 5 이다.GPIO부팅조건12부팅하는 동안 LOW여야 함15부팅하는 동안 HIGH여야 하며, LOW로 설정시 시작 .. 2024. 7. 10. LVGL 라이브러리 (GUI) 1. LVGL이란?https://lvgl.io/ LVGL — Light and Versatile Embedded Graphics LibraryWe‘ve been using LVGL for our embedded graphics needs, and it has been used in a huge number of devices. We are very happy with its performance and its lightweight nature. We also highly appreciate the collaboration with LVGL‘s open source community.lvgl.io다양한 MCU와 디스플레이에 GUI 개발을 돕는 대형 라이브러리이다. 임베디드 개발자를 위해 다양한 MCU를 지.. 2024. 7. 10. ADS1115 (16bit ADC) 1. 개요센서를 구현하다 보면 ADC를 꼭 사용해야 하는 경우가 있다. ESP32의 경우 12bit 해상도의 ADC를 내장하고 있지만 더 정밀하게 센서로 부터 나오는 아날로그 신호 (0~3.3V)를 다루고 싶어졌다.외부 ADC로 유명한게 TI 회사의 ADS IC인데 그중 ADS1115 모델은 무려 16비트의 해상도를 지원하고 있다! 2. 데이터시트ADS1115는 1초당 860회의 샘플링 속도를 갖추고 있으며 차동신호일경우 ADC 입력을 2개로 받아 차동신호와 싱글엔디드 신호로 나눌수가 있다.그리고 해당되는 데이터는 I2C 통신으로 값을 얻어올 수 있다.특이해 보이는 건 ALERT/RDY 핀 인데, IC에서 출력되어 나오는 신호인 것 같다.ADS1115의 ADC가 (변환, 출력등이)준비된 상태일 경우 H.. 2024. 7. 10. ESP32-S3-WROOM 분석 1. 분석하게된 동기최근 IoT MCU 전문 Espressif 제조사 홈페이지를 방문하였는데, 놀랍게도 기존에 사용했던 MCU (ESP32-WROOM-32U) 보다 새로운 고성능 MCU들이 많이 출시가 되었다.공식홈페이지에서 ESP32-WROOM-32U는 이제 새로운 디자인에는 권장하지 않는단다... 역시 새로운 MCU가 출시되면 생산도 많이 줄게되서 그런가 보다.그래서 이것저것 MCU (엄밀하게는 SoC)를 찾다가 요새 많이 사용하고 있는 S3 시리즈를 눈여겨보았다.AIoT? (AI+IoT의 합성어)를 추진하는 것 같은데 딱히 MCU 수준에서 AI를 가동하고 싶지는 않았다.그래도 최근 임베디드 동향에 따르면 온 디바이스 AI ( 클라우드를 사용하지 않고, 디바이스에서 실행되는 AI ) 기술이 핫하니 데.. 2024. 7. 9. [C/C++] 고정된 너비 정수 (fixed-width integers) 자료형 1. 고정된 너비 정수 (fixed-width integers)다음과 같은 고정된 너비 정수 자료형은 stdint.h 헤더파일 typedef로 정의되어 있다.고정된 너비 정수원시자료형바이트 (Byte)int8_tchar 1uint8_tunsigned char1int16_tshort2uint16_tunsigned short2int32_tint4uint32_tunsigned int4int64_tlong long8uint64_tunsigned long long8이 같은 자료형을 사용하는 이유는 비트수를 고정하여 모든 시스템(프로그램)에서 동일한 bit수를 사용하도록 위함이다.예를 들어 32 비트 정수는 항상 4byte(32비트)를 사용한다.고정된 너비 정수는 정해진 비트 수만큼 메모리를 차지하므로, 메모리 관.. 2024. 7. 9. [F/W] 펌웨어 구현 시 메모리 관리 펌웨어란 하드웨어를 직접 접근하고 제어하는 밀접한 관계를 가지고 동작하는 소프트웨어의 일종이다.그렇기 때문에 일반적인 어플리케이션 소프트웨어와는 다르게 조금 더 신경 써줘야한다고 생각한다. 수정: 스택은 컴파일러가 정해주고 힙은 런타임(프로그램 실행 중 동적으로 바뀜)1 .스택 오버플로우 (Stack Overflow) 예방펌웨어의 크기가 커질수록 또는 최적화해야 할 필요가 있다면, 자신에 시스템에 맞는 스택과 힙의 크기를 결정해야 한다.스택은 메모리 최상단에 위치하여 데이터가 추가될 수록 아래로 커지는 자료구조힙은 반대로 데이터가 추가될 수록 위로 커지는 자료구조스택 여유 공간 확인 (모니터링) : FreeRTOS 테스크를 사용중이라면 각 태스크의 스택 사용량을 확인 할 수 있다. 또는 런타임 시 스택의.. 2024. 6. 25. 이전 1 ··· 3 4 5 6 7 8 9 ··· 21 다음