본문 바로가기

STM32_SPEED

(8)
#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 로 상당히 ..
STM32H7 vs STM32F7 MCU성능 테스트 - FPU 성능테스트 STM32H7 vs STM32F7 MCU성능 테스트 - FPU 성능테스트 STM32H7 GPIO 토글 속도 테스트 결과에서 STM32H7의 버스 구조의 특성상 GPIO접근에 속도 제한이 있다는 것은 확인 했는데 그렇다면 CPU부하를 걸어 속도 체크를 해 보면 루프 성능을 확인 할수 있을것 같다. FPU를 사용할수 있도록 루트처리 함수를 이용해 수행 속도를 측정해 보았다. #include volatile double sq_result; int i; while (1) { GPIO_TEST_PORT->BSRR = GPIO_TEST_PIN; d = 0; for(i=0;iBSRR = (uint32_t)GPIO_TEST_PIN
STM32H7 vs STM32F7 GPIO 속도 테스트2 - 문제 해결 STM32H7 vs STM32F7 GPIO 속도 테스트2 - 문제 해결 STM32 H7성능 테스트 하면서 오래동안 고심했던 H7 GPIO 속도 문제가 해결됬다.STM32F7의 GPIO 토글 속도를 측정하면 8ns 정도 나오는데 STM32H7의 GPIO 토글 속도를 측정해 보면 28ns 정도나온다. 결론은 STM32H7, STM32F7의 하드웨어 구조의 차이에서 오는 문제였다. 우선 STM32F7의 경우 GPIO는 AXI -> AHB (216Mhz) 로 바로 출력이 가능하므로 2 머신 사이클에 제어 가능하다. STM32F7 Series system architecture 를 보면 F7의 하드웨어 구조를 확인 할 수 있다. STM32H7 의 경우 GPIO는 AXI AHB -> AHB4(200Mhz) 를 통해..
STM32H7 EVM 보드 개발 환경 설정 및 STM32 H7성능 테스트 STM32H7 EVM 보드 개발 환경 설정 및 STM32 H7성능 테스트 STM32CubeMX 를 이용하여 STM32H7 EVM 보드의 동작 테스트를 진행해 보았다.우선 STM32H743 을 선택하고 기본 핀맵 세팅을 해 준다. STM32H7의 클럭은 내부 64Mhz RC로 하고 400Mhz로 구동 할수 있도록 했다. 가장 기본이 되는 포트 제어 레지스터를 토글해 보니 80ns가 측정된다.좀 이상하네.. while (1) { GPIO_TEST_PORT->ODR ^= GPIO_TEST_PIN; } GPIO_TEST_PORT->ODR ^= GPIO_TEST_PIN; 8003d76:4a04 ldrr2, [pc, #16]; (8003d88 ) 8003d78:6953 ldrr3, [r2, #20] 8003d7a:..
[STM32F7 EVM] STM32F767 성능 테스트 - CubeMX 개발환경 설정 STM32F7 CubeMX 개발환경 설정 CubeMX 실행하고 STM32F767VI 칩을 선택한다. 기본 동작 확인을 위해 GPIO, MCO, UART를 설정한다. 클럭은 내부클럭으로 하고 PLL셋팅을 해서 STM32F7의 최대 클럭인 216Mhz로 설정한다. MOC1(PA8) 핀으로 CPU의 클럭를 측정 할 수 있다. STM32F7 동작 속도 확인 CubeMX 가 생성하는 가장 기본 코드에서 클럭 출력하는 코드 추가 해서 클럭을 확인 해보 면 SysClk = HAL_RCC_GetSysClockFreq(); HClk = HAL_RCC_GetHCLKFreq(); PClk1 = HAL_RCC_GetPCLK1Freq(); PClk2 = HAL_RCC_GetPCLK2Freq(); printf("SysClk (S..
STM32F0 성능 테스트 - STM32CubeMX HAL Code STM32F0 성능 테스트 - STM32CubeMX HAL Code STM32F0는 Cortex-M0코어 1$이하의 저렴한 MCU로 가격에 민감한 제품에 사용하기 좋은 제품이다.GPIO On/Off 주기를 측정해 MCU 성능 체크 해 보고 있는데 [STM32F0-SS EVM] 보드를 이용해서 테스트 해 보았다. [참고]STM32 MCU 성능 측정 테스트 우선 최대 클럭 48Mh로 설정하고 STM32CubeMX 기본 초기화 코드 생성하고 PB1 을 토글했다. static void MX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIO..
[STM32F4] 속도 측정 - GPIO 토글 속도 테스트 [STM32F4] 속도 측정 - GPIO 토글 속도 테스트 STM32는 Cortex-M4F 코어로 168Mhz로 동작한다. GPIO 토글 테스트로 MCU의 속도를 테스트 해 보았다. 물론 클럭속도가 중요한 요소는 아지만 마이컴에서 GPIO속도는 중요할 때가 많이 있다. STM32F4는 FPU가 있어 DSP기능도 뛰어난것 같다. [참고] MCU속도 측정 결과 또는 STM32 CPU속도 테스트 결과와 비교해 보면 ST시리즈 속도를 확인해 볼 수 있다. 클럭 설정없이 그냥 GPIO On/Off 시키니 10Mhz 출력된다. 느린데.. 뭔가 이상한것 같다. PLL설정후 STM32F4의 GPIO토글 속도는 33Mhz 까지 출력된다. STM32F103에서 12Mhz가 출력 되었던과 비교하면 확실히 빨라진것을 확인 할..
[STM32-64 EVM] ST Cortex-M3 GPIO속도 테스트 [STM32-EVM] ST Cortex-M3 GPIO속도 테스트 RCC_Configuration() 함수에서 PLL을 기본(9, 8Mhz x 9 = 72Mhz)으로 설정후 GPIO토글링 /* PLLCLK = 8MHz * 9 = 72 MHz */ RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); GPIO토글 주기 ->152ns, 3.27Mhz 비트 제어 레지스터로 설정했을때 -> 12Mhz가 나온다. [다른 MCU속도 측정 결과] 에 비교하면 플래시에서 실행 하고도 상당히 빠른편이다. 플래시 Latency를 1로 줄이면 75ns까지 가능하다. -> FLASH_SetLatency(FLASH_Latency_1); 테스트 프로그램 #define PORTA GPIOA-..