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

Visits: 10553


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 

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


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


  • PIC32MZ – Core Timer (библиотека)PIC32MZ – Core Timer (библиотека)
    Visits: 523 Переработанные файлы от Microchip, библиотека для работы с Core Timer. Метки: PIC32MZ
  • Проблемы классической светомузыкиПроблемы классической светомузыки
    Visits: 2018 Светомузыка – что это такое? Определение: Светомузыка  (жаргонное: цветомузыка)  — вид искусства, основанный на способности человека ассоциировать звуковые ощущения со световыми восприятиями. Такое явление в неврологии получило название …
  • MPLAB® Code ConfiguratorMPLAB® Code Configurator
    Visits: 1768 MPLAB ® Code конфигуратор (MCC) является свободно распространяемым плагином, это графическая среда программирования, которая генерирует бесшовный, легкий для понимания кода на Cи, чтобы вставить его в свой проект. …
  • JDY-62A Audio bluetooth moduleJDY-62A Audio bluetooth module
    Visits: 1614 Простой модуль для простого аудио блютуса. Встроенные подсказки на английском языке. Модуль включён, режим муте – после подачи питания. Контроль разряда батареи предупреждение что батарея разряжена и необходима …
  • WiFi ESP8266 – AT команды связанные с функцией Wi-FiWiFi ESP8266 – AT команды связанные с функцией Wi-Fi
    Visits: 5205 AT команды связанные с функцией Wi-Fi Функции Wi-Fi подключения, запускаться из командной строки Команда Описание  1 AT+CWMODE Проверка, настройка режима работы Wi-Fi (sta/AP/sta+AP), (не рекомендуется для новых проектов). 2 …
  • MPLAB® Harmony – или как это просто! Часть 3.MPLAB® Harmony – или как это просто! Часть 3.
    Visits: 2043 Часть третья – копнём немного глубже. Вы наверное заметили, что во второй главе, вроде сначала все шло как по маслу, а потом, что бы заморгали светики, я вставил …
  • USB K-L-line адаптерUSB K-L-line адаптер
    Visits: 5924 USB K-L-line адаптер предназначен для связи персонального компьютера с диагностической шиной автомобиля – интерфейс ISO-9141. Этот проект предназначен для сборки недорого устройства с использованием специально для этой цели …
  • Стробоскоп для автомобиляСтробоскоп для автомобиля
    Visits: 2136 Одним из популярных решений светового тюнинга автомобиля, мотоцикла или скутера стал эффект –  “полицейский стробоскоп“. На база платы ch-c0050 реализовано несколько проектов. В этой статье приводятся две версии …
  • TDA7294 part 2TDA7294 part 2
    Visits: 210 Це друга частина проекту TDA7294, початок дивись тут. Тут ви знайдете повністю проект високоякісного підсилювача на TDA7294, схема, 3D моделі, гербер файли для виготовлення друкованої плати. І звичайно …
  • Проект с использованием MCC часть 01Проект с использованием MCC часть 01
    Visits: 2467 Для изучения MCC я выбрал простой контроллер PIC16F1509. Выбор его был обусловлен богатой новой периферией которую можно изучить. Для начала была собрана схема на макетной плате Внешний вид …