3.4. Pinovi i periferije

Pin je najjednostavnija periferija na MCU-u: jedna žica koja povezuje čip s vanjskim svijetom. Svaka interakcija sa stvarnim hardverom – upravljanje LED-icom, čitanje sklopke, mjerenje napona, slanje bajtova preko serijske linije – u konačnici prolazi kroz jedan ili više pinova.

3.4.1. Načini rada pina

Pin se konfigurira u jedan od nekoliko načina rada prije nego što počne raditi nešto korisno:

  • Pin.IN – ulaz. Pin promatra napon koji se na njega dovodi izvana i prijavljuje ga kao 0 (nisko) ili 1 (visoko).

  • Pin.OUT – izlaz. Pin sam sebe postavlja ili na napon napajanja (1) ili na masu (0), tako da vanjske komponente vide taj napon.

  • Pin.OPEN_DRAIN – izlaz koji liniju može samo povući na nisku razinu. Da bi otišao na visoku razinu, pin se otpušta (lebdi) i vanjski pull-up otpornik podiže liniju. Koristi se za dijeljene sabirnice gdje više uređaja može upravljati istom linijom.

Ulazi mogu opcionalno omogućiti unutarnji pull otpornik koji jamči definiranu razinu kada ništa vanjsko ne upravlja pinom:

Konstruktor prima id, mode i pull kao pozicijske argumente:

from machine import Pin

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

3.4.2. Alternativne funkcije

Većina pinova ima alternativnu funkciju uz svoju GPIO ulogu. Jedan fizički kontakt na čipu može biti:

Ostale periferije (dodatne serijske sabirnice, mjerači vremena i tako dalje) također zahtijevaju određene pinove; projektant čipa povezuje svaki hardverski blok s fiksnim skupom kontakata. ADC uzorkuje samo pinove usmjerene na svoj multiplekser; UART predaje na jednom pinu na koji je njegov TX signal spojen.

Napomena

OpenMV kamere označavaju pinove vanjskog konektora od P0 do P9 (varira pomalo ovisno o ploči). Koji pin nosi koju alternativnu funkciju ovisi o ploči; tablicu pogledajte u brzom pregledu za OpenMV Cam.

3.4.3. Varijacije ploča

Nekoliko detalja varira ovisno o ploči i uvijek ih treba provjeriti u brzom pregledu, a ne pretpostaviti na temelju druge ploče:

  • Tolerancija napona. Neke kamere imaju U/I pinove tolerantne na 5 V (signal od 5 V može se dovesti izravno bez oštećenja); druge svoj U/I rade na 3,3 V ili 1,8 V i zahtijevaju pretvarač razine za bilo koji signal iznad toga. Spajanje izvora od 5 V na pin koji nije tolerantan može oštetiti čip.

  • ADC referenca. Napon koji ADC tretira kao puni opseg ovisi o U/I napajanju ploče. read_u16() uvijek vraća 0..65535, ali napon koji 65535 predstavlja jest ono što je referenca ploče.

  • Snaga upravljanja. GPIO pin može davati ili upijati ograničenu struju – obično desetke miliampera. Dovoljno za malu LED-icu kroz otpornik; nedovoljno za motor, zujalicu ili bilo koje induktivno opterećenje. Za sve teže posegnite za vanjskim upravljačem (tranzistor, MOSFET, H-most).

Brzi pregled za OpenMV Cam daje točne brojeve za svaku ploču.