LusoRobótica - Robótica em Português

Software => C/C++ => Tópico iniciado por: msr em 04 de Junho de 2012, 07:57

Título: FatFs Library
Enviado por: msr em 04 de Junho de 2012, 07:57
Olá,

Já alguem usou esta biblioteca?
FatFs: http://elm-chan.org/fsw/ff/00index_e.html (http://elm-chan.org/fsw/ff/00index_e.html)

Estou a tentar usa-la num PIC24 e embora tenha o SPI e o timer (interrupção 1kHz) a funcionar bem (confirmei com osciloscópio) o primeiro comando que é enviado para o cartão micro SD falha.
Função disk_initialize (no ficheiro mmc.c):
Código: [Seleccione]
uint8_t test = send_cmd(CMD0, 0);
printf("response to CMD0: %02X\n", test);

if (test == 1) { (// devia ser 1 devia, mas não é :(
}

No "printf" apanho, com um cartão de 1GB sempre 0xFF, e com outro de 2GB em geral é 0x00 mas de vez em quando manda uns 0x7F.

Reparei que no pino SDI do micro (SDO do cartão) obtenho valores de tensão esquisitos a meio da transacção SPI. Por exemplo, nos 8 clocks onde me parece que deveria receber o tal 0x01, tenho ~1.65V durante os 7 primeiros bits (MSB) e 3.3V no último. Já experimentei usar pullups em tudo o que é sítio e não ajuda em nada. (na net já vi quem ponha pullups em tudo, e quem não ponha em nada, no manual da sandisk dizem para usar pull-ups nos pinos DAT e CMD). O único pino em que existe esta forma de onda defeituosa é só mesmo no SDI (uC).

Assim que puder coloco aqui um print do osciloscópio do pino SDI (uC).

Se alguem tiver experiencia que possa partilhar agradecia :)