Представляю вашему вниманию простой прошивальщик.
Делал для себя - нужно было программировать только эти микросхемы и хотелось быстро что-то сМГТФить.
Воть.
Вид для печати
Представляю вашему вниманию простой прошивальщик.
Делал для себя - нужно было программировать только эти микросхемы и хотелось быстро что-то сМГТФить.
Воть.
Да нормально все, кроме того, что в эту мегу вполне можно запихать v-usb и цеплять USB к ней напрямую, а не через свисток. Но и так сойдет.
Для атмеги нужен всего-то однодолларовый низковольтный USBASP, заказанный вместе с полудолларовым USB to TTL UART переходником и самой атмегой у китайцев.
Но да, этакая многоступенчатая ракета из программаторов потребуется, летим навстречу восьмибитному прогрессу :v2_dizzy_roll:
Ну и ещё один плюс - нужно один раз записать ПО в программатор и не устанавливать каждый раз драйвер на новый комп.
ATmega8515 на сайте microchip - In Production. Но можно применять и другие атмеги с 40 ножками. А если вы про 0414 - ну, купил на Авито платы с обвязкой (втч с ТТЛ логикой на панельках) за 50р/шт. :v2_dizzy_biggrin2:
Подумаешь - в местном Радио КР1816ВЕ39 продают. Я недавно шаговиком управлял воронежским КР1816ВЕ31 оттуда же. А, судя по каталогу, советской ТТЛ логики (КР) у них буквально вёдра, так что radio18.ru , если что, по почте отправляют :wink:
- - - Добавлено - - -
Хотя всё-таки уже потребуется установить minicom или типа того, но это не драйвер, у меня он везде.
- - - Добавлено - - -
Так, если что, не получится - скорость железно привязана к 9600 - так информация будет записываться быстрее, чем передаваться.
Да нет, так и нет, фиг с ним с USB. Хотя про скорость не понял, но если что, с libusb в булк-трансферах можно вообще затормозиться с передачей хоть на час, хоть по готовности устройства - все зависит от фантазии автора. Если делать виртуальный ком-порт, то его тоже можно залочить на 9600, подредактировав дескрипторы.
Да короче фиг с ним, какая в сущности разница чем прошивать ПЗУ-хи? Не тумблерами, и хорошо. Atmega умеет лапками дергать - ну и годится под задачу. Древняя не древняя, а в сущности какая разница, чем адрес и данные выставить - хоть 8080, хоть стм32, хотя последнее даже хуже, ибо с уровнями пятивольтовыми на output могут быть проблемы, даже если на five volts tolerant лапы все вешать, для верности еще и лог уровни преобразовывать - ну нафиг. Мега сюда идеально впилилась, имхо. Автор - молодец, пирожок ему в студию.
Раз так, то ладно.
9600 выбран по расчёту, что два Intel HEX символа будут передаваться 208 мс, а запись байта идёт 110 мс - с бодрейтом выше может не прокатить. А ядро Ардуино я использовал втч из-за крутого Serial буфера - можно принять одну 16 байт запись Intel HEX, проверить и записать её, вернуться к приёму, а там уже новая запись почти принята, красота)
Я видел на просторах интернета похожую поделку на ядре 8051 - там данные предварительно записывались в параллельно подключённое ОЗУ объёмом 64КБ, а потом, из-за того, что это ОЗУ отхапало выводы, чтение/запись 27CXXX велись через ВВ55.
Ура :v2_dizzy_roll:
Я эту поделку давно видел на хабре но там она была проще и под рф2/5 на ардуине
Потом если покопаться по форуму то и Evgeny7 делал для эл флкшек... Не новая тема вообщим с 8515 сн340
siemensC35, скорее всего, это была поделка walhi (а может и нет) - см. "See also". Там было два регистра сдвига для адреса (у обычной Уно/Нано Дуни просто не хватает ног) и не соблюдался подъём напряжения питания в режиме записи. Флеши/EEPROMы тоже отдельный вопрос, там не нужно высоковольтное программирование. Тема всё же не новая - тема насущная)
- - - Добавлено - - -
Serg6845, Что-то мне подсказывает, что ваш программатор быстро сМГТФить не получится)
Он делал на базе схемы флешера такое (традиционно из говна и палок):
https://zx-pk.ru/attachment.php?atta...3&d=1322388166
Это тема по разработке флешера, это коммерческий продукт.
Это да, но зато из того что на полу нашёл ;-)
Если покупать детали в ЧиД, то по стоимости будет сопоставимо со TL866 :-)
Но штука забавная.
Не знаю про что вы, я про это
https://m.habr.com/ru/post/247211/
Я так уже пол года не куплю атмега чтобы повторить....
Автор статьи на хабре использует ИМХО дорогущую Arduino Mega да ещё и в связке со SD картой. Присутствие R9…R27 мне не совсем понятно — ATmega на Arduino Mega не имеет встроенных pull up? Зачем pull up в адресе?
- - - Добавлено - - -
DIP40 ATMEGA16A у меня в ЧД стоит 200р., а UART свисток не часть программатора, так что с вами по этому поводу не соглашусь)
:v2_dizzy_heart:
Даа, можно доработать, например, для стираемых W27E257, W27C512.
Можно и не мучаться с высоким напряжением и переделать для CAT28C256 (50р. в Китае), по схемотехнике вообще весело - кварц, UART, шины и готово.
В этих случаях самопрошиваемость и самостираемость пригодится.
Собственно, идея подцепить контроллер к ППЗУ и сказать "ШЕЙТЕСЪ", действительно, не нова. Что сделал я - я взял один из готовых проектов на Nano (см. "See also"), выкинул регистры сдвига в пользу нормальной работы с портами, в соответствии с даташитом стал поднимать Vcc до 6.5V вместе с Vpp, отказался от даже не взлетевшего у меня GUI в пользу проверенного Intel HEX как в PAULMON2 (монитор для 8051) и тем самым придумал фокус с Serial буфером и таймингами. Работа с Intel HEX как бы намекает, что программатор прекрасно подходит и для прошивки микросхем ППЗУ для моих любимых ОМЭВМ на ядре 8051 (КР1816ВЕ31, например), этакий PAULMON2 для ППЗУ.
Но вот что было бы действительно круто - если бы под проект был переделан, например, этот эмуль магнитофона, который записывал бы TAP прямо в сменные 27C и читал бы из них, но существующие возможности программатора сохранил бы. Для записи/чтения двоичного кода z80 можно сделать переключатель TAP/RAW и записывать/читать блок двоичного кода, извлечённый из потока/отправляющийся в поток. Вместо дисплея можно обойтись светодиодами. Можно использовать класс Stream в Arduino. Получилось бы реально крутое устройство, но, например, пока для меня это, конечно, сложновато да и отчасти экономически спорно с решением на SD карте.
Решил доделать для 2716, коих куча. Для 27X16 сделал костыль в виде цанговых коннекторов сбоку, как на фото и схеме в GitHub. Ещё вставил джемпер, чтобы Vcc у NMOS при прошивке не поднималось. На схеме упразднил один резистор при lm317 — вроде, можно и так. Vpp приходится не поднимать выше 24,5В, пока не заменю 1N5817.
Когда стал рыться в прошивке, обнаружил, что боды я считал за байты в секунду :-). Скорость тогда, оказалось, можно выставить и 57600 бод. Ещё что-то было не так с 27c256. Режим для NMOS теперь переключается нажатием "n", при этом для прошивки нужно сделать задержку передачи символов не менее 50 мс — пробовал менять скорость до 300 бод, но почему-то всё равно не успевало прошивать. Успешно опробовал на 2716.
Таким образом, теперь можно прогать РФ5 и вообще кучу отечественной памяти — а вот TL866 не может давать 25В :-) Память планирую использовать в проектах с ВЕ и ВМ.
Двумя светодиодами где-то 380 nm одна микросхема у меня чистится за 3 дня, мне норм.
CodeMaster, потихоньку приближаюсь к варианту Evgeny7 :-)
А у меня Minipro 2716 шьет, а кр573рф2, рф5 коричневая керамика нет. А в чем отличие? Если только в напряжении программирования, то непонятно, почему они не читаются в режиме 2716?
andrews, ИМХО, то, что 2716 должны прошиваться при +25В — только требование стандарта, производитель смог сделать так, что и при +21В шьётся и при +25В не сгорает. Также, ходят слухи, что
2716 = 25v
2716A = 21v
2716B = 12.5v,
что наталкивает на мысль, что диапазон напряжения программирования nmop микросхем действительно зависит от настроения производителя)
Вообще, никто не запрещает отогнуть ножку, поставить на её место заземлённый резистор, чтобы minipro не ругался, и подать вольт этак +26, я бы попробовал.
Читать должно, у всех читает, не смог нагуглить, чтобы не читало.
Вообще интересный проект: https://github.com/walhi/arduino_eprom27_programmer можно ли им шить флэш ПЗУ? A29040B-70 таких у меня много, может на какие-то ретро компы можно применить... Главное, что есть Ардуино такая, только сдвиговых регистров прикупить. На макетке всё делается просто, ZIF панелька имеется)
- - - Добавлено - - -
Прикол в том, что в A29040B 8 независимых секторов по 64 кБайт, каждый может быть стёрт и записан отдельно...
Нет, у walhi только УФ, да ещё и с регистрами. Эта МС создавалась, чтобы прошивать уже внутри какой-либо микропроцессорной системы, то есть как ОЗУ или EEPROM. Я обычно использую систему с PAULMON2 или типа того.
У walhi исходники открыты, можно доработать его проект до любого нужного функционала, мне интересно было бы сделать возможным программирование любых параллельных микросхем и проверку ОЗУ также сделать. Но тут вопрос только в программировании, схема сама по себе не сложная, легко повторить. Делать же автопрошивальшик наверное интересно для тех, кто в большом количестве что-то изготавливает и (или) ремонтирует, модернизирует промышленное оборудование. Можно тему отдельную сделать, если тут я мешаюсь)
Это я и сделал для 8515 (как написано в See also). Также избавился от регистров и от ПО на стороне ПК.
Пара моментов ИМХО стоит внимания. Мне кажется странным использовать Ардуинку с регистрами в готовом приборе. Ещё выше обсуждалась сопостовимость по стоимости с такими штуками, как MiniPro и Willem. Вот.
Ладно... Кстати, вспомнил лежат старые ATmega32 кучка, в планарном корпусе, тоже ног достаточно вроде, можно и без ардуинки с регистрами обойтись. Проверь, можно ли под нее проект переделать)
Willem под LPT и программы для него работают только в старых ОСях. MiniPro у китайцев от 3,5 тыс., но вопрос не в цене даже, интереснее самому спаять)
- - - Добавлено - - -
http://we.easyelectronics.ru/AVR/pec...-644-1284.html
Платка под такие чипы...
вы не это обсуждаете?
https://zx-pk.ru/threads/25150-programmator-pzu.html
:v2_thumb: (MightyCore в помощь)
:v2_thumb:
Кто-нибудь может рассказать о программе для прошивальщика из первого поста? Существует ли она для Windows?
Специальной программы нет, в Windows можно использовать PuTTY (ну и, возможно, стандартный HyperTerminal в старых Windows) — то есть открывается консоль к микроконтроллеру, производится настройка по инструкции, прошивка передаётся копипастой в консоль содержимого hex файла прошивки. Прошивку из bin в hex можно перегнать, например, прогой в See Also, в Windows её также можно найти где-то в недрах Arduino IDE.
Про текущее состояние работ. После НГ переделаю схему на использование джемперов вместо махинаций с 23 и 26 ножками. Прошивальщик точно работает с 2716 и 27C128, если с какими-то ПЗУ не работает — пишите.
А теперь вопрос на засыпку. Расскажите в двух словах, как в ATmega8515 залить скетч из ардуино :)
Или существует файл прошивки в формате .hex?
MightyCore для Arduino IDE
_
Оказывается для прошивки Atmega 8515 нужна папка с MajorCore.
_
Пробовал прошить AM27C256, ПЗУ новая, перед прошивкой проверил на чистоту, также прочитал все было чисто. После вставки в окно терминала НЕХ файла выдал ошибку CHKSUM ERR @ 0х0010, прочитал микросхему: 1я строка прошита правильно, на остальных FF т.е. чисто. Подскажите пожалуйста в чем может быть проблема.
В инструкции есть вот такая запись, перевод от английского:
"а" - 27С16,
"b" - 27С64,
"с" - 27С128,
"d" - 27С256.
Если вы хотите запрограммировать 2716, 2764, 27128 или 27256, нажмите "N" и ограничьте задержку char tx до 100 мс (Ctrl-A T F в minicom).
После выбора чипа нужно нажимать на N ?
Ого, точно, сам себя запутал :v2_dizzy_facepalm:
CHKSUM ERR, скорее всего, означает, что приём данных от компьютера к ATmega произошёл с ошибками.
Можете попробовать уменьшить скорость UART в исходном коде?
Ещё раз извиняюсь за долгое молчание:( (в ЛС сообщения не сохраняются, непонятно, отправил я или нет)
Снизил скорость до 9600, пытался прошить, но опять неудача, забыл выставить нужное Vpp, напряжение оказалось 14,5В вместо 12,5В в результате чип читается как чистый, т.е. сдох.
Чтобы такого не было, сначала хотел добавить в прошивальщик умный импульсный повышающий преоразователь, использующий компаратор АТмеги, но руки не дойдут. Количество обвязки с ним вырости не должно.
CHKSUM ERR возникает, когда АТмега берет из кольцевого буфера UART очередную строчку HEX и видит, что контрольная сумма не сходится.
Это может быть как по причине слишком высокой скорости UART (с которой я немного эксперементировал в процессе, но у меня всё работает), так и из-за микросхемы: прошивальшик автоматически проверяет успешность записи байта - если была неудача, то попытка повторяется ещё несколько раз (выкидывая другую ошибку, если записать совсем нельзя) и продолжая запись после удачи. При обеих причинах кольцевой буфер начинает заполняться слишком быстро и затирать себя с конца, и при проверке контрольная сумма не совпадает.
Ещё компьютер может отправлять лишние символы, не определяющиеся прошивкой АТмеги как пробельные. Не представляю, при каких обстоятельствах такое может быть.
- - - Добавлено - - -
Если байты микросхемы действительно записывались не с первой попытки (такое может быть из-за старости/изношенности), то каждая последующая попытка записи давала бы ошибку на байте со всё бОльшим и бОльшим адресом, так как уже записанные байты прошивальщик не трогает.
Есть у меня одноразовая прошитая АТ27с256, поигрался с ним записывая 00 в адреса с байтами FF, у нее Vpp 13В, после него я ставил AM27c256 забыв уменьшить напряжение, так вот АТ27с256 шьется без проблем.