본문 바로가기

[ST_MICRO]/STM32H7

(31)
[STM32H7 EVM] FPU test - Julia Set Fractal calculation STM32H7 에서 FPU 성능을 좀더 테스트하기 위해 Julia Set Fractal Calculation을 LCD에 출력하는 테스트를 해 보았다. STM32H7 EVM FPU성능FPU_SPEED 테스트 참고 STM32H7에서 구동시켜 보면... 그렇다면 하드웨어 핀맵이 동일한 STM32F7 EVFM 보드에서 돌려 보자 확실히 H7 보드가 쁘르군.. 참고로 예전에 테스트 했던 STM32F4 보드에서 테스트 STM32H7에서 Julia Set Fractal Calculation은 아래 코드로 수행 했다. void GenerateJulia_fpu(uint16_t size_x, uint16_t size_y, uint16_t offset_x, uint16_t offset_y, uint16_t zoom, uin..
STM32H7 FMC - TFT LCD 출력하기 (STM32F7 FMC와 다른점) STM32H7 FMC - TFT LCD 출력하기 (STM32F7 FMC와 다른점) STM32H7 EVM 보드에는 FMC를 이용하여 기존에 제작 해 두었던 TFT LCD 모듈을 연결할 수 있도록 구성하였다. STM32H7에서 FMC로 TFC LCD 테스트를 진행 해 볼 수 있다. STM32H7 의 FMC는 Data(16), WR, RD, CS, A16 핀을 할당 할 수 있다.메모리 맵핑은 기존 STM32 시리즈와 동일하게 0x6000 0000 에 가능하다. STM32CubeMX에서 FMC 설정을 LCD Interface 타입으로 설정하여 코드 생성 한다. STM32H7 FMC 기본 동작 테스트FMC 제어를 위해 STM32CubeMx의 HAL 라이브러리가 제공된다. uint8_t BSP_SRAM_WriteD..
STM32H7 CubeMx를 이용한 PWM출력 테스트 - 1Mhz PWM STM32H7 CubeMx를 이용한 PWM출력 테스트 - 1Mhz PWM STM32CubeMx를 실행해 프로젝트 생성후 핀맵 할당한다.STM32H7_EVM 보드의 TIM2_CH1(PA5)에 PWM출력 되도록 했다. TIM2에서 PWM 모드 설정해 주면 된다. STM32H7 CubeMx 프로젝트 생성후 아래와 같이 HAL코드(HAL_TIM_PWM_Start 함수)로 PWM 출력을 시작 할 수 있다. HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); //주파수 편경 TIM2->ARR = 100-1;// 100 x 5ns //펄스폭 가변 TIM2->CCR1 = 50-1; 생성된 코드를 돌려보면 PWM이 2Mhz로 출력이 된다.뭐가 설정이 잘못 되었나?APB2 클럭 최대가 100Mhz로..
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 클럭설정 - HSI, HSE 480Mhz STM32H7 클럭설정 - HSI, HSE 480MhzSTM32H7의 최대 클럭 속도는 480Mhz 이다. HSI, HSE 로 각각 클럭 설정이 가능하다. STM32H7 HSI 480Mhz칩 내부에 64Mhz RC 오실레이터가 있어 최대 480Mhz로 설정이 가능하다.STM32CubeMx에서 아래와 같이 설정하면 내부 클럭으로 480Mhz까지 설정 가능하다. STM32CubeMx 에서 HSI 480Mhz로 생성한 코드 STM32H7 HSI 480Mhz void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_PeriphCLKInitTypeDef..
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:..