시리얼(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가지 변수를 받습니다.
- Identifier
- Function bitmask (see serialPortFunction_e in the source)
- MSP baud rate
- GPS baud rate
- Telemetry baud rate (auto baud allowed)
- Blackbox baud rate
Baud Rates
허용되는 baud rate는 다음과 같습니다.
Identifier | Baud rate |
---|---|
0 | Auto |
1 | 9600 |
2 | 19200 |
3 | 38400 |
4 | 57600 |
5 | 115200 |
6 | 230400 |
7 | 250000 |
원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Serial.md
이전글 : 명령어입력(CLI)
다음글 : 수신기(Receivers, Rx)