onewire — protocolul de magistrală 1-Wire¶
Modulul onewire implementează protocolul master al magistralei 1-Wire utilizat de dispozitive precum senzorul de temperatură DS18x20. Acesta folosește un singur machine.Pin configurat ca open-drain pentru a comunica cu unul sau mai multe dispozitive slave de pe magistrala partajată.
Exemplu:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Clase¶
- class onewire.OneWire(pin: machine.Pin)¶
Construiește un master de magistrală 1-Wire pe
machine.Pindat. Pinul este configurat automat ca open-drain cu pull-up.Constante pentru comenzi ROM:
- SEARCH_ROM: int¶
Comanda Search ROM (
0xF0). Utilizată intern descan()pentru a descoperi dispozitivele de pe magistrală.
- MATCH_ROM: int¶
Comanda Match ROM (
0x55). Utilizată intern deselect_rom()pentru a adresa un dispozitiv specific prin codul său ROM pe 64 de biți.
- SKIP_ROM: int¶
Comanda Skip ROM (
0xCC). Adresează simultan toate dispozitivele de pe magistrală, omițând potrivirea ROM.
Resetarea magistralei:
- reset(required: bool = False) bool¶
Emite un impuls de resetare pe magistrală. Returnează
Truedacă cel puțin un dispozitiv slave a răspuns cu un impuls de prezență, în caz contrarFalse. Dacă required esteTrueși niciun dispozitiv nu răspunde, genereazăOneWireError.
I/O pe biți/octeți:
Adresarea dispozitivelor:
- select_rom(rom: bytes | bytearray) None¶
Emite o resetare urmată de o comandă MATCH ROM pentru a adresa dispozitivul al cărui cod ROM pe 64 de biți se află în rom (un tampon de 8 octeți).
- scan() list[bytearray]¶
Caută pe magistrală și returnează o listă de coduri ROM de 8 octeți (câte un
bytearraypentru fiecare dispozitiv detectat). Returnează o listă goală dacă nu este prezent niciun dispozitiv.
Verificare prin redundanță ciclică:
Excepții¶
- exception onewire.OneWireError¶
Generată când o operație 1-Wire eșuează. În prezent este generată de
OneWire.reset()când required esteTrueși niciun slave nu răspunde la impulsul de resetare.