본문 바로가기

GD32F303

(8)
[STM32-48_W5500] 초소형 이더넷 보드 제작 네트웍 처리를 위해 소형이고 저렴하면서 어느정도 성능도 보장되는 MCU로 48핀 LQFP 패키지의 ST시리즈 MCU가 좋을것 같다. 48핀에 핀맵이 호환되는 MCU들이 많이 출시되고 있으므로 소형의 보드로 만들어 두면 여러 어플리케이션에 적용할 수 있을것 같아 SSM-Type EVM 형태로 제작 했다. 윗면은 48핀 패키지 MCU를 실장 할 수 있다. W5500 TCP 전송률 테스트에서 가격대비 탁월한 성능을 보여주는 GD32F303을 실장하여 제작해 보았다. 아래면에는 WIZnet의 W5500을 실장 할 수 있도록 했다.
[GD32F-48 SSM] Arduino GD32F303 I2C 테스트 - SSD1306 OLED SSD1306 라이브러리(Adafruit_SSD1306) 기본예제를 수정해서 간단히 OLED에 출력하는 예제를 구동하면 정상 동작하는 것을 확인 할 수 있다. #include #include #include #include #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SS..
GD32F303 SSM - Dhrystone, Whetstone, IIR Filter 벤치마크 테스트 MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. GD32F303 의 Dhrystone, Whetstone, IIR Filter 벤치마크 테스트 결과 정수 연산은 나쁘지 않은데 부동소수점 연산은 좋지 않다. STM32의 Cortex-M4코어와 비교하면 상당한 성능 차이가 있는것 같다. 하지만 가격 대비 성능으로 비교 한다면 ST..
[GD32F-48 SSM EVM] GD32F303 Arduino 만들기 GD32F303을 Arduino로 사용하기위해 보드파일을 하기 링크를 이용하였다. https://github.com/keyboardio/ArduinoCore-GD32-Keyboardio GitHub - keyboardio/ArduinoCore-GD32-Keyboardio: Arduino core for GD32 devices, community developed, based on original GigaDevic Arduino core for GD32 devices, community developed, based on original GigaDevice's core - GitHub - keyboardio/ArduinoCore-GD32-Keyboardio: Arduino core for GD32 devi..
[GD32-48 SSM] GD32F303 - Iperf로 W5500의 TCP Throughput 측정 테스트 STM32F103 시리즈 대체용으로 추천 받은 GD32F303은 최대 클럭 120Mhz로 구동되고 SPI클럭을 30Mhz로 구동할 수 있다. STM32F103 과 비교해서 W5500의 TCP Throughtput 테스트 성능 비교를 해보면 좋을 것 같다. 네트웍 전송율 테스트를 위해 PC에서는 iperf 프로그램을 사용하고 STM32에서는 W5500 TCP loopback 테스트 코를 조금 수정해 iperf 클라이언트 코드로 작성했다. int32_t iperf_tcps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; switch(getSn_SR(sn)) { case SOCK_ESTABLISHED :..
[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시리즈와 하드웨어적으로 호환 되므로 기..

반응형