3.4. 핀과 주변장치¶
핀은 MCU에서 가장 단순한 주변장치로, 칩을 바깥 세계와 연결하는 하나의 전선입니다. 실제 하드웨어와의 모든 상호작용 – LED 구동, 스위치 읽기, 전압 측정, 시리얼 라인으로 바이트 전송 – 은 궁극적으로 하나 이상의 핀을 거쳐 이루어집니다.
3.4.1. 핀 모드¶
핀은 쓸모 있는 일을 하기 전에 몇 가지 모드 중 하나로 설정됩니다:
Pin.IN– 입력. 핀은 외부에서 가해지는 전압을 관찰하여0(low) 또는1(high)로 보고합니다.Pin.OUT– 출력. 핀은 스스로를 공급 전압(1) 또는 접지(0)로 구동하므로, 외부 구성 요소가 그 전압을 감지합니다.Pin.OPEN_DRAIN– 라인을 로우로만 끌어내릴 수 있는 출력. 하이로 가려면 핀이 라인을 놓아(플로팅) 외부 풀업 저항이 라인을 들어 올립니다. 여러 장치가 같은 라인을 구동할 수 있는 공유 버스에 사용됩니다.
입력은 선택적으로 내부 풀 저항을 활성화할 수 있는데, 이는 외부에서 핀을 구동하지 않을 때 정해진 레벨을 보장합니다:
Pin.PULL_UP– 공급 레일로의 약한 풀.Pin.PULL_DOWN– 접지로의 약한 풀.
생성자는 id, mode, pull을 위치 인수로 받습니다:
from machine import Pin
led = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)
3.4.2. 대체 기능¶
대부분의 핀은 GPIO 역할 외에 대체 기능을 가집니다. 칩의 단일 물리 패드는 다음이 될 수 있습니다:
디지털 입력 또는 출력(
machine.Pin).전압을 측정하는 ADC 입력(
machine.ADC).사각파를 내보내는 PWM 출력(
machine.PWM).UART의 TX 또는 RX 라인(
machine.UART).
다른 주변장치(추가 시리얼 버스, 타이머 등)도 특정 핀을 점유합니다. 칩 설계자는 각 하드웨어 블록을 고정된 패드 집합에 배선합니다. ADC는 자신의 멀티플렉서로 라우팅된 핀만 샘플링하고, UART는 자신의 TX 신호가 배선된 그 핀 하나로만 송신합니다.
참고
OpenMV 캠은 외부 커넥터 핀에 P0 부터 P9 까지 레이블을 붙입니다(보드에 따라 약간 다름). 어떤 핀이 어떤 대체 기능을 담당하는지는 보드마다 다릅니다. 표는 OpenMV Cam 빠른 참조 를 보십시오.
3.4.3. 보드별 차이¶
몇 가지 세부 사항은 보드마다 다르므로, 다른 보드를 기준으로 짐작하지 말고 항상 빠른 참조와 대조해 확인해야 합니다:
전압 허용 범위. 일부 캠은 5 V 허용 I/O 핀을 가지고 있어(5 V 신호를 손상 없이 직접 인가할 수 있음), 다른 캠은 I/O를 3.3 V 또는 1.8 V로 동작시키며 그 이상의 신호에는 레벨 시프터가 필요합니다. 허용 범위가 아닌 핀에 5 V 소스를 연결하면 칩이 손상될 수 있습니다.
ADC 기준 전압. ADC가 최대 스케일로 취급하는 전압은 보드의 I/O 공급 전압에 따라 달라집니다.
read_u16()은 항상0..65535를 반환하지만,65535가 나타내는 전압은 보드의 기준 전압이 무엇이든 그 값입니다.구동 능력. GPIO 핀은 제한된 전류만 소싱하거나 싱크할 수 있으며, 일반적으로 수십 밀리암페어 수준입니다. 저항을 통한 작은 LED에는 충분하지만, 모터나 부저, 또는 어떤 유도성 부하에는 충분하지 않습니다. 더 무거운 것에는 외부 드라이버(트랜지스터, MOSFET, H-브리지)를 사용하십시오.
OpenMV Cam 빠른 참조 가 보드별 정확한 수치를 제공합니다.