본문 바로가기

RaspberryPi/RP2040

RP2040 SSM EVM - Arduino TinyUSB Multi CDC 테스트

 

TinyUSB 를 사용하면 SSM TypeCP2105 모듈과 같이 Multi CDC 가 가능 하다고 해서 테스트 해 보았다.

 

Serial은 Raspberry Pi-Pico의 디폴트 CDC이고 USBSer1 으로 하나 더 할당했다.
#include <Adafruit_TinyUSB.h>
#define LED LED_BUILTIN
// Create extra USB Serial Ports.  "Serial" is already created.

Adafruit_USBD_CDC USBSer1;
void setup() {
  pinMode(LED, OUTPUT);
USBSer1.begin(115200);
  // start up all of the USB Vitual ports, and wait for them to enumerate.
  Serial.begin(115200);
  digitalWrite(LED, 1);

  Serial.print("You are port 0\n\r\n0> ");
  USBSer1.print("You are port 1\n\r\n1> ");
}

int LEDstate = 0;
int cnt = 0;

void loop() {
  Serial.print("USBSer0->");
  Serial.println(cnt);
  USBSer1.print("USBSer1->");
  USBSer1.println(cnt);
  cnt++;
  delay(1000);
}

 

구동 결과 USB 2 UART가 두개 인식은 되지만 데이터는 Serial에서만 출력된다.

 

 

코드를 찾아 보니 CFG_TUD_CDC 를 2로 설정 하라고 한다.

\Arduino\libraries\Adafruit_TinyUSB_Library\src\arduino\ports\rp2040\tusb_config_rp2040.h
//------------- CLASS -------------//
//#define CFG_TUD_CDC 1
#define CFG_TUD_CDC 2

 

수정후 다시 실행 하니 두개의 UART에서 데이터가 출력되는것을 확인 할 수 있다.

RP2040은 2개의 UART가 있으므로 USB2UART를 만들어도 좋을것 같다.

반응형