Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

Până în prezent, cardurile de memorie SD (microSD) au devenit foarte ieftine și accesibile, fiind o opțiune bună pentru creșterea memoriei în proiectele lor pe microcontrolere și sisteme încorporate. În acest proiect vom examina metodele de conectare a acestor tipuri de carduri la microcontrolerele AVR ATmega8. ATmega32 de la Atmel. Scopul principal este de a studia interfața cardurilor SD și de a înțelege procesul de transfer de date într-un format "brut" (fără caietul de sarcini) și în formatul sistemului de fișiere FAT32.







Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

După cum știți, cardurile de memorie SD sunt compatibile cu interfața SPI, astfel încât acestea pot fi ușor conectate la microcontroler și pot comunica cu ele. Adaptoare pentru carduri microSD sunt de asemenea disponibile, de la un astfel de adaptor putem face un slot pentru card microSD pentru aspectul nostru. Fotografiile de mai jos arată aspectul adaptorului fabricat pentru conectarea la placa prototip.

Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8
Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

Proiectul a folosit inițial un card de memorie microSD de 1 GB. Microcontrolerul este ATmega8 sau ATmega32, care funcționează la 8 MHz de la oscilatorul intern RC. În plus, pentru a conecta aspectul la un computer personal pentru monitorizarea datelor, sa folosit interfața RS-232. Pentru a converti nivelele logice ale interfeței folosind chipul MAX232. Pentru alimentarea circuitului, este necesară o sursă stabilizată de alimentare de 3,3 V (cipul MAX232 este proiectat pentru alimentare de 5 V, dar, după cum arată practica, rămâne operațional la 3,3 V). Conectați cardul de memorie în conformitate cu schema de 7 fire, în funcție de pinout (a se vedea figura).

Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

Schema schematică pentru microcontrolerul ATmega8.

Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

Click pentru marire

Rezistențele de tracțiune R1, R2 cu o cotă de 51 kOhm a interfeței SPI oferă o stabilitate mai bună atunci când lucrează cu diferite cartele. Zener D1, D2 sunt concepute pentru a proteja cardul de memorie când funcționează programatorul în circuit (ISP). Concluziile MAX232 VCC și GND nu sunt indicate în diagrame, dar trebuie să fie potrivite cu punctele corespunzătoare ale circuitului.

Schema schematică pentru microcontrolerul ATmega32

Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8







Click pentru marire

Diagrama schematică a microcontrolerului ATmega32 (ceas cu ceas real în chip DS1307)

Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

Click pentru marire

După cum vedeți, ultimul exemplu de realizare a dispozitivului este alimentat de sursa de 12, și două 5.0 Regulatorul de tensiune sunt montate pe placa (LM7805) și 3.3 (LM1117-3.3). Pentru a furniza cardul SD de interfață utilizează 3.3V, restul circuitului este alimentat de o sursă de 5.0 V. timp real standard de ceas DS1307 dispozitiv și conectat la microcontroler interfață I2C.

După implementarea cu succes a schimbului de date fără specificații, card de memorie a fost formatat (FAT32) în sistemul de operare Windows XP, apoi la harta au fost înregistrate mai multe fișiere de text, directoare, precum și alte tipuri de fișiere (în directorul rădăcină al cardului). După aceea subrutine și funcții au fost scrise pentru a lucra cu sistemul de fișiere FAT32 pentru a citi fișiere, pentru o listă de fișiere pe un card de memorie (folosind HiperTerminal), pentru a obține informații despre memoria totală și disponibilă.

Vizualizarea ferestrei programului HiperTerminal cu funcțiile de lucru cu cardul de memorie SD:

Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

Utilizatorului i se oferă peste 10 opțiuni pentru lucrul cu o cartelă de memorie (pentru o variantă cu ceas).

Opțiunile 0-4 sunt funcții de nivel scăzut. După utilizarea opțiunilor 0 - 3, trebuie să reformatați cardul înainte de a utiliza rutinele FAT32.
Opțiunile 5 - 9 se referă la sistemul de fișiere FAT32. În prezent, sunt acceptate numai nume de fișiere scurte (8 octeți - nume fișier, 3 octeți - extensie de fișier). Dacă sunt scrise fișiere cu nume lungi, acestea vor fi afișate în programul terminal într-un format scurt. Pentru a testa aceste opțiuni, nu uitați să formatați cardul în sistemul de fișiere FAT32, să înregistrați mai multe directoare și fișiere text.

Notă. Aici funcțiile de lucru cu mai multe blocuri (opțiunile 3 și 4) sunt dezactivate din cauza lipsei de memorie a microcontrolerului ATmega8, deoarece aceste funcții nu sunt necesare pentru testarea sistemului de fișiere FAT32. Pentru a activa aceste opțiuni, trebuie să ștergeți macro-ul din fișierul SD_routines.h (#define FAT_TESTING_ONLY). Și dacă utilizați ATmega8, în timpul testării opțiunilor 3 și 4, biblioteca FAT32 poate fi eliminată pentru a elibera memoria microcontrolerului.

5 - Obțineți lista fișierelor - afișează o listă de directoare și fișiere disponibile cu cantitatea de memorie pe care o ocupă (în directorul rădăcină al cardului);
6 - Citire fișier - citește fișierul specificat și afișează conținutul în fereastra programului terminal;
7 - Creați fișier - creați / adăugați un fișier cu numele specificat;
8 - Ștergeți fișierul - ștergeți toate fișierele cu numele de fișier specificat;
9 - Citiți capacitatea memoriei SD - informații despre volumul total și liber al cartelei de memorie (se utilizează sectorul FSinfo al cardului SD).

În programul terminal, portul serial este configurat pentru o rată de transfer de 19,200, fără control al debitului și fără paritate.

Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

Pentru versiunea cu un ceas de timp real (The DS1307), pe proprietatea microcontrolerului ATmega32 pentru a crea sau actualiza fișierele atașate la data și ora (data creării / modificare), aceste proprietăți se găsesc în tabelul de fișiere și poate fi verificat cu ajutorul unui calculator, precum și ceasul poate fi util în colectarea datelor. În meniul de opțiuni din programul terminal se adaugă trei opțiuni:

a - Show DateTime - această comandă afișează data și ora curente în fereastra programului terminal;
b - Actualizare dată - actualizarea datei;
c - Actualizare ora - actualizarea timpului.

De asemenea, în partea de sus sunt afișate informații despre o anumită cartelă de memorie:

Conectarea cardurilor de memorie sd și sdhc la microcontrolerele atmega8

Versiunea 2.1 pentru microcontrolerul ATmega8, fără suport SDHC:

Versiunile 2.3 și 2.4 au fost testate pe ATmega32 microcontroler, dar poate fi adaptat la orice memorie SRAM controler de cel puțin 1 MByte Flash-memorie și un program de minimum 16 KB.







Articole similare

Trimiteți-le prietenilor: