Обсуждаем контроллеры компании Atmel.
Ответить

Re: Программатор AT89C2051

Вс июн 04, 2023 22:18:16

Собрал данный программатор. Который день бьюсь , но результат практически нулевой. С переходником на CP2102 соединение на скорости 9600 бот/сек без проблем. Индикация напряжений не верная, сигнатура не читается, чтение с выдачей ошибки - "$" не является действительно целым числом, процесс записи происходит успешно, но в контроллер ничего не пишется. С переходником на FTDI232 читается сигнатура, чтение по прежнему с шибкой, записи прошивки не происходит, величины измеренных напряжений не адекватны реальным значениям и каждый раз разные при измерении. В общем не знаю что дальше делать. Почему у одних работает , а у меня нет, что я делаю не так ? Прошу помощи у тех у кого этот программатор работает.
Пробовал работу программатора на разных ОС : Windows 10 x64, Windows 7 x 64 и x32, Windows XP x32. Результат описанный выше.

Re: Программатор AT89C2051

Пн июн 05, 2023 09:38:44

Увидел на саите Кота схему программатора AT89C2051...

Лет десять назад спаял похожую схемку, только на tiny2313 и вторым этажом панель для 2051. И программку написал выполняющую команды терминала: Signature, Read, Erase, Write, Lock, Verify. Платка получилась 3х4 см аж.)

Re: Программатор AT89C2051

Пн июн 05, 2023 15:10:25

Лет десять назад спаял похожую схемку, только на tiny2313 и вторым этажом панель для 2051. И программку написал выполняющую команды терминала: Signature, Read, Erase, Write, Lock, Verify. Платка получилась 3х4 см аж.)
Очень желал бы ознакомиться с Вашим проектом для повторения. Месяц ушёл на борьбу с этим проектом, но мои усилия не привели к положительному результату. Жду Вашего сообщения а ЛС.

Re: Программатор AT89C2051

Ср июн 07, 2023 13:11:59

Решил проблемы с данным программатором. Причина - переходник USB-UART на CP2102, который по скорости работы не стыковался с управляющей программной оболочкой исполнительного файла (работал слишком быстро).
При использовании переходника на FT232 в свойствах: USB serial Port\ Параметры порта\Дополнительно \установить время ожидания 128 мсек (подобрать, чтобы не было ошибок чтения).
В свойствах дополнительные параметры для CP2102 не доступны.
Иногда бывают проблемы с чтением прошивки МК, но после нажатия на кнопку и повтора чтения процесс заканчивается успешно.
Проверил работу программатора на реальном устройстве. Всё пишется, читается, верифицируется успешно. Устройство с прошитым на этом программаторе контроллером AT89C2051 работает.

Re: Программатор AT89C2051

Вт июн 27, 2023 13:54:04

Добрый день, уважаемые коты.
Случайно нашел эту ветку форума.
Рад что есть интерес к программатору, однако расстроен что имеются сложности с повторением.
Впредь постараюсь помочь если смогу. А пока выношу на ваш суд доработанную версию программы.
Изображение
https://disk.yandex.ru/d/Ho5wGGEA-tSpBg
Она была существенно переписана:
- устранена ошибка индикации измерения напряжения
- осуществлен перехват некоторых ошибок HEX файлов
- устранено отсутствие Com порта если он подсоединен после запуска программы
- добавлен русский язык
- добавлена поддержка темной темы
- добавлена проверка контрольных сумм строк при импорте
- экспорт файла теперь в HEX формате
- добавлена возможность масштабирования
- исправлены некоторые мелкие недостатки, напимер: уменьшен перечень скоростей связи итп.
По возможности учту ваши замечания и пожелания. А также отвечу на вопросы.
И несколько моментов не освещенных в статье:
- Ошибка на схеме не указано соединение ножки 21 AREF с +5v VCC
- по умолчанию в прошивке и в скетче указана скорость связи 4800
- прошивка не проверялась и фьюзы не указаны, так как прошивал через Arduino
- проверку связи с программой можно осуществлять с голой Atmeg-ой подключив только GND,VCC,RES,RXD,TXD
- Atmega8 применена как наиболее дешевая и из того что было, лучших результатов на мой взгляд можно добиться применив Atmega88, Atmega168 или Atmega328, так как они имеют улучшенный внутренний генератор и стабильнее работают с Com портом на более высокой частоте.
С уважением mig958.

Re: Программатор AT89C2051

Пт июн 30, 2023 02:48:33

Здравствуйте, mig958
Спасибо Вам за проделанную работу по данному программатору.
Реализовал его на печатной плате 53 х 53 мм с ATmega 8A в корпусе TQFP32. На плате расположены USB переходник, повышающий DC/DC, ZIF панелька для AT89C2051. Элементная база - SMD.
В схеме заменил биполярные ключи по питанию на полевые.
Долго мучался с ним, но теперь все в основном работает хорошо. К сожалению Вы не указали в статье какой переходник USB-UART вы применили. Наверное какой был такой и применили. Я тоже подумал, какая разница, лишь бы работал. Но, как выяснилось много позже, разница оказалась весьма существенной. Причина, оказалась в не стыковке управляющей программы с переходником USB - UART на чипе CP2102. Соединение по COM -порту устанавливалось без проблем, а всё остальное не работало. С переходником на FT232 после подбора времени ожидания программатор заработал, но часто возникала ошибка чтения прошивки и космические показания измеренных напряжений. После установки переходника на чипе CH340E все заработало практически без проблем. Разве что напряжение чтения (5V без знака +) показывает весьма странно. К пяти вольтам прибавляются десятки вольт. Например, 15, 25...65, 95, иногда 05.0 В. Напряжение программирования +12 V показывает верно. Из анализа скетча понял, что измерение напряжений это сервисная функция не влияющая на основную работу программатора. Причем интересно, что измеренные напряжения несколько отличаются от того в какой Windows открыта управляющая программа. Протестировал программатор в Win10 x64, Win7 x64 и x86, Win XP SP3. Во всех ОС программатор работал нормально по всем основным функциям (кроме напряжения). Еще была проблема с одним hex файлом. Программа выдала предупреждение о недопустимом размере файла и что он будет преобразован в процессе записи. Верификация показала ошибку. После редактирования файла (убрал всего один FFFF в конце) предупреждение исчезло, верификация прошла успешно, устройство с прошитым на этом программаторе контроллере работает нормально.
Теперь о новой версии программы PrgAT89C2051.exe
ОС Win10 x64 программа не видит порт к которому подсоединён программатор. Пробовал по разному. Окно с номером порта пустое. Соединения нет и поэтому протестировать программу не удалось. С ProgrammerAT89C2051.exe соединение без проблем на скорости 9600 бот.
Последний раз редактировалось Alex21 Пт июн 30, 2023 20:51:55, всего редактировалось 1 раз.

Re: Программатор AT89C2051

Пт июн 30, 2023 13:04:05

Удалось протестировать PrgAT89C2051.exe под Win7 x64. Соединение на скорости 9600 бот без проблем. Напряжение чтения 5 В (без знака +) иногда сбоит - может быть .03 вместо 5.03 В. Напряжение +12.0 В нормально. Проверил: запись, чтение, стирание, верификацию - всё работает правильно. Загрузил свой проблемный hex файл прошивки. Предупреждения нет, запись и чтение прошли успешно, верификация показала ошибку с пояснением того, что неправильно в этом файле. Может нужно сделать так, как раньше - предупреждать сразу после импорта о возможной проблеме, а не после того, как произошла запись и чтение?
Экспорт дампа в hex формате работает правильно.
Забыл сказать, что лучше в качестве стабилизатора +5/+12 применить LM317, которая специально предназначена для этого.
В целом, по-моему, это лучшая версия программатора из просмотренных мной при поиске решения чем запрограммировать AT89C2051.
После устранения недостатков вообще всё будет отлично.
Запись прошивки в AT89C2051 (при скорости Com - порта 9600 бот) за 8,4 сек, чтение 5,7 сек.

Re: Программатор AT89C2051

Сб июл 01, 2023 19:01:45

Добрый день Alex21.
Спасибо за отзыв. Рад что в принципе у Вас все получилось.
Как Вы верно подметили, я переходником USB - UART не заморачивался, считая, что от него ничего не зависит. Я использовал переходник на чипе CH340G и CH340C других у меня не нашлось.
По поводу измерения напряжений:
- это ни на что не влияет;
- измерение я ввел для настройки (так как напряжение на выводе программирования появляется импульсно а настроить напряжение программирования было желательно, я добавил кнопку с командой подачи напряжения программирования постоянно пока она включена, ну и для понта измерил, чтобы иметь какую то обратную связь);
- особо ее не тестировал и там закралась ошибка преобразования при незначащих нулях округления и только в программе её не исправить прийдется изменять скетч, тем более измерение зависит от напряжения питания нужно будет применить усовершенствованный способ измерения;
Программу я тестировал на Win11 x64, Win10 x64, Win7 x64 на всех она вела себя нормально (писалась она под x32).
По поводу HEX файла: сейчас программа проверяет адрес последнего записываемого байта. Если он превышает 2047 и при этом или сигнатура не читалась или показала , что это 2051, выдается предупреждение, лишние байты при записи обрезаютя и при верификации получается ошибка. Также он проверяется на ошибки:
- Отсутствие метки ":";
- Контрольные суммы строк;
- Ошибки если в строке не число;
Во всех этих случаях импорта не происходит и запись невозможна.
По поводу новой версии...
В ней я также изменил метод формирования списка портов, так как часто сначала запускал программу а затем подключал USB. В новой программе чтение портов происходит дважды : при запуске и при щелчке на комбобоксу порт. При этом в первой версии список формировался внешним компонентом, а в новой я просто читаю зарегистрированные порты в реестре Windows.
Но у меня проблем не было, хотя именно на Win 10 я и не проверял. Если что не так то исправлю.
По поводу проблемного hex файла, если не сложно выложить его, посмотрю в чем проблемма.
Да и по поводу стабилизатора вариантов море можно вообще собрать всё на макетке с внешним питанием от ЛБП и например ключами на PC817, тем более напряжение может быть в довольно больших пределах.

Re: Программатор AT89C2051

Вс июл 02, 2023 00:41:55

Да, с переходником вышла засада. CP2102 у меня используется в программаторе STK500 и всё работает, как часы. Полагал, что и здесь не будет проблем. Я просто не мог предполагать, что это так принципиально для ProgrammerAT89C2051.exe. Когда всё получилось, был в шоке от того, как всё просто разрешилось и сколько времени было потеряно зря. Ну, да ладно, бывает. Хорошо то, что хорошо заканчивается.
По поводу измерения напряжений - не стоит ничего переделывать, тем более, что это никак не влияет на основные функции программатора. Установка напряжений делается один раз при настройке.
Спасибо за разъяснение принципа проверки hex файлов. Проблемный hex файл я отредактировал и прошивка успешно работает в устройстве. Автор прошивки (2006г) использовал какой-то нестандартный древний линкер, который давал лишний размер. Для редактирования использовал программу Hex Editor Neo.
mig958, прошу Вас решить проблему соединения по СОМ-порту под Win10 x64 для PrgAT89C2051.exe. Win11 пока не планирую использовать.

Re: Программатор AT89C2051

Вс июл 02, 2023 18:22:02

Добрый день Alex21.
Я кажется разобрался с проблемой соединения по СОМ-порту. Я работаю во всех операционках под админом, а Вы наверно работаете под учеткой пользователя. Я это не учел и открывал реестр на чтение и запись, а это возможно только под администратором. Теперь я подправил программу и открываю только на чтение, так что должно заработать. Подправил также измерение напряжений, будет измерять немного точнее, если будет желание можно перезаписать Мегу8. Даю ссылку на программу и скетч.
https://disk.yandex.ru/d/ERwRbuabv2t0Lg

Re: Программатор AT89C2051

Пн июл 03, 2023 23:37:26

Здравствуйте, mig958
Alex21 писал(а):а Вы наверно работаете под учеткой пользователя.

Да, Вы совершенно правы. Открыл от имени администратора и всё заработало.
Перепрошил Мегу8 из приложенного скетча. Большое спасибо Вам за предоставленный материал.
Увидел, что Вы существенно переработали измерение напряжений.
Измерение напряжения 5В не зависит от номиналов делителя напряжения.
Делитель используется для измерения +12 В. Результаты измерений практически не изменяются от количества попыток измерения.
Подогнал для соответствия фактическим значениям напряжений:
return (1212.0f/izm); //Vcc = (Uион*1023/АЦП). Было при 1255: 5,19 В и 12,5 В. Стало при 1212: 5,01 В и 12,05 В.
Получил 5,01 В, а затем подобрал резистор (у меня вместо подстроечника постоянный резистор) для 12,05 В.
Проверил по всем кнопкам работу программатора - ОК. Понравилось, что теперь дамп в .hex, и его можно без проблем использовать для прошивки.
Единственное, чего не хватает для полного функционала данного программатора - пункта установки битов защиты.

Вот что у меня получилось. На правой фотке слева сверху переходник на CH340 на самодельной плате.
Джампер для отключения питания USB при программировании Atmega, в принципе, лишняя деталь.
Видны следы поисков решений в виде порезов дорожек. Плата изготавливалась методом ЛУТ.
Изображение Изображение

Re: Программатор AT89C2051

Пн июл 10, 2023 19:38:59

Хочу подтвердить, что промучался с программатором также в значительной мере из-за переходника на CP2102, который исправен и использовался для перепрошивок модем. Применил на чипе CH340G и проблема соединения ушла. Но вот напряжение 5 вольт новая программа по прежнему показывает и 5.04 и 75.3 и 95.4. Ось W10 64.

Re: Программатор AT89C2051

Пн июл 10, 2023 23:34:22

Со старой прошивкой Atmega8 показания будут не верными в независимости от версии программной оболочки.
Для правильных показаний 5 В нужно использовать последнюю версию программы и прошивку из приложенного mig958 скетча.

Re: Программатор AT89C2051

Вт июл 11, 2023 01:31:32

у меня каким-то образом последняя прошивка получилась такая (я мало понимаю в этих ардуинах, если что не так, то сорри)
FQ=2MHz Internal
Вложения
PrgAT89C2051_n3_with_bootloader.hex
(17.69 KiB) Скачиваний: 43
PrgAT89C2051_n3.hex
(13.39 KiB) Скачиваний: 35

Re: Программатор AT89C2051

Чт июл 13, 2023 17:29:27

Да, действительно с новой прошивкой показания напряжения стабильны. Но у меня все-таки первый замер напряжения показывает , точнее ничего не показывает. А после повторного нажатия на кнопку напряжения показания стабильны и все время показываются. микросхемы программирует . спасибо.
Ответить