Поиск по этому блогу

31 дек. 2013 г.

Миниатюрный, быстрый, автономный программатор AVR микроконтроллеров с SD картой памяти. Часть 3


Часть 1. Основные характеристики, поддерживаемые режимы и принципиальная схема программатора
Часть 2. Описание функций и опций, режимы работы, результаты тестирования
Как было замечено ранее, для работы программатора требуется наличие системных файлов на SD карте памяти. Файлы должны быть помещены в соответствующие директории:
  • файлы для программирования Flash-памяти в папку «flash»,
  • файлы EEPROM – в папку «eeprom»,
  • конфигурационные txt файлы для программирования Fuse-битов – в папку «fuseb»,
  • Lock-биты – в папку «lockb».
Папка «System» содержит другие файлы, необходимые для работы программатора, включая базу данных по микроконтроллерам (файл chip.db), настройки (файл config.ini), изображения формата BMP. Архив с содержимым SD карты со всеми необходимыми файлами доступен для скачивания в разделе загрузок, в котором находится папка SD-files, содержимое которой необходимо скопировать на карту памяти.
Файлы для программирования памяти целевого микроконтроллера, как известно, генерируются компилятором, в них нет сомнений, и мы помещаем их в соответствующую папку на карте памяти. Нам остается лишь создать конфигурационные txt файлы для программирования Fuse- и Lock-битов, значения в этих файлах должны быть в шестнадцатеричном формате.
Файл с Fuse-битами содержит последовательные данные: младший байт, старший байт, расширенный байт в HEX. К примеру, содержимое файла для микроконтроллера Atmel ATtiny45будет: 62DFFF. В конфигурационном файле могут содержаться комментарии и пользовательская информация, но только первые три байта используются программатором.
Структура конфигурационного файла Lock-битов аналогична, за исключением того, что используется лишь один байт из последовательности. Например, если нужно запрограммировать биты LB0 и LB1, то в файле должно содержаться значение FC (11111100). Это правило применимо и к Fuse-битам, если мы попытаемся запрограммировать несуществующий бит (записать в него 0), ничего страшного не случиться, мы получим лишь ошибку верификации, т.к. этот несуществующий бит всегда будет читаться как 1.
При чтении Fuse- и Lock-битов программатором, создаются соответствующие файлы с такой же структурой.
Список файлов (при работе с программатором) отображается не в алфавитном порядке, а в порядке их записи на карту памяти. Выделение файлов осуществляется кнопками UP и DOWN, выбор кнопкой RIGHT, отмена – кнопкой LEFT.
Программатор поддерживает работу с картами объемом 128 МБайт, 512 МБайт, 1 ГБайт, 2 ГБайт (работа с этими картами тестировалась). В дальнейшем возможна поддержка карт SDHC. Имена файлов на SD карте в формате DOS 8.3.
Поддерживаемые программатором µProg карты памяти
Разъем внутрисхемного программирования целевого микроконтроллера – это стандартный 6-выводный Atmel ISP коннектор. Однако, из-за того, что программатор питается от батареи, вывод коннектора Vcc (вывод 5 коннектора) был переназначен для доставки тактового сигнала 8 МГц к целевому микроконтроллеру (в случае необходимости внешнего тактирования). Сигнал подается через резистор 10 кОм, и поэтому нет необходимости переделывать стандартный кабель для программирования.
ISP коннектор
ISP коннектор программатора при установке на печатную плату

Стандартный ISP коннектор
Стандартный ISP коннектор Atmel
Программатор имеет режим автоматического определения скорости программирования по внутрисхемному интерфейсу. Поддерживаются 7 режимов со скоростью работы 4 МГц, 2 МГц, 1 МГц, 500 кГц, 250 кГц, 125 кГц и 62.500 кГц. Теоретически, выбирается скорость равная ¼ рабочей частоты целевого микроконтроллера, но это не всегда. При каждой инициализации режима программирования программатор стартует на максимальной частоте и выполняет тест скорости, считывая сигнатурные байты 10 раз. В случае ошибки скорость работы (частота SCK) понижается и операция инициализации повторяется. Если же на самой низкой частоте не удается прочитать сигнатурные байты, то программатор выдает сообщение об ошибке «no answer». Самой вероятной причиной этого может быть слишком большая длина кабеля для программирования.
Обновление ПО программатора
Обновление ПО программатора можно провести двумя разными способами: посредством разъема ISP или с помощью загрузчика с карты памяти.
В первом случае необходимо подключить внешний ISP программатор к разъему ISP программатора µProg и замкнуть перемычку SLF-PRG – в этом случае разъем ISP будет служить для обновления ПО (как в программаторе USBasp).
Во втором случае встроенный загрузчик может самостоятельно обновить прошивку из BIN файла на SD карте. Пользователю необходимо поместить файл обновления с именем 000.bin(переименовать файл обновления в 000.bin) в корневую директорию SD карты. При включении питания программатора дисплей будет чистым, что говорит о том, что файл обновления найден и устройство ждет подтверждения пользователя. Пользователь должен нажать кнопку ВПРАВО для подтверждения обновления ПО. Перепрошивка занимает несколько секунд, по окончанию программатор запускается, выводя приветственное сообщение с текущей версией ПО. Теперь файл 000.bin можно удалить. Если программатор не входит в режим обновления, причиной этого может быть режим, неподдерживаемый SD картой, – просто попробуйте заменить карту памяти.
Для конфигурирования программатора используется файл config.ini, в котором содержится конфигурационный байт. Файл помимо конфигурационных данных содержит описание настроек на русском языке и пользователям не составит труда разобраться в нем.
При первоначальном программировании микроконтроллера программатора ATmega328Pнеобходимо установить следующие Fuse-биты: Ext:07 (расширенный байт), high:D0 (старший байт), low:A2 (младший байт). Это означает: работа от внутреннего осциллятора 8 МГц без делителя на 8, включен выход CLKO, Brown-out детектор настроен на уровень 2.7 В, переход по вектору Reset в загрузчик, размер области загрузчика 4 КБайт, бит EESAVE запрограммирован.
Демонстрация работы программатора
Плата с установленными компонентами
Печатная плата с установленными компонентами
 
Кабель для программирования
Загрузки
Архив с принципиальной схемой и рисунками печатной платы, все системные файлы для SD карты памяти, прошивка микроконтроллера (BIN, HEX) – скачать
Перевод: Vadim по заказу РадиоЛоцман

Комментариев нет:

Отправить комментарий

Создайте свой комментарий.