SAM4S-EK_FreeRTOS+FAT-SL  1.0
An example project to test the functionality of FreeRTOS+FAT-SL using SD card as data storage medium
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules
HSMCI.h File Reference
#include "sam.h"

Go to the source code of this file.

Macros

#define SD_MMC_VOLTAGE_SUPPORT   (OCR_VDD_27_28 | OCR_VDD_28_29 | OCR_VDD_29_30 | OCR_VDD_30_31 | OCR_VDD_31_32 | OCR_VDD_32_33)
 
#define SD_MMC_BLOCK_SIZE   512
 
#define PINS_MCI   (PIO_PA26 | PIO_PA27 | PIO_PA28 | PIO_PA29 | PIO_PA30 | PIO_PA31)
 
#define PIN_CDMCI   PIO_PA6
 
#define OK   1
 
#define FAIL   0
 
#define SD_READ_OK   0
 
#define SD_WRITE_OK   0
 
#define SD_READ_FAIL   1
 
#define SD_WRITE_FAIL   1
 

Functions

uint32_t hsmci_init (void)
 Initializes the low level driver. More...
 
void hsmci_reset (void)
 Reset the HSMCI interface. More...
 
void hsmci_set_speed (uint32_t speed, uint32_t mck)
 Set speed of the HSMCI clock. More...
 
uint32_t hsmci_wait_busy (void)
 Wait the end of busy signal on data line. More...
 
uint32_t hsmci_send_cmd_execute (uint32_t cmdr, uint32_t cmd, uint32_t arg)
 Send a command. More...
 
uint8_t hsmci_get_bus_width (uint8_t slot)
 Return the maximum bus width of a slot. More...
 
uint32_t hsmci_is_high_speed_capable (void)
 Return the high speed capability of the driver. More...
 
void hsmci_select_device (uint8_t slot, uint32_t clock, uint8_t bus_width, uint32_t high_speed)
 Select a slot and initialize it. More...
 
void hsmci_deselect_device (uint8_t slot)
 Deselect a slot. 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...
 
uint32_t hsmci_send_cmd (uint32_t cmd, uint32_t arg)
 Send a command on the selected 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...
 
uint32_t hsmci_adtc_start (uint32_t cmd, uint32_t arg, uint16_t block_size, uint16_t nb_block, uint32_t access_block)
 Send an ADTC command on the selected slot An ADTC (Addressed Data Transfer Commands) command is used for read/write access. More...
 
uint32_t hsmci_adtc_stop (uint32_t cmd, uint32_t arg)
 Send a command to stop an ADTC command on the selected slot. More...
 
uint32_t hsmci_read_word (uint32_t *value)
 Read a word on the line. More...
 
uint32_t hsmci_write_word (uint32_t value)
 Write a word on the line. More...
 
uint32_t 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...
 
uint32_t hsmci_wait_end_of_read_blocks (void)
 Wait the end of transfer initiated by mci_start_read_blocks() More...
 
uint32_t 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...
 
uint32_t hsmci_wait_end_of_write_blocks (void)
 Wait the end of transfer initiated by mci_start_write_blocks() More...
 

Macro Definition Documentation

#define FAIL   0

Definition at line 24 of file HSMCI.h.

#define OK   1

Definition at line 23 of file HSMCI.h.

#define PIN_CDMCI   PIO_PA6

Definition at line 21 of file HSMCI.h.

#define PINS_MCI   (PIO_PA26 | PIO_PA27 | PIO_PA28 | PIO_PA29 | PIO_PA30 | PIO_PA31)

Definition at line 19 of file HSMCI.h.

#define SD_MMC_BLOCK_SIZE   512

Definition at line 17 of file HSMCI.h.

#define SD_MMC_VOLTAGE_SUPPORT   (OCR_VDD_27_28 | OCR_VDD_28_29 | OCR_VDD_29_30 | OCR_VDD_30_31 | OCR_VDD_31_32 | OCR_VDD_32_33)

Definition at line 15 of file HSMCI.h.

#define SD_READ_FAIL   1

Definition at line 27 of file HSMCI.h.

#define SD_READ_OK   0

Definition at line 25 of file HSMCI.h.

#define SD_WRITE_FAIL   1

Definition at line 28 of file HSMCI.h.

#define SD_WRITE_OK   0

Definition at line 26 of file HSMCI.h.