Универсальный AVR-программатор на Arduino.

LodjiNN
Offline
Зарегистрирован: 25.06.2017

источник :   http://radiokot.ru/circuit/digital/pcmod/72/

 

Универсальный AVR-программатор на Arduino.

Автор: AV_K
Опубликовано 31.10.2016.
Создано при помощи КотоРед.

 

  Как то понадобилось мне позаливать скетч из Arduino IDE в мелкий восьминогий ATTiny85, как правило, для этого используется Arduino с соответствующим скетчем ArduinoISP.  Несколько китайских клонов Arduino Nano у меня имелось, поэтому и использовал их. Все бы хорошо, но мне не недоставало одного вывода. Точнее он имеется у тини (вывод RESET), но чтобы задействовать его как цифровой вход, нужно запрограммировать соответствующий фьюз. С помощью  ArduinoISP это можно сделать только один раз, и последующие попытки заливки скетчей с помощью этого и других программаторов ISP становятся невозможными, поскольку вывод с функцией RESET становится не доступным. Если дальнейшей модификации скетча (программы) не требуется, то и проблем нет, но в процессе разработки какого то устройства требуется неоднократная перепрошивка мк.   Выход из этой ситуации один – использование высоковольтного программатора. Для AVR контроллеров с выводами 8, 14 используется высоковольтное последовательное программирование, а для мк с выводами 20 и больше – высоковольтное параллельное. Я озадачился поиском подобного программатора, но для меня было принципиально важно, чтобы он был на основе Arduino и работал из под Arduino IDE.  Рассматривал вариант использования восстановителя фьюзов для тини, но уж очень хлопотная получается перепрошивка. Это нужно сначала восстановить фьюз, затем перепрошить мк, затем фьюз и т.д. В силу своих скромных способностей в программировании, вариант самому написать скетч для высоковольтного программатора на Arduino отпадал. А вот поиск в инете увенчался успехом.  Спасибо парню по имени Matthias Neerache, который создал для нас этот уникальный софт для ардуино.

  Итак, какие функции умеет выполнять Arduino под управлением этой «подопытной обезьяны» (ScratchMonkey). Из мануала -

 ScratchMonkey использует расширенную версию протокола STK500v2. Он реализует следующие методы программирования:

- ISP (In-Sistem Programming) внутрисхемное программирование использует 4х проводный протокол SPI для программирования и поддерживается почти всеми AVR мк. Главный недостаток – при определенных установках фьюзов может быть не пригодным для использования. В ISP режиме ScratchMonkey работает аналогично встроенному в IDE ArduinoISP программатору. Однако, ScratchMonkey немного более универсальный, поддерживает микроконтроллеры с более чем 128КБ флэш-памяти, и может работать с различными настройками фьзов определяющих режим генератора тактовой частоты мк. Имеет дополнительный выход XTAL (сигнал тактовой частоты), что позволяет запрограммировать мк с настройкой фьюзов на внешний генератор. Кроме того, ScratchMonkey может эмулировать SPI (на те же пины) на более низкой частоте чем аппаратный SPI (Limp Mode), что позволяет программировать мк с внутренним генератором тактовой частоты, настроенным на 128 кГц.

- HVSP (High Voltage Serial Programming) высоковольтное последовательное используется для программирования мк 8 и 14 пин и не зависит от состояния фьюзов. Требует внешний источник 12В и транзисторный ключ для подачи высокого напряжения на RESET пин.

- HVPP (High Voltage Parallel Programming) высоковольтное параллельное используется для программирования мк от 20 пин и выше, не зависит от состояния фьюзов. Также требует внешний источник 12В и транзисторный ключ для подачи высокого напряжения на RESET пин.

- TPI (Tiny Programming Interface) Тини программный интерфейс для мк семейства ATtiny4/5/9/10 (SOT23-6 package). ТПИ использует только 3 вывода, и может работать либо в режиме низкого напряжения или в режиме высокого напряжения. RESET пин может использоваться как обычные линии ввода/вывода.

  Более чем достаточно функций для моих целей. Для начала тестирования составил простейшую схему (рис.1) на основе диаграммм из мануала ScratchMonkey и изготовил на макетке типа шилда для Arduino Nano (клона), Рис.2,3 (только ISP и HVSP режимы). Транзистор любой n-p-n.

01.gif

Рис.1

02.jpg

Рис.1

  03.jpg

Рис.3

 

  Для начала этот программатор нужно “прописать” в ArduinoIDE . Делаем так: в папке ScratchMonkey/hardware/scratchmonkey , находим и открываем файл programmers.txt , копируем из него строки:

scratchmonkey_stk500v2.name=ScratchMonkey (STK500 Mode)
scratchmonkey_stk500v2.communication=serial
scratchmonkey_stk500v2.protocol=stk500v2

scratchmonkey_stk500v2_hvsp.name=ScratchMonkey HVSP (STK500 Mode)
scratchmonkey_stk500v2_hvsp.communication=serial
scratchmonkey_stk500v2_hvsp.protocol=stk500hvsp

 

  Вставляем эти строки в аналогичный файл IDE: arduino-1.6.12/hardware/arduino/avrp/rogrammers.txt. Добавляем к этим строчкам еще по 3 строки (выделены на рис.4), без них не работает. Открываем ArduinoIDE и видим, что добавились два программатора ScrstchMonkey (Рис.5).

 

04.jpg

Рис.4

05.jpg

Рис.5

    В IDE открываем скетч ScratchMonkey.ino и прежде чем залить в Arduino добавим одну строчку. Дело в том, что при высоковольтном последовательном программировании было выявлено, что пин D11Arduino, подающий напряжение питания на мк при обращении к нему остается в 1, а значит программируемый мк остается под напряжением все время, что «не есть гуд».   Я не знаю с какой целью автор это упустил, но при параллелном программировании питание отключается после обращения к мк. Открываем вкладку с файлом SMoHWIF_HVSP.h,  находим функцию Stop() и добавляем строку digitalWrite(HVSP_VCC, LOW) Рис.6.

06.png

Рис.6

   Компилим и заливаем скетч в Arduino (без шилда). Вставляем Arduino в шилд, подключаем к разъему (ISP или HVSP) через переходник Attiny. Для режима HVSP подключаем 12V. В пункте Инструменты/Программатор выбираем соответствующий программатор (Рис.5). В пункте «Плата» выбираем предварительно установленные тини. Как добавить ATTiny в IDE здесь. Открываем в IDE файл скетча для тини и заливаем в мк кнопкой «Загрузка» или «Загрузить через программатор».

   Что бы сделать действительно универсальный программатор AVR микроконтроллеров из Arduino родилась такая схема, Рис.7, реализующая все возможности ScratchMonkey.

07.gif

Рис.7

  Как видим схема гораздо проще, по сравнению с программаторами с аналогичными возможностями. На линии портов установлены ограничительные резисторы 1кОм, с целью предотвращения кз на этих линиях при неблагоприятных условиях. DD2 – dc/dc конвертер на микросхеме ME2149F 5/12V c Aliexpres Рис.8. 08.jpg

Рис.8

Или самодельный на MC34063, Рис.9. 09.png Рис.9

   SA1 включает высокое напряжение и переключает низковольтный и высоковольтный режимы. Светодиоды показывают состояние программатора. Разъем XR1 (Debag) для дополнительной отладки программатора, если что-то пойдет не так и сообщений avrdude не достаточно. Подключается к выводам RX и общий конвертера USB/UART, например к такому, Рис.10:

10.jpg

Рис.10

  На компе запускается еще один ArduinoIDE и включается монитор предварительно выбранного порта. В мониторе будет выводиться информация ввиде как на рис. 11 слева. Расшифровка этой информации также показана на рисунке. Режим отладки «включается» в файле SmoConfig.h, где в одной из строк
#undef DEBUG_ISP
#undef DEBUG_HVSP
#undef DEBUG_HVPP
#undef DEBUG_TPI
#undef DEBUG_COMM
#undef нужно заменить на #define. Залить скетч заново в Arduino. Следует отметить, что процессы чтения/записи в режиме отладки замедляются раз в 100.

11.jpg

Рис.11

При параллельном программировании к разъему HVPP контроллеры подключаются согласно таблице 1 и даташиту. 12_pre.png

Рис.12

Чтобы работали индикаторы и программатор TPI, как заявляет автор, необходимо пропатчить исходники avrdude, заново собрать и скомпилировать.

Кому интересно как это делается можно посмотреть здесь , но сначала  нужно пропатчить ( внести изменения в исходники avrdude). Patch –файл можно найти в папке ScratchMonkey - avrdude.patch.

 

Пропатченные и скомпилированные файлы avrdude.exe и avrdude.conf  вставляются в папки ArduinoIDE вместо штатных файлов. В файл programmers.txt  вставляются строки:

scratchmonkey.name=ScratchMonkey ISP/TPI
scratchmonkey.communication=serial
scratchmonkey.protocol=scratchmonkey
scratchmonkey.program.protocol= scratchmonkey
scratchmonkey.program.tool=avrdude
scratchmonkey.program.extra_params=-P{serial.port}

scratchmonkey_hvsp.name=ScratchMonkey HVSP
scratchmonkey_hvsp.communication=serial
scratchmonkey_hvsp.protocol=scratchmonkey_hvsp
scratchmonkey_hvsp.program.protocol= scratchmonkey_hvsp
scratchmonkey_hvsp.program.tool=avrdude
scratchmonkey_hvsp.program.extra_params=-P{serial.port}

scratchmonkey_hvpp.name=ScratchMonkey HVPP
scratchmonkey_hvpp.communication=serial
scratchmonkey_hvpp.protocol=scratchmonkey_pp
scratchmonkey_hvpp.program.protocol= scratchmonkey_hvpp
scratchmonkey_hvpp.program.tool=avrdude
scratchmonkey_hvpp.program.extra_params=-P{serial.port}

 

Готово. В списке программаторов  IDE должны добавиться три программатора:

ScratchMonkey ISP/TPI

ScratchMonkey HVSP

ScratchMonkey HVPP

При программировании должны работать индикация и TPI программирование.



Так как ScratchMonkey использует avrdude, то он будет работать и с оболочками дуды. Например с AVR8-Barn-O-Mat (барномат), необходимо только в установках указать пути расположения файлов avrdude, тогда при следующем запуске «барномата» в списках программаторов увидим  ScratchMonkey. Оболочки удобны при заливке HEX-файлов.

13.png

 Успехов.

Файлы:
Пропатченная дуда
Схемы

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Почему-то часть картинок у меня отсутствуют :(

kalapanga
Offline
Зарегистрирован: 23.10.2016

ЕвгенийП пишет:

Почему-то часть картинок у меня отсутствуют :(

У меня все проявились, когда я несколько раз страничку обновить понажимал

LodjiNN
Offline
Зарегистрирован: 25.06.2017

ЕвгенийП пишет:
Почему-то часть картинок у меня отсутствуют :(

Потому что мне было лень загрузить  картинки на сервер arduino.ru  и они отображаются по ссылке с сайта-источника статьи. Как только статья перестанет существовать или ее адрес изменится - картинки перестанут отображаться в теме.

http://radiokot.ru/circuit/digital/pcmod/72/13.png

 

Jevega
Jevega аватар
Offline
Зарегистрирован: 27.12.2016

Здравия! В схеме указан транзистор 2SD1783, у нас сейчас трудно доступный. К тому же, непонятна цель применения именно его, ну да ладно. А вот на фотографии платы виден корпус совсем не похожий. Внесите, пожалуйста ясность. И чем его можно заменить?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Б-ть, ну неужто сложно в гугале вбить "аналог 2SD1783" ? 

или надо зарегистрироваца на форуме, чтоб сразу идиотские вопросы задавать?

Админы, сделайте при регистрации проверки на минимальный IQ и адекватность.  90% "ПАМАГИТИ!!!!"  будут отсеяны.  Реально. 

 

Jevega
Jevega аватар
Offline
Зарегистрирован: 27.12.2016

сам-то пробовал многоIQшник? :-) Или корпус ТО-220 от ТО-92 трудно отличить?
А гадить в детсве ещё научился?

Valentinych
Offline
Зарегистрирован: 13.08.2014

Error. 

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

если б ты дебилом не был:  "ДАЙТИ!!! ДАЙТИ!!!" то погуглил и нашел, что это дарлингтон.  Меняеца даже на савецкий КТ829

На, http://paratran.com/2paratran.php?tr=67480  пользуйся чужими мозгами

Jevega
Jevega аватар
Offline
Зарегистрирован: 27.12.2016

На фотографии платы ты такой видишь, болтун который хуже шпиона?
Или в самом деле счтаешь, что кроме тебя писать и читать никто не умеет? Да и глаз к тому же не имеют!
И потом, там дают рекомендации по замене именно 829-го, а не наоборот. У меня их десятка два лежит и ни у одного bст нет более 1200.
Так что волну ты гонишь зря

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а чо, б-ть,  в to-92 корпусах n-p-n дарлингтоны делать перестали? 

ну вот тебе 

https://alltransistors.com/ru/crsearch.php?mat=Si&struct=NPN&pc=1&ucb=50...

Jevega
Jevega аватар
Offline
Зарегистрирован: 27.12.2016

В общем, погавкал - молодец! Получишь орден Сутулова. Продолжай гавкать дальше.
Мне, на сайте заносчивых шавок делать нечего!

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Папутнава ветра в горбатую спину. 

b707
Offline
Зарегистрирован: 26.05.2017

Jevega пишет:

Мне, на сайте заносчивых шавок делать нечего!

пришел - нагадил - и ушел.

И, главное - о чем срачь? Написано же в тексте у автора "транзистор - любой n-p-n"

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

LodjiNN, какие требования 12В по току? Могу я 12 сделать преобразователем от USB? Хочу такой же, но чтобы был только один разъём.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Voodoo Doll пишет:

LodjiNN, какие требования 12В по току? Могу я 12 сделать преобразователем от USB? Хочу такой же, но чтобы был только один разъём.


А на Рис.7 что?
Второй найдёте ?

Pyotr
Offline
Зарегистрирован: 12.03.2014

Voodoo Doll пишет:

... какие требования 12В по току?...

чтоб нагрузку в 1 кОм держал)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Pyotr пишет:

Voodoo Doll пишет:

... какие требования 12В по току?...

чтоб нагрузку в 1 кОм держал)

12mA что ли?

Pyotr
Offline
Зарегистрирован: 12.03.2014

ЕвгенийП пишет:

12mA что ли?

Получается что так...    Кроме резистора в 1 кОм к источнику 12В ничего не подключено.

DeGlucker
Offline
Зарегистрирован: 23.07.2014

А на кой хрен при таком токе ставить дарлингтон ???

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Собрал этот программатор, довольно симпатишно вышло:)

Всё шьёт без проблем , провел все три режима -обычный ISP, высоковольный последовательный и высоковольтный паралельный.

Подробности и печатка в теме  на коте.

wu4k@mail.ru
Offline
Зарегистрирован: 09.09.2017

Уважаемый - как то потерялся в теме, имеется 7 Atmega328p с залочеными 6 hig битом (отключеный последовательный порт). Нарвался на стойтью на радиокоте и заинтересовала меня эта приблуда. Но Ардуино я не особо изучал и в теме есть некоторые сомнения по схеме, не могли бы вы пояснить - пожалуйста...

 

На этом форуме в самом верху принципиальная схема (Рис-1) имеет 2 выхода XR3 ISP  и XR2 HVCP я так понял это выходы? 

 

Если да тогда остается вопрос - по какому принципу происходит программтирование atmega328p-pu ? Т.е. скетч из архива залил в arduino pro mini.

 

 

wu4k@mail.ru
Offline
Зарегистрирован: 09.09.2017

т.е. получается нужно просто подсоеденить к XR2 на макетке согласно Рис-1 ATmega328p и все автоматом????

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

wu4k@mail.ru, это мультирежимный программатор, а не автоматический восстанавливатель фузов. Вам лучше сюда пойти.

wu4k@mail.ru
Offline
Зарегистрирован: 09.09.2017

 это мультирежимный программатор - что это значит? 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

wu4k@mail.ru пишет:

 это мультирежимный программатор - что это значит? 


Пока dimax отошёл кофе попить я помогу ему ответить.
Один режим - SPI программирование, другой - высоковольтное.
Когда в программаторе и то и другое - то он по крайней мере двухрежимный.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

trembo, допустим у меня есть окирпиченная mega8 (reset сделан gpio). Могу ли я выбрать в среде Arduino режим HV и прошить стандартный загрузчик, со стандартными настройками fuses? Или надо какие-то дополнительные колдунства по приведению SPI порта в работоспособное состояние, и только потом выставлять фьюзы на загрузчик и шить загрузчик? Всмысле, возможно ли непрошивающуюся одним программатором (USBASP например) микруху прошить этим, прямо в IDE, одной кнопкой?

(переводя вопрос wu4k)

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Сбросить "неправильные" фьюзы.
Сбросить можно или программатором или "сбрасывателем".
Сбрасыватель проще собрать на коленке чем программатор.
Потом делайте всё что угодно через ИДЕ

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

вот за что я любил ПИКи, фьюзы в коде выставляй и хоть обшейся, правда в 12 серии надо не забывать про калибровочную константу, но и та востанавливается на раз.

wu4k@mail.ru
Offline
Зарегистрирован: 09.09.2017

Подскажите - там по ссылке которую вы привели - там есть схема. Можете рассказать как по этой схеме происходит сброс фьюзов? У меня мысля сложилась предварительно так (я не уверен) что в имеющий процессор на схеме с помощью программатора заливается прошивка, которая уже содержит алгоритм сброса. Остается что? Тока ставить atmega328p и н автоматом сбрасывает фьюзы?

Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018
На схеме программатора ошибочно указан неправильный номинал транзистора VT1 (прицепился при рисовании схемы, автор забыл исправить и приносит извинения), должен быть 2SC1815, может быть заменен на любой маломощный n-p-n транзистор, в том числе на КТ3102 или КТ315. При параллельном программировании с указанными ограничительными резисторами (1к) возможны ошибки, в этом случае нужно уменьшить номинал до 200 Ом, или вообще их не ставить. 
 
В архиве исправленная и дополненная статья, а также пропатченная дуда для ScratchMonkey и для FT232R Bit-bang программатора.
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jaeger, а вы работали с этим программатором в HVPP режиме? Я на коте писал про глюки, но почему-то никто не отписался. Резисторы на 620 Ом ставил, но есть сильное подозрение, что не в резисторах дело, т.к. я смотрел все сигналы осциллографом и там были вполне нормальные прямоугольники.. :-\

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

xDriver пишет:

вот за что я любил ПИКи, фьюзы в коде выставляй и хоть обшейся, правда в 12 серии надо не забывать про калибровочную константу, но и та востанавливается на раз.

а с моим программатором PicProg проблем с пиками не было совсем

Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018

dimax пишет:

Jaeger, а вы работали с этим программатором в HVPP режиме? 

Буквально "наднях" обнаружил Ваше сообщение на Коте и тему на этом форуме относительно этого программатора, поэтому и решил попробовать параллельное программирование. Подключил ATmega8. Шлейф сантиметров 10.Программатор не смог определить даже сигнатуру, т.е. дуда не опознавала мк. У меня прогер собран навесным монтажом, перепаивать резисторы очень хлопотно, поэтому я сначала замкнул резисторы на линии CTRL, а на шине DATA оставил. Сигнатуру стал определять правильно, но верификация не проходила, т.е. чтение и запись были с ошибками. Тогда я убрал резисторы и с шины DATA, все стало читаться и писаться без ошибок, неоднократно проверял запись, чтение, в том числе и фьюзов, все четко, ошибок нет. С резисторами 200 Ом у меня пока нет возможности проверить. Ограничительные резисторы 1к я подсмотрел у "ATmega FuseBit Doctor", хотя в схеме STK500 этих резисторов нет. Вот теперь не знаю что делать с этими резисторами.
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jaeger, отпаял резисторы, запаял перемычки, но к сожалению не помогло. Ошибки как сыпались, так и сыпятся :( Фронты нормальные, 12 вольт тоже не проседает. Видимо в чём-то ещё дело. Придёться собрать аналогичный экземпляр на макетке, что бы исключить проблемы конкретной сборки.  Вообще судя по молчанию народа на коте сдаётся что никто этот программатор не собирал, по крайней мере его полную версию.

Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018
Привет Dimax! Что значит "сыпятся ошибки" - неправильно считывается сигнатура, не проходит верификация после записи или после чтения в файл? Какой у Вас таргет (мк, который программируете), какая длина шлейфа, бывает ли, что чтение/запись проходит без ошибок? У меня после замыкания резисторов ошибок не наблюдалось. Пробовал  заливать различные прошивки, читать и записывать фьюзы, читать сигнатуру - ошибок не получил.
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jaeger,.  Шлейфа у меня нет, просто переходник (см. рисунок #21). Аналогичный переходник и на DIP. тестировал в основном на DIP переходнике. Ставлю мегу8  почти всё хорошо, изредка дудка ругается на ошибку проверки фузов, ошибок чтения вроде нет.  Ставлю мегу 328 -фигвам. -вместо сигнатуры  мусор. Брал другую мегу328 -тоже самое.

Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018

Попробую на меге328, но только после выходных.

Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018
Попробовал мегу328 в режиме HVPP. Мега на плате Про_Мини. Результат отрицательный, т.е. сигнатуру не определил правильно ни разу. Позже на сайте автора скетча ScratchMonkey вычитал, что "XTAL1 not available, so no HVPP", а в ответах автора на вопросы (машинный перевод):
"К сожалению, HVPP может быть довольно привередливым, чтобы получить право из-за большого количества сигналов. Делать это с чипом, припаянным к доске, еще сложнее. Одним из распространенных осложнений является то, что если плата использует кристалл, который, скорее всего, будет подключен к XTAL1 и почти наверняка мешает подключенному сигналу HVPP".
Отдельного мега328 у меня пока нет, чтобы протестить.
 
Dimax, автор скетча, вроде как, утверждает, что тестил успешно мегу328 в дип корпусе. На картинке на коте, Вы подключаете таргет, через разъемные соединения (на каждой линии 3 разъема). Попробуйте припаяться к меге и сократить число разъемов на линии до одного. Все это хлопотно, но я неочень доверяю китайским проводам с наконечниками.
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jaeger, для дип я позже сделал переходник. Разъёмы цанговые, контакт очень хороший.

Собссно в нём же и мегу 8 тестировал. Меге 328 сбрасывал фузы на дефолтные, это никак не повлияло. У меня 2 шт рабочих мег328, ни один ни другой не работают в этом прогрмматоре.   Я так понимаю, что в моей конкретной реализации нет проблем, проблема в самой программе. Видимо автор кода не выдерживает нужные тайминги.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

В хороших программаторах таймиги  реализованы аппаратно, есть такое, но вот в том же ChipProg-48 для этой микросхемы реализовано только два режима, обычный и ISP Mode, неспроста ведь... а для attiny13а есть вдобавок и ISP HV Mode

amphiton
Offline
Зарегистрирован: 28.04.2017

Вообще паралельный режим не пашет, Схему делал с номиналами 500 ом ,ни атмегу 168 ни 328 ни разу не определил , микросхемы впаивал в TQFP32 переходник

 

amphiton
Offline
Зарегистрирован: 28.04.2017

схему дип переходника скиньте плиз, раз нарисовали,)

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

 amphiton, да пожалуйста. Тут всё в одном файле. Хотя с другой стороны зачем вам переходник, если самые ходовые мк всё равно не будут работать..

Waldemar
Offline
Зарегистрирован: 28.01.2019

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

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Waldemar, вы только картинки смотрели?  В #20  была ссылка на печатку. А если всю тему ещё внимательней прочесть, то можно понять что это по сути  г@вно, а не прогамматор, и собирать его не нужно.

Waldemar
Offline
Зарегистрирован: 28.01.2019

dimax,дело в том что начал собирать урезаную версию стк-500(чтобы восстановить неправильно установленные фьюзы), но при этом запорол микроконтроллер . Поэтому хочу воспользоваться этим программатором ,для оживления стк 500. Выбора у меня нет , для оживления микроконтроллеров ,фьюз доктор не помогает)

Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018
Не такое уж и "г@вно" этот программатор. Основные преимущества перед USB программаторами и реаниматорами это:
- не нужен программатор для его создания;
- простейшая схема, проще уже не куда;
- ардуину можно использовать в других проектах;
- работает даже в китайской макетке;
- реанимировать, например, Atmega328 проще простого.
 
 
Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018
       Проблема была в том что программатор не распознавал, а соответственно и не прошивал ATmega168/328 в параллельном режиме, хотя мегу8 в этом режиме прошивал. Некоторые не захотели заморачиваться в поиске проблемы, обозвали программатор "г@вном" и не рекомендовали к повторению.
Но, как оказалось, не все так плохо и "дело было не в бобине", а в компиляторе. К сожалению автор скетча программатора не указал в какой версии Arduino IDE он компилил, отсюда и возникшие проблемы. Было проведено тестирование программатора с прошивками компилированные в разных версиях IDE.
 
Исходные данные: 
Arduino Nano (328P), загрузчик - optiboot, программируемый контроллер (target) ATmega328P в DIP,
режим - параллельный.
 
Результаты:
IDE 1.8.8, GCC 5.4.0, 11212 byte, не работает
IDE 1.6.12, GCC 4.9.2, 11222 byte, не работает  
IDE 1.6.5-r5, GCC 4.8.1, 12712 byte, работает 
IDE 1.0.6, GCC 4.3.2, 13938 byte, работает
 
Для тех кто не хочет заморачиваться с компиляцией.
Качаем готовый набор софта: https://cloud.mail.ru/public/2mKq/e6rYkd76G
где: ScratchMonkey.hex - прошивка для ардуины
avrdude.exe и avrdude.conf специально пропатченный софт для ScratchMonkey и BitBang программаторов. 
 
Далее качаем оболочку (GUI) AVRдуды:
http://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/ (можно и другие оболочки использовать).
Меняем штатные avrdude.exe и avrdude.conf на соответствующие файлы из набора. Запускаем GUI Avrdudess.
Заливаем прошивку в ардуину:
 
 
Далее подключаем мк и выбираем нужный программатор:
ScratchMonkey - обычный SPI режим, TPI - для мелких мк;
ScratchMonkey in high-voltage serial programming  mode - высоковольтный SPI для малоногих (<20)мк;
ScratchMonkey in parallel programming mode - высоковольтный параллельный режим для многоногих мк.
Жмем на кнопку Detect, должен определиться мк.
 
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jaeger, залил ваш хекс - работает! Про "програматор-г@вно"  беру слова назад - можно делать ;) Напишите ещё в ветке радиокота, что б народ знал.

b707
Offline
Зарегистрирован: 26.05.2017

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