Подключение SD/MMC карт памяти к PIC-микроконтроллеру


sd_micro-250MMC (MultiMedia Card) и SD (Secure Digital Memory Card) карты на настоящий момент являются самым недорогим устройством большой емкости. Эти устройства  идеально подходят для встраиваемых систем где необходимо сбор большого количества данных, а также для простой возможности непосредственного переноса данных на ПК.

Карты памяти позволяют выполнять обмен информации по SPI интерфейсу,  который в основном присутствует в любом контроллере. И позволяет создать недорогой интерфейс обмена информацией.

Хороший сайт по информации о работе картами памяти (и не только) http://elm-chan.org/ рекомендую для ознакомления и получения дополнительной информации.

 


Габаритные размеры

sdcard


Назначение выводом Микро SD для подключения по интерфейсу SPI.

sd_micro-03

Номер Обозначение Описание
1 Подключить к подтягивающему резистору
2 CS Выбор карты
3 DI Данные для записи в карту
4 Vdd Напряжение питания 2,7-3,3v
5 SCLK Синхроимпульсы шины SPI
6 Vss Общий
7 DO Данные чтения из карты
8 Подключить к подтягивающему резистору

Назначение выводом мини и SD карт для подключения по интерфейсу SPI.sd_mini-01

SecureDigitalMemoryCard

Номер Обозначение Описание
1 CS Выбор карты
2 DI Данные для записи в карту
3 Vss Общий
4 Vdd Напряжение питания 2,7-3,3v
5 SCLK Синхроимпульсы шины SPI
6 Vss Общий
7 DO Данные чтения из карты
8 Подключить к подтягивающему резистору
9 Подключить к подтягивающему резистору
10
11

 

 


Вариант подключения для микро SD.

CATCATCAT_sd_micro_03

 


Схема для тестового проекта.

CATCATCAT_sd_micro_04

Проект предназначен как обучающий, для понимания работы с файловой системой, основан на FatFs – Generic FAT File System Module от ©ChaN. В программе присутствуют некоторые изменения для использования с PIC-контроллерами. Используется подключение через USB (эмуляция COM-порта) и HeperTerminal как управляющую панель, можно протестировать работу самой библиотеки, в связке с PIC-контроллером, по работе с SD/MMC картами памяти. Проект настроен на кодировку 866.


Управляющие последовательности.

Низкоуровневые последовательности для работы с диском:

di  – инициализация логического устройства

Пример, выполнения инициализации
> di
The disc initialization. 0-ok,1-no.
rc=0


dd [ <sector>] – чтение выбранного сектора с диска, просмотр на терминале (с загрузкой в буфер)

Пример, чтение сектора 0

>dd 0
Read sector:0
00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 …………….
000001C0: 0C 00 06 38 F8 B8 89 00 00 00 77 9F 3A 00 00 00 …8……w.:…
000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA …………..U.


ds – Просмотр состояния диска, устройства

Пример, выполнения команды

>ds
Drive size: 3842048 sectors
Erase block: 8192 sectors
MMC/SDC type: 4
CSD:
00000000: 00 2E 00 32 5B 5A 83 A9 FF FF FF 80 16 80 00 91 …2[Z……….
CID:
00000000: 02 54 4D 53 42 30 32 47 00 08 30 17 D1 00 CA 45 .TMSB02G..0….E
OCR:
00000000: 80 FF 80 00 ….
SD Status:
00000000: 00 00 00 00 00 00 00 28 02 02 90 02 00 32 00 00 …….(…..2..
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….


bd <адрес> – Просмотр буфера с указанного байта

Пример, выполнения

>bd 0
Viewing Buffer R/W:
00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….


be <адрес> [<данные>] … – Редактирование буфера

Пример, выполнения

>be 5 0x33 0x45 0x67
Editor buffer data R/W:

>bd 0
Viewing Buffer R/W:
00000000: 00 00 00 00 00 33 45 67 00 00 00 00 00 00 00 00 …..3Eg……..
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….


br  <сектор> <количество секторов 1 – 255> – Чтение сектора или секторов

Пример, выполнения

>br 0 1
Reading data from the disk into the buffer: 0
rc=0


bw <сектор> <количество секторов 1 – 255> – Запись буфера в сектор на диске  или запись буфера в несколько секторов на диске

Пример, выполнения

>bw 0 1
Writing data into the buffer: 0
rc=0


bf <число> – заполнение буфера данными

Пример, выполнения

>bf 0x35
The buffer is filled with the number of: 0
>bd 0
Viewing Buffer R/W:
00000000: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000010: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000020: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000030: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000040: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000050: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000060: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000070: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000080: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000090: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000A0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000B0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000C0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000D0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000E0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000F0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000100: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000110: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000120: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000130: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000140: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000150: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000160: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000170: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000180: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000190: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001A0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001B0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001C0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001D0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001E0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001F0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555


Последовательности для работы с файловой системой

fi – быстрая инициализация устройства

Пример, выполнения

>fi
rc=0 FR_OK


fs [<путь>] – Показать состояния логического диска (каталога)

Пример, выполнения

>fs
FAT type = FAT16
Bytes/Cluster = 32768
Number of FATs = 2
Root DIR entries = 512
Sectors/FAT = 235
Number of clusters = 60021
Volume start (lba) = 137
FAT start (lba) = 139
DIR start (lba,clustor) = 609
Data start (lba) = 641

13 files, 24096 bytes.
3 folders.
1920672 KB total disk space.
1919488 KB available.


fl [<путь>] – Просмотр каталога. Без пути – просмотр текущего каталога

Пример, выполнения

>fl
D—- 2013/06/16 15:37 0 123
D—- 2013/06/16 15:37 0 234
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2013/06/01 10:03 3011 footer.txt
—-A 2013/06/16 18:34 220 789.txt
—-A 2013/06/16 18:55 2391 4523.txt
4 File(s), 6908 bytes total
3 Dir(s), 1965555712 bytes free>

>fl 123
D—- 2013/06/16 15:37 0 .
D—- 2013/06/16 15:37 0 ..
—-A 2013/06/01 10:03 3011 123.txt
—-A 2013/06/01 10:20 1286 333.txt
—-A 2013/06/01 10:03 3011 4523.txt
3 File(s), 7308 bytes total
2 Dir(s), 1965555712 bytes free


fo <режим> <имя файла> – открыть файл, режим: 0x01 – на чтение, 0x00 – , 0x80 – , 0x02 – на запись, 0x04 – создать новый файл, 0x08 – создать независимо от наличия такого же файла в каталоге, 0x10 – отрыть независимо от текущего состояния, 0x20 – , 0x40 – .

Пример, выполнения

>fo 4 nini.txt
rc=0 FR_OK

>fc
rc=0 FR_OK

>fl
—-A 2061/01/23 00:48 0 nini.txt
D—- 2013/06/16 15:37 0 123
D—- 2013/06/16 15:37 0 234
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2013/06/01 10:03 3011 footer.txt
—-A 2013/06/16 18:34 220 789.txt
—-A 2013/06/16 18:55 2391 4523.txt
5 File(s), 6908 bytes total
3 Dir(s), 1965555712 bytes free


fc – Закрыть открытый файл

Пример, выполнения

>fc
rc=0 FR_OK


fe <ofs> – Переместить указатель в указанный адрес (внутри открытого файла, если файл на запись или внутри буфера если файл отрыт на чтение)

Пример, выполнения

>fo 2 footer.txt  // открываем файл на запись
rc=0 FR_OK
>fe 0x12                 // перемещаем указатель
rc=0 FR_OK
fptr = 18(0x12)


fr <количество байт чтения> – читать файл (данные загружаются в буфер)

Пример, выполнения

>fr 200
200 bytes read with 0 kB/sec.


fd <количество байт чтения> – чтение буфера, вывод на экран информации

Пример, выполнения

>fd 200
00000000: EF BB BF 3C 3F 70 68 70 0D 0A 2F 2A 2A 0D 0A 20 …<?php../**..
00000010: 2A 20 46 4F 4F 54 45 52 0D 0A 20 2A 0D 0A 20 2A * FOOTER.. *.. *
00000020: 20 54 68 69 73 20 66 69 6C 65 20 63 6F 6E 74 72 This file contr
00000030: 6F 6C 73 20 74 68 65 20 65 6E 64 69 6E 67 20 48 ols the ending H
00000040: 54 4D 4C 20 3C 2F 62 6F 64 79 3E 3C 2F 68 74 6D TML </body></htm
00000050: 6C 3E 20 61 6E 64 20 63 6F 6D 6D 6F 6E 20 67 72 l> and common gr
00000060: 61 70 68 69 63 61 6C 0D 0A 20 2A 20 65 6C 65 6D aphical.. * elem
00000070: 65 6E 74 73 20 69 6E 20 79 6F 75 72 20 73 69 74 ents in your sit
00000080: 65 20 66 6F 6F 74 65 72 2E 20 59 6F 75 20 63 61 e footer. You ca
00000090: 6E 20 63 6F 6E 74 72 6F 6C 20 77 68 61 74 20 73 n control what s
000000A0: 68 6F 77 73 20 75 70 20 77 68 65 72 65 20 75 73 hows up where us
000000B0: 69 6E 67 0D 0A 20 2A 20 57 6F 72 64 50 72 65 73 ing.. * WordPres
000000C0: 73 20 61 6E 64 20 50 61 s and Pa


fw <Количество байт для записи> <Значение записываемого байта> – запись в файл

Пример, выполнения

>fw 100 0x36
100 bytes written with 100 kB/sec.


fn <old_name> <new_name> – Изменения имени файла/каталога

Пример, выполнения, изменение имени каталога 123

>fl
—-A 2061/01/23 00:48 0 nini.txt
D—A 2013/06/16 15:37 0 mounfer
D—- 2013/06/16 15:37 0 123
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
—-A 2013/06/16 18:34 220 789.txt
—-A 2013/06/16 18:55 2391 4523.txt
5 File(s), 6908 bytes total
3 Dir(s), 1965555712 bytes free
>fn 123 catalogMOBI
rc=0 FR_OK
>fl
—-A 2061/01/23 00:48 0 nini.txt
D—A 2013/06/16 15:37 0 mounfer
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
—-A 2013/06/16 18:34 220 789.txt
—-A 2013/06/16 18:55 2391 4523.txt
5 File(s), 6908 bytes total
3 Dir(s), 1965555712 bytes free


fu <path> – удаление файла или каталог (каталог должен быть пустым)

Пример, выполнения

>fl
—-A 2061/01/23 00:48 0 nini.txt
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
—-A 2013/06/16 18:55 2391 4523.txt
4 File(s), 6688 bytes total
2 Dir(s), 1965686784 bytes free
>fu 4523.txt
rc=0 FR_OK
>fl
—-A 2061/01/23 00:48 0 nini.txt
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
3 File(s), 4297 bytes total
2 Dir(s), 1965719552 bytes free


fv – урезать файл, файл урезается по установленному указателю

Пример, выполнения, урезание файла footer.txt до 1кБ

>fl //смотрим каталог
—-A 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
D—- 2061/01/23 01:30 0 CAT2CA~1 cat2 cat77
D—- 2061/01/23 01:32 0 test03
3 File(s), 4297 bytes total
9 Dir(s), 1965490176 bytes free
>fo 2 footer.txt // открываем файл на запись
rc=0 FR_OK
>fe 1000 // устанавливаем указатель на 1000
rc=0 FR_OK
fptr = 1000(0x3E8)
>fv // урезаем размер файла
rc=0 FR_OK
>fc // закрываем файл
rc=0 FR_OK
>fl // смотрим каталог, что получилось
—-A 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 footer.txt
D—- 2061/01/23 01:30 0 CAT2CA~1 cat2 cat77
D—- 2061/01/23 01:32 0 test03
3 File(s), 2286 bytes total
9 Dir(s), 1965490176 bytes free


fk <имя каталога> – Создайте каталог

Пример, выполнения создать каталог с именем test03

>fk test03
rc=0 FR_OK


fa <атрибут> <маска> <имя файла или каталога> – Изменение атрибута  файла/каталога. Аnритут показывает какие флаги сбросить или установить 0 – сбросить, 1 – установить, маска какие влаги активировать, если использовать бинарные числа, то 0b000 – старший байт S, средний H, младший R.

Пример, выполнения

>fa 0b000 0b111 nini.txt // сбросить все атрибуты файла
rc=0 FR_OK
>fl
—-A 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 footer.txt
D—- 2061/01/23 01:30 0 CAT2CA~1 cat2 cat77
D—- 2061/01/23 01:32 0 test03
3 File(s), 2286 bytes total
8 Dir(s), 1965654016 bytes free
>

>fa 0b101 0b111 nini.txt // установить флаги R-S и сбросить H
rc=0 FR_OK
>fl
-R-SA 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 footer.txt
D—- 2061/01/23 01:30 0 CAT2CA~1 cat2 cat77
D—- 2061/01/23 01:32 0 test03
3 File(s), 2286 bytes total
8 Dir(s), 1965654016 bytes free


ft <year> <month> <day> <hour> <min> <sec> <name> – Изменить временную метку

 


fx <src_name> <dst_name> – Скопировать файл

Пример, выполнения

>fx 11111.txt 456/11.txt // копируем файл 11111.txt с текущего каталога в каталог 456 с переименованием 11.txt
Opening “11111.txt”
Creating “456/11.txt”
Copying…
1286 bytes copied.
>fl 456
D—- 2013/06/16 15:37 0 .
D—- 2013/06/16 15:37 0 ..
—-A 2013/06/01 10:20 1286 11111.txt
—-A 2013/06/01 10:03 3011 222222.txt
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 FOOTER~1.TXT
—-A 2013/06/01 10:20 1286 FUNCTI~2.TXT
—-A 2061/01/23 00:48 0 NINI-Š~1.TXT
—-A 2061/01/23 01:40 1000 footer.txt
—-A 2061/01/23 00:48 0 nini.txt
—-A 2061/01/23 00:15 1286 11.txt
9 File(s), 10155 bytes total
2 Dir(s), 1965260800 bytes free


fg <path> – Изменить текущий каталог

Пример, выполнения

>fl
—-A 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 footer.txt
D—- 2061/01/23 01:32 0 test03
D—- 2061/01/23 01:30 0 test.dir
—-A 2061/01/23 01:40 1000 FOOTER~1.TXT
—-A 2013/06/01 10:20 1286 FUNCTI~2.TXT
—-A 2061/01/23 00:48 0 NINI-Š~1.TXT
—-A 2013/06/01 10:20 1286 11111.txt
—-A 2013/06/01 10:03 3011 222222.txt
8 File(s), 8869 bytes total
8 Dir(s), 1965260800 bytes free
>fg 456
rc=0 FR_OK
>fl
D—- 2013/06/16 15:37 0 .
D—- 2013/06/16 15:37 0 ..
—-A 2013/06/01 10:20 1286 11111.txt
—-A 2013/06/01 10:03 3011 222222.txt
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 FOOTER~1.TXT
—-A 2013/06/01 10:20 1286 FUNCTI~2.TXT
—-A 2061/01/23 00:48 0 NINI-Š~1.TXT
—-A 2061/01/23 01:40 1000 footer.txt
—-A 2061/01/23 00:48 0 nini.txt
—-A 2061/01/23 00:15 1286 11.txt
9 File(s), 10155 bytes total
2 Dir(s), 1965260800 bytes free


fj – <номер диска 0, 1…> – Сменить текущий диск (если устройство разбито на несколько дисков).


fq – Показать путь текущей директории

Пример, выполнения

>fq
0:/456


fb – переместить указатель в конец файла, для до записывания информации

Пример, выполнения

>fo 2 11.txt
rc=0 FR_OK
>fb
rc=0 FR_OK


fm – <partition rule> <sect/clust> – Создание файловой системы

Пример, выполнения

>fm 1 1
The memory card will be formatted. Are you sure? (Y/n)=Y
Formats, please wait…
rc=0 FR_OK
>fl
0 File(s), 0 bytes total
0 Dir(s), 1950350848 bytes free
>fs
FAT type = FAT32
Bytes/Cluster = 512
Number of FATs = 1
Root DIR entries = 0
Sectors/FAT = 30017
Number of clusters = 3809280
Volume start (lba) = 0
FAT start (lba) = 2751
DIR start (lba,clustor) = 2
Data start (lba) = 32768

0 files, 0 bytes.
0 folders.
0 KB total disk space.
0 KB available.
>

>fm 1 0
The memory card will be formatted. Are you sure? (Y/n)=Y
Formats, please wait…
rc=0 FR_OK
>fl
0 File(s), 0 bytes total
0 Dir(s), 1962934272 bytes free
>fs
FAT type = FAT16
Bytes/Cluster = 32768
Number of FATs = 1
Root DIR entries = 512
Sectors/FAT = 8159
Number of clusters = 59904
Volume start (lba) = 0
FAT start (lba) = 1
DIR start (lba,clustor) = 8160
Data start (lba) = 8192

0 files, 0 bytes.
0 folders.
1916928 KB total disk space.
1916928 KB available.


t  – [<year> <mon> <mday> <hour> <min> <sec>] установка и индикация системного времени

Пример, выполнения

>t 2013 006 18 16 38 00
Setting the date and time
2013/6/18 16:38:00


Проект и библиотека в формате MPLAB® X v1.80, Microchip MPLAB XC16 v1.11 

 Гипертерминал для тестирования проекта


Это может быть интересно


  • Гаджеты для домашней автоматики – Датчик приближенияГаджеты для домашней автоматики – Датчик приближения
    Управление светодиодным освещением – Датчик приближения. Данный гаджет предназначен для управления внутренним освещением мебели. Датчик позволяет определить закрытие или открытие дверцы или ящика и при этом включать или выключать освещение. …
  • BMP280 – температура и атмосферное давление – учебный проектBMP280 – температура и атмосферное давление – учебный проект
    Учебный проект на PIC32 и светодиодной панели P5 (2121)-168-6432-80 (32*64). Проект позволяет ознакомиться с простой графикой и с чтением давления и температуры с датчика BMP280. Для тестирования необходимо собрать следующую …
  • MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC)MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC)
    Введение MTouch ® Модуль Емкостной Библиотеки для MPLAB ® X Code Configurator (MCC) позволяет быстро и легко генерировать решение кода на  Cи для емкостной сенсорной кнопки, датчика приближения и слайдера. В записи нет …
  • WiFi ESP8266 – AT команды связанные с функцией TCP/IP (v.1.6.1)WiFi ESP8266 – AT команды связанные с функцией TCP/IP (v.1.6.1)
    AT команды связанные с функцией TCP/IP В этом разделе описаны команды которые позволяют устанавливать соединения между серверами и клиентами в сети. Приведено описание команд и примеры их выполнения. Функции TCP/IP …
  • PIC18F25K42 – v. A001 – выявленные баги.PIC18F25K42 – v. A001 – выявленные баги.
    Модуль I2C Не работает при использовании в стандартной конфигурации MCC. Требует особой нестандартной конфигурации и управления для нормальной работы. Обойти Обход проблемы возможен библиотека см статью. Модуль ADC2 На выводе RA0, …
  • Датчик контроля протечки воды ch-c0020Датчик контроля протечки воды ch-c0020
    Как здорово летом под теплым дождем с тобою вдвоем оказаться. Как классно по лужам бежать босиком, с тобою играть и смеяться! Но совсем грустно оказаться под таким дождем, который течет с потолка…  И …
  • Индикатор температурыИндикатор температуры
    Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе температуре. Нужен был какой нибудь выводной …
  • Audio-bluetooth modules BK8000L (noname)Audio-bluetooth modules BK8000L (noname)
    Еще один вариант, так сказать недоразумения Audio-bluetooth modules BK8000L (noname). Его отличительной маркировкой служат два отверстия в плате и надпись R2. Отличают его от модулей на чипе BK8000L, что у …
  • УКВ – радиоприем, часть 2УКВ – радиоприем, часть 2
    Пришло свободное время решил вторую часть проекта реализовать (правда есть мысль и третью с использование цветного OLED и функцией ch-светомузыки, но это только задумка… Для понимания функций интегрального приемника RDA5807FP читайте …
  • Емкостной сенсорЕмкостной сенсор
    Изучаем изготовление емкостных сенсоров на PIC-микроконтроллере. Конструкция емкостных сенсоров имеет вид: Емкостные сенсоры строятся по схеме высокочастотного генератора, сам принцип основан на измерение частоты этого генератора. Частота зависит от емкости …



Поделись этим!