STM32091C_EVAL BSP User Manual: Private Functions

STM32091C EVAL BSP Drivers

STM32091C_EVAL BSP User Manual
Private Functions

Functions

static uint8_t SD_GetCIDRegister (SD_CID *Cid)
 Reads the SD card CID register.
static uint8_t SD_GetCSDRegister (SD_CSD *Csd)
 Reads the SD card SCD register.
static uint8_t SD_GetDataResponse (void)
 Gets the SD card data response and check the busy flag.
static uint8_t SD_GoIdleState (void)
 Put the SD in Idle state.
static SD_CmdAnswer_typedef SD_SendCmd (uint8_t Cmd, uint32_t Arg, uint8_t Crc, uint8_t Answer)
 Send 5 bytes command to the SD card and get response.
static uint8_t SD_WaitData (uint8_t data)
 Waits a data from the SD card.
static uint8_t SD_ReadData (void)
 Waits a data until a value different from SD_DUMMY_BITE.
uint8_t BSP_SD_Init (void)
 Initializes the SD/SD communication.
uint8_t BSP_SD_IsDetected (void)
 Detects if SD card is correctly plugged in the memory slot or not.
uint8_t BSP_SD_GetCardInfo (SD_CardInfo *pCardInfo)
 Returns information about specific card.
uint8_t BSP_SD_ReadBlocks (uint32_t *pData, uint32_t ReadAddr, uint16_t BlockSize, uint32_t NumberOfBlocks)
 Reads block(s) from a specified address in the SD card, in polling mode.
uint8_t BSP_SD_WriteBlocks (uint32_t *pData, uint32_t WriteAddr, uint16_t BlockSize, uint32_t NumberOfBlocks)
 Writes block(s) to a specified address in the SD card, in polling mode.
uint8_t BSP_SD_Erase (uint32_t StartAddr, uint32_t EndAddr)
 Erases the specified memory area of the given SD card.
uint8_t BSP_SD_GetStatus (void)
 Returns the SD status.

Function Documentation

uint8_t BSP_SD_Erase ( uint32_t  StartAddr,
uint32_t  EndAddr 
)

Erases the specified memory area of the given SD card.

Parameters:
StartAddrStart byte address
EndAddrEnd byte address
Return values:
SDstatus

Definition at line 500 of file stm32091c_eval_sd.c.

References BSP_SD_ERROR, BSP_SD_OK, SD_CmdAnswer_typedef::r1, SD_ANSWER_R1_EXPECTED, SD_ANSWER_R1B_EXPECTED, SD_CMD_ERASE, SD_CMD_SD_ERASE_GRP_END, SD_CMD_SD_ERASE_GRP_START, SD_DUMMY_BYTE, SD_IO_CSState(), SD_IO_WriteByte(), SD_R1_NO_ERROR, and SD_SendCmd().

uint8_t BSP_SD_GetCardInfo ( SD_CardInfo pCardInfo)

Returns information about specific card.

Parameters:
pCardInfoPointer to a SD_CardInfo structure that contains all SD card information.
Return values:
TheSD Response:
  • MSD_ERROR: Sequence failed
  • MSD_OK: Sequence succeed

Definition at line 314 of file stm32091c_eval_sd.c.

References SD_CardInfo::CardBlockSize, SD_CardInfo::CardCapacity, SD_CardInfo::Cid, SD_CardInfo::Csd, struct_v1::DeviceSize, struct_v2::DeviceSize, struct_v1::DeviceSizeMul, SD_CSD::RdBlockLen, SD_GetCIDRegister(), SD_GetCSDRegister(), SD_CSD::csd_version::v1, SD_CSD::csd_version::v2, and SD_CSD::version.

uint8_t BSP_SD_Init ( void  )

Initializes the SD/SD communication.

Return values:
TheSD Response:
  • MSD_ERROR: Sequence failed
  • MSD_OK: Sequence succeed

Definition at line 269 of file stm32091c_eval_sd.c.

References BSP_SD_IsDetected(), MSD_ERROR, SD_GoIdleState(), SD_IO_Init(), SD_NOT_PRESENT, and SD_PRESENT.

uint8_t BSP_SD_IsDetected ( void  )

Detects if SD card is correctly plugged in the memory slot or not.

Return values:
Returnsif SD is detected or not

Definition at line 293 of file stm32091c_eval_sd.c.

References SD_DETECT_GPIO_PORT, SD_DETECT_PIN, SD_NOT_PRESENT, and SD_PRESENT.

Referenced by BSP_SD_Init().

uint8_t BSP_SD_ReadBlocks ( uint32_t *  pData,
uint32_t  ReadAddr,
uint16_t  BlockSize,
uint32_t  NumberOfBlocks 
)

Reads block(s) from a specified address in the SD card, in polling mode.

Parameters:
pDataPointer to the buffer that will contain the data to transmit
ReadAddrAddress from where data is to be read
BlockSizeSD card data block size, that should be 512
NumberOfBlocksNumber of SD blocks to read
Return values:
SDstatus

Definition at line 344 of file stm32091c_eval_sd.c.

References BSP_SD_ERROR, BSP_SD_OK, SD_CmdAnswer_typedef::r1, SD_ANSWER_R1_EXPECTED, SD_CMD_READ_SINGLE_BLOCK, SD_CMD_SET_BLOCKLEN, SD_DUMMY_BYTE, SD_IO_CSState(), SD_IO_WriteByte(), SD_IO_WriteReadData(), SD_R1_NO_ERROR, SD_SendCmd(), SD_TOKEN_START_DATA_SINGLE_BLOCK_READ, and SD_WaitData().

uint8_t BSP_SD_WriteBlocks ( uint32_t *  pData,
uint32_t  WriteAddr,
uint16_t  BlockSize,
uint32_t  NumberOfBlocks 
)

Writes block(s) to a specified address in the SD card, in polling mode.

Parameters:
pDataPointer to the buffer that will contain the data to transmit
WriteAddrAddress from where data is to be written
BlockSizeSD card data block size, that should be 512
NumberOfBlocksNumber of SD blocks to write
Return values:
SDstatus

Definition at line 421 of file stm32091c_eval_sd.c.

References BSP_SD_ERROR, BSP_SD_OK, SD_CmdAnswer_typedef::r1, SD_ANSWER_R1_EXPECTED, SD_CMD_SET_BLOCKLEN, SD_CMD_WRITE_SINGLE_BLOCK, SD_DATA_OK, SD_DUMMY_BYTE, SD_GetDataResponse(), SD_IO_CSState(), SD_IO_WriteByte(), SD_IO_WriteReadData(), SD_R1_NO_ERROR, SD_SendCmd(), and SD_TOKEN_START_DATA_SINGLE_BLOCK_WRITE.

uint8_t SD_GetCIDRegister ( SD_CID Cid) [static]

Reads the SD card CID register.

Reading the contents of the CID register in SPI mode is a simple read-block transaction.

Parameters:
Cidpointer on an CID register structure
Return values:
SDstatus

Definition at line 674 of file stm32091c_eval_sd.c.

References BSP_SD_ERROR, BSP_SD_OK, SD_CID::CID_CRC, SD_CID::ManufactDate, SD_CID::ManufacturerID, SD_CID::OEM_AppliID, SD_CID::ProdName1, SD_CID::ProdName2, SD_CID::ProdRev, SD_CID::ProdSN, SD_CmdAnswer_typedef::r1, SD_CID::Reserved1, SD_CID::Reserved2, SD_ANSWER_R1_EXPECTED, SD_CMD_SEND_CID, SD_DUMMY_BYTE, SD_IO_CSState(), SD_IO_WriteByte(), SD_R1_NO_ERROR, SD_SendCmd(), SD_TOKEN_START_DATA_SINGLE_BLOCK_READ, and SD_WaitData().

Referenced by BSP_SD_GetCardInfo().

uint8_t SD_GetCSDRegister ( SD_CSD Csd) [static]
uint8_t SD_GetDataResponse ( void  ) [static]

Gets the SD card data response and check the busy flag.

Return values:
TheSD status: Read data response xxx0<status>1
  • status 010: Data accecpted
  • status 101: Data rejected due to a crc error
  • status 110: Data rejected due to a Write error.
  • status 111: Data rejected due to other error.

Definition at line 831 of file stm32091c_eval_sd.c.

References SD_DATA_CRC_ERROR, SD_DATA_OK, SD_DATA_OTHER_ERROR, SD_DATA_WRITE_ERROR, SD_DUMMY_BYTE, SD_IO_CSState(), and SD_IO_WriteByte().

Referenced by BSP_SD_WriteBlocks().

uint8_t SD_ReadData ( void  ) [static]

Waits a data until a value different from SD_DUMMY_BITE.

Return values:
theread value

Definition at line 973 of file stm32091c_eval_sd.c.

References SD_DUMMY_BYTE, and SD_IO_WriteByte().

Referenced by SD_SendCmd().

SD_CmdAnswer_typedef SD_SendCmd ( uint8_t  Cmd,
uint32_t  Arg,
uint8_t  Crc,
uint8_t  Answer 
) [static]

Send 5 bytes command to the SD card and get response.

Parameters:
CmdThe user expected command to send to SD card.
ArgThe command argument.
CrcThe CRC.
AnswerSD_ANSWER_NOT_EXPECTED or SD_ANSWER_EXPECTED
Return values:
SDstatus

Definition at line 767 of file stm32091c_eval_sd.c.

References SD_CmdAnswer_typedef::r1, SD_CmdAnswer_typedef::r2, SD_CmdAnswer_typedef::r3, SD_CmdAnswer_typedef::r4, SD_CmdAnswer_typedef::r5, SD_ANSWER_R1_EXPECTED, SD_ANSWER_R1B_EXPECTED, SD_ANSWER_R2_EXPECTED, SD_ANSWER_R3_EXPECTED, SD_ANSWER_R7_EXPECTED, SD_CMD_LENGTH, SD_DUMMY_BYTE, SD_IO_CSState(), SD_IO_WriteByte(), SD_IO_WriteReadData(), and SD_ReadData().

Referenced by BSP_SD_Erase(), BSP_SD_GetStatus(), BSP_SD_ReadBlocks(), BSP_SD_WriteBlocks(), SD_GetCIDRegister(), SD_GetCSDRegister(), and SD_GoIdleState().

uint8_t SD_WaitData ( uint8_t  data) [static]

Waits a data from the SD card.

Parameters:
dataExpected data from the SD card
Return values:
BSP_SD_OKor BSP_SD_TIMEOUT

Definition at line 994 of file stm32091c_eval_sd.c.

References BSP_SD_OK, BSP_SD_TIMEOUT, SD_DUMMY_BYTE, and SD_IO_WriteByte().

Referenced by BSP_SD_ReadBlocks(), SD_GetCIDRegister(), and SD_GetCSDRegister().

Generated on Wed Jul 5 2017 09:21:50 for STM32091C_EVAL BSP User Manual by   doxygen 1.7.6.1