MMC problem dspic33fj256gp506

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
dangraf
Inlägg: 530
Blev medlem: 9 juni 2003, 15:30:56
Ort: göteborg

MMC problem dspic33fj256gp506

Inlägg av dangraf »

Jag försöker sparka igång microchips mmc bibliotek på en dspic men misslyckas med initieringen av minneskortet.
Kompilatorn jag kör är C30.
SD kortet är ett micro-sd från sandisk.

Det jag gjort för att debugga är följande:
1. kontrolelrat att jag får signaler på samtliga linor (SDI, SDO CLK och CLK, dat1(pin1) och dat1(pin8) = pullup,
2. verifierat pinout på SD korthållaren (8 pinnar) mot dspicen för att se så att de går rätt.
3. kontrollerat strömförsörjningen (3.3V) så att den är stabil under körning och även satt dit den 10uF avkopplingskondensator precis bredvid kortet.

När jag kör funktionen "MDD_SDSPI_MediaInitialize()" och stegar i koden så passeras första kontrollen

Kod: Markera allt

response = SendMMCCmd(GO_IDLE_STATE,0x0);
    
    if((response.r1._byte == MMC_BAD_RESPONSE) || ((response.r1._byte & 0xF7) != 0x01))
    {
        status = FALSE;      // we have not got anything back from the card
        SD_CS = 1;                               // deselect the devices

        return status;
    }
men när man fortsätter vidare så blir det fel

Kod: Markera allt

timeout = 0xFFF;
    
    do
    {
        response = SendMMCCmd(SEND_OP_COND,0x0);
        timeout--;
    }while(response.r1._byte != 0x00 && timeout != 0);
Här får jag en timeout eftersom responsen blir 0xFF.

Jag har tittat på signalerna på oscilloskop på just denna kodsnutten och ser att kortet svarar med att skicka ut en 0a. Jag har bara 1 prob så jag ser inte när denna 0a kommer i förhållande till de andra byt'sen som skrivs.

Jag har även upptäckt att signalnivån på SDI och SDO ligger på ca 3.0V istället för på 3.3V. 0:an som skrivs når bara ner till ca 0.3V men ser väldigt stabli och fin ut, skarpa kanter och utan brus.

Jag tror att detta är en ledtråd på vägen men har inte lyckats lista ut varför signalnivåerna inte når sina max/min värden.

Någon som har ytterligare förslag till debugging?

Mvh/
Daniel Grafström
dangraf
Inlägg: 530
Blev medlem: 9 juni 2003, 15:30:56
Ort: göteborg

Re: MMC problem dspic33fj256gp506

Inlägg av dangraf »

Jag skrev fel i ovanstående inlägg. Responsen är 0x01 (ej 0xFF)
dangraf
Inlägg: 530
Blev medlem: 9 juni 2003, 15:30:56
Ort: göteborg

Re: MMC problem dspic33fj256gp506

Inlägg av dangraf »

jag har fortfarande inte löst det, ganska störigt.

Börjar bli mer och mer övertygad om att jag kopplat något fel. Jag testade att tejpa på paddarna till sd-kortet för att se om detta skulle kunna påverka spännings-nivåerna på kortet. När jag tejpar på pin3 (sdo från MCUn till sd-kortet) så når alla signaler till 3.3V och ner till 0.
Antagligen så har jag missat något som är uppenbart för alla andra än mig :?

Har någon lust att dubbelkolla min koppling??

Pinnarna på kortet som jag kopplat in är nummrerade från 1-8 där jag tolkat det som att pin 1 är den yttersta paden mot det fasade hörnet (+ ett jack) på SD-kortet.

pin1: pullup 100K (DAT2)
pin2: CS (aktiv låg).
pin3: DataIn pullup 100K ( kopplad mod SDO , bryter jag kontakten på denna pin så når CLK, CS och SDI sina riktiga nivåer 3.3V el 0V)
pin4: Vdd ( kopplad mot 3.3V)
pin5: kopplad mot clk på MCUn
pin6: Jord (Vss)
pin7: Pullup 100K kopplad till SDI (DAT0)
pin8: Pullup 100K (DAT1)

vilket jag tycker stämmer mot informationen på t.ex denna sida:
http://images.google.se/imgres?imgurl=h ... N%26um%3D1

Mvh/
Daniel
Skriv svar