본문 바로가기

분류 전체보기

(1991)
GD32F130 SSM - W5500을 이용한 웹서버 테스트 GD32F130은 TSSOP20핀 페키지의 작고 저렴한 MCU로 64k 플래시 메모리를 지원하기 때문에 W5500을 연결하면 소형의 웹서버 만들기에 좋을것 같다. GD32F130에서 W5500 테스트 결과 웹서버 관련 라이브러리가 잘되어 있는 EthernetWebServer는 기본 플래시 용량이 64k라서 컴파일 하면 플래시 메모리 용량 부족 에러가 발생한다. #include #include "Ethernet_Generic.h" #include c:/users/jhpark/appdata/local/arduino15/packages/gd32community/tools/xpack-arm-none-eabi-gcc/9.3.1-1.3/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../..
GD32F130 - SPI 테스트, SPI 전송 속도 향상 및 DMA 사용하기 GD32F130의 SPI 클럭 속도는 18Mhz이다. #define LED1 PA1 void setup() { digitalWrite(LED1, 0); pinMode(LED1, OUTPUT); Serial.begin(115200); Serial.println("GD32 Test"); } unsigned char buf[3] = {1,2}; void loop() { SPI.transfer(buf, sizeof(buf)); SPI.transfer(buf, sizeof(buf)); } 테스트 결과 18Mhz 클럭이 출력되고 SPI출력 지연 시간은 1.1us로 최대 속도를 위해서는 SPI DMA를 사용해야 할것 같다. Arduino 코드 특성상 SPI Read, Write 부분을 1Byte식 처리 하도록 되어 ..
GD32F130 MCU 성능 테스트 - Dhrystone and Whetstone Benchmark GD32F130은 48Mhz로 동작하는 Cortex-M3 코어로 동일 클럭 M0시리즈 보다 50%이상 성능이 향상 되었다고 한다. GD32F130의 성능 측정을 위해 밴치마크 테스트를 해 보자. MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. 벤치마크 테스트 결과 48Mhz클럭으로 동작하는 Cortex-M0코어의 STM32F0..
GD32F130 SSM - 개발환경 설정 (STM32CubeIDE 오류, Arduino 만들기) 기존에 사용했던 GD시리즈는 STM32과 동일한 핀맵이고 개발툴도 STM32CubeIDE를 그대로 사용하여 개발 할 수 있었는데 GD32F130은 동일하게 동작하지 않는다. 아무래도 ST사에서 사용할수 없도록 하지 않았을까... [GD32-48 SSM] GD32F303 개발환경 설정 및 성능 테스트(STM32CubeIDE 이용) GigaDevice사의 GD32시리즈는 STM32시리즈와 동일 핀맵으로 호환 가능하으로 STM32를 대체해서 사용 할수 있다고 한다. 우선 GD32의 개발환경 설정과 간단한 성능 측정을 해 보자 개발환경은 ST사의 STM32C nexp.tistory.com 우선 STM32CubeProgramer 에서 디바이스 인식은 되지만 프로그램이 정상적으로 Write되지 않는다. 디바이스 I..
GD32F130 SSM - 보드 제작 간단한 프로젝트에 적용하는 1$이하 MCU로 STM32F030 시리즈중 TSSOP 20핀 타입을 가장 많이 사용 하는데 반도체 품귀 현상으로 부품 수급이 쉽지 않다. GigaDevice 사의 MCU는 ST와 동일한 핀맵으로 제작 되기 때문에 쉽게 대체 가능하고 20핀 대체용으로 GD32F130을 추천 받았다. 그래서 기존 STM32F030 SSM 보드에 납땜 해서 테스트 해 보았다. GD32F1 시리즈는 Cortex-M3코어로 최대 속도는 시장 제품보다 50% 증가고 동일한 주파수에서 코드 실행 효율성은 30~40% 향상되었으며 전력 소비는 20~30% 감소했다고 한다. STM32F030F4P6 의 경우 16k Flash가 최대 인데 GD32F130F6P6의 경우 동일한 패키지에 64k Flash를 지원..
STM32WB55 SSM - Zigbee 저전력 테스트 이번 프로젝트에서 초 저전력으로 주기적인 데이터 수집이 목표이다. AAA 배터리로 3년을 지속 할 수 있는 것이 목표 이다. 계산상으로 대기모드에서 15uA 이하가 유지 되어야 한다. STM32WB시리즈의 Zigbee 대기모드에서 RF동작이 가능한모드는 STOP2모드나 STNADBY 모드이다. STOP모드에서는 스펙상으로 2.2uA로 되어 있다. STM32WB의 저전력 모드에 대해 측정이 필요 할것 같다. 일반적으로 RF전송을 할 수 있는 모듈의 경우 15~30mA의 소모 전류가 필요 한데 저전력 모드로 들어 가지 않고 노말 5mA로 유지되면서 데이터 전송이 가능하다. Zigbee 모드에서 슬립모드로 진입하면.. UTIL_LPM_SetStopMode(CFG_INIT_TASK, UTIL_LPM_DISABL..
STM32WB55 SSM - Zigbee 데이터 송수신 테스트 STM32WB55는 무선 관련 스텍이 별도의 코어에서 수행되고 필요에 따라서 원하는 무선 프로파일을 다운로드 해서 사용할 수 있는 구조이다. nRF5시리즈의 SoftStack과 유사한 구조 이다. 차이점이라면 별도의 코어로 동작하기 때문에 장단점이 있을 수 있겠다. Zigbee 스택을 이용해서 무선으로 데이터 전송하는 테스트를 해 보자. 우선 Zigbee중 FFD(풀스택)을 다운로드 해서 테스트 해보면 좋을것 같다. 무선 스텍은 STM32WB_Copro_Wireless_Binaries 폴더에 있다. 소프트에어 스택 다운로드 방법은 STM32CubeProgrammer 를 이용하여 다운로드 하면 된다. 아래 그림과 같은 순서로 다운로드 하면된다. 주의 사항으로는 Start address 를 스택별, STM3..
STM32WB55 - Arduino Dhrystone, Whetstone, IIR Benchmark 성능 테스트 STM32WB55도 Arduino 환경에서 개발 가능하다. Board 파일을 "Generic STM32 Series" 로 선택해서 원하는 칩으로 환경설정 할 수 있다. 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. 벤치마크 테스트 결과 상당히 낮은 수치가 나온다. 저전력을 위해 32Mhz로 구동하고 있지만 Cortex-M4코어에서 너무 낮은 수치가 나오는데... mode = Arduino Dhrystone Benchmark, Version 2.1 (Language: C) Execution starts, 300000 runs through Dhrystone Execution ends : 26.643 Seconds Microse..