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

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

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

  • В файле main.c переопределяем вектора сброса и прерываний для работы с бутлоадером PICkit 2 (см. предыдущие примеры, например 2.виртуальных.com.порта).
  • Файл определения окружения микроконтроллера (инициализация периферии, и пр.) в файле HardwareProfile.h (аналогично предыдущим примерам, например 2.виртуальных.com.порта).

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

  /*******************************************************************/
  /******** MDD File System selection options ************************/
  /*******************************************************************/
  #define USE_PIC18
 
  #define ERASE_BLOCK_SIZE        64
  #define WRITE_BLOCK_SIZE        32
  • Файл main.c аналогично как в примере примере.
  • Файл линкера. Нужно дополнительно зарезервировать область памяти данных под буфер устройства хранения данных:
DATABANK  NAME=myMSD  START=0x600  END=0x7FF  PROTECTED
  • Выделение памяти под хранение файлов - адреса размещения, размер хранилища (файл FSconfig.h)
  //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.

Дискуссия

Владимир, 29/04/2010.12:59

Интересный проект. У меня вопрос к тому кто работал с ним. Где прошит бутлоадер? Это отдельная область? Как перенести этот проект на другой PIC микроконтроллер без бутлоадера?

Насколько я понял, используется последовательная память программатора на микросхемах 24с512? Другая периферия программатора при этом не задействована, т.е. не нужна для устройства хранения MSD?

pickit2, 05/05/2010.11:36

как понимаю Вы хотите запустить этот проект не на pickit2 а на своем железе. скачайте Microchip Application Library (http://www.microchip.com/mal) и смотрите примеры USB Device - Mass Storage. Хранить файлы можете как в памяти программ микроконтроллера, так и во внешней памяти. В данном конкретном примере файлы лежат в памяти программ (естественно размер сильно ограничен).

Владимир, 29/04/2010.13:00

И откуда взялся текстовый файл? Спасибо)

песочница/msd.на.pickit2.txt · Последние изменения: 11/06/2009.11:23 (внешнее изменение)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0