본문 바로가기

[ST_MICRO]/STM32H7

(31)
STM32H7 - iperf를 이용한 내장 이더넷 전송률 테스트(iperf Throughput) STM32H7을 이용한 이더넷 테스트에서 고속전송에서의 에러가 많이 발생 했는데 최근 ST에서 제공하는 라이브러리는 업데이트가 많이 된것 같다. STM32H7-RP 보드는 STM32H7의 내장 이더넷 컨트롤러를 테스트 할수 있는 PHY커넥터가 있어 간단히 이더넷 테스트를 해 볼 수 있다. ST에서 제공하는 STM32H7 STM32CubeMX based Ethernet examples 를 참고로해서 새로운 프로젝트를 생성하고 iperf로 TCP전송률 테스트를 진행해 보았다. 우선 STM32CubeIDE를 최신으로 업데이트 하고 프로젝트를 생성한다. ETH를 RMII 모드로 설정하고 나머지 필요한 페리를 추가 해 준다. STM32F7 에서 LwIP 추가했던 방식과 달리 디폴트로 활성화 되어 있지 않다. 활성..
[STM32H7-RP] 네트웍 카메라 테스트 - W5300을 웹서버를 이용한 영상 전송 STM32F4-RP 보드에서 W5300을 웹서버를 이용한 영상 전송 테스트 코드로 테스트 하면 문제가 발생한다. STM32H7 에서는 기존 코드 구동시 계속 문제들이 발생하는것 같다. 우선 이미지 파일을 데이터를 보내 보자. HTML 요청이 있을때 데이터 전송은 하지만 한번 전송하고 끝나는것 같다. > HTTPSocket[2] : HTTP Method GET > HTTPSocket[2] : Request Type = 4 > HTTPSocket[2] : Request URI = cam_img.jpg image displey -> cam_img.jpg image send STM32F4 에서 정상적으로 전송될 경우 > HTTPSocket[3] : HTTP Method GET > HTTPSocket[3] : R..
[STM32H7-RP] DCMI 테스트 - OV2640 카메라 영상 전송 테스트 STM32H7-RP 보드에는 DCMI 인터페이스를 사용 할수 있어 카메라 모듈을 연결하여 테스트 할 수 있다. DCMI 핀맵은 아래와 같다. STM32CubeIDE 에서 DCMI 인터페이스를 설정하고 DMA를 추가 한다. DMCI 인터럽트도 사용할 수 있도록 설정해 준다. 카메라의 메인 클럭(MCLK)은 RCCMCO 핀(PA8)을 통해 가변 할 수 있도록 할당되어 있기 때문에 MCO를 사용할 수 있도록 설정한다. 카메라 모듈의 설정은 I2C1에 할당되어 있다. 기본적인 코드를 테스트 해보자. 카메라 라인 인터럽트 및 프레임 인터럽트루틴에서 플래그를 보내고 메인루프에서 처리 하도록 했다. void HAL_DCMI_VsyncEventCallback(DCMI_HandleTypeDef *hdcmi) { gCam..
[STM32H7-RP] W5300을 이용한 TCP 제어 서버 테스트 PC에서 전송되는 명령을 처리하는 부분은 ProcessCamTCPS() 함수에서 처리하고 있다. TCP 통신으로 영상 전송 시작 및 종료나 카메라 제어와 같은 명령을 전송할수 있다. int32_t ProcessCamTCPS(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; unsigned int cmd; unsigned int para; switch(getSn_SR(sn)) { case SOCK_ESTABLISHED : if(getSn_IR(sn) & Sn_IR_CON) { setSn_IR(sn,Sn_IR_CON); } // Don't need to check SOCKERR_BUSY because i..
[STM32H7-RP] FMC 테스트 - TFT LCD 테스트 STM32H7-RP 보드에는 TFT-LCD 모듈을 연결 할 수 있다. LCD CS핀이 NE1에 할당 되어 있고 RS가 A1에 연결된다. 기존 테스트 코드를 이용하여 동작 시켰는데 LCD 화면에 아무것도 표시 되지 않는다. 일단 TFT LCD 관련 FMC 신호가 정상적으로 출력 되는지 확인 해 보자 FMC 출력 신호를 확인하기 위한 코드를 작성하자 #define TFTLCD_BASE ((unsigned long)(0x60000000 | 0x00000000)) #define TFTLCD ((TFTLCD_TypeDef *) TFTLCD_BASE) #define _LCD_DATA(p) (*(volatile uint16_t*) (TFTLCD_BASE + (p
[STM32H7-RP]W5300 Iperf로 TCP Throughput 측정 테스트 STM32H7 RP 보드는 확장 테스트 모듈에 W5300 을 연결 할 수 있다. W5300을 이용하여 80Mbps 이상의 네트웍 성능를 사용할 수 있어 네트웍 고속의 데이터 전송에 적용해 볼 수 있다. STM32H7 RP 보드에서 NE2(PG9) 핀이 W5300의 CS 핀에 할당되어 있다. W5300 모듈 핀맵 STM32CubeIDE 를 이용하여 STM32H7의 FMC 설정을 해 준다. CS핀은 NE2에 할당하면 된다. CS핀 할당을 NE2에 했기 때문에 W5300메모리 제어 설정을 STM32H7의 FMC 메모리 블럭중 0x64000000 에 할당하면 된다. #define W5300_BANK_ADDR ((uint32_t)0x64000000) #define _W5300_DATA(p) (*(volatile ..
[STM32H7-RP] SPI 테스트 - W5500 Iperf로 Throughput 측정 테스트 [STM32H7-RP]보드는 표즌 핀맵으로 제작된 SSM-Type 보드를 연결하여 다양한 테스트를 해 볼 수 있다. SPI 네트웍 인터페이스 모듈 W5500 EVM 보드를 이용하여 Ethernet (TCP/IP) 테스트를 진행 했다 W5500 EVM의 CS 핀은 PD13에 할당되어 있다.
[STM32H7-RP] STM32CubeIDE 개발환경 설정 및 기본동작 테스트 STM32의 개발환경은 STM32CubeIDE ( https://www.st.com/en/development-tools/stm32cubeide.html)를 이용하였다. STM32CubeIDE를 이용하여 STM32H743 칩셋을 선택하고 새로운 프로젝트를 생성한다. 기본 핀 맵을 설정한다. STM32H743의 경우 480Mhz까지 클럭을 설정을 할 수 있기 때문에 최대 클럭으로 설정해 준다.