개요 | ||||||||||||||||
STM32 UART 특성 시험. 시험환경. MCU : STM32L476 . 보드 : http://igotit.tistory.com/686 2개. system clock : 80MHz. USART2 설정. - baud rate : 10Mbps. - stop bit 1bit, data bit 8bit, parity no. STM32Cube 펌웨어라이브러리 버전 : FW_L4 V1.5.1 <- 2016년 6월 28일 시점 최신버전. 핀 결선.
| ||||||||||||||||
|
Test-1 | |||||
설정. MCU1 : while문 내에서 1회 1바이트 전송. Blocking 함수 HAL_UART_Transmit 사용.
스코프 MCU1의 TX HAL_UART_Transmit 호출 사이의 latency : 3.36us. 이 시간한계 때문에 1바이트 단위의 전송의 실효 출력 속도는 UART에서 설정한 1Mbps 불가능하며, 0.3Mbps 정도. | |||||
|
Test-2 | |||||
설정. MCU1 : while문 내에서 1회 100바이트 전송. Blocking 함수 HAL_UART_Transmit 사용.
스코프 MCU1의 TX 1회의 HAL_UART_Transmit 호출시 인자로 전달된 100바이트 전송중에는 끊김없는 완전한 1Mbps 전송되며 다음 HAL_UART_transmit 호출시 중간에 2usec 정도의 시간 지연있음. 함수 1회 호출당 100바이트 단위 전송시 1초간의 실효출력속도는 9.8Mbps 이며 UART에서 설정한 10Mbps baud rate 를 사용한 효과 볼 수 있다. | |||||
|
Test-3 | |||||
설정. MCU1 : DMA 함수 HAL_UART_Transmit_DMA 사용. 1회 1바이트 전송.
스코프 MCU1의 TX HAL_UART_Transmit_DMA 호출 사이의 latency : 7.36us. <- HAL_UART_Transmit 의 3.36us보다 더 길다. | |||||
|
Test-4 | |||||
설정. MCU1 : DMA 함수 HAL_UART_TransmitDMA 사용. 1회 100바이트 전송.
스코프 MCU1의 TX 100바이트 단위 전송시 1초간 실효통신 속도 : 9.6Mbps. | |||||
|
Test-5 | |||||
설정. MCU1,2의 UART H/W Flow Control enable. MCU1 : while문 내에서 1회 1바이트 전송. - Blocking 함수 HAL_UART_Transmit 사용. MCU2 : while문 내에서 1회 1바이트 수신. - Blocking 함수 HAL_UART_Receive 사용.
스코프. MCU1의 TX, MCU2 의 RTS - MCU1 에서 TX 직후 MCU2에서는 RTS High 되었다가 Low 이후 한참있다가 MCU1의 다음 TX전송됨. - 즉, MCU1 의 TX 전송간의 시간격이 길기 때문에 1바이트 단위로 전송함수 호출하는 방식에서는 H/W Flow Control 하나 마나 임. | |||||
|
Test-6 | |||||
설정. MCU1,2의 UART H/W Flow Control enable. MCU1 : 함수 HAL_UART_Transmit_DMA 1회 호출당 100바이트 송신. MCU2 : 함수 HAL_UART_Receive_DMA 1회 호출당 100바이트 수신.
스코프. MCU1의 TX, MCU2 의 RTS | |||||
|
Test-7 | |||||
설정. MCU1,2의 UART H/W Flow Control enable. MCU1 : 함수 HAL_UART_Transmit_DMA 1회 호출당 100바이트 송신. MCU2 : 함수 HAL_UART_Receive 1회 호출당 100바이트 수신.
스코프. MCU1의 TX, MCU2 의 RTS | |||||
본 글이 포함된 상위 정리장소 : http://igotit.tistory.com/244
|
'임베디드.일렉트로닉스 > STM32' 카테고리의 다른 글
STM32. SPI 인터럽트 방식. (0) | 2016.07.15 |
---|---|
STM32. GPIO 속도 향상. (0) | 2016.07.15 |
STM32. CubeMX 다른프로젝트 복사해서 만들기. (0) | 2016.06.28 |
STM32. USB HID 구현. (0) | 2016.04.14 |
STM32. DfuSe Demo 사용법. (0) | 2016.04.12 |
댓글