MCU에서 SOC로 UART 통신을 구현했습니다.

 

데이터를 0x0A, 0x02 ...이렇게 전송했는데 제대로 TX 되고있는지 오실로스코프로 확인해보겠습니다.

 

아래 사진은 10ms task안에 115200bps로 36bytes 데이터를 전송한 것입니다.

 

확대를 해서 첫번째 데이터가 0x0A가 찍혀있는지 확인해 보겠습니다.

 

UART는 D1이 LSB라서 데이터를 D8에서 D0순으로 읽어야됩니다.

그럼 0000 1010 이 전송 됐으므로 0A값이 제대로 전송된 것을 확인할 수 있습니다.

 

LSB란?

0bit 자리 값을 가장 먼저 전송한다는 뜻입니다.

 

그럼 115200bps 통신이 제대로 되고있는지 확인해 보겠습니다.

1초에 115200bit를 전송한다는 뜻이므로 1bit는 1/115200s가 걸려야합니다.

한 데이터에 8.6us가 찍히는지 확인해 보겠습니다.

 

 

우측하단에 보시면 1bit 전송시간을 보면 8.6us가 찍힌 것을 확인했고 115.10kHz이므로 115100bps정도로 전송되는 것을 확인할 수 있습니다.

딱 115200bps로 데이터가 전송되지는 않고 근사치로 전송되고있습니다.

준비물

1. I2C 신호를 USB로 변환하는 보드(제가 사용한 보드는 CH341A 입니다.)

2. 점퍼선, 점퍼(2pin 사용)

3. Flash loader 프로그램(1번에 사용하는 보드와 호환되는 프로그램 필요)

- 펌웨어를 업데이트 할 칩 회사에 문의하면 받을 수 있습니다.

 

업데이트 순서

1. 칩 회사에서 펌웨어 입수

2. 변환 보드의 I2C 핀과 펌웨어를 넣고자 하는 보드의 I2C 핀을 점퍼선으로 연결

- 위 변환 보드의 경우 Output voltage를 3.3v 또는 5v로 선택할 수 있습니다

- 펌웨어를 넣고자 하는 보드의 전압을 도면으로 확인하고 점퍼를 끼워 사용할 전압을 선택해야합니다.

3. Flash loader 프로그램을 실행 후 받은 펌웨어 업로드

- 프로그램 메뉴얼도 칩 회사에서 받을 수 있습니다.

'임베디드' 카테고리의 다른 글

MCU I2C 통신 데이터 읽는 방법  (0) 2025.02.04
I2C 통신이란?  (0) 2022.11.17
UART 디버깅용 print함수 만들기  (0) 2022.11.10

I2C 통신으로 0110을 전송한다고 예시를 들어보자.

SCL이 상승엣지일 떄 값을 읽는다고 가정

▶ 데이터는 SCL이 low일때 변경돼야합니다.

 

값 읽는 순서

1. Start : SCL이 high일때 SDA가 low로 변하는 경우, 데이터 전송 시작

2. 0을 전송하므로 SCL이 low일때 0을 유지

3. SCL이 high가 되는 시점에 0인 SDA값을 읽는다.

4. SCL이 low일때 SDA는 1로 변경된다.(파란선 시점에서 데이터 변경)

5. SDA가 1을 유지하고있으면 SCL이 high가 되는 시점에 1을 읽는다.(데이터가 바뀐 후 빨간 선에서 데이터 읽기)

6. 다음 전송할 값이 1이므로 1을 계속 유지하고있으면 SCL의 다음 high 시점에서 또 1을 읽는다.

7. SCL이 low일 때 SDA값이 0으로 변경

8. SCL이 high일때 SDA 0을 읽는다

9. 그럼 0110 이 제대로 전송된 것을 확인할 수 있다

10. Stop: SCL이 high일때 SDA가 high로 변하는 경우, 데이터 전송 끝

 

제가 공부한 부분을 기록한 것이므로 오류가 있을 수 있습니다.

틀린 부분을 알려주시면 수정하겠습니다.

'임베디드' 카테고리의 다른 글

I2C 통신으로 칩 펌웨어 업데이트 방법  (0) 2025.02.06
I2C 통신이란?  (0) 2022.11.17
UART 디버깅용 print함수 만들기  (0) 2022.11.10

1. [새 전자 메일] 누르기

2. 사용할 형식 입력

3. [파일] -> [다른이름으로 저장]

C:\Users\user\AppData\Roaming\Microsoft\Stationery 아래 위치에 html형식으로 저장

 

4. [새 전자 메일] 누르면 형식대로 입력되어있는 것 확인 가능

 

* [파일] -> [옵션] -> [메일] -> [편지지 및 글꼴] -> [테마] -> [메일 서식(편지지)] 에서 편지 미리 보기 가능

+ Recent posts