| Memoria EEPROM 24C04 cu magistrala i2c-bus |
|
|
|
| Scris de Administrator | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EEPROM Serial 4Kilobiţi 2.5V I²C-BUS Caracteristici principale:
Tipuri de capsule
Figura 3-1: Capsula DIP şi SOIC - 8 pini
Figura 3-2: Capsula SOIC 14 - pini
Descrierea memoriei
Memoria 24C04 fabricată de firma Microchip Tehnology este o memorie de tip Electrically Erasable PROM (memorie ROM electric programabilă).
Dispozitivul este organizat în două blocuri de memorie de 256*8 biţi cu o magistrală serială programabilă pe două linii (figura 3-3). Consumul redus permite să opereze cu tensiuni de la 2.5V în sus, cu un consum de curent de 5?A în stare de repaus şi un consum de curent 1mA în stare activă. Memoria 24C04 este capabil să execute scriere pe pagină până la 16 octeţi de date. 24C04 este disponibil în capsule DIP standard de 8 pini şi capsule SOIC de 8 şi respectiv 14 pini.
Caracteristici electrice
Valori maxim admisibile:
Tensiunea de alimentare Vcc 7.0V Toate intrările şi ieşirile pot diferi faţă de Vss cu -0.6 la Vcc + 1.0V Temperatura de menţinere a datelor -65ºC la +150ºC
Tabela 3-1: Descrierea pinilor
Tabela 3-2: Caracteristici de curent continuu
Tabela 3-3: Caracteristici de curent alternativ
III.5. Descrierea funcţională Memoria 24C04 suportă un protocol bidirecţional de transmitere a datelor pe o magistrală (bus) serială pe două linii. Dispozitivul care trimite datele pe magistrală se numeşte transmiţător, iar dispozitivul care recepţionează datele se numeşte receptor. Magistrala este controlată de dispozitivul principal (master) care generează semnalul de ceas serial (SCL), controlând accesul magistralei, totodată genereză condiţiile de START şi STOP atâta timp cât memoria 24C04 lucrează ca dispozitiv secundar. Ambele dispozitive, atât cel principal cât şi memoria (cel secundar) pot opera ca transmiţător sau receptor, dar dispozitivul principal este cel care decide care dintre moduri sunt activate.
Caracteristicile magistralei Protocolul magistralei defineşte următoarele:
Sunt definite următoarele stări pe magistrala serială (conform figurii 3-6). Magistrala nu este ocupată
Ambele linii, atît SCL cât şi SDA sunt în 1 logic. Condiţia de START O tranzacţie din 1 logic in 0 logic al liniei de date SDA atâta timp cât linia de ceas SCL este stabil în 1 logic determină condiţia de START. Toate comenzile trebuie precedate de o condiţie de START.
Condiţia de STOP
O tranzacţie din 0 logic in 1 logic al liniei de date SDA atâta timp cât linia de ceas SCL este stabil în 1 logic determină condiţia de STOP. Toate operaţiile trebuie încheiate cu o condiţie de STOP.
Date valide
După o condiţie de START, starea liniei de date indică dacă datele sunt valide, astfel linia de date trebuie să fie stabilă pe durata perioadei de 1 logic al semnalului de ceas. Datele pe magistrală trebuie modificate numai pe durata perioadei de 0 logic al liniei de ceas. Un semnal de ceas corespunde unui bit de date. Fiecare transfer de date este iniţiat de o condiţie de START şi este terminat de o condiţie de STOP. Numărul octeţilor de date transferate între condiţiile de START şi STOP este determinată de dispozitivul principal şi teoretic nu există limite, cu toate că numai ultimele 16 octeţi vor fi stocate după o operaţie de scriere. Dacă vom înscrie peste datele existente în memorie, acestea vor fi înlocuite după regula primul intrat primul ieşit.
Confirmarea (Acknowledge)
Orice dispozitiv receptor, după ce este adresat, este obligat să genereze o confirmare de primire a datelor după fiecare octet recepţionat. Dispozitivul principal va genera un puls de ceas suplimentar care va fi asociat cu bitul de confirmare. Dispozitivul care confirmă o recepţie va schimba starea liniei de date SDA din 1 logic în 0 logic pe durata pulsului ceas suplimentar de confirmare. Figura 3-6: Transfer de date secvenţiale pe magistrala serială Dispozitivul principal trebuie să semnalizeze memoriei dacă transmisia de date a luat sfârşit dar nu prin generarea unui bit de ceas suplimentar pentru confirmarea recepţiei. În acest caz memoria trebuie să lase liber (să nu influenţeze starea) liniei de date în 1 logic pentru a permite dispozitivului principal să genereze condiţia de STOP. Adresarea memoriei După generarea unei condiţii de START de către dispozitivul principal, aceasta va transmite adresa memoriei ceea ce conţine un cod de 4 biţi (1010) urmat de 3 biţi de selecţie (B2, B1, B0). Biţii B2 şi B1 nu au nici o semnificaţie; B0 este utilizat pentru selectarea blocului de 256 de octeţi al memoriei care urmează să fie accesată. Valoarea ultimului bit din octetul de adresă indică dacă dispozitivul principal va scrie sau va citi din memorie. Dacă este setat '1' logic atunci este selectat operaţia de citire, iar dacă este setat '0' logic atunci este selectat operaţia de scriere. Memoria monitorizează permanent magistrala i2c-bus aşteptând apariţia adresei sale.
Figura 3-7: Octetul de control
Operaţia de scriere
Scriere pe octet
Semnalul de START transmis de dispozitivul principal este urmat de codul de adresă al memoriei eeprom (4 biţi), cei 3 biţi de selectare a blocului şi un bit de scriere care este pus pe magistrală de către dispozitivul principal. Prin adresarea dispozitivului secundar (memoriei) aceasta va răspunde, prin generarea unui bit de confirmare pe durata ciclului al 9-lea a semnalului de ceas. Aşadar următorul octet transmis de dispozitivul principal este cuvântul de adresă şi va fi scris în indicatorul (pointerul) de adresă al memoriei eeprom 24C04. După recepţia unui bit de confirmare dinspre memorie, dispozitivul principal va transmite cuvântul de date, ceea ce va fi scris în locaţia de memorie indicată anterior. Memoria confirmă orice recepţie corectă, iar dispozitivul principal generează o condiţie de STOP. Aceasta iniţiează ciclul intern de înscriere, şi pe durata acestui ciclu memoria nu va genera semnale de confirmare (figura 3-8).
Scrierea pe pagină
Octetul de control al scrierii, cuvântul de adresă şi primul octet de date este transmis către memoria 24C04 în acelaşi mod ca şi în cazul scrierii pe octet. Dar în loc de a genera o condiţie de STOP dispozitivul principal va transmite până la 16 octeţi de date spre memoria 24C04, datele fiind stocate temporar în bufferul (memoria tampon) de pagină în chip şi acestea vor fi înscrise în locaţiile de memorie după recepţia condiţiei de STOP. După recepţia fiecărui cuvânt, indicatorul de adresă cu cei 4 biţi mai puţin semnificativi se incrementează intern cu 1. Cei 7 biţi semnificativi ai indicatorului de adresă vor rămâne constanţi. Dacă dispozitivul principal a transmis peste 16 cuvinte fără a genera o condiţie de STOP, atunci numărătorul de adresă va reveni la prima adresă şi datele recepţionate anterior vor fi suprascrise. Operaţia de scriere pe pagină se termină odată cu recepţionarea unei condiţii de STOP, care va fi urmat de ciclul intern de înscriere (figura 3-9).
Confirmarea recepţiilor de date
Datorită faptului că memoria eeprom nu confirmă pe durata unui ciclu de înscriere, aceasta poate fi utilizat pentru a determina momentul în care se termină un ciclu complet (această proprietate poate fi utilizat pentru îmbunătăţirea eficienţei magistralei). Printr-o condiţie de STOP dispozitivul principal comandă memoria să iniţieze ciclul intern de înscriere. Confirmarea (ACK) poate fi iniţiat imediat. Astfel dispozitivul principal va trasmite condiţia de START urmat de octetul de control pentru a da o comandă de scriere (R/W=0). Dacă memoria este ocupată cu ciclul de înscriere internă, atunci aceasta nu va returna bitul de confirmare ACK. Dacă ciclul este complet, memoria va returna bitul de confirmare, iar dispozitivul principal poate să transmită comanda următoare de citire/scriere.
Protecţia la scriere
Memoria eeprom 24C04 poate fi utilizat ca ROM (read only memory) serial atunci când pinul WP (write protect) este conectat la plusul alimentării Vcc . Programarea va fi împiedicată şi memoria va fi complet protejată la scriere.
Operaţia de citire
Operaţiile de citire sunt iniţiate în mod asemănător operaţiilor de scriere, cu excepţia că bitul R/W din octetul de adresă va fi setat pe 1 logic. Operaţiile de citire pot fi de 3 tipuri: a) citirea de la adresa curentă b) citirea aleatoare
Memoria eeprom 24C04 conţine un numărător de adrese unde memorează adresa care a fost ultima dată accesată şi o incrementează pe aceasta cu 1. Aşadar dacă ultimul acces a avut loc pe adresa 'n' atunci operaţia următoare de citire/scriere va accesa datele de la adresa 'n+1'. Datele recepţionate care conţin adresa dispozitivului cu bitul R/W setat pe '1' logic, memoria 24C04 va transmite un bit de confirmare şi va transmite cele 8 biţi de date. Dispozitivul principal în urma transferului nu va confirma, dar va genera o condiţie de STOP iar memoria va întrerupe transmisia (Figura 3-11).
III.11.2. Citirea aleatoare
Operaţia de citire aleatoare permite dispozitivului principal să acceseze orice locaţie de memorie în mod aleator. Pentru a executa o operaţie de citire, prima dată trebuie setată adresa. Aceasta se face prin trimiterea cuvântului de adresă spre memorie ca şi o parte a operaţiei de scriere. După ce adresa a fost trimisă, dispozitivul principal generează o condiţie de START urmat de bitul de confirmare. Aceasta termină operaţia de scriere, dar nu înainte ca pointerul intern de adresă să fie setat. Apoi dispozitivul principal va transmite din nou, dar bitul R/W va fi setat pe '1' logic. Memoria 24C04 va transmite un bit de confirmare şi va transmite cele 8 biţi de date. Dispozitivul principal în acest caz nu va mai transmite bitul de confirmare ci va genera o condiţie de STOP, iar memoria va întrerupe transmisia (Figura 3-12).
III.11.3. Citirea secvenţială
Operaţia de citire secvenţială este iniţiată în mod asemănător citirii aleatoare, cu excepţia că după recepţia primului octet de date, dispozitivul principal va transmite confirmarea recepţiei octetului, în locul condiţiei de STOP ca în cazul citirii aleatoare. Acestă dirijare va permite memoriei 24C04 să transmită octetul următor de la adresa imediat următoare (Figura 3-13). Pentru realizarea citirii secvenţiale memoria 24C04 conţine un indicator de adresă (pointer) intern care se incrementează cu 1 după orice operaţie completă.
III.11.4. Protecţia faţă de zgomote
Memoria eeprom 24C04 foloseşte un circuit detector de prag a tensiunii, care nu permite operaţia de ştergere/scriere, dacă tensiunea de alimentare Vcc este sub 1.5V în condiţii nominale. Intrările SCL şi SDA sunt de tip 'Schmitt trigger' şi circuit de filtru, care reduc vârfurile de zgomot pentru a asigura dispozitivului o operare corectă chiar dacă magistrala este perturbată.
Descrierea pinilor
Pin de adresă/date de intrare/ieşire serială - SDA
Acest pin bidirecţional este utilizat la transferul adreselor şi datelor spre memorie şi la transferul datelor dinspre memorie. Această ieşire este de tipul cu 'colector în gol', aşadar magistrala SDA solicită o rezistenţă de conectare la plusul alimentării Vcc (tipic 10K la 100KHz, 1K la 400KHz). Pentru un transfer de date valide, starea magistralei de date SDA poate fi schimbat numai pe durata semnalului de ceas în starea de 0 logic. Schimbările pe durata semnalului de ceas în starea de 1 logic sunt rezervate pentru indicarea condiţiilor de START şi STOP. Pin serial de ceas - SCL
Această intrare este utilizată pentru sincronizarea transferurilor de date spre şi dinspre dispozitiv. Pin de protecţie la scriere - WP
Acest pin trebuie conectat fie la masă Vss fie la plusul alimentării Vcc. Dacă este conectat la Vss, atunci sunt permise toate operaţiile (citirea/scrierea deplină a memoriei). Dacă este conectat la Vcc, atunci operaţia de SCRIERE este interzisă. Memoria va fi complet protejată la scriere. Operaţiile de citire nu sunt afectate. Pinii A0, A1, A2
Acestea nu sunt utilizaţi de memoria 24C04. Ele trebuie conectate la Vss sau Vcc.
Programul pentru citirea şi scrierea memoriilor eeprom cu magistrala i2c-bus
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||