Señores:
Antes que nada mis saludos, y una pequeña consulta con el driver CCS mmc_spi.c, he visto que conectan el SDO de la tarjeta MMC a la PIC en forma directa (sin divisores de tension) y me fije en el drivers, y tiene a MMC_SDO y MMC_SDI como salida,
es ¿eso correcto o me equivoco?, ¿sera el mismo drivers que ustedes usan?, de antemano muchas gracias por su tiempo.
MMC_EC mmc_init(void) {
int16 result;
int8 to=50;
mmc_state = MMC_STARTUP_STATE;
output_high(MMC_CS);
output_high(MMC_DO); //----> Esta que es de salida
output_high(MMC_CLK);
// output_low(MMC_CLK);
output_float(MMC_DI);
delay_ms(15);
do {
mmc_select();
result=mmc_send_cmd(MMC_CMD_GO_IDLE_STATE,0,1);
mmc_deselect();
if (result==1)
break;
else {
delay_ms(10);
to--;
}
} while (to);
if (result!=1) {
MMC_DEBUG(" ERR: after reset, device isn't idle");
return(MMC_EC_NOT_IDLE);
}
to=50;
do {
mmc_select();
result = mmc_send_cmd(MMC_CMD_SEND_OP_COND,0,1);
mmc_deselect();
if (result && (result!=1)) {
MMC_DEBUG(" ERR: after init we got a funky error %LX", result);
return(MMC_EC_NOT_INIT);
}
else if (result==1) {
to--;
delay_ms(1);
}
else
break;
} while (to); // loop until not busy
MMC_DEBUG(" init cmd returns: %X\n\r",result);
mmc_select();
result=mmc_send_cmd(MMC_CMD_CRC_ON_OFF,0,1);
mmc_deselect();
if (result) {
MMC_DEBUG(" ERR: CRC didn't turn off");
return(MMC_EC_NO_CRC);
}
mmc_state = MMC_STANDBY_STATE; // set current state
return(MMC_EC_OK);
}