3.4. Stift och kringutrustning¶
Ett stift är den enklaste kringutrustningen på MCU:n: en enda ledning som ansluter chipet till omvärlden. Varje interaktion med verklig maskinvara – att driva en LED, läsa en strömbrytare, mäta en spänning, skicka byte över en seriell linje – går i slutändan genom ett eller flera stift.
3.4.1. Stiftlägen¶
Ett stift konfigureras till ett av ett fåtal lägen innan det gör något användbart:
Pin.IN– ingång. Stiftet observerar spänningen som anläggs på det utifrån och rapporterar den som0(lågt) eller1(högt).Pin.OUT– utgång. Stiftet driver sig självt antingen till matningsspänningen (1) eller till jord (0), så att externa komponenter ser den spänningen.Pin.OPEN_DRAIN– utgång som endast kan dra linjen lågt. För att gå högt släpper stiftet (flyter) och ett externt pull-up-motstånd lyfter linjen. Används för delade bussar där flera enheter kan driva samma linje.
Ingångar kan valfritt aktivera ett internt pull-motstånd som garanterar en definierad nivå när inget externt driver stiftet:
Pin.PULL_UP– svag dragning till matningsskenan.Pin.PULL_DOWN– svag dragning till jord.
Konstruktorn tar id, mode och pull som positionsargument:
from machine import Pin
led = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)
3.4.2. Alternativa funktioner¶
De flesta stift har en alternativ funktion utöver sin GPIO-roll. En enda fysisk kontaktyta på chipet kan vara:
En digital ingång eller utgång (
machine.Pin).En ADC-ingång som mäter spänning (
machine.ADC).En PWM-utgång som avger en fyrkantsvåg (
machine.PWM).TX- eller RX-linjen för en UART (
machine.UART).
Annan kringutrustning (ytterligare seriella bussar, timrar och så vidare) gör också anspråk på specifika stift; chipkonstruktören kopplar varje maskinvarublock till en fast uppsättning kontaktytor. ADC:n samplar endast stift dragna till sin multiplexer; en UART sänder på det enda stift som dess TX-signal är kopplad till.
Anteckning
OpenMV-kameror märker stiften på den externa anslutningen P0 till P9 (varierar något beroende på kort). Vilket stift som bär vilken alternativ funktion är kortspecifikt; se OpenMV Cam quick reference för tabellen.
3.4.3. Kortvariationer¶
Ett fåtal detaljer varierar beroende på kort och bör alltid kontrolleras mot quickref snarare än antas utifrån ett annat kort:
Spänningstolerans. Vissa kameror har 5 V-toleranta I/O-stift (en 5 V-signal kan anläggas direkt utan skada); andra kör sin I/O på 3,3 V eller 1,8 V och kräver en nivåomvandlare för varje signal över det. Att ansluta en 5 V-källa till ett icke-tolerant stift kan skada chipet.
ADC-referens. Den spänning som ADC:n behandlar som fullt utslag beror på kortets I/O-matning.
read_u16()returnerar alltid0..65535, men den spänning som65535representerar är vilken kortets referens än är.Drivstyrka. Ett GPIO-stift kan leverera eller absorbera en begränsad ström – vanligtvis tiotals milliampere. Tillräckligt för en liten LED genom ett motstånd; inte tillräckligt för en motor, en summer eller någon induktiv last. Ta till en extern drivkrets (transistor, MOSFET, H-brygga) för något tyngre.
OpenMV Cam quick reference ger de exakta siffrorna per kort.