제너럴공국

[ODYSSEY X86J4105] 아두이노 시리얼 포트 네임 본문

전자전기공학/ODYSSEY - X86

[ODYSSEY X86J4105] 아두이노 시리얼 포트 네임

제너럴3세 2021. 2. 2. 10:18
반응형

Odyssey x86의 GPIO를 이용해 시리얼통신을 할때, 꼭 알아야하는 내용이에요. Odyssey x86은 Arduino Mega처럼 여러개의 시리얼 포트를 가지고 있기 때문이에요.

Serial.begin(9600);

 보통 UNO를 사용하시는 분들은 위 코드를 이용해, 문제없이 Rx, Tx핀을 사용했을 거에요. 하지만 오디세이는 아래처럼 여러개의 시리얼함수를 가진답니다. 

Serial.begin(9600);
SerialUSB.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);

아래 사진을 보아도, 2개의 UART 포트가 보이죠?  실제 사진으로는 저 위치에 존재합니다. 

그래서 어떤게 어떤 포트 네임이냐구요? 차근차근 같이 보죠~


1단계) 통신망 구축 & Serial1 & Serial2
 시리얼 응답을 확인하기 위해, Tera term <-> USB to TTL <-> GPIO로 연결합니다. 이후 D0/D1 핀과 좌측 4개핀 부분의 Rx Tx를 차례로 연결해봅니다. 참고로 ground도 연결해주는건 기본인거 아시죠? ㅎ

이렇게 연결을 하고 아래 코드를 실행해보면,

void setup(){
  Serial.begin(9600);
  Serial.println("basic setup finished");
  
  SerialUSB.begin(9600);
  SerialUSB.println("USB setup finished");
  
  Serial1.begin(9600);
  Serial1.println("1 setup finished");

  Serial2.begin(9600);
  Serial2.println("2  setup finished");
}


void loop(){
  // 아래의 주석과 번갈가며 주석을 달았다 없앴다 하며 TEST~ gogo~
  if(SerialUSB.available()){
    Serial.println("USB data from serial");
  }
  /*
  if(Serial.available()){
    SerialUSB.println("serial data from USB");
  }*/
  
  delay(200);
}

D0/D1하고 연결됬을 때는, Serial1이!!! 좌측의 4개 핀과 연결됬을 때는 Serial2가 응답하는 것을 볼 수 있습니다.

좌) D0/D1 우) 4개 핀 부분


2단계) Serial & SerialUSB
 그럼 이제 이 둘은 무슨 역할을 수행하는지 확인해볼까요? 위의 코드가 업로드된 상태에서 시리얼모니터에 아무 데이터나 입력하면, 아래 코드 부분이 실행됩니다. 그리고 주석을 바꿔가며 실행해보고 실행결과를 살펴보면 우리는 다음과 같은 사실을 알 수 있죠. Serial에 출력한 내용이 SerialUSB로 인식되고 마찬가지로 SerialUSB에 출력한 내용이 Serial로 인식됩니다. ㅎㅎ 이를 통해, Serial과 SerialUSB가 동일한 동작을 한다는 것을 알 수 있네요. ㅎ 

if(SerialUSB.available()){
   Serial.println("USB data from serial");
 }
 /*
 if(Serial.available()){
   SerialUSB.println("serial data from USB");
 }*/

 


최종 결과) 그래서 우리는 이런 결과를 얻을 수 있습니다.

  • Serial1 : D0 D1 을 이용한 UART 통신
  • Serial2 : 좌측 4개의 따로 나와있는 핀을 통한 UART 통신
  • SerialUSB : 시리얼 모니터와의 통신
  • Serial : 시리얼 모니터와의 통신

위 내용 참고하셔서, Odyssey x86으로 UART 통신 다들 성공적으로 잘 하시길 바래요!!!


+ alpha) 아래 홈페이지에 들어가면 이 내용으로 여러명이 토론중인데, 확인결과 틀린내용도 많고 첨보는 내용도 많고 하더라구요.... ㅋㅋㅋㅋ 아래 영어 설명대로 하다가 UART 안되서 헤맨건 no비밀...

ok quick sketch pumping out in the loop:
“SerialUSB” is the monitor
“Serial 1” is the D0/D1 pins
“Serial” is the 4 pin header as described.
Now to try input

 

Serial Port device names

Yes–I have saved it on my lab computer, so I was looking at it down there earlier today. That signal is I showed in the screen shot I posted, was coming off the RST pin as it turns out–because that’s the pin that was labeled “TX” in the old diagr

forum.seeedstudio.com

반응형
Comments