본문 바로가기

[ST_MICRO]/STM32F7

[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 (System Clock) = %lu Hz\r\n", SysClk);

  printf("HClk (AHB / Main CPU Clock) = %lu Hz\r\n", HClk);

  printf("PClk1 (Peripherals Clock 1) = %lu Hz\r\n", PClk1);

  printf("PClk2 (Peripherals Clock 2) = %lu Hz\r\n", PClk2);

 

 

STM32 시스템 클럭 216Mhz, PCLK1 은 54Mhz로 정상 출력 되는것을 확인 할 수 있다.

SysClk (System Clock) = 216000000 Hz

HClk (AHB / Main CPU Clock) = 216000000 Hz

PClk1 (Peripherals Clock 1) = 54000000 Hz

PClk2 (Peripherals Clock 2) = 54000000 Hz

 

 

스코프로 RCC_MCO(PA8)핀을 확인해 보면 216Mhz의 2분주 한 108Mhz가 출력되는것을 확인 할 수 있다.

이로서 클럭 설정은 문제 없는것으로 확인 했다.

 


 

STM32F7 성능 테스트

이제 STM32F7의 성능 테스트를 해보자

우선 STM32F7 EVM 보드에 연결되어 있는 PA5 LED를 토글 하는 코드로 테스트 해 보면 36ns( 13Mhz) 정도로 출력이 된다.

 
  while (1)
  {
         GPIO_TEST_PORT->ODR ^= GPIO_TEST_PIN;
  }
 
          GPIOA->ODR ^= GPIO_PIN_5;
800193a:    4a04          ldr    r2, [pc, #16]    ; (800194c <main+0x98>)
800193c:    6953          ldr    r3, [r2, #20]
800193e:    f083 0320     eor.w    r3, r3, #32
8001942:    6153          str    r3, [r2, #20]
 
8001944:    e7fa          b.n    800193c <main+0x88>
8001946:    e7fe          b.n    8001946 <main+0x92>
 
 
 
 
 
 
 
비트 제어로 출력해 보면 4.8ns(21Mhz)로 출력되는 것을 확인 할수 있다.
 while (1)
  {
     GPIOA->BSRR = GPIO_PIN_5;
     GPIOA->BSRR = (uint32_t)GPIO_PIN_5 << GPIO_NUMBER;
  }

 

 

 

 

 

 

좀더 보기 편하게 하기위해 Delay를 주었다. 7.3ns 정도로 측정된다.

 

 

기존 STM32시리즈 중에서는 가장 속도가 빠른것 같다. 다른 MCU속도 측정 결과 참고

 

반응형