2023-05-15 10:24 PM - edited 2023-11-20 05:24 AM
hi every one ~~!!
I am using STM32h743bit6.
How can I measure sd card default speed?
SDIO_CLK?
SDIO_CMD??
2023-05-16 12:39 AM
Measure it, or compute it?
You can unpack the source speed via the RCC selection and pll settings, and how it's divided via SDMMC registers.
Scope SDIO_CLK during interactions.
I suspect 200 MHz operation on the wire is somewhat fanciful as electrically this would be quite challenging and the data volume close to unhandleable. Here I suspect it allows the use of both clock edges of a 100 MHz clock signal of 100 MHz on the wire if you can negotiate the memory into that mode and you have a transceiver.
2023-05-16 04:53 AM
Thank you for answer.
I want to measure.
and BSP_SD_Init(); In , it was defined as:
uint8_t BSP_SD_Init(void)
{
uint8_t sd_state = MSD_OK;
/* uSD device interface configuration */
uSdHandle.Instance = SDMMC1;
uSdHandle.Init.ClockDiv = 1;
uSdHandle.Init.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE;
uSdHandle.Init.ClockEdge = SDMMC_CLOCK_EDGE_RISING;
uSdHandle.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
uSdHandle.Init.BusWide = SDMMC_BUS_WIDE_4B;
/* Initialize IO functionalities (MFX) used by SD detect pin and Transceiver MFXPIN */
//BSP_IO_Init();
/* Check if the SD card is plugged in the slot */
//BSP_IO_ConfigPin(SD_DETECT_PIN, IO_MODE_INPUT_PU);
/* Initialise Transciver MFXPIN to enable 1.8V Switch mode */
//BSP_IO_ConfigPin(SD_LDO_SEL_PIN, IO_MODE_OUTPUT_PP_PU);
if(BSP_SD_IsDetected() != SD_PRESENT)
{
return MSD_ERROR_SD_NOT_PRESENT;
}
/* Msp SD initialization */
BSP_SD_MspInit(&uSdHandle, NULL);
/* HAL SD initialization */
if(HAL_SD_Init(&uSdHandle) != HAL_OK)
{
sd_state = MSD_ERROR;
}
return sd_state;
}
And what does it mean to calculate?
I ported the SD card to sandisk extreme pro 32gb.