본문 바로가기

분류 전체보기

(1955)
[GD32-48 SSM] GD32F303 SPI DMA 테스트 GD32F303보드의 SPI 최대 클럭속도는 스펙상 30Mhz까지 가능하다. 핀투핀 호환되는 STM32F103 보드의 SPI 전송 테스트를 SPI DMA 와 비교해서 테스트 해보자 먼저 STM32CubeIDE를 이용하여 새로운 프로젝트를 생성하고 SPI 세팅을 한다. STM32CubeIDE에서 SPI 클럭 설정은 STM32F103 기준이라 최대 클럭주파수이상 설정하면 경고가 발생한다. GD32F303의 경우 120Mhz까지 설정 가능하므로 SPI클럭을 60Mhz로 설정이 가능하다. SPI DMA를 사용하지 않으면 SPI 출력 간격이 650ns정도로 측정이 된다. SPI DMA를 추가 해보자. GD32 SPI DMA 사용을 위해 SPI1_TX 를 추가 한다. GD32F303 에서 SPI DMA를 사용하면 ..
[GD32-48 SSM] GD32F303 개발환경 설정 및 성능 테스트(STM32CubeIDE 이용) GigaDevice사의 GD32시리즈는 STM32시리즈와 동일 핀맵으로 호환 가능하으로 STM32를 대체해서 사용 할수 있다고 한다. 우선 GD32의 개발환경 설정과 간단한 성능 측정을 해 보자 개발환경은 ST사의 STM32CubeIDE를 이용하면 된다고 한다. 테스트에 사용한 칩은 GD32F303CCT6 이다. 보드 제작하고 STM32CubeProgrammer로 STLink JTAG 접속하면 연결 되는것을 확인 할 수 있다. STM32로 인식된다. STM32CubeIDE 로 48핀 페키지 STM3F103C 로 선택해서 기본 예제를 컴파일했다. 하지만 디버깅하면 칩 인식을 하지 못한다. 칩 ID가 달라서 그런가? 일단 컴파일 된 바이너리를 다운로드 해 보자. 우선 STM32F103 시리즈의 최대 클럭 7..
[GD32 SSM EVM] GD32F303 테스트 보드 제작 반도체 대란으로 인해 ST 제품들의 품귀 현상이 발생하여 부품 수급이 힘들어 졋다. 물량이 없다 보니 가격도 상당히 상승 해서 기존 대비 10배 ~ 100배로 비싼곳도 있다. ST의 대체품을 찾다 GigaDevice사의 GD32시리즈를 추천 받았다. ST의 핀맵과 동일하며 펌웨어도 바이너리레벨에서 동일게(?) 동작 한다고 한다. 그중에서 STM32F103 시리즈를 대체 할수 있는 GD32F103, GD32F303 을 테스트 해보자. GD32F303은 Cortex-M4 코어에 120Mhz로 동작하며 128~1M Flash를 가지면서 가격은 STM32F103 시리즈보다 저렴하다. 스펙상으로는 정말 좋아 보이는데 실제 ST제품을 대체 할 수 있을지 테스트 해보자 STM32시리즈와 하드웨어적으로 호환 되므로 기..
ESP32-C3 ESP-IDF에서 TCP, UDP Iperf로 WiFi Throughput 측정 테스트 ESP32-C3 를 Aruino 개발환경에서 WiFi 전송률 테스트 했을때 속도가 느려서 ESP-IDF 에서 제공하는 iperf 테스트 예제로 성능을 측정해 보자 ESP32 ESP-IDF WiFi 성능 측정에 사용했던 iperf 테스트 코드를이용 해서 ESP32-C3에서 동작하도록 했다. ESP32-C3 TCP Client Throughput 테스트 PC 에서는 iperf 를 서버로 설정하고 동작하고 ESP32를 클라이언트로 설정하여 iperf 테스트를 해 보면 32Mbps 정도 측정된다. ESP32 TCP Server Throughput 테스트 PC 에서는 iperf 를 클라이언트로 설정하고 동작하고 ESP32를 서버로로 설정하여 iperf 테스트를 해 보면 31Mbps 정도 측정된다. ESP32-C3..
ESP32-C3 ESP-IDF SDK에서 GPIO 성능 테스트, Arduino IDE 코드와 비교 ESP-IDF SDK 개발 환경에서 ESP32-C3 성능을 테스트해 보자. ESP32 Arduino IDE 개발환경에서 성능 테스트 결과 와 비교해 보면 좋을것 같다. 우선 SDK에서 제공하는 GPIO제어 예제로 테스트 해보자 #define BLINK_GPIO 0 void app_main(void) { gpio_reset_pin(BLINK_GPIO); /* Set the GPIO as a push/pull output */ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); while(1) { gpio_set_level(BLINK_GPIO, 1); gpio_set_level(BLINK_GPIO, 0); } } ESP32-C3 GPIO 토글 주기가 280ns(1.7Mh..
ESP32-C3 Arduino IDE - Iperf로 WiFi TCP Throughput 측정 테스트 ESP32-C3 Arduino 개발 환경에서 WiFi 성능을 테스트 해 보자 Arduino WiFi TCP 코드를 수정해 iperf 서버 코드를 만들었다. #include #ifdef ESP32 #include "esp_task_wdt.h" #define WDT_TIMEOUT 9 #endif const char* ssid = STASSID; const char* password = STAPSK; int port = 5001; WiFiServer server(port); void setup() { esp_task_wdt_init(WDT_TIMEOUT, 0); Serial.begin(115200); Serial.println("ESP32 Simple web Start"); Serial.println(ssid..
[ESP32-C3 SSM] Arduino IDE에서 W5500 iperf tcp 전송률 테스트 W5500 Arduino 라이브러리 Ethernet2 를 이용하여 W5500을 테스트 하면 속도가 느리다. ESP32-C에서도 역시 W5500의 TCP 전송율이 5Mbp정도로 느리게 측정된다. 라이브러리를 수정해서 ESP32용으로 만들어 테스트 해 보았다. \Arduino\libraries\Ethernet2\src\utility\w5500.cpp #if _USE_RP2040_SPI_DMA #include "w5500_rp2040_dma.hpp" #elif _USE_STM32_SPI_DMA #include "w5500_stm32_dma.hpp" #elif _USE_ESP32_SPI #include "w5500_esp32.hpp" #else #include "w5500.hpp" #endif #define U..
[ESP32-C3 SSM] BLE 5.0 - BLE HRM 심박수 모니터 테스트 ESP32-C3는 BLE 5.0이 내장되어 있다. BLE관련 여러 서비스 중 표준 HRM 서비스를 테스트 해보자. HR 수집기는 데이터를 사용할 수 있을 때마다 HRM 특성으로부터 알림을 받는다. 측정값은 Bluetooth LE 패킷당 23바이트의 데이터로 전송되고 첫 번째 바이트는 Flag 라고 하며 데이터 형식에 대한 정보를 제공 한다. HR 데이터 형식 : HR 값이 UINT8 또는 UINT16 형식인지 나타내는 1비트. 센서 접촉(SC) : SC 기능 지원 여부, 지원 여부, 지원 여부를 나타내는 2비트. Energy Expended(EE) : HRM 특성에서 Energy Expended가 있음을 나타내는 1비트. RR-간격(RR) : RR-간격 측정이 HRM 특성에 존재하는지 여부를 알려주는 1..

반응형