본문 바로가기

[ST_MICRO]/STM32H7

(31)
[STM32H7 EVM] STM32H7 Arduino 만들기 - Arduino 성능 측정 STM32 시리즈중 최고의 성능을 구현할 수 있는 STM32H7을 아두이노로 만들면 어떨까? 아두이노의 장점은 다양한 라리브러리를 쉽게 적용하여 사용 할수 있어서 성능과 편리함을 동시에 만족 할 수 있지 않을까... 우선 Arduino IDE환경에서 STM32 환경 설정이 되어 있지 않다면 보드 링크를 추가 하고 https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json STM32H7 EVM 보드를 Arduino로 만들기 위해 Arduino 보드메이저에 "Gereic STM32H7 Series" 타입으로 등록 했다. board.txt 파일을 수정해서 보드 메니저에 등록 # ELAB_H7_EV b..
STM32H7 SPI - W5500 TCP/IP 전송속도 테스트 에러 문제 해결 STM32F7 evm 보드에서 테스트 했던 W5500 소스코드를 이용하여 STM32H7 보드에서 테스트 중인데 컴파일 에러가 발생한다. STM32F7 에서 W5500제어 테스트 에서 사용 했던 코드와 동일한데 왜 에러가 발생할까? #문제발생 에러코드 설명 자원 경로 위치 유형 expected identifier or '(' before numeric constant w5500.h /ex24_spi_w5500/Src 행 70 C/C++ Problem F7 코드에서는 문제가 없었는데... 에러를 찾아 가 보니 헤더파일의 선언 순서가 문제가 된다. 같은 컴파일러 인데 왜 문지가 되지? #문제해결 w5500.c #include "w5500.h" #include "config.h" #include "config...
STM32H7 EXTI 외부 인터럽트 테스트 STM32H7 EVM 보드에는 6개의 입력 스위치가 있고 5개의 외부 인터럽트를 테스트 할 수 있다. STM32CubeMx 를 이용하여 HAL 코드를 생성한다. 우선 핀맵에서 스위치가 연결되어 있는 포트 PC13을 GPIO_EXTI13 으로 설정한다. STM32CubeMx의 GPIO 탭에서 PC13을 풀업 설정을 해준다. 인터럽트를 설정하기 위해 EXTI line [15:10] interrupts 를 체크 한다. STM32CubeMx 에서 생성된 코드를 보면 GPIO초기화와, 인터럽트 초기화 코드가 생성된 것을 확인할 수 있다. static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable..
STM32H7 EVM - USB 메모리 스틱, SD Card 동시 테스트 STM32 EVM 보드의 USB와 SD Card 를 동시에 제어해서 2개의 드라이버 제어를 해 보았다.STM32 CubeMX에서 FATFS설정을 SD Card와 USB Disk 를 동시에 체크하면 된다. 그리고 VOLUME이 2개로 자동 설정되어 있다. CubeMX 자동 생성된 코드에서 fatfs.c 파일의 MX_FATFS_Init() 함수를 보면 SD Card와 USB가 동시에 Link되어 있는것을 확인 할 수 있다. 여기서 드라이버 순서를 수정하면 되겠다.uint8_t retSD; /* Return value for SD */char SDPath[4]; /* SD logical drive path */FATFS SDFatFS; /* File system object for SD logical driv..
STMH7 EVM - USB Mass Storage Host Mode 테스트 STMH7 EVM - USB Mass Storage Host Mode 테스트 STM32H7 EVM 보드에는 USB Host 및 Device를 테스트 할 수 있는 커넥터가 있다. CubeMX로 USB HOST 모드 설정 USB_HOST 모드설정을 Mass Storage Host Class 로 설정한다.VBUS 파워 공급을 GPIO로 설정 할 수도 있지만 이번에는 그냥 하드웨어 적으로 Host Mode 고정으로 전원을 강제로 공급하도록 했다. CubeMX에서 FATFS 설정은 USB Disk로 설정한다. 이렇게 CubeMX 설정으로 마무리 하여 코드를 생성하면 대부분 자동으로 생성이 된다.생성된 코드에서 수정 할 부분을 usb_host.c 파일의 USBH_UserProcess() 함수에 추가하면 된다. ma..
STM32H7 CubeMx SD Card Test STM32H7 CubeMx SD Card Test [STM32H7 EVM] 보드에는 4bit SD 인터페이스가 있어 SD카드 FAT 연결 테스트를 Stm32CubeMx를 이용하여 해 보았다. 우선 SD카드는 하드웨어 적으로 STM32H7의 디폴트 SDMMC1에 연결되어 있다. STM32H7 EVM보드는에 아래면에 SD소켓이 장착되어 있다. STM32CubeMx 를 이용하여 SDMMC1을 SD 4bit 모드로 선택한다. Middleware 탭의 FATFS에서 Mode를 SD Card로 선택 한다. 이렇게 해서 기본으로 코드 생성하면 아래와 같은 코드가 생성 되는데... 주의 해야 할 사항은 bsp_driver_sd.c 파일에 있는 BSP_SD_Init() 함수를 호출 해 주어야 한다는 것이다. int ma..
STM32H7 EVM - 이더넷 테스트 (TCP/IP전송 속도 테스트) STM32H7 EVM - 이더넷 테스트 (TCP/IP전송 속도 테스트) STM32H743의 경우 100핀 페키지에 이더넷을 지원하고 480Mhz로 동작 하기 때문에 작은 사이즈에 고성능 이더넷이 필요한 어플리케이션에 사용하기에 좋을것 같다. STM32H7 EVM 보드에는 Ethernet PHY 모듈을 연결할 수 있어 STM32H7 의 Ethernet을 연결을 할 수 있다. Ethernet PHY 모듈 핀맵 먼저 STM32CubeMx 로 Connectivity -> ETH 탭에서 RMII 모드로 설정해 준다. Middleware -> LWIP 탭에서 TCP/IP stack 를 설정해야 하는데... 활성화가 안되어 있다. SYS탭에서 DCache를 Enable 해야 활성화가 된다. DCashe 도 설정 해 ..
STM32H7 Timer 테스트 - 1초 만들기 (내부 클럭 vs 외부클럭) STM32H7 Timer 테스트 - 1초 만들기 (내부 클럭 vs 외부클럭) 별다른 기능이 없는 TIMER6을 사용하여 테스트 해 보자 CubeMX 에서 세팅 인터럽트 체크하고... 생성된 코드에서 stm32h7xx_it.c파일을 보면 TIM6_DAC_IRQHandler()가 생성되어 있고 인터럽트 발생시 마다 HAL_TIM_IRQHandler() 함수를 호출한다. void TIM6_DAC_IRQHandler(void){ /* USER CODE BEGIN TIM6_DAC_IRQn 0 */ /* USER CODE END TIM6_DAC_IRQn 0 */ HAL_TIM_IRQHandler(&htim6); /* USER CODE BEGIN TIM6_DAC_IRQn 1 */ /* USER CODE END TIM..