From 2ecd8c8a2f4fb7540bea0e3623ec3c149e04f726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Mon, 13 May 2013 14:06:36 +0000 Subject: [PATCH] read result of DSPI receiver fifo only after transfer has been finished completely (check with status register) --- BaS_gcc/sources/mmc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BaS_gcc/sources/mmc.c b/BaS_gcc/sources/mmc.c index 587ceaa..9b40840 100644 --- a/BaS_gcc/sources/mmc.c +++ b/BaS_gcc/sources/mmc.c @@ -101,8 +101,12 @@ static uint8_t xchg_spi(uint8_t byte) while (! (MCF_DSPI_DSR & MCF_DSPI_DSR_TCF)); /* wait until DSPI transfer complete */ MCF_DSPI_DSR = 0xffffffff; /* clear DSPI status register */ + while (! (MCF_DSPI_DSR & MCF_DSPI_DSR_TCF)); /* wait again for transfer to complete */ + fifo = MCF_DSPI_DRFR; - MCF_DSPI_DSR = 0xffffffff; + + MCF_DSPI_DSR = 0xffffffff; /* clear status register */ + res = fifo & 0xff; return res; }