3.4. Chân (pin) và ngoại vi

Chân (pin) là ngoại vi đơn giản nhất trên MCU: một dây đơn kết nối chip với thế giới bên ngoài. Mọi tương tác với phần cứng thực -- điều khiển LED, đọc công tắc, đo điện áp, gửi byte qua đường nối tiếp -- cuối cùng đều đi qua một hoặc nhiều chân (pin).

3.4.1. Chế độ chân (pin)

Một chân (pin) được cấu hình vào một trong vài chế độ trước khi làm bất kỳ điều gì hữu ích:

  • Pin.IN -- đầu vào. Chân (pin) quan sát điện áp được áp dụng từ bên ngoài và báo cáo là 0 (thấp) hoặc 1 (cao).

  • Pin.OUT -- đầu ra. Chân (pin) tự điều khiển đến điện áp nguồn (1) hoặc nối đất (0), để các thành phần bên ngoài nhìn thấy điện áp đó.

  • Pin.OPEN_DRAIN -- đầu ra chỉ có thể kéo đường xuống thấp. Để lên cao, chân (pin) nhả ra (nổi) và một điện trở kéo lên bên ngoài nâng đường lên. Được sử dụng cho các bus chung nơi nhiều thiết bị có thể điều khiển cùng một đường.

Đầu vào có thể tùy chọn bật điện trở kéo nội bộ để đảm bảo mức xác định khi không có nguồn bên ngoài điều khiển chân (pin):

Hàm tạo nhận id, mode và pull làm đối số vị trí:

from machine import Pin

led    = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)

3.4.2. Chức năng thay thế

Hầu hết các chân (pin) có chức năng thay thế ngoài vai trò GPIO của chúng. Một pad vật lý đơn trên chip có thể là:

Các ngoại vi khác (bus nối tiếp, bộ định thời và các thiết bị khác) cũng chiếm các chân (pin) cụ thể; nhà thiết kế chip nối mỗi khối phần cứng với một tập hợp pad cố định. ADC chỉ lấy mẫu các chân (pin) được định tuyến đến bộ ghép kênh của nó; UART truyền trên một chân (pin) duy nhất mà tín hiệu TX của nó được nối đến.

Ghi chú

OpenMV Cam gán nhãn các chân (pin) đầu nối ngoài từ P0 đến P9 (thay đổi nhẹ theo board). Chân (pin) nào mang chức năng thay thế nào là tùy thuộc vào board; xem tài liệu tham khảo nhanh OpenMV Cam để biết bảng.

3.4.3. Biến thể theo board

Một vài chi tiết thay đổi theo board và nên luôn được kiểm tra theo tài liệu tham khảo nhanh thay vì giả định từ board khác:

  • Dung sai điện áp. Một số OpenMV Cam có các chân (pin) I/O chịu được 5 V (tín hiệu 5 V có thể áp dụng trực tiếp mà không bị hỏng); các loại khác chạy I/O ở 3,3 V hoặc 1,8 V và yêu cầu bộ dịch mức cho bất kỳ tín hiệu nào vượt quá mức đó. Kết nối nguồn 5 V với chân (pin) không chịu được có thể làm hỏng chip.

  • Tham chiếu ADC. Điện áp mà ADC coi là toàn thang đo phụ thuộc vào nguồn I/O của board. read_u16() luôn trả về 0..65535, nhưng điện áp mà 65535 đại diện là bất cứ điều gì tham chiếu của board là.

  • Khả năng dẫn dòng. Một chân (pin) GPIO có thể cấp hoặc tiêu thụ dòng điện giới hạn -- thường là vài chục miliampe. Đủ cho một LED nhỏ qua điện trở; không đủ cho động cơ, buzzer hoặc bất kỳ tải cảm ứng nào. Hãy dùng driver ngoài (transistor, MOSFET, H-bridge) cho bất cứ thứ gì nặng hơn.

Tài liệu tham khảo nhanh OpenMV Cam cung cấp các con số chính xác theo từng board.