드론 쿼드콥터

클린플라이트 설정 - 시리얼 - Serial

하늘이푸른오늘 2016. 9. 7. 17:56

시리얼(Serial)

Cleanflight 는 시리얼포트의 유연함을 향상시켰지만, 이로 인해 설정은 약간 복잡해졌습니다.

Cleanflight는 function(MSP, GPS, Serial RX 등)과 포트(VCP, UARTx, SoftSerial x) 라는 개념이 있습니다. 모든 포트에 모든 기능이 사용되는 것은 아닙니다. 하드웨어 핀 매핑, 기능의 충돌, 하드웨어 및 소프트웨어 제한 등 때문입니다.

시리얼 포트 유형(Serial port types)

  • USB 가상 콤 포트(VCP : Virtual Com Port) - USB 포트의 USB 핀이 직접 프로세서에 연결되어, 전용 USB에서 UART 어댑터가 필요 없습니다. VCP는 물리적 UART 포트를 '사용'하지 않습니다.??
  • UART - 전송 및 수신 핀의 전용 하드웨어 쌍으로, 신호의 검출 및 생성을 하드웨어에서 처리합니다. ??
  • SoftSerial - 전송 및 수신 핀의 전용 하드웨어 쌍으로, 신호의 검출 및 생성을 소프트웨어에서 처리합니다.

UART가 CPU 사용의 관점에서 더 효율적입니다. SoftSerial은 가장 효율성이 낮고 늦습니다. SoftSerial은 텔레메트리 송신과 같이 용량이 적은 경우에만 사용해야 합니다.

UART 포트는 가끔 온보드 USB -> UART 변환기를 통해 노출이 됩니다. Naze와 Flip32 보드에 있는 CP2102 등이 그 예입니다. 비행 콘트롤러가 온보드 USB -> UART 컨버터가 없고 VCP를 지원하지 않으면, 별도의 USB -> UART 변환보드가 필요합니다. 이런 보드를 FTDI 보드라고 합니다. FTDI는 사실 USB -> UART 보드에서 사용되는 칩(FT232RL)의 제작회사일 뿐입니다.

USB -> UART 변환기를 골라야 하면, DTR이 노출되어 있고, 3.3v 및 5v를 선택할 수있는 것으로 고르세요. 훨씬 유용하기 때문입니다.

예를 들면 : 

SoftSerial 및 UART 포트는 모두 USB -> UART 변환보드를 사용하면 PC에 연결할 수 있습니다.

시리얼 설정(Serial Configuration)

시리얼 포트 설정은 Cleanflight 설정프로그램 GUI를 이용하는 것이 가장 좋습니다.

먼저 시리얼포트를 설정하고, 포트를 사용할 기능을 활성화/비활성화 시킵니다. SoftSerial 포트를 설정할 경우, SOFTSERIAL 기능도 반드시 활성화 시켜야 합니다.

제한사항(Constraints)

만약 설정이 유효하지 않다면, 시리얼 포트 설정은 기본값으로 리셋되고 기능들이 비활성화 될 수 있습니다.

  • 반드시 MSP/CLS로 사용되는 포트는 존재해야 합니다.
  • MSP 포트는 최대 2개까지 가능합니다.
  • 포트에서 어떤 function을 사용하려면, 해당 function의 관계 기능도 활성화시켜야 합니다. 예 : 어떤 포트를 GPS로 사용하려면, GPS 기능을 활성화시켜야 합니다.
  • SoftSerial 을 사용할 경우 모든 SoftSerial 포트는 반드시 동일한 baudrate를 사용해야 합니다.
  • SoftSerial은 최대 19200 baud까지 사용할 수 있습니다.
  • MSP를 제외한 모든 텔레메트리 시스템은 buadrate를 덮어쓰려는 어떠한 시도도 무시합니다.
  • MSP/CLI 는 Blackbox 혹은 텔레메트리 둘중 하나와 공용할 수 있습니다. 공유한 모드에서 블랙박스나 텔레메트리는 시동이 걸렸을 때만 출력합니다.
  • Smartport 텔레메트리는 MSP와 공유할 수 없습니다.
  • 기타 어떤 시리얼포트 공유 조합도 불가능합니다.
  • 원한다면 여러가지 텔레메트리 시스템을 동시에 사용할 수 있습니다. 
  • 각각의 텔레메트리 시스템은 하나만 사용할 수 있습니다. 예를 들어, FrSky 텔레메트리를 동시에 사용할 수 없지만, MSP 텔레메트리 + FrSky 를 다른 포트에서 각각 사용하는 것은 무방합니다.

CLI 를 통한 설정

CLI를 사용하여 설정할 수 있지만, 명령어는 개발자 및 고급 사용자에게만 허용되어 있습니다.

CLI 명령 serial 은 다음 6가지 변수를 받습니다.

  1. Identifier 
  2. Function bitmask (see serialPortFunction_e in the source) 
  3. MSP baud rate 
  4. GPS baud rate 
  5. Telemetry baud rate (auto baud allowed) 
  6. Blackbox baud rate

Baud Rates

허용되는 baud rate는 다음과 같습니다.

IdentifierBaud rate
0Auto
19600
219200
338400
457600
5115200
6230400
7250000

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Serial.md

이전글 : 명령어입력(CLI)

다음글 : 수신기(Receivers, Rx)