본문 바로가기

[ST_MICRO]/STM32G0

(18)
[STM32G0 SSM EVM] Dhrystone, Whetstone, IIR Filter 벤치마크 테스트 MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. STM32G030 의 Dhrystone, Whetstone, IIR Filter 벤치마크 테스트 결과 플래시 메모리 용량 관계로 컴파일 에러가 발생한다. 정수 연산은 나쁘지 않은데 부동소수점 연산은 좋지 않다. STM32의 Cortex-M4코어와 비교하면 상당한 성능 차이가 있는..
[STM32G0 SSM] Arduino - Serial1 추가 하기 STM32G031은 2개의 UART를 가지고 있다. UART를 하나 더 추가 해 보자 UART1, UART2 핀맵은 아래와 같이 할당 가능하다. Aruino 폴더에서 소스 파일을 열어 보면 시리얼 클레스를 확인 할 수 있다. \arduino\HardwareSerial.cpp HardwareSerial::HardwareSerial(uint32_t _rx, uint32_t _tx) { init(digitalPinToPinName(_rx), digitalPinToPinName(_tx)); } HardwareSerial::HardwareSerial(PinName _rx, PinName _tx) { init(_rx, _tx); } HardwareSerial::HardwareSerial(void *periphera..
[STM32G0 SSM] Arduino W5500 Ethernet WebServer 테스트 Arduino Ethernet2 라이브러리를 이용하여 W5500 EVM 모듈을 테스트 할수 있는 간단한 Ethernet Webserver 예제를 테스트 했다. W5500의 IP 정보를 가져 오지 못한다. server is at : 0.0.0.0 SPI 클럭 파형은 정상적인데... 뭐가 문제 일까? 출력 클럭이 정상이라면 입력(MISO)쪽이 문제이지 않을까? GPIO_AF4_SPI2 -> GPIO_AF0_SPI2 로 변경하니 잘 동작한다. #ifdef HAL_SPI_MODULE_ENABLED WEAK const PinMap PinMap_SPI_MISO[] = { //{PA_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_SPI2)}, //{PA_3..
[STM32G0-SSM EVM] Arduino 내부 온도센서 테스트 STM32G0에는 칩내부에 온도 센서가 있다. 온도값에 따라 리니어 하게 전압으로 출력 되지만 절대온도로 사용하려면 보정이 필요 하다고 한다. 대략 온도 측정하기는 좋을것 같다. STM32G0 내부 온도 출력 Aruino 소스코드 #include "stm32yyxx_ll_adc.h" /* Values available in datasheet */ #define CALX_TEMP 25 #if defined(STM32F1xx) #define V25 1430 #define AVG_SLOPE 4300 #define VREFINT 1200 #elif defined(STM32F2xx) || defined(STM32F4xx) #define V25 760 #define AVG_SLOPE 2500 #define VREF..
[STM32G0-SSM EVM] Arduino ST7789 TFT LCD 출력 테스트 Adafruit_ST7735_and_ST7789_Library 를 이용해서 SST7789 TFT LCD Module 을 RPI-SSM-EXP 보드에서 테스트 해보았다. RPI-SSM-EXP 보드의 LCD는 SPI와 LCD_RS(J55-PIN5), LCD_EN(J56-PIN6)에 연결되어 있다. STM32G0 SSM EVM 보드의 PA6, PC14에 연결해서 제어 하면된다. ST7789 Arduino 라이브러리는 Adafruit ST7789 라이브러리를 사용했다. 초기화 코드에서 TFT LCD 제어용 핀맵 설정 #define TFT_CS 14 // Hallowing display control pins: chip select #define TFT_RST -1 // Display reset #define T..
#STM32G SSM - Arduino에서 11 채널 ADC 테스트 Arduino 에서 다채널 ADC 테스트를 하려고 했는데... 생각대로 잘 동작 하지 않는다. 채널이 뒤죽박죽이고 값이 나오지 않는 채널도 있고... Arduino에서 ADC를 어떻게 설정 하는지 한번 들여다 보자 우선 STM32G030의 핀맵설정에서 ADC 설정가는한 핀을 확인해 보면 UART, JTAG 빼면 11채널을 설정 가능하다. Arduino에서 ADC 핀맵을 하기 위한 코드는 pins_arduino.c 에 있다. PinName analogInputToPinName(uint32_t pin) { PinName pn = digitalPinToPinName(analogInputToDigitalPin(pin)); if (pn == NC) { switch (pin) { #if defined(ADC_CHA..
#STM32G-SSM EVM - Arduino 코드로 SPI 테스트 [STM32G-SSM] 보드에서 SPI 핀맵은 아래 그림과 같이 할당되어 있다. #define PIN_SPI_MOSI PA_4 #define PIN_SPI_MISO PA_3 #define PIN_SPI_SCK PA_0 #define PIN_SPI_SS PC_14 Arduino 코드로 SPI출력 하면 멈춰 버린다. variant.h 파일에서 핀맵 맞추고 PinMap_SPI_MOSI[0] 에 SPI2가 디폴트가 되도록 수정 했다. #include unsigned char spixfer(unsigned char Data) { return SPI.transfer(Data); } int cnt = 0; void loop() { Serial.println(cnt++); digitalWrite(12, HIGH); d..
#STM32G-SSM EVM - Arduino 성능 테스트 STM32G0를 이용한 Arduino 만들기로 STM32G0가 Arduino 개발 환경에서 동작하므로 이제 Arduino에서 간단한 성능 테스트를 해 보자 Arduino에서 기본 제공하는 GPIO제어 함수로 토글 해보았다. #define PIN_OUT 12 void setup() { pinMode(PIN_OUT, OUTPUT); } void loop() { digitalWrite(PIN_OUT, HIGH); // turn the LED on (HIGH is the voltage level) digitalWrite(PIN_OUT, LOW); // turn the LED off by making the voltage LOW } 920ns (300khz) 정도 출력된다. 루프지연 시간도 2.6us 로 상당히 ..

반응형