Автономный программатор AVR.
Введение.
Работать нужно с комфортом, но это не всегда получается. Реальность вносит свои коррективы. Пришлось как раз заниматься серийным программированием микроконт- роллеров, у заказчика на объектах. Требовалось заменить программу т.к. по недосмотру отгрузили устройства с диагностической программой за место штатной. Требовалось приехать на объект с программатором и ноутбуком, разобрать устройство, подключить программатор (JTAGICE mkII), заменить прошивку, собрать устройство обратно. Вопрос возник в процессе уже после нескольких итерация, и не давал покоя: Таскать с собой набор в виде ноутбука и программатора ради одной операции ? Требовался программатор+ПК в виде одного устройства. автономных программаторов не дал положительных результатов. Вот тогда и родилась идея создать программатор удовлетворяющий своим потребностям. При этом программатор необходимо было сделать быстро и из подручных средств. Идея и часть исходного кода была позаимствована с сайта we.easyelectronics.ru Сверхмобильная прошивалка AVR по JTAG. Спасибо автору Dominikanez за статью. |
Реализация.
За основу программатора была взята универсальная макетная плата на микроконтроллере STM32,
ЖКИ индикатор 4 х 20 символов, 4 кнопки, подходящий корпус.
В результате получился программатор который решает следующие задачи:
Принцип работы.
1. На персональном компьютере подготавливается образ для AVR микроконтроллера.
2. Полученный образ загружается в программатор через RS-232 по средствам протокола x-modem.
3. Программатор размещает полученный образ(ы) в виде файла(ов) во внутренней флеш памяти
(FAT16, 256Кб).
4. Оператор подключает программатор к плате с AVR микроконтроллером.
5. Оператор производит выбор необходимой прошивки при помощи клавиш и наблюдая результат
работы на индикаторе программатора.
6. Оператор производит запуск на программирование устройства, с последующим визуальным
контролем результата выполнения операции на дисплеи программатора.
Описание.
Устройство является автономный программатором микроконтроллеров AVR т.е. позволяет производить
запись программы в память микроконтроллера без участия ПК. Устройство производит программирование
микроконтроллеров через JTAG интерфейс.
Устройство позволяет производить следующие операции:
Программатор построен на микроконтроллере STM32F103Z. Часть внутренней flash памяти микроконт-
роллера выделена под ДИСК, на котором хранятся прошивки. Программатор имеет на передней панели
текстовый индикатор, а также кнопки управления для взаимодействия с пользователем.
Устройство имеет в своем составе консоль, для диагностики, обслуживания устройства, загрузки новый
программ и т.п.
Программатор поддерживает следующие микроконтроллеры: ATMEGA128, ATMEGA640, ATMEGA162.
При желании можно добавить новый микроконтроллер в список поддерживаемых.
Исходный код.
Исходный код устройства выложен на GITHUB. Софт написан на языке Си, компилятор IAR.
Список поддерживаемых микроконтроллеров представлен в файле: jtag.c, в структуре
avr_signature_st
const avr_signature_struct avr_signature_st[] = { {"ATmega162", 0x1e9404, 64}, {"ATmega128", 0x1e9702, 128}, {"ATmega640", 0x1e9608, 64} };
Каждый микроконтроллер описывается структурой avr_signature_struct.
Все предельно просто, добавление нового микроконтроллера не должно составлять труда.
Устройство содержит внешний ком порт который является консолью программатора, и служит для
взаимодействия пользователя с программатором.
Параметры подключения к консоли следующие: 115200 8N1.
Консоль поддерживает следующие команды:
help или ? | — Печать списка команд поддерживаемых консолью. |
xmodem <filename> | — Загрузка файла прошивки по протоколу X-modem. |
mkfs |
— Создание файловой системы внутри flash памяти микроконтроллера(диск),или удаление текущего содержимого диска. |
free | — Печать размера свободного мести на диске. |
ls | — Печать списка файлов диска. |
rm <filename> | — Удаление файла. |
jtag <filename> | — Программирование микроконтроллера программой <filename>. |
Список консольных команд представлен в файле consol.
Подготовка новой прошивки для загрузки в программатор.
Перед загрузкой прошивки в программатор необходимо пропустить прошивку (в виде HEX файла)
через конвертер. Исходный код конвертера для ПК представлен в дереве исходников по ссылке fwa.
Конвертер написан на языке Си и предназначен для компиляции в среде VisualStudio.
Конвертер представляет собой консольную программу, которой в командной строке передаются все
необходимые параметры.
Параметры запуска конвертера следующие (на примере ATMEGA640):
fwa -I r640.hex -O r640.bin -S 1E9608 -F 99E0FD
Разбор параметров:
-I r640.hex | Входной HEX файл прошивки. |
-O r640.bin | Выходной файл, для загрузки в программатор. |
-S 1E9608 | Device Signature для ATMEGA640 из документации на микроконтроллер (ВНИМАНИЕ:программатор проверяет сигнатуру перед программированием !) |
-F 99E0FD | Состояние FUSE, необходимо обязательно задавать.![]() |
Загрузка подготовленной прошивки в программатор.
Программирование микроконтроллера.
Рисунок 1. Внешний вид программатора.
Рисунок 2. Внешний вид индикатора в момент включения устройства.
Рисунок 3. Внешний вид индикатора устройства в режиме выбора файла программы.
Рисунок 4. Основная плата устройства.
Рисунок 5. Устройство вид внутри обе панели.
|
|
|
|
|
Ch3016 мини программатор это многофункциональный автономный программатор, поддержка 24 93 25 eeprom / spi flash / AVR MCU / Data Flash, также может быть подключен к компьютеру в автономном режиме, поддерживает устройство чтения карт памяти TF, сохраняет файл
Многофункциональный высокоскоростной программатор Ch3016 для 24 93 25 eeprom/spi flash/AVR MCU/Data Flash
FN дополнительная клавиша меню, вы можете настроить процедуру программирования, настройки проекта программирования сохраняются, извлекаются из файла программирования карты памяти TF, данные хранятся на карте памяти TF материнской подложки, устанавливают язык тела, устанавливают зуммер настроек яркости экрана, устанавливают время заставки экрана, время загрузки.
Если вы хотите использовать в автономном режиме, вы можете использовать USB-кабель для зарядки питания программатора Treasure Ch3016 или USB-кабель для подключения источника питания USB-порта компьютера.
Volume Ch3016 очень высокоскоростной мини-программатор, портативный и практичный, мощный по сравнению с традиционными программаторами. Он станет хорошим партнером в вашей работе!
Шаги использования продукта:
Автономная работа:
Сокровище обязанности соединения или соедините кабель USB компьютера, электропитание к программатору, ботинок, см. экран приветствия Ch3016.
Кнопка многофункционального меню FN: набор микросхем F1; настройка работы F2; настройка файла F3; установка номера F4; рабочий набор F5; копия чипа F6; считыватель F7; виртуальный последовательный порт F8; язык F9; файловый браузер F11; F12 другие опции; F13 О
F1. Набор микросхем
F1 для входа в подменю, есть три варианта: выбор чипа, идентификация чипа, обязательная идентификация.
При нормальных обстоятельствах чип SPI FLASH [чип может использоваться для автоматической идентификации моделей чипов].
Если вы знаете тип чипа или чип 24,93 EEPROM, чип может использовать [выбор] для выбора.
[Выбор чипа]: Тип 1 — выберите тип чипа, например, 24 EEPROM, 25 EEPROM, 93 EEPROM, SPI FLASH, DATA FLASH, STM32, AVR и тому подобное.
После выбора информации о модели чипа нажмите OK для подтверждения. Появится сообщение Конфигурация контактов, нажмите OK.
В верхнем левом углу экрана с текстовой подсказкой проект работает. Запись выполнена успешно, в случае успеха в левом нижнем углу дисплея отобразится число +1.
F2: рабочие настройки
I Rep ID обнаружение
E обозначает стирание
W представляет запись
V представляет чек
L представляет собой замок
Процедура по умолчанию — I-E-W-V-L, чип обнаружения [ID] — [Стирание чипа] — [запись данных] — [Проверка данных] — [Блокировка].
Пользователи также могут настроить свои собственные шаги. Например, без проверки ID, прямое стирание-запись-проверка E-W-V.
Операция шага вычитания: выберите I, нажмите Sign up или Sign down, когда я стал символом — это освобожденный шаг. Если я хочу заменить стертый, это E.
Ф3. Настройки документа
Нажмите OK, чтобы войти в подменю: открыть файл, прочитать файл, удалить файл.
Ф4. Настройка номера
Состояние OFF, выключите серийный номер. Правый символ может открыть индикатор состояния. Можно задать количество байт, размер терминала, адрес, значение.
F5. Инженерный набор
Нажмите OK, чтобы войти в подменю: Открыть проект, сохранить проект, Сохранить как, Удалить проект.
F6. Чип Копия
[Чип] смысл Duikao субстрата матери [копировать].
Микросхема материнской подложки размещается в позиции 8 зеленого фиксатора. Пустой чип помещается на зеленое 8-позиционное фиксирующее гнездо.
Запись выполнена успешно, в левом нижнем углу дисплея число успеха будет +1. Продолжая материнскую подложку Duikao, нужно подобрать фишки на 8 позицию, а затем вставить пустую фишку (материнская подложка не двигается).
Ф7. Читатель
Каждый Ch3016 оснащен картой памяти на 128 МБ. Пользователи могут запрограммировать необходимые файлы (формат BIN, HEX), хранящиеся на карте памяти. Программирование в автономном режиме при выполнении передачи файлов, чтобы работать.
Лист основных данных или данные, считанные устройством записи Ch3016, сохраняются на карте памяти для последующего использования.
F8. Виртуальный последовательный порт
F9. Язык
Можно установить английский, упрощенный китайский и традиционный китайский. Что касается позднего показа увеличения языковых требований, вы можете связаться с нами.
Ф11. Файловый браузер
Просмотр файлов карты памяти.
Ф12. Другие варианты
Вы можете установить яркость экрана, время заставки, время загрузки, громкость звукового сигнала.