Lucrul cu eeprom extern în bascom-avr de exemplu 24lc08 - cum se conectează - avr - proiecte pe

Lucrul cu EEPROM extern în Bascom-AVR utilizând exemplul 24lc08

În nomenclatura Microchip 24LC, valoarea numerică după indicele literei denotă cantitatea de memorie în kilobiți. Deci, cipul experimental 24LC08 are la bord 8 kilobiți de spațiu pentru stocarea datelor (sau 1 kilobyte).







Acest cip este disponibil în diferite dulapuri: DIP, SOIC, TSOP, DFN. Pinout-ul contactelor este reținut pentru fiecare tip de carcasă cu opt picioare.

Același aranjament de contacte are jetoane de modele mai vechi, astfel încât acestea pot fi înlocuite cu ușurință în caz de lipsă de resurse, fără a schimba tipologia plăcii.

Scopul pinului este prezentat mai jos:

SCL - linie de impulsuri de ceas

WP - protecție la scriere. Dacă la această ieșire este furnizată o valoare logică 0, este permisă o scriere în memorie. Dacă trimiteți o unitate logică, este posibilă doar citirea din memorie.

Vcc - sursa de alimentare a microcircuitului. Tensiunea poate fi cuprinsă între 2,5 volți și 5,5 volți.

Pentru cip microcontroler este conectat urmând tradițiile de protocol I2C, adică liniile de semnal sunt trase la linia de alimentare cu energie prin 4,7k rezistor. terminale neutilizate A0, A1, A2 pot fi plantate pe sol (IC1 în exemplul ATTiny2313)

Lucrul cu eeprom extern în bascom-avr de exemplu 24lc08 - cum se conectează - avr - proiecte pe

Lucrul cu eeprom extern în bascom-avr de exemplu 24lc08 - cum se conectează - avr - proiecte pe







Pentru a scrie un octet la microcip, trebuie să faceți următoarele:

$ regfile = "2313def.dat"
$ cristal = 1000000

'configurați pinii scl și sda
Config Sda = Portb. 7 'date I2C
Config Scl = Portb. 6 'ceas I2C

$ regfile = "2313def.dat"
$ cristal = 1000000

'configurați pinii scl și sda
Config Sda = Portb. 7 'date I2C
Config Scl = Portb. 6 'ceas I2C

I2cwbyte HF0 'trimit un octet
I2cwbyte HF1 "trimite 2 octeți
I2cwbyte HF2 'trimite 3 octeți
I2cwbyte HF3 'trimite 4 octeți
I2cwbyte HF4 'trimite 5 octeți
I2cwbyte HF5 "trimite 6 octeți
I2cwbyte HF6 "trimite 7 octeți
I2cwbyte HF7 "trimite 8 octeți
I2cwbyte HF8 "trimite 9 octeți
I2cwbyte HF9 "trimite 10 octeți
I2cwbyte HFA "trimite 11 octeți
I2cwbyte HFB "trimite 12 octeți
I2cwbyte HFC "trimite 13 octeți
I2cwbyte HFD trimite 14 octeți
I2cwbyte HFE "trimite 15 octeți
I2cwbyte HFF "trimite 16 octeți

I2cstop "opri i2c


Aici, întreaga prima pagină este scrisă cu numere de la 240 (în sistemul hexazecimal F0) la 255 (FF).

Acum, să vedem cum să citim datele înregistrate în chip. Pentru a citi un octet, trebuie să faceți următoarele:

Citirea primei celule din primul bloc va arăta astfel:

$ regfile = "2313def.dat"
$ cristal = 1000000

'configurați pinii scl și sda
Config Sda = Portb. 7 'date I2C
Config Scl = Portb. 6 'ceas I2C

"Lucrul cu un microcircuit

Și acum un exemplu practic. Un senzor de temperatură ds18b20 este conectat la microcontroler, sunt afișate temperatura curentă și valoarea temperaturii stocate în memoria cipului 24LC08. Temperatura este stocată în memoria microcircuitului prin apăsarea butonului PB2, citirea și ieșirea valorii înregistrate apare atunci când butonul PB1 este apăsat.

Lucrul cu eeprom extern în bascom-avr de exemplu 24lc08 - cum se conectează - avr - proiecte pe

Conform documentației seriei 24lc, sunt garantate 1 milion de cicluri de scriere / ștergere. Există o serie de 25lc, există deja 10 milioane de cicluri.

Orei bune din timpul zilei.

Și care este resursa acestor cipuri de memorie.
Fac un dispozitiv care ar trebui să memoreze fiecare minut în memorie nevolatilă (un anumit logger) în cazul unei căderi de tensiune. Dispozitivul funcționează 24 de ore din 24 și 7 zile din 7. Utilizarea memoriei nevolatile a microcontrolerului nu este o opțiune, după cum înțeleg, va funcționa rapid. Cât timp va dura 24LCXX?







Articole similare

Trimiteți-le prietenilor: