Site despre microcontrolere avr

În acest articol, vă voi prezenta lucrările autobuzului 1-Wire și veți programa parametrii acestuia în Bascom.

Există trei tipuri de comunicații pe magistrala de date:

- electronică - nivel scăzut, nivel ridicat de semnal; începutul înregistrării, de exemplu, din decăderea pulsului;







Trebuie remarcat faptul că protocolul 1-Wire este unic datorită faptului că doar o singură legătură de comunicare este utilizată pentru a recepționa și a transmite date. Alimentarea cu energie a dispozitivului slave poate fi efectuată și de-a lungul aceleiași linii.

Semnalele de magistrală sunt: ​​"Log 1", "Log 0", "Citire", "Resetare", "Prezență" (vezi Fig.1).

Site despre microcontrolere avr

Fig.1 - Semnalele de magistrală cu 1 fir

Cu semnalul "log 1", masterul stabilește nivelul scăzut al busului în intervalul 1 ... 15 μs. Când "scrie jurnalul 0.", nivelul scăzut este setat pentru o perioadă de cel puțin 60 μs și nu mai mult de 120 μs. Cu un semnal "citit", master-ul stabilește un nivel scăzut pentru 1 ... 15 μs. După aceasta, sclavul (sau sclavul) păstrează autobuzul scăzut, dacă dorește să transfere log.0, iar atunci când transferă log.1, acesta eliberează linia. Scanarea magistralei trebuie efectuată după 15 μs după setarea unui nivel scăzut.

Când este privit de la comandant, "citirea" este în esență un semnal "log-1". De fapt, starea internă a sclavului va determina acest semnal "log 1" sau "citit".

Cu un semnal de resetare, master-ul stabilește un nivel redus de 480 μs. Dacă există un slave pe magistrală, acesta trebuie să răspundă după eliberarea magistralei. semnalul "prezență" este un nivel redus de 60 μs.

Figura 2 prezintă o diagramă schematică a unui contor de temperatură care conține un cip de termometru DS1821 și un microcontroler ATtiny2313. Valorile temperaturii sunt afișate pe ecranul LCD tip MT-16S2H și transmise prin RS-232 la terminalul personal.

Site despre microcontrolere avr






DS1821 are două moduri de funcționare: modul termostat și modul termometru. Vom fi interesați de modul de măsurare a temperaturii.

Modelul DS1821 asigură măsurarea temperaturii în intervalul -55 ... + 125 ° C, cu o rezoluție de un grad. Acuratețea garantată a măsurării temperaturii în intervalul 0 ... + 85 grade C este +/- 1 grad. și în întreaga gamă de +/- 2 grade.

În DS1821, următoarele registre sunt disponibile la nivelul protocolului 1-Wire:

- TH - registrul de prag superior al temperaturii termostatului;

- TL - registru prag de temperatură inferior al termostatului;

Comenzile pentru conversia temperaturii sunt:

- ЕЕh - începe conversia;

- 22h - oprirea conversiei;

- AAh - citirea temperaturii.

Comenzile pentru termostat sunt:

- 01h este înregistrarea TH;

- 02h - înregistrare TL;

Finalizați programul final

Imaginați-vă acum că ne confruntăm cu sarcina de a măsura temperatura corpului la opt puncte folosind DS1821. Vom rezolva această problemă în felul următor. Conectăm microcircuitele termocuplului la portul B conform diagramei de circuit Fig. Apoi, în ciclul principal al programului, vom inițializa concluziile PB0 - PB7 ca conductorii magistralei 1-Wire, citirea valorilor de temperatură cu ajutorul subrutinei și trimiterea acestora prin portul PC-ului prin RS-232.

Subrutina de citire a temperaturii de la DS1821 repetă aproape exact programul "1w" descris anterior. Diagrama bloc a programului pentru utilizarea a opt senzori de temperatură - "1w8" este prezentată în Fig.

Site despre microcontrolere avr

Fig.6 - Diagrama bloc a programului "1w8"

Finalizați programul final

Bascom vă permite să implementați funcția Watchdog (watchdog) în program. Watchdog este o funcție care resetează controlerul în cazul în care programul începe să se blocheze. De fapt, este un timer, care trebuie resetat în mod regulat. Dacă programul se blochează, nu se face o altă resetare a contorului. Odată ce este plină, apare o resetare hardware a controlerului. Această funcție este necesară în aplicații în care stabilitatea este critică și dispozitivul trebuie să funcționeze, indiferent de ce se întâmplă.

Programul de controler trebuie să interacționeze cu ceasul Watchdog, deoarece declanșarea acestuia este o situație independentă, care poate fi cauzată atât de o funcționare defectuoasă a programului, cât și a echipamentului. În orice caz, trebuie să aveți grijă de sistemul de înregistrare a erorilor, altfel va fi foarte dificil să aflați cauza eșecului. Și poate că acest accident se va întâmpla din nou.

Watchdog este configurat după cum urmează:

Config Watchdog 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048

Intervalul de reglare este de 16 până la 2048 milisecunde. Contorul trebuie să fie resetat în mod continuu înainte de depășire:

Acest lucru este necesar pentru a preveni o resetare hardware.

Agentul de urmărire poate fi pornit sau oprit în orice moment:

Un exemplu de utilizare a declanșării forțate a temporizatorului este următorul program "watchdog":







Articole similare

Trimiteți-le prietenilor: