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 kao0(nisko) ili1(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:
Pin.PULL_UP– slabo povlačenje prema sabirnici napajanja.Pin.PULL_DOWN– slabo povlačenje prema masi.
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:
Digitalni ulaz ili izlaz (
machine.Pin).ADC ulaz koji mjeri napon (
machine.ADC).PWM izlaz koji emitira pravokutni val (
machine.PWM).TX ili RX linija UART-a (
machine.UART).
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ća0..65535, ali napon koji65535predstavlja 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.