I am using the nRF52832 chip with an SDI connected microSD device. I am able to communicate with the microSD card formatted as FAT32, store data, read data all with the FATFS software in the DSK15.3.0 SDK without error. I want to be able to use a larger microSD card but when I format the card as ExFAT, I get a "mount failed" error. Does the FATFS library auto identify the formatting of the card or am I supposed to set a flag somewhere letting it know the disk is ExFAT formatted? Here is the code I am using to open the device:
static bool fatfs_init() {
static diskio_blkdev_t drives[] =
{DISKIO_BLOCKDEV_CONFIG(NRF_BLOCKDEV_BASE_ADDR(m_block_dev_sdc, block_dev), NULL)};
diskio_blockdev_register(drives, ARRAY_SIZE(drives));
send_output_debug("Initializing disk 0 (SDC)...\n");
for (uint32_t retries = 3; retries && disk_state; --retries) {
disk_state = disk_initialize(0);
}
if (disk_state) {
send_output_debug("Disk initialization failed.\n");
return (false);
}
uint32_t blocks_per_mb = (1024uL * 1024uL) / m_block_dev_sdc.block_dev.p_ops->geometry(&m_block_dev_sdc.block_dev)->blk_size;
uint32_t capacity = m_block_dev_sdc.block_dev.p_ops->geometry(&m_block_dev_sdc.block_dev)->blk_count / blocks_per_mb;
char str[30];
snprintf(str, 30, "Capacity(MB): %'d", capacity);
send_output_debug(str);
send_output_debug("\n");
send_output_debug("Mounting volume...\n");
ff_result = f_mount(&fs, "", 1);
if (ff_result) {
send_output_debug("Mount failed.");
return (false);
}
return (true);
}