ESP32 개발 환경

공부하자·2022년 9월 13일
1

ESP32 이해

ESP32 SoC 이해

  • ESP32 SoC 란?
  • ESP32 SoC 특징
    • ESP32는 소형 IoT기기에 탑재하기 위한 무선 통신 컨트롤러 장치
    • Wi-Fi와 Bluetooth가 통합된 SoC모듈
    • 주로 모바일, 웨어러블 디바이스 및 IoT통신 제품에 탑재하기 위해 설계됨
  • HW spec.
    • Processor : Xtensa® single-/dual-core 32-bit LX6 microprocessor(s),
      up to 600 MIPS (200 MIPS for ESP32-S0WD, 400 MIPS for ESP32-D2WD)
    • Memory: 448 KB ROM, 520 KB SRAM, 16 KB SRAM in RTC
    • 2.4 GHz Wi-Fi & Bluetooth
    • Peripherals : Capacitive touch sensors, Hall sensor, SD card interface, Ethernet, high-speed SPI, UART, I2S and I2C
    • Ultra-low-power

ESP32 SoC

  • 소형 IoT기기에 탑재하기 위한 무선 통신 컨트롤러 장치
  • Wi-Fi와 Bluetooth 통합
  • 모바일, 웨어러블 디바이스 및 IoT 통신 제품에 탑재

ESP32 SoC 구조

  • 단일 칩으로 구성
    • 칩 내부에 CPU를 비롯한 네트워크 및 IO 디바이스 Integration

단일 칩 구성

ESP32 : CPU & On-Chip Memory

  • CPU(Processor)
    • Xtensa® single-/dual-core 32-bit LX6 microprocessor(s)
    • up to 600 MIPS (200 MIPS for ESP32-S0WD, 400 MIPS for ESP32-D2WD)
  • On-Chip Memory
    • 448 KB ROM
    • 520 KB SRAM
    • 16 KB SRAM in RTC
    • ESP32-D0WDR2-V3 provides 2 MB PSRAM

ESP32: WiFi

  • 802.11 b/g/n
  • 802.11 n (2.4 GHz), up to 150 Mbps
  • WMM
  • TX/RX A-MPDU, RX A-MSDU
  • Immediate Block ACK
  • Defragmentation
  • Automatic Beacon monitoring (hardware TSF)
  • 4 × virtual Wi-Fi interfaces
  • Antenna diversity

802.11 b/g/n (무선랜)

ESP32: Bluetooth

  • Bluetooth v4.2, BLE
  • Class-1, Class-2, Class-3
  • +12 dBm transmitting power
  • NZIF receiver with –97 dBm BLE sensitivity
  • Adaptive Frequency Hopping (AFH)
  • Standard HCI based on SDIO/SPI/UART
  • High-speed UART HCI, up to 4 Mbps
  • Bluetooth 4.2 BR/EDR BLE dual mode controller
  • Synchronous Connection-Oriented/Extended (SCO/eSCO)
  • CVSD and SBC for audio codec
  • Bluetooth Piconet and Scatternet
  • Multi-connections in Classic BT and BLE
  • Simultaneous advertising and scanning

ESP32: Peripheral

  • 34 × programmable GPIOs
  • 12-bit SAR ADC up to 18 channels
  • 2 × 8-bit DAC
  • 10 × touch sensors
  • 4 × SPI
  • 2 × I²S
  • 2 × I²C
  • 3 × UART
  • 1 host (SD/eMMC/SDIO)
  • 1 slave (SDIO/SPI)
  • Ethernet MAC interface with dedicated DMA and IEEE 1588 support
  • CAN 2.0
  • IR (TX/RX)
  • Motor PWM
  • LED PWM up to 16 channels
  • Hall sensor

ESP32: Security

  • Secure boot
  • Flash encryption
  • 1024-bit OTP, up to 768-bit for customers
  • Cryptographic hardware acceleration (AES, Hash, RSA, ECC)
  • Random Number Generator (RNG)

ESP32: RTC & Low Power Management

  • RTC (Real Time Clock)
  • PMU (Power Management Unit)
    • Active, Sleep mode 제어
  • ULP(Ultra Low Power) co-processor
    • ULP RISC-V co-processor
    • ULP FSM co-processor

ESP32 모듈

  • ESP32 SoC를 이용하여 사용자가 사용하기 쉽게 모듈화 설계
    • ESP32 SoC와 외부 연결이 용이하도록 설계
    • WiFi/BT RF 특성 튜닝 된 안테나 제공

  • ESP32 WROOM
    • 2.4 GHz Wi-Fi + Bluetooth® + Bluetooth LE module
    • Built ESP32 series of SoCs, Xtensa® dual-core 32-bit LX6 microprocessor 4/8/16 MB flash
    • 26 GPIOs, rich set of peripherals
    • On-board PCB antenna or external antenna connector

  • ESP32-WROVER
    • ESP32 + SPI PSRAM
    • Higher level application

ESP32-WROOM

  • ESP32를 이용한 임베디드 보드 개발시 대부분 ESP32 모듈 사용
  • ESP32 모듈 사용시 장점
    • 즉시 제품화 가능하도록 대부분의 하드웨어 설계 완료 됨
      • 일부 필요한 센서 등 IO 장치만 추가로 설계하여 사용 가능
    • WiFi/BT 안테나 회로 구현
      • 별도로 안테나 성능을 높이기 위한 RF 설계 불필요
      • 제품화에 필요한 RF 인증시험 완료된 모듈 사용하여 제품화 용이
  • ESP32-WROOM

ESP32 보드 개발 -> 대부분 ESP32 모듈 사용
즉시 제품화 가능
WiFi/BT RF 설계 불필요


  • ESP32-WROOM 모듈의 I/O interface는 제공된 datasheet을 통하여 확인 가능
    • esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf

ESP32-WROOM : Pin Description


Kepler-ESP A Board

Overview

  • Kepler-ESP A의 주요 구성은 ESP32 프로세서가 탑재된 메인 보드 1종, 센서 보드 1종, 인터페이스 보드 2종, 릴레이 보드 1종과 다양한 센서 모듈로 구성

Main board layout

Block Diagram

회로 : ESP32-WROOM

  • 제공된 schematic(회로도)을 이용하여 회로 설계 내용 확인
    • KEPLER-ESP-A_DUAL_BLUE_3.0V.pdf
  • ESP32-WROOM 모듈을 이용한 회로도 설계
    • 모듈의 I/O interface는 제공된 datasheet을 통하여 확인 가능
    • esp32-wroom-32d_esp32-wroom 32u_datasheet_en.pdf

회로 : Power

  • Power
    • 동작 전압범위는 2.3V~3.6V
    • 단일 전원 공급 장치 사용할 경우 권장 전압은 3.3V, 500mA이상
  • 전원 공급
    • 2개의 USB장치(USB1, USB2)중 하나를 통해 공급이 가능
    • 기본적으로 USB1(Debug USB)장치를 통해 전원입력 및 UART 통신
    • 소비전력이 큰 경우(약 500mA이상) USB2에 별도의 USB Adapter(1000mA이상)를 이용
  • 전원 공급 회로
    • USB장치에서 공급받은 5V전원은 레귤레이터(Regulator)를 통해 3.3V 전원 생성
    • 외부확장인터페이스(Connector Interface)의 경우 3.3V~5V전압의 입출력장치를 연결하기 위해서 Power Enable된 5V전압을 확장인터페이스로 인가

확인하기




회로 : Debug (USB/UART)

  • USB/UART I/F (USB1)
    • Power USB, Debug USB(Power겸용)로 구성
  • Debug USB / UART0
    • USB to UART(FT232)장치를 통해 RS232통신 규격 제공
    • ESP32의 UART0포트를 통해 데이터 신호 입출력
    • RTS(request To Send)와 DTR(Data Terminal Ready)을 통한 하드웨어 통신제어

ESP32 개발 환경

소프트웨어 개발 환경

  • 교차 개발 환경 (Cross Development Platform)
    • 소프트웨어를 개발하는 시스템(컴퓨터)과 실제 실행하는 시스템이 서로 다른 개발 환경
  • 호스트(Host) 시스템과 타깃(Target) 시스템
    • 호스트 시스템 : 개발환경을 가지고 소프트웨어를 개발하고 빌드하는 컴퓨터 (PC)
      • Windows, Linux, Mac OS 등 다양한 환경 구성 가능
    • 타깃 시스템 : 개발하고자 하는 임베디드 시스템 (Kepler -ESP32 A )
  • 교차 개발 환경 구성 요소
    • 크로스 컴파일러 / 툴체인
    • 디버거, 에디터 등
    • 통합개발환경(IDE)

교차 개발 환경
호스트 시스템과 타깃 시스템

ESP32 개발 환경 설정

  • 소스코드 편집기 : VSCode, Eclipse, VI 에디터
  • ESP32 툴체인 : 어셈블러, 컴파일러, 링커, 디버거 등
    • SDK 형태로 툴체인을 포함하여 API, Library, 샘플 소스코드를 포함한 툴체인 사용
      • SDK : Software Development Kit
      • API : Application Programming Interface
    • ESP32-IDF, ESP32 Arduino, NodeMCU, MicroPython 등 다양함

Arduino Platform

Arduino Platform

  • Arduino is an open-source electronics platform based on easy-to-use hardware and software
  • Basic structure
    • read inputs (sensor) turn it into an output (actuator)
  • What to be done by board between sensing and actuating
    • a set of instructions to the microcontroller on the board
  • Started from AVR, now extended to various microcontrollers
    (e.g., ARM Cortex M-series)
  • Reference :
  • Arduino는 사용하기 쉬운 하드웨어와 소프트웨어를 기반으로 하는 오픈 소스 전자 플랫폼이다.
  • 기본 구조
    • 읽기 inputs(sensor)을 output(actuator)으로 바꾼다.
  • 감지와 작동 사이에서 보드별로 수행할 작업
    • 보드의 마이크로컨트롤러에 대한 일련의 명령
  • AVR에서 시작하여 이제 다양한 마이크로컨트롤러로 확장됨
    (예: ARM Cortex M 시리즈)
  • 참조:

Arduino Programming

Arduino ESP32

Arduino API Reference



Low level 정보 없이 쉽게 프로그래밍할 수 있다.

profile
아주대학교 수업 기록

0개의 댓글