2013-09-26 04:48 PM
Hi all,
I can't find theSTM3210E-EVAL_FW_V2.0.0
anymore ?? I looked deeply on the st.com domain, but I can only find the last 2.1.0 is available online.Where can I find the archive please ?Thanks in advance2013-09-26 05:41 PM
https://docs.google.com/file/d/0B7OY5pub_GfIdWVqNkcxVWcwaHM/edit?usp=sharing
2013-09-27 01:47 AM
Hi Clive,
I have to thank you one time more ! This is the best starting place to deal with USB Mass storage, as you already point to me.But would it be better for me to begin with 2.1.0, for any reason ? I'd like to support uSD card support up to 4G if possible.I probably have to tweak a bit, because:- I have no Card Detect in my layout,- and my USB D+ is always pull up (no reset possible)Is that true ?But it may be ok with an external 8MHz crystal HSE on STM32F103_RC, or _RE ?Many Tx, as usual ;)2013-09-27 04:52 AM
I think this would be a good starting point. The SDIO pins don't provide many options, but you can pick any available GPIO for the Card Detect switch on the socket. Pull-ups close to the socket are important, as are short, uniform length wiring. Review the schematic for the STM3210E-EVAL
The code should support cards upto 2 GB, I've modified other examples to use block addressing, and these should work up to 128 GB and beyond. I haven't played with the F1 drivers.2013-09-27 06:25 AM
Thank you Clive,
It appears there is no Card Detect implementation in SD_Init() / sdcard.c, so there is special need to add this feature ?About the size limitation, what would happen if I insert a 4 GB uSD card with that code (FW 2.0) ?Is the 2.1.0 FW version compatible with large capacity uSD cards, it's not clear in the code...Many thanks again2013-09-27 07:01 AM
Like I said I haven't spent any time on the F1 code, my boards aren't using them.
STM3210E-EVAL_FW_V2.1.0\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.h/** @addtogroup STM3210E_EVAL_LOW_LEVEL_SD_FLASH
* @{
*/
/**
* @brief SD FLASH SDIO Interface
*/
#define SD_DETECT_PIN GPIO_Pin_11 /* PF.11 */
#define SD_DETECT_GPIO_PORT GPIOF /* GPIOF */
#define SD_DETECT_GPIO_CLK RCC_APB2Periph_GPIOF
STM3210E-EVAL_FW_V2.1.0\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c
/**
* @brief Detect if SD card is correctly plugged in the memory slot.
* @param None
* @retval Return if SD is detected or not
*/
uint8_t SD_Detect(void)
{
__IO uint8_t status = SD_PRESENT;
/*!< Check GPIO to detect SD */
if (GPIO_ReadInputDataBit(SD_DETECT_GPIO_PORT, SD_DETECT_PIN) != Bit_RESET)
{
status = SD_NOT_PRESENT;
}
return status;
}
Reading the larger cards has the potential to return the wrong data, writing has the potential to trash the file system.
2013-09-28 03:15 AM
Many thanks for your help Clive,
I believe I have to carefully read that code now...2013-09-28 03:16 AM
And good week end
2013-09-29 05:20 PM
V2.1.0 appears to have addressed some of the earlier limitations by passing 64-bit parameters, this is not a solution I care for as the block memory devices are not byte addressable, and this requires a whole bunch of unnecessary math and manipulation to convert to and from the wrong format. I successful integrated the SD code with FATFS and demonstrated basic functionality.
The SDIO support on the STM3210E-EVAL seems to be quite workable, and reasonably fast. The bus access is done at 24 MHz, and immediate attempts to clock it faster were unsuccessful. Tests were done with the 128MB card shipped with the board, along with a 16GB Ultra/Extreme card.2013-09-30 04:42 AM
Hello Clive,
If I understand your point :''Tests were done with the 128MB card shipped with the board, along with a 16GB Ultra/Extreme card.''
... you mean with FW 2.1.0 for HIGH CAPACITY SD CARD ?My first test with 2.0 on my custom board are unsuccessful (running on HSE 8MHz crystal), the SD_PowerON() function crash after ACMD41, with a response of 16744448 at the second attempt (count=1).Do you think it can be related to a clock malfunction, or anything else ?Perhaps I did something wrong in my layout too ? My CMD line is jumped over the CLK line, with a strap jumper R0. I used 47K pull-up (and 10K for CMD line).Tx again for your help ;)