Qwiic이란 무엇인가요?
Qwiic은 마이크로컨트롤러와 관련 하드웨어를 상호 연결하기 위한 생태계입니다. 일반적인 응용 방식은 Qwiic을 지원하는 마이크로컨트롤러와 하나 이상의 브레이크아웃 기판을 데이지 체인 방식으로 연결하는 것입니다. Qwiic이라는 이름은 "Qwick(Quick, 빠른)"과 Inter-Integrated Circuit(I²C)을 결합한 말장난에서 유래되었습니다. Qwiic 브레이크아웃 생태계는 간단한 푸시버튼 인터페이스부터 환경 센서, GPS 수신기까지 다양합니다.
그림 1에 표시된 SparkFun RedBoard DEV-15123은 Microchip(Atmel) ATMega328을 탑재한 대표적인 Qwiic 지원 마이크로컨트롤러입니다. 인쇄 회로 기판(PCB) 우측 상단에 있는 4핀 JST 커넥터를 볼 수 있습니다.
이 FAQ는 엔지니어가 학생들을 위해 작성한 자료로, 디지키 물류 정보부터 시작하여 데이터 손상과 같은 고급 주제까지 경험 수준에 따라 내용을 구성하였습니다. 마지막으로 브레드보드 없이 사용할 수 있는 인기 있는 Qwiic의 대안들도 소개합니다.
그림 1: 대표적인 Qwiic 마이크로컨트롤러의 이미지. PCB의 오른쪽 상단에 Qwiic JST 커넥터가 위치해 있습니다…
Qwiic 케이블은 어디에서 찾을 수 있나요?
)을 제공하고 있습니다. 가능하면 짧은 케이블을 사용하는 것을 권장하지만, 최대 1.6피트(500mm) 길이의 케이블도 있습니다.
그림 2와 같이 다양한 케이블이 포함된 SparkFun Qwiic 케이블 키트도 흥미가 있을 것입니다.
그림 2: SparkFun KIT-15081에 포함된 Qwiic 케이블의 이미지.
Qwiic 마이크로컨트롤러 및 브레이크아웃 기판은 어디에서 구매할 수 있나요?
디지키는 Qwiic 생태계의 다양한 제품들을 제공하고 있습니다. 먼저 확장 기판, 도터 카드 카테고리를 찾습니다. 그런 다음, (그림 3을 참고하여) 플랫폼 필드에 "qwiic"이라는 검색어를 입력하고 모든 결과를 선택한 다음, 모두 적용을 누릅니다.
비슷한 방법으로 디지키의 임베디드 MCU, DSP 평가 기판 카테고리에서도 제품을 찾아볼 수 있습니다.
그림 3: 디지키의 파라미터 검색 엔진을 사용하여 Qwiic 부품을 선택하는 방법.
Qwiic 네트워크에는 몇 개의 장치(노드)를 연결할 수 있으며, 최대 케이블 길이는 얼마인가요?
이 질문에 대한 답은 여러 요인에 따라 달라집니다.
- 실시간 성능: 각 모듈과의 통신에는 시간이 소요됩니다. 모듈이 많아질수록 이러한 지연이 누적되어 시스템 반응 속도가 느려질 수 있습니다. 마이크로컨트롤러나 네트워크가 실시간 제약 조건을 충족할 수 없을 수도 있습니다.
- 네트워크 제약: 이 문서에서 후술하겠지만, 노드 수가 증가하면 네트워크 속도가 느려지고 간섭에 대한 취약성이 높아지는 등의 문제가 발생할 수 있습니다.
- 전력 제약: 마이크로컨트롤러가 모든 Qwiic 모듈에 전원을 공급합니다. 모듈이 많아지면 마이크로컨트롤러 기판의 전압 조정기가 과부하될 수 있으며, 이로 인해 예기치 않은 열적 리셋이 발생하거나 장비가 손상될 위험이 있습니다.
기술 조언: 최악의 경우를 상정해 Qwiic 네트워크의 전력 예산을 설정하는 것이 좋은 습관입니다. 모든 모듈의 전류 합계를 계산한 후 이 값이 마이크로컨트롤러가 공급할 수 있는 전류보다 적다는 것을 확인해야 합니다. 좋은 엔지니어링 습관에는 예기치 않은 동작과 상승하는 열을 줄일 수 있는 경감 계수가 포함됩니다. 적절한 시작점은 마이크로컨트롤러 PCB에 명시된 전류의 50% 미만으로 전류를 유지하는 것입니다.
기술 조언: 초보 프로그래머는 코드에 지연을 구현할 때 종종 문제에 직면합니다. 예를 들어, 많은 사람들은 Arduino의 delay() 함수나 그에 상응하는 특정 플랫폼용 함수를 사용할 것입니다. 이는 사실상 모든 활동을 중단시켜 마이크로컨트롤러가 제 기능을 못하게 하는 방식이므로 바람직하지 않습니다. 논블로킹 기법을 구현하는 것이 좋으며, 이를 통해 마이크로컨트롤러는 지연이 완료되길 기다리는 동안에도 네트워크 통신과 같은 작업을 계속할 수 있습니다.
마이크로컨트롤러 기판이 Qwiic을 기본적으로 지원하지 않는 경우 어떻게 추가할 수 있나요?
Qwiic 시스템은 대부분의 마이크로컨트롤러에서 지원되는 I2C를 기반으로 합니다. 하드웨어 수준에서는 Spark Fun DEV-14495와 같은 어댑터 기판이 필요합니다. 마이크로컨트롤러의 I2C 하드웨어를 구성하고 인터페이스해야 하므로 소프트웨어는 더 복잡할 수 있습니다. 어떤 경우에는 Arduino Wire 라이브러리를 사용하는 것만큼이나 간단할 수 있습니다. 다른 경우에서는 하드웨어 기술 언어(Hardware Descriptive Language, HAL)를 사용하거나 마이크로컨트롤러의 특수 기능 레지스터(SFR)를 직접 제어할 수도 있습니다.
그림 4: Spark Fun DEV-14495 Qwiic 어댑터 기판의 이미지.
기술 조언: 많은 마이크로컨트롤러에는 여러 개의 I2C 주변 장치가 있습니다. 장치를 더 추가하고 전체 케이블 길이를 줄이기 위해 두 개의 Qwiic 네트워크를 구현할 수도 있습니다. Spark Fun DEV-14495 어댑터를 사용하면 이를 상대적으로 쉽게 구현할 수 있습니다.
Qwiic의 장점은 무엇인가요?
전통적인 방법과 비교하면, Qwiic은 단일 커넥터로 전원과 통신을 동시에 제공하여 배선의 복잡성을 최소화합니다. Qwiic 시스템을 사용하면 전통적인 기판에 비해 훨씬 적은 시간이 소요됩니다. 아래의 전원/신호를 포함하는 4핀 JST 커넥터가 이를 가능하게 합니다.
- 3.3 VDC
- GND
- SDA: 직렬 데이터
- SCL: 직렬 클록
Qwiic의 장점은 소프트웨어로도 이어집니다. 대부분의 제조업체에서 Qwiic 기판에 대한 라이브러리를 제공합니다. 예를 들어, Arduino Plug and Make Kit에는 그림 5와 같이 Qwiic 시스템이 장착된 여러 Modulino 기판이 포함되어 있으며, 이 기판들의 "드라이버"는 Arduino IDE의 라이브러리 관리자를 통해 설치됩니다.
그림 5: 4개의 Qwiic Modulino 기판이 연결된 Arduino Plug and Make Kit의 이미지.
Qwiic의 제한 사항은 무엇인가요
Qwiic의 제한 사항은 근본적으로 I2C 통신 프로토콜의 제한 사항이 반영됩니다. 이 근본적 의존성이 데이터 전송 속도, 케이블 길이, 네트워크에서 허용되는 총 장치 수를 좌우합니다.
신호 속도
I2C는 원래 기판 내에서 간단하게 정보를 전달하기 위해 40여 년 전에 설계되었습니다. 상응하는 풀업 저항을 사용하는 오픈 드레인 및 오픈 컬렉터 회로에 의존하기 때문에, 신호 전환 속도가 독립 구동 방식(Complimentary Driver)에 비해 상대적으로 느립니다.
장치가 추가될수록 상황은 더욱 악화됩니다. 각 장치와 케이블이 추가될 때마다 증가하는 정전 용량 때문에 신호 전환 속도가 더욱 느려집니다. 이는 이미 잘 알려진 문제로, 따라서 Qwiic의 클록 신호는 일반적으로 100kHz로 제한됩니다.
신호 훼손
Qwiic 시스템은 I2C 신호를 사용하기 때문에 외부 간섭에 취약합니다.
예를 들어, Qwiic 케이블을 모터 전원 케이블 근처에서 운용하면, 모터 케이블에서 발생하는 자기 에너지가 통신 케이블에 영향을 미쳐 데이터 훼손을 유발할 수 있습니다. 따라서 통신용 케이블과 전원 케이블은 반드시 분리해야 합니다. 또한, 자기장 결합으로 인한 간섭을 최소화하기 위해 케이블을 직각으로 교차해야 합니다.
기술 조언: 신호 훼손이 예상되는 환경에서는 RS-422/485 통신의 사용을 고려해 보십시오. 꼬임쌍선을 사용하는 차동 신호는 우수한 잡음 제거 성능으로 장거리에서도 작동할 수 있습니다. 중요한 용도라면 광섬유 연결의 사용을 고려해 보십시오.
대역폭
여기서 대역폭이란 Qwiic 네트워크으로 전송할 수 있는 데이터량을 의미합니다. 네트워크에 연결된 각 디바이스는 일정한 통신 시간을 필요로 합니다. 예를 들어, 그림 6에서 아두이노 Modulino Pixels와의 통신에 사용된 프레임의 시작 부분을 살펴볼 수 있습니다. 100kHz 클록을 사용하면, 이 프레임을 전송하는 데 약 3ms가 소요됩니다. 단일 전송으로는 큰 영향이 없지만, 다수의 장치가 연결될 경우 실시간 시스템 성능이 저하될 수 있습니다.
그림 6: show() 메서드로 생성된 아두이노 Modulino Pixels로 전송되는 I2C 프레임의 일부. 프레임은 Modulino Pixels의 초기 설정 주소인 0x6C로 시작합니다.
Qwiic의 대안에는 무엇이 있나요?
앞서 우리는 Qwiic을 마이크로컨트롤러 관련 장치의 다양한 브레이크아웃 기판을 쉽게 연구할 수 있는 빠르고 간편한 플랫폼으로 정의했습니다. 또한, I2C 기술을 기반으로 하는 Qwiic 시스템의 몇 가지 한계를 알아보았습니다.
전반적으로 속도는 Qwiic 시스템의 제한 요소 중 하나입니다. 전반적으로 속도가 Qwiic 시스템의 제한 요소입니다. 따라서 Qwiic 브레이크아웃 기판에 사용되는 장치의 범위와 성능에도 한계가 있습니다. 예를 들어, I2C 기반의 아날로그-디지털 컨버터(ADC)를 찾을 수는 있겠지만, 고속 장치가 아닐것입니다. 반면, 직렬 주변 장치 인터페이스(SPI) 기반의 ADC는 I2C 방식보다 25~100배 더 빠르게 동작할 수 있습니다. 더 높은 성능을 원한다면 병렬 출력 ADC를 사용할 수도 있습니다. 신호 종단을 적절히 처리하면 추가적인 25~100배의 성능 향상을 얻을 수도 있습니다.
기술 조언: 일반적으로 I2C는 다수의 장치를 저속으로 통신하는 데 사용되며, SPI는 소수(이왕이면 하나)의 장치를 고속으로 통신하는 데 사용됩니다. 일반적인 I2C 클록 속도는 약 100 kHz인 반면, SPI는 10 MHz에서 동작할 수 있습니다. 또한, SPI는 I2C와 달리 주소 오버헤드가 없어 더 빠른 속도를 제공합니다.
Qwiic과 유사한 대안
Gravity(DFRobot), Grove(Seeed Studio), STEMMA(Adafruit)과 같은 여러 다양한 Qwiic과 유사한 시스템이 있습니다. 이러한 시스템들은 모두 I2C 인터페이스를 사용하기 때문에 속도 면에서 큰 차이가 없으며, 성능 면에서도 Qwiic과 유사합니다. 해당 시스템에 대한 자세한 설명은 본 게시글에서 다루지 않습니다.
MikroBUS 대안
MikroElektronika의 MikroBUS는 8핀 커넥터를 사용해 속도 면에서 뚜렷한 이점을 제공합니다. 개별 브레이크아웃 기판은 I2C를 사용할 수도 있지만, 제조업체는 더 빠른 SPI 인터페이스를 사용할 수도 있습니다. 예를 들어, Texas Instruments의 ADS127L11을 사용하는 MikroElektronika의 ADC 23 CLICK이 그림 7에 나와 있습니다.
그림 7: MikroElektronika의 MikroBUS 8핀 버스를 사용하는 ADC 23 CLICK의 이미지.
Pmod 대안
Digilent의 Pmod 시스템은 쉽게 사용할 수 있는 브레드보드-프리 브레이크아웃 기판을 제공합니다. 또한 각 장치에 따라 I2C 또는 SPI 인터페이스를 지원합니다. Analog Devices AD7193의 브레이크아웃 기판인 Digilent의 Pmod AD5가 대표적인 장치로, 그림 8에 나와 있습니다.
그림 8: 6핀 Pmod 연결을 사용하는 Digilent Pmod AD5의 이미지.
Feather 및 FeatherWing 대안
Adafruit의 Feather 제품군은 소형이며 적층해 조립할 수 있습니다. 대표적인 Feather 제품인 Adafruit의 3231을 그림 9에서 볼 수 있으며, 이 제품은 SPI 인터페이스를 사용하는 RF Solutions의 RFM95W LoRa 모뎀을 사용합니다.
그림 9: SPI 인터페이스를 사용하는 Adafruit LoRa FeatherWing 3231의 이미지.
기타
대안 리스트를 더 넓게 확장해 볼 수 있겠지만, “쉬운” 그리고 "초보자용"이라는 조건을 고려한다면 앞서 소개한 장치들이 가장 널리 사용됩니다. 예를 들어, 필드 프로그래머블 게이트 어레이(FPGA)와 이와 관련된 FPGA 메자닌 카드 하이 핀 카운트(FMC HPC)에 대해서 논의해 볼 수도 있겠지만, 이러한 장치는 복잡성과 비용 측면에서 더 이상 초보자 범주에 속하지 않습니다.
글을 맺으며
Qwiic 생태계는 다양한 마이크로컨트롤러와 관련 주변 부품들을 쉽게 테스트할 수 있는 브레드보드-프리 방식을 제공합니다. 또한, 풍부한 지원 소프트웨어 라이브러리를 통해 사용 편의성이 더욱 향상됩니다. 이러한 특성 덕분에 초보 프로그래머도 빠르게 새로운 프로젝트를 시작할 수 있습니다.
하지만, Qwiic 시스템은 40년 전에 개발된 I2C 프로토콜에 의존하기 때문에 몇 가지 한계를 가지고 있습니다. 고급 사용자는 MikroBUS, Pmod, Feather와 같은 보다 빠른 SPI 기반 기술로 확장하는 것이 좋습니다. 한편, 일부 전자공학 학생들은 브레드보드를 활용한 회로 구성이나 직접 PCB를 설계하는 과정에서 더욱 큰 학습 효과를 얻을 수도 있습니다.
이 정보가 유용했다면 ‘좋아요’를 눌러 주세요.
또한, Qwiic 관련 질문을 아래 댓글 부분에 남겨 주신다면 이 FAQ 글의 폭이 넓어지는 데 도움이 될 것입니다.
감사합니다,
APDahlen
관련 정보
관련된 유용한 정보는 아래 링크를 참고하시기 바랍니다:
저자 정보
미합중국 해안경비대(USCG) 소령(LCDR)으로 전역한 Aaron Dahlen은 DigiKey에서 애플리케이션 엔지니어로 근무하고 있습니다. 27년간의 군 복무 동안 기술자 및 엔지니어로서 쌓아온 그 만의 전자 및 자동화에 대한 지식은 12년간의 교단을 통해 (상호 연계되어) 더욱 향상되었습니다. 미네소타 주립대학, Mankato에서 전기공학 석사(MSEE) 학위를 받은 Dahlen은 ABET(Accreditation Board for Engineering and Technology, 미국 공학 기술 인증 위원회) 공인 전기공학 과정을 가르치고, EET(Electrical Engineering Technology, 전기공학 기술) 과정의 프로그램 조정관으로 일했으며, 군 전자 기술자에게 부품 수준의 수리에 대해 가르쳤습니다. 미네소타 주 북부의 집으로 돌아와 이런 류의 연구와 글쓰기를 즐기고 있습니다.
영문 원본: Qwiic Overview and FAQ