

Ф
УНКЦИИ ДЛЯ РАБОТЫ
С
MMC
И
SD
КАРТАМИ
ПАМЯТИ
Multi Media Card (MMC) – это стан
дарт карт флэш памяти. MMC карты в
настоящее время имеют объём до не
скольких десятков гигабайт и ис
пользуются в сотовых телефонах,
mp3 плеерах, цифровых камерах и
PDA.
Secure Digital (SD) – это стандарт
карт флэш памяти, основанный на ста
ром формате Multi Media Card (MMC).
SD карты в настоящее время имеют
объём до нескольких десятков гига
байт. Их модификации с уменьшенны
ми размерами Mini SD и Micro SD ис
пользуются в сотовых телефонах, mp3
плеерах, цифровых камерах и PDA.
Среда MikroC предоставляет библи
отеку для доступа к данным в MMC че
ПРОГРАММИРОВАНИЕ
66
WWW.SOEL.RUСОВРЕМЕННАЯ ЭЛЕКТРОНИКА
◆
№ 8 2010
Современная среда разработки mikroC
для программирования микроконтроллеров
на языке высокого уровня Си
(часть 3)
Олег Вальпа (Челябинская обл.)
Приводится описание современной, мощной и удобной среды
разработки mikroC, которая включает большую библиотеку готовых
функций для работы с разнообразными интерфейсами и устройствами
и позволяет быстро создавать эффективные программы на языке
высокого уровня Си для микроконтроллеров семейств PIC, AVR,
MCS#51 и др.
рез SPI. Эта библиотека также поддер
живает карты памяти SD. Данная биб
лиотека имеет следующие ограниче
ния:
●
библиотека работает только с семей
ством PIC18;
●
библиотечные функции создают и
читают файлы только из корневого
каталога;
●
библиотечные функции при записи
файла заносят данные в обе табли
цы – FAT1 и FAT2, но при чтении ис
пользуют данные только из таблицы
FAT1. То есть восстановление данных
при разрушении FAT1 не произво
дится;
●
начиная с версии 5.0.0.3, библио
тека может обмениваться данны
ми с носителем, который содержит
Master Boot Record (MBR) в секто
ре 0. Она читает необходимую ин
формацию из MBR и переходит к
первому доступному primary логи
ческому разделу. За детальной
информацией о MBR, физических
и логических устройствах, pri
mary/secondary разделах и табли
цах разделов следует обратиться
к другим ресурсам, например, Wi
kipedia и т.п.
Библиотека включает в свой состав
следующие функции работы с кар
тами: Mmc_Init, Mmc_Read_Sector,
Mmc_Write_Sector, Mmc_Read_Cid и
Mmc_Read_Csd. Кроме того, имеются
следующие функции для работы с
файлами:
●
Mmc_Fat_Init;
●
Mmc_Fat_Assign;
●
Mmc_Fat_Reset;
●
Mmc_Fat_Read;
●
Mmc_Fat_Rewrite;
●
Mmc_Fat_Append;
●
Mmc_Fat_Delete;
●
Mmc_Fat_Write;
●
Mmc_Fat_Set_File_Date;
●
Mmc_Fat_Get_File_Date;
●
Mmc_Fat_Get_File_Size;
●
Mmc_Fat_Get_Swap_File.
Описание этих функций приведено
в таблицах 22 – 38 соответственно.
Таблица 22. Описание функции Mmc_Init
Прототип
unsigned short Mmc_Init(unsigned short *port, unsigned short pin)
Возвращаемое значение Возвращает 0, если MMC присутствует и успешно инициализирована, в противном случае возвращает 1
Описание
Инициализирует MMC через аппаратный SPI интерфейс, где состояние вывода chip select задаётся аргументами port и pin; а порт и выводы интерфейса
определяются установками аппаратуры SPI для соответствуюшего контроллера. Mmc_Init должна вызываться перед использованием других функций
этой библиотеки
Требования
Функция Spi_Init_Advanced(MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE, CLK_IDLE_LOW, LOW_2_HIGH); должна быть вызвана перед использованием
Mmc_Init
Пример
Spi_Init_Advanced(MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE,
CLK_IDLE_LOW, LOW_2_HIGH);
// Цикл, пока MMC не будет инициализирована
while (Mmc_Init(&PORTC, 2));
Таблица 23. Описание функции Mmc_Read_Sector
Прототип
unsigned short Mmc_Read_Sector(unsigned long sector, unsigned short *data)
Возвращаемое значение Возвращает 0 при успешном чтении или 1, если имеет место ошибка
Описание
Функция читает один сектор (512 байт) из MMC, адрес сектора задаётся аргументом sector. Читаемые данные сохраняются в массиве data
Требования
MMC должна быть проинициализирована с помощью функции Mmc_Init.
Пример
error = Mmc_Read_Sector(sector, data)
© СТА-ПРЕСС