본문 바로가기

개발환경/STM32CubeMX

UART(RS-485) 설정 - STM32F030F4P6

MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다.

STM32F030F4P6_Reference Manual.pdf
11.46MB

 

1. 모드 선택

그림1

여기서는 Asynchronous(비동기 방식)을 선택했다.

 

<참고 자료: 동기와 비동기 방식>

https://powerdeng.tistory.com/204

 

동기(Synchronous)와 비동기(Asynchronous) 방식

비동기(Asynchronous) 방식 송신 측과 수신 측의 clock에 상관없이 시간을 쪼개서 서로 송수신 속도를 Baud rate을 정해서 맞춘다. 이때 한 번에 한 문자씩 송수신하며 아래 그림1과 같이 데이터 길이, 시

powerdeng.tistory.com

 

2. Parameters 설정

그림2

1) Baud Rate

초당 전송하는 심볼(의미있는 데이터 묶음)의 수

 

<참고 자료: Baud rate과 Bit rate>

https://powerdeng.tistory.com/203

 

Baud rate과 Bit rate

1. 개념 Baud rate 초당 얼마나 많은 심볼(의미 있는 데이터 묶음)을 전송할 수 있는가? Bit rate 초당 얼마나 많은 데이터 비트를 전송할 수 있는가? 2. 정보의 기본 단위에 따른 예시 1) 정보의 기본 단

powerdeng.tistory.com

 

2) Word Length

한번에 보내는 데이터 단위

위의 그림2처럼 8이라면 한번 데이터를 보낼 때 8bit 단위로 보낸다.

Start Bit가 생기면 그 다음에는 8bit를 보내겠다는 약속이다.

그런데 만약 받는 쪽에서 Word Length5로 설정했다면 보내는 쪽에서는 8bit로 쪼개서 보내고 받는 쪽에서는 5bit로 쪼개서 받게 된다.

즉 서로 안 맞는다.

따라서 동기 방식은 Word Length 뿐만 아니라 다른 것도 서로 동일하게 설정하는 것이 중요하다.

 

3) Parity

오류를 검출하기 위해서 사용하는 비트

 

4) Stop Bits

끝났다는 bit를 몇 bit로 할 것인가

 

3. Hardware Flow Control 설정

그림3
그림4

위 그림3처럼 Hardware Flow Control을 체크하면 그림4와 같이 USART1_TX, RX말고 DE가 새로 생성된다.

Hardware Flow Control은 제어전용의 신호 선이 필요하기 때문에 설계는 복잡하지만 송수신하는 데이터에 제어 데이터를 넣지 않고 전송을 완료하기 때문에 데이터 효율이 좋다.

UART에서 Hardware Flow Control은 수신 측에서 수신불가 상태인 경우 송신 측에서 데이터를 전송하지 않도록 하고 다시 수신가능 상태가 되었을 때만 데이터를 전송하게 된다.

상대방이 수신불가 상태에서 데이터를 전송하여 발생하게 될 데이터 손실을 방지할 목적으로 사용된다.

'개발환경 > STM32CubeMX' 카테고리의 다른 글

Debug 설정 - STM32F030F4P6  (1) 2023.11.18
ADC 설정 - STM32F030F4P6  (1) 2023.11.18
타이머 설정 - STM32F030F4P6  (1) 2023.11.18
Clock 설정 - STM32F030F4P6  (0) 2023.11.18
STM32CubeMX에서 STM32CubeIDE로 코드 생성하기  (1) 2023.11.17