USBAsp for Parallel Programming — это вариант программатора USBAsp, дополненный возможностью программирования в
высоковольтном параллельном режиме. Проект основан на исходниках USBAsp от
dioannidis (
https://github.com/dioannidis/usbasp). Из него взята вся обработка USB-пакетов, но функции программирования по SPI заменены на функции параллельного высоковольтного программирования.
Назначение
Позволяет работать с fuse-битами и прошивками микроконтроллеров AVR, у которых
заблокирована возможность прошивки по ISP (например, отключён fuse-бит SPIEN).
Поддерживаемые типы AVR и реализованные функции
| Тип AVR | Описание | Реализованные функции |
|---|
| Полная шина управления | ATmega48/88/168/328/8515/8535/16/32/128/2560 и др. (28+ ног) | Чтение ID, чтение/запись fuse/lock, стирание, чтение/запись flash, чтение EEPROM |
| Объединённые сигналы | ATtiny2313/2323 и др. | То же |
| Последовательное HV | ATtiny25/45/85 и др. (8-ног) | То же + запись EEPROM (для остальных типов запись EEPROM не реализована из-за постраничного режима) |
Особенности реализации
- Запись flash оказалась нетривиальной, так как при параллельном программировании младший и старший байты слова записываются только вместе (в отличие от последовательного режима).
- Функции программирования по шине TPI оставлены, но не проверялись (должны работать).
- В планах — добавить работу с калибровочными байтами.
Аппаратная часть
| Компонент | Описание |
|---|
| Микроконтроллер | ATmega16 (можно адаптировать под ATmega8535/32/64/644 и др. с таким же или большим количеством выводов) |
| Питание 12В | Повышающий DC-DC преобразователь на MC34063A (можно использовать готовый модуль или внешний источник) |
| Транзисторные ключи | Для управления напряжениями 12 В (Reset/VPP) и 5 В питания программируемого МК |
| Разъёмы | Параллельный HV-разъём, ISP-разъём (для прошивки программатора и для работы в ISP-режиме) |
| UART | Выведен для отладки |
| Перемычка Reset | Для прошивки программатора (см. схему) |
Программное обеспечение
- avrdude (консольная версия или оболочки: SinaProg, Khazama, Avrdudess и др.)
- Скорость SCK не влияет на работу.
- Fuse-биты для прошивки программатора прописаны в makefile.
Переключение в ISP-режим
Чтобы использовать программатор как обычный USBAsp, необходимо заменить прошивку (файл в папке software).
Файлы для загрузки
Полезные ссылки проекта: