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 som 0 (lågt) eller 1 (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:

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:

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 alltid 0..65535, men den spänning som 65535 representerar ä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.