Modules | Functions
High Speed MultiMedia Card Interface (HSMCI)
Collaboration diagram for High Speed MultiMedia Card Interface (HSMCI):

Modules

 High Speed MultiMedia Card Interface
 

Functions

bool hsmci_adtc_start (sdmmc_cmd_def_t cmd, uint32_t arg, uint16_t block_size, uint16_t nb_block, bool access_block)
 Send an ADTC command on the selected slot An ADTC (Addressed Data Transfer Commands) command is used for read/write access. More...
 
bool hsmci_adtc_stop (sdmmc_cmd_def_t cmd, uint32_t arg)
 Send a command to stop an ADTC command on the selected slot. More...
 
void hsmci_deselect_device (uint8_t slot)
 Deselect a slot. More...
 
uint8_t hsmci_get_bus_width (uint8_t slot)
 Return the maximum bus width of a slot. More...
 
uint32_t hsmci_get_response (void)
 Return the 32 bits response of the last command. More...
 
void hsmci_get_response_128 (uint8_t *response)
 Return the 128 bits response of the last command. More...
 
void hsmci_init (void)
 Initializes the low level driver. More...
 
bool hsmci_is_high_speed_capable (void)
 Return the high speed capability of the driver. More...
 
bool hsmci_read_word (uint32_t *value)
 Read a word on the line. More...
 
void hsmci_select_device (uint8_t slot, uint32_t clock, uint8_t bus_width, bool high_speed)
 Select a slot and initialize it. More...
 
void hsmci_send_clock (void)
 Send 74 clock cycles on the line of selected slot Note: It is required after card plug and before card install. More...
 
bool hsmci_send_cmd (sdmmc_cmd_def_t cmd, uint32_t arg)
 Send a command on the selected slot. More...
 
bool hsmci_start_read_blocks (void *dest, uint16_t nb_block)
 Start a read blocks transfer on the line Note: The driver will use the DMA available to speed up the transfer. More...
 
bool hsmci_start_write_blocks (const void *src, uint16_t nb_block)
 Start a write blocks transfer on the line Note: The driver will use the DMA available to speed up the transfer. More...
 
bool hsmci_wait_end_of_read_blocks (void)
 Wait the end of transfer initiated by mci_start_read_blocks() More...
 
bool hsmci_wait_end_of_write_blocks (void)
 Wait the end of transfer initiated by mci_start_write_blocks() More...
 
bool hsmci_write_word (uint32_t value)
 Write a word on the line. More...
 

Detailed Description

This driver interfaces the HSMCI module. It will add functions for SD/MMC card reading, writing and management.

Function Documentation

◆ hsmci_adtc_start()

bool hsmci_adtc_start ( sdmmc_cmd_def_t  cmd,
uint32_t  arg,
uint16_t  block_size,
uint16_t  nb_block,
bool  access_block 
)

Send an ADTC command on the selected slot An ADTC (Addressed Data Transfer Commands) command is used for read/write access.

Parameters
cmdCommand definition
argArgument of the command
block_sizeBlock size used for the transfer
nb_blockTotal number of block for this transfer
access_blockif true, the x_read_blocks() and x_write_blocks() functions must be used after this function. If false, the mci_read_word() and mci_write_word() functions must be used after this function.
Returns
true if success, otherwise false

Definition at line 458 of file hsmci.c.

◆ hsmci_adtc_stop()

bool hsmci_adtc_stop ( sdmmc_cmd_def_t  cmd,
uint32_t  arg 
)

Send a command to stop an ADTC command on the selected slot.

Parameters
cmdCommand definition
argArgument of the command
Returns
true if success, otherwise false

Definition at line 536 of file hsmci.c.

◆ hsmci_deselect_device()

void hsmci_deselect_device ( uint8_t  slot)

Deselect a slot.

Parameters
slotSelected slot

Definition at line 394 of file hsmci.c.

◆ hsmci_get_bus_width()

uint8_t hsmci_get_bus_width ( uint8_t  slot)

Return the maximum bus width of a slot.

Parameters
slotSelected slot
Returns
1, 4 or 8 lines.

Definition at line 330 of file hsmci.c.

◆ hsmci_get_response()

uint32_t hsmci_get_response ( void  )

Return the 32 bits response of the last command.

Returns
32 bits response

Definition at line 436 of file hsmci.c.

◆ hsmci_get_response_128()

void hsmci_get_response_128 ( uint8_t *  response)

Return the 128 bits response of the last command.

Parameters
responsePointer on the array to fill with the 128 bits response

Definition at line 441 of file hsmci.c.

◆ hsmci_init()

void hsmci_init ( void  )

Initializes the low level driver.

This enable the clock required and the hardware interface.

Definition at line 302 of file hsmci.c.

◆ hsmci_is_high_speed_capable()

bool hsmci_is_high_speed_capable ( void  )

Return the high speed capability of the driver.

Returns
true, if the high speed is supported

Definition at line 344 of file hsmci.c.

◆ hsmci_read_word()

bool hsmci_read_word ( uint32_t *  value)

Read a word on the line.

Parameters
valuePointer on a word to fill
Returns
true if success, otherwise false

Definition at line 541 of file hsmci.c.

◆ hsmci_select_device()

void hsmci_select_device ( uint8_t  slot,
uint32_t  clock,
uint8_t  bus_width,
bool  high_speed 
)

Select a slot and initialize it.

Parameters
slotSelected slot
clockMaximum clock to use (Hz)
bus_widthBus width to use (1, 4 or 8)
high_speedtrue, to enable high speed mode

Definition at line 349 of file hsmci.c.

◆ hsmci_send_clock()

void hsmci_send_clock ( void  )

Send 74 clock cycles on the line of selected slot Note: It is required after card plug and before card install.

Definition at line 400 of file hsmci.c.

◆ hsmci_send_cmd()

bool hsmci_send_cmd ( sdmmc_cmd_def_t  cmd,
uint32_t  arg 
)

Send a command on the selected slot.

Parameters
cmdCommand definition
argArgument of the command
Returns
true if success, otherwise false

Definition at line 414 of file hsmci.c.

◆ hsmci_start_read_blocks()

bool hsmci_start_read_blocks ( void *  dest,
uint16_t  nb_block 
)

Start a read blocks transfer on the line Note: The driver will use the DMA available to speed up the transfer.

Parameters
destPointer on the buffer to fill
nb_blockNumber of block to transfer
Returns
true if started, otherwise false

◆ hsmci_start_write_blocks()

bool hsmci_start_write_blocks ( const void *  src,
uint16_t  nb_block 
)

Start a write blocks transfer on the line Note: The driver will use the DMA available to speed up the transfer.

Parameters
srcPointer on the buffer to send
nb_blockNumber of block to transfer
Returns
true if started, otherwise false

◆ hsmci_wait_end_of_read_blocks()

bool hsmci_wait_end_of_read_blocks ( void  )

Wait the end of transfer initiated by mci_start_read_blocks()

Returns
true if success, otherwise false

◆ hsmci_wait_end_of_write_blocks()

bool hsmci_wait_end_of_write_blocks ( void  )

Wait the end of transfer initiated by mci_start_write_blocks()

Returns
true if success, otherwise false

◆ hsmci_write_word()

bool hsmci_write_word ( uint32_t  value)

Write a word on the line.

Parameters
valueWord to send
Returns
true if success, otherwise false

Definition at line 581 of file hsmci.c.



inertial_sense_ros
Author(s):
autogenerated on Sat Sep 19 2020 03:19:07