Jump to content
ELFORUM - Forumul electronistilor

Interfata cu un card de memorie


Recommended Posts

Vreau sa conectez un microcontroller la un card de memorie flash, gen SD,CF,MMC etc, in care tin minte niste "samples"uri pentru a genera niste cuvinte.Problema este ca am cautat pe net modalitati de interfata pentru mai multe tipuri de carduri, dar nu am gasit mai nimic. Va rog,daca ati lucrat cu asa ceva, care ar fi cel mai usor de folosit card de memorie, protocol usor... Daca m-ati ajuta si cu niste scheme, ar fi perfectMultumesc

Link to comment
  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

nu am reusit sa fac mai nimic. incerc sa conectez cardul la portul paralel al calculatorului.Am reusit sa comunic cu cardul, imi raspunde la comanda CMD0, dar la CMD1 nu reusesc nicicum sa il conving sa-mi raspunda cu 00h.A lucrat cineva cu card mmc pe portul paralel? nu reusesc sa-i dau de cap,am incercat toate combinatiile de comenzi

Link to comment

nu am reusit sa fac mai nimic. incerc sa conectez cardul la portul paralel al calculatorului.Am reusit sa comunic cu cardul, imi raspunde la comanda CMD0, dar la CMD1 nu reusesc nicicum sa il conving sa-mi raspunda cu 00h.A lucrat cineva cu card mmc pe portul paralel? nu reusesc sa-i dau de cap,am incercat toate combinatiile de comenzi

Pai cum l-ai "legat"? Cum l-ai alimentat?
Link to comment

l-am alimentat de la 2 acumulatori. multimetrul indica aproximativ 2.6 V. Data In, CS si CLK le-am conectat la pinii 4,3,2 respectiv de la portul paralel iar Data Out la pinul 10. Conectarea nu a fost directa, ci prin tranzistori NPN.Ce mi s-a parut ciudat este faptul ca valoarea de intrare a portului paralel (379h) depindea de niste valori de delay intre instructiuni. cam greu de explicat, mai bine atasez o portiune din cod.Am lucrat in Delphi sub Windows XP. Portul paralel lucreaza bine, am instalat ce trebuie. Functia ce trimite comanda:parametrii functiei vor fi de forma .. (1,1,1,1, 1,1,1,1) pentru comanda FFData In = pinul 4CS = pinul 3CLK = pinul 2 al portului paralelfunction trimite_comanda(a0,a1,a2,a3,a4,a5,a6,a7:integer):integer;var final:word;begin final:=0; intrare:=4*a0; //Data In=A0, CS=0, CLK=0 portout(888,intrare); //Trimit datele spre card sleep(1); intrare:=intrare+1; //CLK=1, restul la fel portout(888,intrare); //Trimit datele spre card sleep(1); if (PortIn(889)<>126) then final:=final*2+1 else final:=final*2; // Am citit datele de la intrare. Daca valoarea este diferita de 126, am 1 logic, daca e 126, am 0 logic.// In "final" se retine valoarea de la intrare, dupa 8 clock-uriFunctia are 8 portiuni asemanatoare, cu diferenta:intrare:=4*a1, ... ,a7=======================================

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines