diff options
Diffstat (limited to 'os/hal')
-rw-r--r-- | os/hal/ports/STM32/LLD/sdc_lld.h | 9 | ||||
-rw-r--r-- | os/hal/src/sdc.c | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/os/hal/ports/STM32/LLD/sdc_lld.h b/os/hal/ports/STM32/LLD/sdc_lld.h index f4a44d18c..6f0e389d6 100644 --- a/os/hal/ports/STM32/LLD/sdc_lld.h +++ b/os/hal/ports/STM32/LLD/sdc_lld.h @@ -82,7 +82,14 @@ * @brief Read timeout in milliseconds.
*/
#if !defined(STM32_SDC_READ_TIMEOUT_MS) || defined(__DOXYGEN__)
-#define STM32_SDC_READ_TIMEOUT_MS 5
+#define STM32_SDC_READ_TIMEOUT_MS 25
+#endif
+
+/**
+ * @brief Card clock activation delay in milliseconds.
+ */
+#if !defined(STM32_SDC_CLOCK_ACTIVATION_DELAY) || defined(__DOXYGEN__)
+#define STM32_SDC_CLOCK_ACTIVATION_DELAY 10
#endif
/**
diff --git a/os/hal/src/sdc.c b/os/hal/src/sdc.c index d18f37b55..c75397291 100644 --- a/os/hal/src/sdc.c +++ b/os/hal/src/sdc.c @@ -200,6 +200,9 @@ bool sdcConnect(SDCDriver *sdcp) { /* Card clock initialization.*/
sdc_lld_start_clk(sdcp);
+ /* Clock activation delay.*/
+ osalThreadSleep(MS2ST(STM32_SDC_CLOCK_ACTIVATION_DELAY));
+
/* Enforces the initial card state.*/
sdc_lld_send_cmd_none(sdcp, MMCSD_CMD_GO_IDLE_STATE, 0);
|