Часть 1. Основные характеристики, поддерживаемые режимы и принципиальная схема программатора
Для работы программатора требуется наличие карты памяти SD с системными файлами и директориями. Карта, кроме того, содержит файлы с расширением hex и bin для прошивки целевого микроконтроллера и файлы txt, в которых содержится конфигурационный байт для программирования Fuse- и Lock-битов, конструкция которых будет рассмотрена в третьей части описания. Важным системным файлом является файл config.ini, в котором содержатся конфигурационные данные программатора.
Для включения программатора нужно удерживать кнопку LEFT. О включении сигнализирует появление заставки на дисплее с отображением текущей версии ПО, которая через некоторое время исчезает, после этого мы можем использовать меню управления программатора. С помощью кнопок UP и DOWN мы выбираем опции меню, с помощью кнопки RIGHT – входим в выбранный пункт меню или подтверждаем выполнение той или иной операции, LEFT – выходим из пункта меню или отменяем выполнение операции.
Функции программатора (меню управления):
- Flash (операции с Flash-памятью):
- запись;
- чтение;
- верификация;
- EEPROM (операции с EEPROM):
- запись;
- чтение;
- верификация;
- Fusebits (операции с Fuse-битами):
- запись;
- чтение;
- верификация;
- установка заводских значений;
- Lockbits (операции с Lock-битами):
- запись;
- чтение;
- верификация;
- стирание кристалла;
- Settings (Установки):
- автоматическая верификация;
- автоматическое стирание;
- показывать анимацию;
- показывать ход процесса программирования;
- типы файлов.
Описание функций
Write (Запись) – запись данных в выбранную память целевого микроконтроллера. Необходимо выбрать файл из списка. При операции с Fuse- и Lock-битами, конфигурационные байты находятся в файле с расширением txt.
Read (Чтение) – чтение данных из выбранного типа памяти целевого микроконтроллера в файл. Файл создается автоматически, в соответствующей директории на карте памяти. Формат имени файла x.yyy, где x-последовательный номер файла и yyy – расширение (bin или hex). Имя файла будет отображено после сохранения. Осуществляется чтение всего объема памяти микроконтроллера, независимо от того сколько реально значимых данных. В случае чтения Fuse- и Lock-битов, данные (конфигурационные байты) сохраняются в файл с расширением txt.
Verify (верификация, проверка) – сравнение данных в памяти целевого микроконтроллера с данными хранящимися в выбранном файле. Результатом данной операции является сообщение «Pass» (данные идентичны) или «Fail at x» (ошибка по адресу x), где x – адрес первого байта, в котором обнаружено расхождение в данных. В случае с Fuse- и Lock-битами, сравнение происходит с конфигурационными байтами в файле с расширением txt.
Default (Заводские установки) – сброс Fuse-битов к заводским установкам.
Chip Erase (Стереть кристалл) – внутренняя команда стирания всей памяти микроконтроллера и сброса Lock-битов.
Описание установок (меню Settings)
Auto Verify (автоматическая верификация) – включение данной опции позволяет автоматически проводить проверку данных после записи в память целевого микроконтроллера. Значение может быть On (включено) или Off (выключено). Данная опция касается только операций с Flash и EEPROM памятью микроконтроллера, Fuse- и Lock-биты считываются всегда после операции записи.
Auto Erase (автоматическое стирание) – опция, позволяющая применить команду стирания памяти целевого микроконтроллера, всегда перед операцией записи в память. Операция применима только для Flash-памяти целевого микроконтроллера. Исключение составляет случай, когда мы точно знаем что область памяти, в которую мы будем писать, уже очищена и мы имеем некоторые данные в конце этой памяти (загрузчик, bootloader). Отключение этой функции вызовет перезапись данных без операции стирания, и, если файл подготовлен правильно, область загрузчика не будет затронута.
Show Anims (показывать анимацию) – опция включает отображение анимации после каждой операции, в зависимости от результата выполнения. Анимация может быть отменена нажатием кнопки LEFT. Реализуется последовательным воспроизведением BMP файлов с SD карты памяти из соответствующей директории, поэтому пользователи могут самостоятельно изменить анимационные картинки. Формат фалов анимации BMP, разрешение 84×48 точки, монохромные изображения (2 бита).
Prog bar – ход процесса программирования / чтения / верификации. Данную функцию можно включить или выключить. Следует заметить, что включение функции замедляет скорость работы программатора в некоторых режимах.
File types (типы файлов) – позволяет выбрать тип файла с которым будет работать программатор. Применима при операциях с Flash- и EEPROM памятью, и, в зависимости от выбора, только HEX или BIN файлы будут отображаться в при открытии списка файлов.
Результаты тестирования скорости работы
Тестирование проводилось на целевом микроконтроллере Atmega644A с рабочей частотой 25 МГц, частота тактирования интерфейса SPI (SCK) – 4 МГц, программирование Flash память объемом 64 КБайт, скорость работы программатора 16 МГц.
- Файл BIN, отключено отображение индикатора работы: запись из файла – 5.1 с, чтение в файл – 4.4.
- Файл BIN, включено отображение индикатора работы: запись из файла – 5.1 с, чтение в файл – 5.0.
- Файл HEX, отключено отображение индикатора работы: запись из файла – 12.5 с, чтение в файл – 11.6.
- Файл HEX, включено отображение индикатора работы: запись из файла – 12.5 с, чтение в файл – 12.2.
Как видно, максимальная скорость программирования целевого микроконтроллера достигается при работе с BIN файлом, т.к. длина файла – это длина неформатированных данных. Чтение же HEX файла должно выполняться полностью, с вычислением его длины, а для записи в HEX файл необходимо форматировать данные и вычислять контрольную сумму для каждой строки. Все это занимает много времени.
Индикатор работы программатора не замедляет процесс программирования, если память целевого микроконтроллера программируется постранично (как в тестовом случае). Если же программирование целевого микроконтроллера ведется побайтно или происходит чтение его памяти, которое всегда выполняется побайтно, включение индикатора может значительно замедлить процесс.
Часть 3. ПО, файлы на SD карте памяти, обновление ПО, демонстрация работы
На английском языке: µProg - tiny, fast, portable AVR programmer with SD. Part 2. Usage, Function description, Speed tests
Перевод: Vadim по заказу РадиоЛоцман
Комментариев нет:
Отправить комментарий
Создайте свой комментарий.