본문 바로가기

[ST_MICRO]

(264)
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:..
#STM32G STM32CubeIDE 를 이용한 개발환경 설정 및 성능 테스트 #STM32G STM32CubeIDE 를 이용한 개발환경 설정 및 성능 테스트 [STM32G031-SSM] 보드를 이용하여 개발 환경 설정 및 STM32G0의 성능 테스트를 해 보았다. 처음에 STM32CubeMx를 이용하여 코드를 생성하려고 진행 했는데.. 설정 다 하고 코드 생성하려는 순간 STM32G 시리즈는 CubeMx에서 지원을 하지 않는다고 한다. 알아보니 STM32CubeIDE를 이용하라고 한다. STM32CubeIDE로 STM32G시리즈 선택해서 새로운 프로젝트를 생성 핀맵 설정CubeMx와 거의 동일하게 동작하는것 같다. STM32CubeIDE 클럭 설정최대 64Mhz까지 설정 가능하다. 기본 설정 완료후 STM32CubeIDE에서 저장 하면 기본 코드가 생성된다. [STM32G031-S..
#STM32G0-SSM EVM 보드 제작 - STM32G031F6 #STM32G0M-SSM EVM 보드 제작 - STM32G031F6 STM32의 저렴한 MCU로 STM32F0 를 많이 사용하고 있었는데 성능면에서 약간 아쉬울 때가 있으면 STM32F1 시리즈 F4시리즈를 선택 해야 한다. 성능을 위해 가격을 올리기가 약간 부담스러울 때가 있었는데 이번에 STM32G가 출시 되었다고 해서 제작 해 보았다. 한가지 아쉬운점은 기존의 STM32F시리즈와 핀 호환이 안된다. ST의 가장 큰 장점 이었는데... 보드는 가장 간단히 MCU및 센서모듈등의 표준 핀맵으로 사용하는 SSM 모듈 핀맵으로 20핀 TSSOP패키지의 STM32G031F6 로 제작 했다. STM32G의 장점으로 온도 스펙이 -40 ~ 125도로 산업용으로 적용 가능해 졌다. ADC속도도 빨라지고 내부 클럭 ..
[STM32-64 Ardu] STM32F405 - Iperf로 W5500의 TCP Throughput 측정 테스트 [STM32-64 Ardu] 보드에는 SSM Type의 모듈을 연결 할 수 있는 커넥터가 있고 W5500 Ethernet 모듈을 이용하여 이더넷을 구현할 수 있다. STM32F405에서 W5500의 TCP Throughput 을 측정해 보자. 우선 STM32CubeIDE를 이용하여 SPI 설정을 하자. 네트웍 전송율 테스트를 위해 PC에서는 iperf 프로그램을 사용하고 STM32에서는 W5500 TCP loopback 테스트 코를 조금 수정해 iperf 클라이언트 코드로 작성했다. int32_t iperf_tcps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; switch(getSn_SR(sn)..
[STM32-64 Ardu] STM32F405 - STM32CubeIDE 개발환경 설정 [STM32-64 Ardu] 보드를 STM32CubeIDE 에서 테스트 해 보았다. STM32CubeIDE 를 실행하고 새로운 프로젝트를 생성한다. 사용한 칩셋은 64핀의 STM32F405RG 이므로 선택 해 준다. 프로젝트 명을 작성하고 완료 하면 기본 설정화면이 나온다. 필요한 기능 및 핀맵 설정하고 클럭을 설정 해 주면 완성 코드 작성해서 테스트 해보면 문제 없이 구동되는것을 확인 할 수 있다. 간단히 STM32CubeIDE에서 개발환경 설정이 되는것을 확인 했다.
[STM32-64 Ardu] STM32F405 보드 제작 STM32 64핀 패키지를 Arduino 로 사용할 수 있는 보드를 제작했다. Arduino 핀맵을 유지 하면서 가능한 최대로 작게 제작해 다양한 형태의 응용 보드 시리즈를 제작 할 예정이다. STM32 Nucleo Boards 보드와 핀맵을 동일하게 했고 Nucleo보드에 없는 USB, SD, I2C 같은 페리를 실장 하였으며 다양한 형태의 확장 보드(SSM- EVM), RF, BLE, WIFI 모듈을 연결 할수 있는 커넥터를 포함하였다. 또 하나의 장점으로 기존에 제작 해 둔 다양한 Arduino 확장 쉴드 보드로 연결 할 수 있다.