3.4. Nastat ja oheislaitteet¶
Nasta on yksinkertaisin oheislaite MCU:lla: yksittäinen johdin, joka yhdistää sirun ulkomaailmaan. Jokainen vuorovaikutus todellisen laitteiston kanssa – LEDin ohjaaminen, kytkimen lukeminen, jännitteen mittaaminen, tavujen lähettäminen sarjalinjalla – reitittyy lopulta yhden tai useamman nastan kautta.
3.4.1. Nastojen tilat¶
Nasta määritetään johonkin muutamista tiloista ennen kuin se tekee mitään hyödyllistä:
Pin.IN– tulo. Nasta havainnoi siihen ulkoa kohdistettua jännitettä ja raportoi sen arvona0(alhaalla) tai1(ylhäällä).Pin.OUT– lähtö. Nasta ohjaa itsensä joko syöttöjännitteeseen (1) tai maahan (0), jotta ulkoiset komponentit näkevät kyseisen jännitteen.Pin.OPEN_DRAIN– lähtö, joka voi vain vetää linjan alas. Mennäkseen ylös nasta vapautuu (kelluu) ja ulkoinen ylösvetovastus nostaa linjan. Käytetään jaetuissa väylissä, joissa useat laitteet voivat ohjata samaa linjaa.
Tuloissa voidaan valinnaisesti ottaa käyttöön sisäinen vetovastus, joka takaa määritellyn tason, kun mikään ulkoinen ei ohjaa nastaa:
Pin.PULL_UP– heikko veto syöttökiskoon.Pin.PULL_DOWN– heikko veto maahan.
Konstruktori ottaa id:n, tilan ja vedon positionaalisina argumentteina:
from machine import Pin
led = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)
3.4.2. Vaihtoehtoiset toiminnot¶
Useimmilla nastoilla on GPIO-roolinsa lisäksi vaihtoehtoinen toiminto. Yksittäinen fyysinen kosketuspinta sirulla voi olla:
Digitaalinen tulo tai lähtö (
machine.Pin).ADC-tulo, joka mittaa jännitettä (
machine.ADC).PWM-lähtö, joka tuottaa kanttiaaltoa (
machine.PWM).UARTin TX- tai RX-linja (
machine.UART).
Myös muut oheislaitteet (lisää sarjaväyliä, ajastimia ja niin edelleen) varaavat tiettyjä nastoja; sirun suunnittelija johdottaa kunkin laitteistolohkon kiinteään joukkoon kosketuspintoja. ADC näytteistää vain nastat, jotka on reititetty sen multiplekseriin; UART lähettää sillä yhdellä nastalla, johon sen TX-signaali on johdotettu.
Muista
OpenMV-kamerat nimeävät ulkoisen liittimen nastat P0–P9 (vaihtelee hieman korttikohtaisesti). Mikä nasta kantaa mitäkin vaihtoehtoista toimintoa on korttikohtaista; katso taulukko OpenMV Cam -pikaoppaasta.
3.4.3. Korttikohtaiset vaihtelut¶
Muutamat yksityiskohdat vaihtelevat korttikohtaisesti, ja ne tulisi aina tarkistaa pikaoppaasta sen sijaan, että ne oletettaisiin toisen kortin perusteella:
Jännitteensieto. Joillakin kameroilla on 5 V:n sietoiset I/O-nastat (5 V:n signaali voidaan kytkeä suoraan ilman vauriota); toiset ajavat I/O:taan 3,3 V:ssa tai 1,8 V:ssa ja vaativat tasonsiirtimen mille tahansa sen ylittävälle signaalille. 5 V:n lähteen kytkeminen sietämättömään nastaan voi vaurioittaa sirua.
ADC-referenssi. Jännite, jota ADC käsittelee täysasteikkona, riippuu kortin I/O-syötöstä.
read_u16()palauttaa aina arvon0..65535, mutta jännite, jota65535edustaa, on mikä tahansa kortin referenssi onkin.Ohjausvoimakkuus. GPIO-nasta voi lähdettää tai nieluttaa rajallisen virran – tyypillisesti kymmeniä milliampeereja. Riittää pienelle LEDille vastuksen kautta; ei riitä moottorille, summerille tai millekään induktiiviselle kuormalle. Käytä ulkoista ohjainta (transistori, MOSFET, H-silta) mille tahansa raskaammalle.
OpenMV Cam -pikaopas antaa tarkat arvot korttikohtaisesti.