diff --git a/SDBlockDevice.cpp b/SDBlockDevice.cpp index 6efafab428..06728268b5 100644 --- a/SDBlockDevice.cpp +++ b/SDBlockDevice.cpp @@ -159,6 +159,11 @@ #define MBED_CONF_SD_CMD0_IDLE_STATE_RETRIES 5 /*!< Number of retries for sending CMDO */ #endif +#ifndef MBED_CONF_SD_INIT_FREQUENCY +#define MBED_CONF_SD_INIT_FREQUENCY 100000 /*!< Initialization frequency Range (100KHz-400KHz) */ +#endif + + #define SD_COMMAND_TIMEOUT MBED_CONF_SD_CMD_TIMEOUT #define SD_CMD0_GO_IDLE_STATE_RETRIES MBED_CONF_SD_CMD0_IDLE_STATE_RETRIES #define SD_DBG 0 /*!< 1 - Enable debugging */ @@ -251,7 +256,9 @@ SDBlockDevice::SDBlockDevice(PinName mosi, PinName miso, PinName sclk, PinName c _card_type = SDCARD_NONE; // Set default to 100kHz for initialisation and 1MHz for data transfer - _init_sck = 100000; + MBED_STATIC_ASSERT(((MBED_CONF_SD_INIT_FREQUENCY >= 100000) && (MBED_CONF_SD_INIT_FREQUENCY <= 400000)), + "Initialization frequency should be between 100KHz to 400KHz"); + _init_sck = MBED_CONF_SD_INIT_FREQUENCY; _transfer_sck = hz; // Only HC block size is supported. diff --git a/config/mbed_lib.json b/config/mbed_lib.json index e4bddc9d42..caad077cc8 100644 --- a/config/mbed_lib.json +++ b/config/mbed_lib.json @@ -8,7 +8,8 @@ "DEVICE_SPI": 1, "FSFAT_SDCARD_INSTALLED": 1, "CMD_TIMEOUT": 5000, - "CMD0_IDLE_STATE_RETRIES" : 5 + "CMD0_IDLE_STATE_RETRIES": 5, + "SD_INIT_FREQUENCY": 100000 }, "target_overrides": { "DISCO_F051R8": {