1. Простой программатор для AT89C2051 "на скорую руку" с использованием ATMega8

  2. AT89C2051

    ATMega8

Наконец внял просьбам в комментах и выкладываю всё, что относится к программатору AT89C2051, которым прошивал термометр из этого поста.

Схема, прошивка переделана с ATMega32 на ATMega8, сегодня проверено в железе еще раз, всё работает и шьётся. В программаторе за ненадобностью не реализованы функции Verify, Blank check и установка Lock bits. Функция Verify избыточна, т.к. проверка происходит по ходу записи.

В комплект поставки входит принципиальная схема программатора, проект для IAR с исходниками (на C) и сама прошивка для ATMega8, проект в IntelliJ Idea с исходниками программатора (на Java).

Обмен программатора с компьютером происходит через последовательный порт (USART in и USART out на схеме). Т.к. на моём комтьютере COM-портов нету, я использовал преобразователь RS232-USB, собранный на FT232RL (отсюда). Cкорость обмена с компьютером по COM-порту 9600-8n1.

Принципиальная схема контроллера

Принципиальная схема программатора

Принципиальная схема в формате Splan7: (доступно зарегистрированным пользователям)

Исходный код прошивки

Версия v2.0 от 15.03.2014: (доступно зарегистрированным пользователям)

Прошивка

Версия v2.0 от 15.03.2014: (доступно зарегистрированным пользователям)

Фюзы для меги необходимо выставить следующие:
H-Fuse: 0xDD
L-Fuse: 0xE3

Частота внутреннего генератора при таких фюзах - 4MHz.

Прошивал мегу с помощью широко известного программатора USBasp софтом Khazama AVR Programmer.

Протокол программирования AT89C2051 описан в даташите, ссылка на который есть ниже.

Программатор

Архив с проектом программатора в IntelliJ Idea

Версия v2.0 от 15.03.2014: (доступно зарегистрированным пользователям)

Для работы с COM-портом из программы на Java, необходимо использовать вот эту библиотеку. Инструкция по установки есть внутри в файле INSTALL.

Эта библиотека расчитана на работу в 32-bit среде Java, поэтому на 64-bit Windows надо отдельно ставить 32-bit Java и запускать из-под неё, иначе будем получать сообщение "Can't load IA 32-bit .dll on a AMD 64-bit platform thrown while loading gnu.io.RXTXCommDriver".

Дисклаймер: Всё это добро предлагается "как есть", Автор не отвечает за полную или частичную неработоспособность изделия, не берет на себя никаких обязательств по поддержке или развитию проекта. На вопросы буду отвечать по мере возможности и при наличии свободного времени.

Готовый JAR с зависимостями можно скачать здесь

Даташиты

ОБСУЖДЕНИЯ

Аватар пользователя awas5

Этот программатор можно подключать на прямую к СОМ порту?

АТ89С2051

Аватар пользователя leog

Теоретически - да. Практически - я не пробовал, у меня нет порта, подключал через usb переходник.

Аватар пользователя sergo

Этот программатор + ПО позволит мне СЧИТАТЬ с микроконтроллера прошивку и сохранить её?

Аватар пользователя leog

Позволит считать и вывести дамп в консоль.
Сохранение в файл не доделано.

Аватар пользователя chinese_macleod

Доброго времени суток.
Не совсем понял, как запускать софтварную часть программатора. Только из среды IntelliJ Idea, ехе-шника нет?
И еще, можно ли транзисторы заменить отечественными КТ315-КТ361?

Аватар пользователя leog

Доброго!

Exe-шника нет, Вы правы, запускать придется из Idea, или той IDE, в которой удобно.

Могу сделать jar, тогда можно будет запустить из командной строки, но предполагалось, что может потребоваться что-то дописать или поправить, т.к. в текущем виде программа имеет минимальный функционал.

Насчет транзисторов - можно попробовать поставить любые маломощные. Надо проверить (можно без меги), что на выходе - коллекторе VT7 напряжение равно 0 при подаче высокого уровня на провод, идущий с 13 ноги меги. При подаче низкого уровня на выходе должно быть напряжение 5 или 12 вольт. Переключение 5/12 вольт управляется уровнем с ножки 12 меги.

Если напряжения не соответствуют, то надо подобрать R19 и R23

Аватар пользователя chinese_macleod

Благодарю за развернутый ответ.
Да, если Вас не затруднит, выложите jar, это вещь более привычная.

В текущий момент я взялся за схему адаптера TAFE и нашел древний комп с LPT-портом. А суть в том, что на работе есть очень древняя схема с AT89c2051, которая давно снята с производства и нуждается в ремонте (в т.ч. извлечение прошивки с целью резервирования контроллера).

В любом случае, спасибо за Ваш скромный труд:)

Аватар пользователя leog