inflearn logo
강의

Course

Instructor

Practical Embedded Projects Learning with Electric Scooters

Trying Serial Communication with a Computer - UART Communication (Theory)

86, data bit순서가 바뀌어야 할것 같습니다.

Resolved

9

namkyungnyoon1500

33 asked

0

UART에서 데이터 전송은 1바이트는 리틀엔디안 방식으로 LSB부터 전송되기 때문에 10:24 영상에서 Databit순서가 뒤짚어서 표현되어야 할것 같습니다.


그리고 11:50 영상에서 UART가 아닌 USART2라고 명명 되어 잇는데요,,rs232통신이 UART통신이지만, 레지스터 이름은 USART2라고 새용 해야 하는건가요 ? 즉 전체를 가리키는 레지스터 이름은 USART이지만, 설정에 따라 비동기방식으로 작동 한다는 건지요 ?


테이블 제목에 표시된 8, 16은 오버샘플링을 의미하는군요. 저는 비동기 통신이라서 서로의 클록을 몰라도 알아서 하겠지 라고 생각 했는데, 사실은 내부적으 상대가 메세지를 언제 보낼지 모르기 때문에 내부적으로 계속해서 상대 메시지 신호를 쳐다 보기위해 자신의 클록을 체배하여 쳐다 본다는 의미 였네요 ^^

임베디드 stm32 hardware motordriver artwork

Answer 1

0

insid2embedded

안녕하세요. 질문 주신 내용에서 몇 가지를 구분해서 보시면 좋을 것 같습니다.

먼저 UART는 일반적으로 1Byte 전송 시 LSB부터 전송합니다. 따라서 10:24의 그림이 시간 순서상 MSB부터 전송되는 형태로 표현되어 있다면 Data bit 순서는 반대로 보시면 되고, 해당 부분은 확인해서 수정하겠습니다.

그리고 USART1, USART2는 STM32 내부에 존재하는 통신 주변장치 모듈의 이름입니다. 이 USART 모듈을 설정에 따라 동기식 USART 또는 비동기식 UART 방식으로 사용할 수 있습니다. 강의에서는 USART2 모듈을 비동기 방식으로 사용하고 있기 때문에 통신 방식은 UART이고, 레지스터 접근은 하드웨어 모듈 이름을 따라 USART2->BRR, USART2->CR1처럼 사용하는 것입니다.

RS-232는 여기서 조금 다른 개념입니다. UART와 RS-232를 같은 것으로 보면 안 됩니다. UART는 Start bit, Data bit, Stop bit 등의 프레임을 만들고 송수신하는 통신 방식/주변장치이고, RS-232는 전압 레벨과 신호 특성 등을 규정한 물리 계층 규격입니다. STM32의 UART 핀은 MCU의 3.3V 논리레벨을 사용하므로 실제 RS-232 장비와 연결하려면 별도의 RS-232 트랜시버를 사용해야 합니다. 따라서 “RS-232 통신이 곧 UART 통신이다”라고 이해하기보다는 UART 데이터를 RS-232 물리 규격을 통해 전송할 수도 있다고 이해하는 것이 정확합니다.

오버샘플링은 이해하신 방향이 맞습니다. UART는 별도의 Clock 선을 공유하지 않기 때문에 수신기가 Start bit를 검출한 뒤 자신의 내부 Clock을 이용하여 데이터 비트의 적절한 위치를 샘플링합니다. 이때 8배 또는 16배 오버샘플링을 사용하여 안정적으로 데이터를 판별합니다.

추가로 최근에 UART 통신의 동작 원리를 처음 접하시는 분들도 이해하기 쉽도록 별도로 정리한 영상을 올렸습니다. 강의 내용과 함께 보시면 전체 흐름을 이해하는 데 도움이 될 것 같습니다.

https://youtu.be/iuOtFfm9cPk

85. pwm사용에 기본구조 이해가 같이 요구되네요

0

15

1

dc모터 회전원리

0

25

2

83. volatile로 선언한 이유가 이해 안됩니다.

0

22

1

82. 16:50초 설명에 대한 오해 및 adc mode비교 자료

0

27

2

81. 소프트웨어 작성 방법론에 조언 부탁 드립니다.

0

30

2

00. stm32cubeIDE를 회사에서도 사용하나요 ?

0

24

1

상전류 읽는 타이밍 관련 문의

0

35

2

uart, tera term 실습이 잘 안됩니다.

0

44

3

80. 인터럽스와 일반함수 차이

0

35

1

79. int main(void)선언 없이 어떻게 동작하나요 ?

0

34

1

79. int main(void)선언 없이 어떻게 동작하나요 ?

0

23

1

74. 포인터 크기는얼마인가요 ?

0

34

1

73. 왜 hex를 사용하나요 ?

0

40

2

71. 40초쯤에 소리가 안납니다.

0

27

1

70. 강의에 사용되는 보드는 어떤것인가요 ?

0

42

2

00. 인버터 회로만 보고 소비전력을 예측 가능하나요 ?

0

41

1

58강, 유니폴라, 바이폴라 방식중 바이폴라가 대세라고 보면 되나요 ?

0

43

2

57강. 모터인데 왜 전압제어를 하나요 ?

0

42

2

57강. PWM은 sine을 만들어 내는 걸로 이해 하면 되나요 ?

0

40

2

49강. 제어이론의 구체적 다이어그램 설명 요청드립니다.

0

34

2

55강. dead time을 고려하면, 원래의 original신호와는 달라지지 않나요 ?

0

29

2

스위칭 주파수 설정

0

44

2

P6KE47CA 이 부품에 대해서 궁금합니다.

0

53

2

교육용 보드 쓰로틀 질문입니다.

0

75

3