audiohobby.ru audiohobby.ru

Прошивка микроконтроллера в ЦАП-ах серии AH-Dх.

Для прошивки микроконтроллера нам понадобится USBasp программатор с переходником 10-pin to 6pin.

Для прошивки микроконтроллеров AVR мной обычно используется программа AVRDUDE.  Отличается она широким спектром поддерживаемых программаторов и микроконтроллеров. Кроме «родных» устройств от Atmel она поддерживает и любительские устройства, не поддерживаемые самой AVR Studio, к примеру используемый нами программатор USBAsp.

Сначала подключим наш программатор к ЦАП-у (в примере AH-D5). Будьте внимательны, подключаем, как показано  на картинке.

Сначала выбирается из списка используемый миконтроллер, программатор USBasp и приступаем настройке.

Далее я рекомендую установить фьюз биты в наш микроконтроллер. Обычно по умолчанию ATmega48/88 сконфигурированы на работу на частоте 1 или 8 Мгц от внутреннего генератора. Я рекомендую снизить частоту до 1Мгц, для снижения лишних помех и наводок. Конфигурация фьюзов представлена ниже.

Далее выбираем файл прошивки и нажимаем кнопку «Программирование».

При прошивке микроконтроллера работающего на частоте <= 1Мгц иногда возникает ошибка. Появляется она из-за того, программатор не может автоматически перейти в режим медленного программирования. Для перевода в медленный режим необходимо замкнуть на программаторе перемычку JP3.

Во вложении вы можете скачать архив с AVRDUDE и драйвера к программатору.

Включение BOD (Brown-out detection)

Также можно отказаться от внешнего супервизора, так как ATmega48/88 имеют встроенную схему обнаружения пониженного напряжения (BOD), которая контролирует уровень напряжения питания. Для установки уровня 2.7в установите «Fuse Hight Byte» как показано на изображении ниже:

Возможные проблемы

1) Я рекомендую выполнять прошивку, когда МК запитывается от своего стабилизатора на плате устройства (без подачи внешнего питания с программатора на ЦАП, джампер выбора питающего напряжения на программаторе снимается). 

Если вы все таки решили шить с подачей внешнего питания, то убедитесь, что выбрана опция 3.3в.

Кроме этого на многих программаторах с ali китайцы сэкономили на входной и выходных емкостях бортового стабилизатора 3.3в, поэтому для стабильной прошивки потребуется напаять навесом выходную емкость номиналом 0.1-1мкф, аналогично предлагаю запаять емкость прямо на переходнике 10-pin to 6pin (VCC to GND).

2) Если при прошивке получаете ошибку 

«avrdude.exe: ошибка: включение программы: цель не отвечает. 1 avrdude.exe

: ошибка инициализации, rc=-1»

а) Обновляем прошивку вашего программатора. 

или

б) Также хочу отметить, что в последнее время в ЧИП-ДИП-е продаются микроконтроллеры Atmega88PA с конфигурацией фьюзов для работы с внешним тактовым генератором. Это противоречит документации производителя для значений по умолчанию. Если закупались в указанном магазине, пытаемся подцепить внешний клок и поменять конфигурацию фьюзов.

в) bytes of flash verified

 

Например, при успешной прошивке D16 Pro вы должны увидеть "<размер прошивки> bytes of flash verified". Если вы получаете сообщение об успешной верификации и при этом bytes of flash verified, проверяем сначала файл прошивки.  Пустым он точно быть не должен, если файл оказался битым скачиваем архив заново. Если файл корректный, разбираемся с вопросом обновления прошивки вашего программатора, поисковик в помощь. 

Вложение:
avrdudeprog33.zip 1 Мбскачан 645 раз
+16
0
ATAineri ATAineri 4 года назад #
Насколько я понял, в ваших платах под программатор используется разъём IDC-6M?
-1
e_niknik e_niknik 4 года назад #
Подскажите, если я указанной программой и программатором сделаю операцию «чтение» для Flash у прошитой Atmega88 , то должен ли полученный файл, скажем «out.hex», полностью совпадать с файлом прошивки, которым ранее прошивался этот чип (какой программой и программатором прошивался ранее мне неизвестно)? Или совпадение не обязательно и может зависить от режима предыдущей прошивки (типа к примеру — память чипа ранее не полностью была очищена, а режим «чтение» считывает всю доступную на чипе память)?
0
caleb caleb 3 года назад #

Вообще как бы если fuse лок биты не ставились по идее должна совпадать с тем что ранее зашивалось.

0
AL72 AL72 3 года назад #

Перешел сюда по ссылке из «Модуль индикации для аманеро». А где обещанные прошивки?

0
admin admin 3 года назад #

Прошивку с поддержкой работы ИК пультов и OLED дисплеев искать в статье Владимира, поправил ссылку.

0
Red_Hugh Red_Hugh 3 года назад #

" Во вложении вы можете скачать архив с AVRDUDE и драйвера к программатору."

А где это вложение? На странице не нашел.

0
caleb caleb 3 года назад #

На старом сайте все было, добавят.

emon emon 3 года назад #
Комментарий удален
0
admin admin 3 года назад #

Вложение потерялось при переносе сайта, добавил

0
OniX OniX 2 года назад #

Помогите пожалуйста! Спаял цап AH-D6 v2.1. Хочу прошить микроконтроллер программатором, но нигде не могу найти файл прошивки! На странице самого цапа тоже нигде найти не могу!

0
admin admin 2 года назад #

как нету 

Приватное вложение:ah-d6-firmware-v1-5.zip 5 Кбскачан 148 раз

Приватное вложение:ah-d6-firmware-v2-1-atmega88-1mhz.zip 6 Кбскачан 191 раз

для авторизованных пользователей должно быть видны вложения к статье 

audiohobby.ru/articles/vysokokachestvennyi-cap-ah-d6-versija-2-h.html

0
OniX OniX 2 года назад #

Ой, точно! Я просто не был зарегистрирован, спасибо :)

MC MC 2 года назад #
Комментарий удален
LampCos LampCos 2 года назад #
Комментарий удален
+1
streametch streametch 1 год назад #

Возможно кому-то пригодится распиновка разъема для AH-D6.1

streametch streametch 1 год назад #
Комментарий удален
+3
9pixel 9pixel 8 месяцев назад #

Здравствуйте,

при прошивке МК при помощи программы AVRDUDE v3.3 из архива и программатора USBasp с Aliexpress под Windows 10 64бит столкнулся с ошибкой «Библиотека libusb0.dll не найдена». Драйвер libusb v1.2.4 для USBasp устанавливал в соответствии с инструкцией из архива.

Устройство было обнаружено, но МК не прошивался и постоянно выскакивала системная ошибка приведенная выше. После поиска в интернете, нашел простое решение, скачав программку Zadig v2.8 https://zadig.akeo.ie/

На самом деле проблема в том, что драйвер libusb по версию 1.2.6 не поддерживается Windows 8, 8.1 и 10 и рекомендуется установить v1.2.7.3

Возможно данное решение кому-то поможет и съэкономит время потраченное на поиски другого решения.

Прилагаю скриншоты с краткими пояснениями.

Подключаем программатор к порту USB и запускаем программу Zadig. После этого из пункта меню Options выбираем List All Devices.

Далее из списка ниже выбираем программатор USBasp.

После этого в правом поле находим драйвер libusb-win32 (v1.2.7.3) и жмем на кнопкуInstall Driver ниже. После того как драйвер установится и устройство успешно будет найдено системой можно приступать к прошивке МК.

Устройство находится системой как libusb-win32 devices 

Надеюсь, что данное описание так же кому-то пригодится и поможет.

0
Death51 Death51 7 месяцев назад #

Дошли руки до прошивки контроллера. Чудо не случилось) Не смог прошить. В дудке вылазит ошибка :

Программатор куплен на алиэкспрессе. По ходу со старой прошивкой. Под рукой программаторов нету, кроме СН1341А. Скачал в интернете на него самопальную прогу для прошивки Atmega контроллеров по SPI, итог — USBasp программатор прошивается, если верить самопальной программе СН341, но толку ноль, дудка всё так же ругается. Заказал с рук ещё один USBasp с новой прошивкой. Посмотрим, как дела пойдут.

0
YPol YPol 7 месяцев назад #

Выше есть картинка, как должен определяться виндой USBasp программатор в диспетчере устройств. Если не определяется, надо устанавливать драйвер для него, там же на картинке в постах выше есть полная инструкция как поставить драйвер libusb-win32 (v1.2.7.3) с помощью программы установки драйверов Zadig. 

После этого разбираетесь с дудой :-) AVRDUDE, внимательно, в соответствии с положением ключа подключаетесь комплектным кабелем (который хорошо бы предварительно прозвонить на отсутствие простых кз\хх) и пытаетесь прочитать ATMEG-гу, например на вкладке Fuses, потому как их все равно придется проверить и установить в соответствии с инструкцией по прошивке. Дальше вся информация есть в этой статье.

0
Death51 Death51 7 месяцев назад #

Все процедуры выше проделывал. Скажем так, сделал всё, кроме прозвонки шлейфа. Может с ним какие-то нюансы. Но думаю врядли. Пробовал считать Atmegu — одно и тоже ругательство, как в скрине предыдущего сообщения.

В виндоус всё определяется, как положено — USBasp. Дудка его видит. Пробовал разные драйверы через программу Zadig — итог один и тот же, ругается. Я даже на двух разных компах пробовал, на одном Win10, на другом Win7.

+1
YPol YPol 7 месяцев назад #

1.Шлейф прозвонить на соответствие обязательно.

2. Убедиться, что на атмегу подано питание, кстати как? C USBasp, 3,3 или 5 в, или там перемычка питания снята, и контроллер питается от стабилизатора платы на которой он запаян, проверить это обязательно.

3. На какой частоте пытаетесь читать\шить 1 или 8мГц? Проверить, можно прейти на 1 мГц, на программаторе следует установить перемычку J3.  

ИМХО, если все верно, думаю менять атмегу, желательно из другого источника.  Эту не выбрасывать, возможно у нее fuses сконфигурированы под внешний такт.

0
admin admin 7 месяцев назад #

МК может быть с конфигурацией фьюзов на внешний генератор. ЧиД этим отличился, такую партию продавал.

0
Death51 Death51 7 месяцев назад #

1. Прозвонил, полный порядок.

2. На атмегу подано 3.3В с USBasp. Перемычка стоит на USBasp.

3. Пробовал на обеих частотах. Устанавливал перемычку J3. Результат одинаковый — ругательство.

Надо было мне сразу сказать, что атмега куплена на алиэкспрессе. Думаю попал на палёнку. Теперь буду заказывать у официалов. Выпаивать будет сложновато. Всё вокруг запаяно.

Кстати, ещё одно доказательство, что атмега палёнка, это то, что я сегодня попробовал её подключить к программатору СН341А и прочитать — в итоге программатор написал, что девайс не обнаружен. А если подключить к нему USBasp, то он видит атмегу8 и без проблем шьёт её.

Вообщем, скупой платит дважды))) Теперь мне едет ещё один USBasp и придёться заказать новую атмегу88.

0
Death51 Death51 7 месяцев назад #

Получил новый USBasp с последней прошивкой. Ничего не изменилось, всё те же ругательства дудки. Теперь жду оригинальную атмегу)

Кстати, мой программатор СН341А отлично прошил USBasp.

0
Death51 Death51 7 месяцев назад #

Получил новую заведомо оригинальную ATmega88PA-AU. Впаял её. Чуда не случилось( Всё тоже самое. Дудка ругается и ничего не считывает. Получается, что я зря ругал Алиэкспресс. Дело тут в чём-то другом. Полистал интернет, есть много упоминаний, что люди не могут прошить именно  ATmega88PA-AU. У меня теперь вопрос к тем, кто прошил МК — Какие у Вас атмеги на борту?

Есть возможность купить ATmega88-20AU. Она почти в два раза дороже выше упомянутой. Не подскажите в чём отличие? Стоит ли её покупать и надеяться, что её увидит USBasp?

Не думал, что так тормознусь на прошивке МК, прям беда конкретная)))

rucrim rucrim 7 месяцев назад #
Комментарий удален
0
VKhrychikov VKhrychikov 7 месяцев назад #

Насколько помню, ATmega88-20AU умеет 20 МГц тактовой частоты 

0
alex3 alex3 7 месяцев назад #

У меня все МК с Алика всегда шились без проблем и работали. Даже откровенно сомнительные(без точки маркирующей 1 пин, например). Попробуйте поискать в своем городе человека который сможет вам помочь. Может проблема не в железках а в софте или неверных действиях.

0
Pushok62 Pushok62 7 месяцев назад #

У меня с али нормально работают МК, купленные давно. В последнее время все покупки МК неудачные, присылали какую-то некондицию. Наверное, просто неудачные покупки...

0
Pushok62 Pushok62 7 месяцев назад #

Попробуйте кварц к ней подвесить, вполне возможно, что у неё fuse-биты под него установлены, такие в ЧиД попадались.

0
Death51 Death51 7 месяцев назад #

Это последняя надежда) Уже перебираю платы, ищу кварцы. По результату отпишусь.

0
rucrim rucrim 7 месяцев назад #

Чудес не бывает. — Диспетчер устройств этот драйвер у вас присутствует?

0
Death51 Death51 7 месяцев назад #

Да, всё нормально. У меня два программатора USBasp. Они друг друга видят и без проблем прошивают. То есть, с драйверами и работоспособностью самого программатора всё в порядке. Пробовал на атмегу88 подавать внешнее питание (не с программатора), всё тоже самое.

0
Pushok62 Pushok62 7 месяцев назад #

Неплохо было бы прозвонить соединения всех 6 контактов от разъёма программатора на плате ЦАП до соответствующих пинов МК, а также отсутствие замыканий между этими пинами.

0
9pixel 9pixel 7 месяцев назад #

день добрый,

У меня как раз atmega88pa-uа, куплена в маузере. Прошилась с первого раза. Фьюзы выставлены как на скриншоте в статье Андрея. Прошивал точно таким же программатор с али как и у Вас. Питание на самом программаторе было отключено и контроллер питался от ИП ЦАПа. Еще джампер на программаторе я установил в низкоскоростной режим.

0
Death51 Death51 7 месяцев назад #

Вообщем, это какая-то мистика. Подцепил кварц на 12 МГц, конденсаторы на 16пФ, всё, как в даташите. Итог — всё тоже самое:( 

Разъём 6пин прозвонил — всё до ножек атмеги доходит, кз между пинами нету. 

Куда копать? МК куплены в двух разных местах и по итогу одно и тоже. Странно как-то.

Покупать новый МК ATmega88-20AU и пробовать?

Прикрепляю фото моего ЦАПа.

И отрезок с даташита по подключению кварца.

0
exellent13 exellent13 7 месяцев назад #

Попробуйте снять сборку R26 и прошить контроллер. Может АК4493 что то к земле подтягивает без своего питания.

0
admin admin 7 месяцев назад #

Снимать не обязательно, шьется прекрасно и со сборкой, но главное чтобы не было там нигде проблем с монтажом, это прозвонить.

0
admin admin 7 месяцев назад #

1) Керамика блокировочная по питания атмеги стоит?

2) Как шьете с подачей 3.3В с программатора или питание с платы ЦАП?

3) Добавьте фото, чтобы было видно как подключаете

0
Death51 Death51 7 месяцев назад #

С монтажем резисторной сборки порядок. Никаких кз нету. У меня весь монтаж цапа проверен под лупой. Нигде никаких соплей нету)

1. Стоит.

2. Пробовал и с программатора и от лабораторного БП. От стабилизатора на плате ЦАПа не пробовал. 

3. Вечером попытаюсь выложить.

+2
e_niknik e_niknik 7 месяцев назад #

Может керамика в плате на ножках Атмеги (reset, питание) коротит (у меня был случай коротыша треснувшей керамики в питании, но у AK)? В принципе, для ясности и экономии времени, взять первую отбракованную Атмегу (а потом может и другую) и на макетке сваять схему подключения только пинов программатора (возможно и кварца) и проверить возможность программирования, чтобы исключить влияние возможных ошибок в плате ЦАП.

0
9pixel 9pixel 7 месяцев назад #

вот так выглядит оригинальный МК

0
Death51 Death51 7 месяцев назад #

Видите, у Вас MEGA88PA-U, а у меня MEGA88PA-AU. Сто процентов есть какие-то внутренние различия.

0
9pixel 9pixel 7 месяцев назад #

А что означает треугольник в маркировке МК перед Atmel? Такое ощущение, что МК какой-то специализированный или я ошибаюсь?

0
Death51 Death51 7 месяцев назад #

Этого я не знаю. Да, действительно стоит треугольник. Надо попробовать погуглить.

+4
Death51 Death51 7 месяцев назад #

Ну что ж… Вот и развязка моей истории. Победил проблему. В сотый раз убеждаюсь в словах Админа, что всему виной монтаж!!! В моём случае, звёзды сошлись ну просто фантастически. Проблема была в резисторе Р30 — 10 кОм (цепочка RST). Я решил просто его проверить, а вдруг… И тут действительно это «вдруг» случилось. Он оказался 10 Ом, вместо 10 кОм. Впаял 10 кОм и вуаля… Всё обнаружилось и прошилось без единой задоринки. 

Немного своей предыстории. Все резисторы, перед впайкой в плату, были мной проверены мультиметром. Ни единого ошибочного резистора не обнаружил. Но…!!! Единственный резистор, который я не проверял, это Р30)))) Я его запаивал самым последним и почему-то доверился магазину, мол сто штук безпроблемных, значит и с этим всё нормально и так впаял. Вот такое бывает. И оказалось, что это единственный номинал, с которым прогадал магазин. 

Теперь о самих МК. Те МК, что куплены на Алиэкспрессе, полностью похожи на МК форумчанина 9pixel, которые куплены в маузере. Так что, можно смело покупать и не переживать. Вот они

И вот реальное их фото

Всем огромнейшее спасибо за отзывчивость!!! Продолжаю двигаться дальше)

0
alex3 alex3 7 месяцев назад #

Поздравляю с решением проблемы! Маркировка резистора какая была? Мне китайцы бывало присылали смд-резисторы с неверной маркировкой.

0
Death51 Death51 7 месяцев назад #

Рассмотрел маркировку — Х10 написано. Вроде бы это и есть 10 Ом. Резистор прецизионный, 0.1%.

0
IgorZ67 IgorZ67 4 месяца назад #

Как прошить MEGA88PB?  В AVRDUDE этого контроллера нет.

0
admin admin 4 месяца назад #

как это нет???, сам добавлял

0
IgorZ67 IgorZ67 4 месяца назад #

Спасибо, увидел ссылку для скачивания, здесь есть)

0
Alex5888 Alex5888 3 месяца назад #

Столкнулся с проблемой  при использовании другого программатора. 

88 отказывалась определяться  и шиться, удалил резистор и конденсатор в цепи ресет — стало все ОК.