Устройство хранения данных (Mass Storage Device).

Пакет программ MCHPFS USB Framework 2.3 содержит пример реализации устройства хранения данных. Данный пример может быть сконфигурирован и запущен с хранением данных как во внешней памяти (в SD-карте памяти), так и во внутренней памяти программ микроконтроллера.

Рассмотрим как модифицировать программу для хранения файлов внутри микроконтроллера - в памяти программ контроллера PICkit 2.

плюс в файле HardwareProfile - PK2.h нужно задать размер блока записи и стирания

  /*******************************************************************/
  /******** MDD File System selection options ************************/
  /*******************************************************************/
  #define USE_PIC18
 
  #define ERASE_BLOCK_SIZE        64
  #define WRITE_BLOCK_SIZE        32
DATABANK  NAME=myMSD  START=0x600  END=0x7FF  PROTECTED
  //The size (in number of sectors) of the desired data portion drive
  #define MDD_INTERNAL_FLASH_DRIVE_CAPACITY 8

  //MDD_INTERNAL_FLASH_MAX_NUM_FILES_IN_ROOT must be a multiple of 16
  #define MDD_INTERNAL_FLASH_MAX_NUM_FILES_IN_ROOT 16
 
  #if defined(__C30__)
      #define FILES_ADDRESS 0x8000
  #else
      #define FILES_ADDRESS 0x6000
  #endif 

Не забудьте выбрать целевой контроллер PIC18F2550

Можно скомпилировать проект и загрузить его в PICkit 2.

После успешной загрузки вы должны увидеть что нашелся новый дисковый накопитель и в нем записан файл FILE.txt

С файлом можно осуществлять все привычные манипуляции: редактировать, сохранять, переименовывать, удалять, создавать новые файлы.

Пользовательская программа так же может сохраниять данные в файлы, читать, удалять и тд.

Следует отметить, что размер памяти микроконтроллера не бесконечен.

Исходные коды примера хранения данных (Mass Storage Device) в PICkit 2.