STM32L073Z_EVAL BSP User Manual: STM32L073Z_EVAL_SD_Private_Functions

STM32L073Z EVAL BSP Drivers

STM32L073Z_EVAL BSP User Manual
STM32L073Z_EVAL_SD_Private_Functions

Functions

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.
static uint8_t SD_GetCSDRegister (SD_CSD *Csd)
 Reads the SD card SCD register.
static uint8_t SD_GetCIDRegister (SD_CID *Cid)
 Reads the SD card CID register.
static SD_CmdAnswer_typedef SD_SendCmd (uint8_t Cmd, uint32_t Arg, uint8_t Crc, uint8_t Answer)
 Sends 5 bytes command to the SD card and get response.
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 uint8_t SD_ReadData (void)
 Waits a data until a value different from SD_DUMMY_BITE.
static uint8_t SD_WaitData (uint8_t data)
 Waits a data from the SD card.

Function Documentation

uint8_t BSP_SD_Erase ( uint32_t  StartAddr,
uint32_t  EndAddr 
)

Erases the specified memory area of the given SD card.

Parameters:
StartAddr,:Start byte address
EndAddr,:End byte address
Return values:
SDstatus

Definition at line 524 of file stm32l073z_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:
pCardInfo,:Pointer 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 338 of file stm32l073z_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_GetStatus ( void  )
uint8_t BSP_SD_Init ( void  )

Initializes the SD/SD communication.

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

Definition at line 289 of file stm32l073z_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.

Parameters:
None
Return values:
Returnsif SD is detected or not

Definition at line 314 of file stm32l073z_eval_sd.c.

References BSP_IO_ReadPin(), 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:
pData,:Pointer to the buffer that will contain the data to transmit
ReadAddr,:Address from where data is to be read
BlockSize,:SD card data block size, that should be 512
NumOfBlocks,:Number of SD blocks to read
Return values:
SDstatus

Definition at line 368 of file stm32l073z_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:
pData,:Pointer to the buffer that will contain the data to transmit
WriteAddr,:Address from where data is to be written
BlockSize,:SD card data block size, that should be 512
NumOfBlocks,:Number of SD blocks to write
Return values:
SDstatus

Definition at line 445 of file stm32l073z_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:
Cid,:pointer on an CID register structure
Return values:
SDstatus

Definition at line 700 of file stm32l073z_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.

Parameters:
None
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 866 of file stm32l073z_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.

Parameters:
None
Return values:
thevalue read

Definition at line 1007 of file stm32l073z_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]

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

Parameters:
Cmd,:The user expected command to send to SD card.
Arg,:The command argument.
Crc,:The CRC.
Answer,:SD_ANSWER_NOT_EXPECTED or SD_ANSWER_EXPECTED
Return values:
SDstatus

Definition at line 793 of file stm32l073z_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:
data: Expected data from the SD card
Return values:
BSP_SD_OKor BSP_SD_TIMEOUT

Definition at line 1028 of file stm32l073z_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 Mon Aug 28 2017 14:54:25 for STM32L073Z_EVAL BSP User Manual by   doxygen 1.7.6.1