/* * fatfs_sd.h * * Created on: 28-May-2022 * Author: Mudit */ #ifndef FATFS_SD_H_ #define FATFS_SD_H_ #include "main.h" #include "integer.h" #include "diskio.h" /*user configured spi parameter*/ #define spi_channel LPSPICOM2 #define sdcard_spi_channel LPSPICOM2 #define sdcard_select_port PTE #define sdcard_select_pin 5U #define SPI_Read() spi_transmit_receive(0xFF) #define clockSPI() spi_transmit_receive(0xFF) #define SPI_TIMEOUT 1000U #define DATA_START 0xFE #define CMD0 (0x40+0) /* GO_IDLE_STATE */ #define CMD1 (0x40+1) /* SEND_OP_COND */ #define CMD8 (0x40+8) /* SEND_IF_COND */ #define CMD9 (0x40+9) /* SEND_CSD */ #define CMD10 (0x40+10) /* SEND_CID */ #define CMD12 (0x40+12) /* STOP_TRANSMISSION */ #define CMD16 (0x40+16) /* SET_BLOCKLEN */ #define CMD17 (0x40+17) /* READ_SINGLE_BLOCK */ #define CMD18 (0x40+18) /* READ_MULTIPLE_BLOCK */ #define CMD23 (0x40+23) /* SET_BLOCK_COUNT */ #define CMD24 (0x40+24) /* WRITE_BLOCK */ #define CMD25 (0x40+25) /* WRITE_MULTIPLE_BLOCK */ #define CMD41 (0x40+41) /* SEND_OP_COND (ACMD) */ #define CMD55 (0x40+55) /* APP_CMD */ #define CMD58 (0x40+58) /* READ_OCR */ #define ACMD41 0x29 /* SEND_IF_COND */ /* MMC card type flags (MMC_GET_TYPE) */ #define CT_MMC 0x01 /* MMC ver 3 */ #define CT_SD1 0x02 /* SD ver 1 */ #define CT_SD2 0x04 /* SD ver 2 */ #define CT_SDC 0x06 /* SD */ #define CT_BLOCK 0x08 /* Block addressing */ extern volatile uint16_t Timer1, Timer2; /* Functions */ //DSTATUS SD_disk_initialize (BYTE pdrv); //DSTATUS SD_disk_status (BYTE pdrv); //DRESULT SD_disk_read (BYTE pdrv, BYTE* buff, DWORD sector, UINT count); //DRESULT SD_disk_write (BYTE pdrv, const BYTE* buff, DWORD sector, UINT count); //DRESULT SD_disk_ioctl (BYTE pdrv, BYTE cmd, void* buff); void sdcard_spi_fast_init(uint32_t spi_baudrate); uint8_t sdcard_response(uint8_t data, uint16_t time); uint8_t sd_card_command(uint8_t cmd, unsigned long int LBA); #endif /* FATFS_SD_H_ */