Проблемы с программаторами Atmel AVR и их решение

Нежданно-негаданно в новом 2016 году, как минимум, на двух компьютерах с Win10 и Avr Studio 5.1 одинаковым образом перестали работать avr-программаторы от слова вообще. Клон avrispmkII и самый настоящий jtagice3.

Выглядит это так: программаторы видны в списке, но сделать с ними что-то не выходит. Появляется окошко «Unable to connect to JTAGICE3», а в логе появляются несколько строк об ошибке, самой информативной из коих является одна:
[ERROR] USB driver initialization failed with error 0x20000009.


Код ошибки 0x20000009 означает «No valid license». Имеется в виду, как я понял, атмеловская лицензия на драйвер Jungo. Лицензия эта в виде строки забита намертво в файле com_atmel_hil_usb.dll (найти её можно по строке Atmel_Norway). То ли срок у неё вышел (офигеть теперь), то ли драйвера все испортились из-за очередного обновления винды — неясно, но работать ничего не хочет.

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

Пришлось обновлять студию до 7.0.634, где, по слухам, проблем с драйвером Jungo уже нет.
Не сразу, не без лагов, но JTAGICE3 после обновления своей прошивки завёлся. А вот клон, который у меня очень древней версии 1.11, и которым очень удобно шить, нет.

Информация по исправлению функциональности программатора взята из обсуждений гитхаба. В файле (папка студии)\atbackend\codeCache\com_atmel_hil_usb.dll надо пропатчить один условный переход:
— для AS 6.2: изменить байт 0x74 на 0xEB по смещению 0x35F11;
— для AS 7.0: изменить байт 0x74 на 0xEB по смещению 0x2F632;
— для AS 7.0.634: изменить байты 0x0F 0x84 на 0x90 0xE9 по смещению 0x2F74C.
Говорят, там есть какая-то проблема со сбросом частоты на стандартные 125кГц, но пока не заметил.
UPD: В версии студии 7.0.790 патчить файл не пришлось, всё заработало само.

Это исправление позволит студии работать с программатором, невзирая на его неоригинальность. Но если программатор выдаёт версию менее, чем 1.18, то студия не даст работать, требуя обновления.
Есть два варианта решения:
1. Прогрейдить программатор прошивкой с версией 1.18 или выше (если есть такая возможность);
2. Убрать файлик avrispmkii_fw.zip из папки (папка студии)\tools\AVRISPmkII или его переименовать. Требование об обновлении исчезнет.

Ещё одна засада, связанная с версией ПО, поджидает пользователей консольного интерфейса atprogram.exe:
[ERROR] Firmware is too old. Required version 1.16, but version on tool is 1.11.


Но это решается ключом --force, который запрещает проверять версию ПО.

Может, решение не идеальное, но мало ли кому срочно надо что-то прошить, а тут такие пироги.
Интересно, кого-нибудь ещё случилась такая оказия в последнее время?

UPD от 10.05.2016:
Вчера срочно потребовалось прошить пару десятков авр приборов, и вдруг выяснилось, что атмел студия сдохла. Выдавала какие-то ошибки типа
Пакет «ErrorListPackage» не был правильно загружен
(с десяток аналогичных). Помогла переустановка студии, но вот программаторы отказались работать (как минимум, клон авриспмк2). Все вышеперечисленные действия не помогли. В консоли он выдавал что-то вроде TCF Error code: 1, в студии при попытке подключиться к контроллеру, появлялась надпись у программатора «Disconnected». Что это было — непонятно.
Проблема решилась с помощью программы Zadig, драйвер с Jungo переставил на LibUsb 1.2.6.0, оказывается, студия нынче и так умеет. Надеюсь, хоть с этим драйвером проблем не будет.
Программаторы работают и из студии (потребовалось только перезапустить студию), и из консоли.

UPD от 14.04.2017:
Слетела неожиданно Visual Studio 2015 и Atmel Studio 7.0 всё с той же ошибкой насчёт «ErrorListPackage» и кучей подобных после установки обновлений. Переставил обе, при этом пришлось почистить все папки от старой студии:
AppData\Roaming\Microsoft\AppEnv\14.0
AppData\Roaming\Microsoft\VisualStudio\14.0
AppData\Roaming\Atmel\AtmelStudio\7.0
AppData\Local\Atmel\AtmelStudio\7.0
AppData\Local\Microsoft\VisualStudio\14.0
ProgramData\Atmel\AtmelStudio\7.0
ProgramData\Microsoft\VisualStudio\14.0
Program Files (x86)\Microsoft Visual Studio 14.0

После переустановки всё завелось (студия стала версией пожирнее и тоже с паками, как кейл 5: 7.0.1417), но клон перестал снова работать, уже с новой ошибкой:


Ошибка AVR ISP mkII
Timestamp:	2017-04-14 13:27:15.748
Severity:	ERROR
ComponentId:	20100
StatusCode:	131117
ModuleName:	TCF (TCF command: Tool:connect failed.)
Failed to connect: MPLABCOMM_INVALID_HANDLE

Как обычно, переименовал файл avrispmkii_fw.zip (см. выше), хотя есть вариант отключить проверку версии ПО (в окне программирования у поля с напряжением есть кнопка настроек):
отключение проверки версии ПО
И надо ещё с помощью zadig сменить драйвер с теперь уже WinUSB (который тоже нифига не работает с клоном) на LibUsb 1.2.6.0. И всё снова заработает, как и должно.

UPD от 19.04.2017
Сегодня столкнулся с очередной странной проблемой: atprogram видела два одинаковых программатора, хотя включен был только один
[ERROR] Found more than one matching tool. Please specify serial number.

два avrispmkII
Перетыкание программатора ничего не меняет. Помогло удаление устройства из диспетчера устройств и перетыкание (он поставил те же драйвера на libusb, но стал видеться только один программатор, как и надо).

Комментарии (20)

RSS свернуть / развернуть
У меня перестал работать JTAGICE mkII после обновления до Win10. Перестал работать в IAR AVR, что самое обидное.
Для AVR Studio на сайте у них решение вывешено с подменой драйверов, но это не помогает решить проблему с IAR, что самое обидное.
Сижу в отладчике через COM-порт, как в прошлом столетии.
0
Самое обидное написал два раза. Но это действительно самое обидное, т.к. до AVR Studio мне дела нет, а IAR вот прям нужен.
0
Вообще-то про Win10 писалось, что там есть какие-то механизмы контроля лицензий и блокирования. Может быть, это стук с этого самого дна?
0
Нет, коды ошибок именно от Jungo WinDriver, а именно WD_NO_LICENSE. Да и работало же раньше. Винда обновлялась чуть ли не летом ещё, а это уже полгода назад. Да и на другом компьютере я всё ставил уже на Win10 и проверял всю функциональность.

А эту ошибку, кстати, я видел и раньше, на третьем компе (макбук, но с доп. виндой для таких вот целей), там она выявилась сразу после обновления до W10 (хотя, может, появилась и раньше, просто никто не проверял до обновления), мы посчитали тогда, что это из-за железа, ибо на остальных ящиках было ок. Ничего не сделали, правда, но там было не очень-то и нужно.
0
Вы меня не поняли. Речь идет не про лицензию Win10.
Речь про установленное в ней стороннее ПО.
0
FTDI похоже такая же жопа. Оно взяло и сдохло, ругается на неподписанные драйвера. Там помогло откатить на старую версию, но чето вин10 какие то вилы, ну их нахер.
0
Супер! У меня уже давно из студии 6.2 программаторы не работали, приходилось запускать 6.1.
Пропатчил dll — заработало!
0
  • avatar
  • vad7
  • 21 января 2016, 22:36
Дописал чуток.

Если и первые действия не помогли: меняйте драйвер с помощью zadig на либусб (студия его всё равно ставит заодно с Jungo), с ним должно быть лучше.
+1
В IAR Jtag ICE mkII так и не работает. Никто не нашел решения против No valid license?
0
Менять драйвер на более свежий, разве что. Похоже, запланированно тухнут сами драйвера.
0
А где ж его взять? Тот, что сейчас в комплекте с AS7 дайт в IAR такой же эффект, 0x200000009 «No valid license». Похоже, надо переезжать на Win7 взад.
0
Не факт, что поможет, вероятно, это заморочки самой джунги :< Потому что полгода вполне себе на десятке оно работало.

А иар только джунго кушает?
0
Вероятно, да, только.
0
Интересно, сколько понадобиться таких фортелей от мелкомягких, чтобы у всех подгорело и все переползли на линукс.
0
Повторюсь, я подозреваю в этих проблемах лицензионную политику jungo.

Даже в 2012 году, за три года до в10, уже такое было: www.iar.com/support/tech-notes/debugger/failed-to-initialize-usb-driver-error-0x20000009-no-valid-license/
0
Вряд ли тут есть заговор джанго. Скорей просто не осилили нормально все написать и лицензировать.
Но вот такая зависимость от странных производителей которую можно только созерцать — тупик.
0
По IARу отбой, переустановка Win10 решила проблему, отладка по USB у mkII заработала. Видимо накопилось мусора Jungo от разных вендоров.
0
Опять в студии что-то поменяли после слияния с микрочипом, появились новые ошибки при работе с клоном avrispmkII, про которые в интернете пока ничего нет (MPLABCOMM_INVALID_HANDLE). Но лечатся они так же, задигом на либусб и убиранием архива с обновлённым ПО.
0
Обновил студию до 7.0.1645
естественно что клон программатор AVR ISPMKII перестал работать, выдает сообщение ниже:
Timestamp: 2017-11-26 19:34:02.440
Severity: ERROR
ComponentId: 20100
StatusCode: 131117
ModuleName: TCF (TCF command: Tool:connect failed.)

Failed to open: MPLABCOMM_INVALID_HANDLE

Проблема у меня всегда успешно решалась с помощью применения утилиты задик. Менял драйвер на либюсб 1.2.6.0 и всегда все начинало работать, но не в этот раз. Применил некоторые советы из статьи но воз и ныне там. Не работает.
Скачал свежую LUFA скомпилировал свежую прошивку для программатора, залил, не работает. Не знаю че делать уже. Помогите кто чем может… подайте слепому котику на пропитание… не работает программатор. Может кто решил проблему с этим MPLABCOMM_INVALID_HANDLE
0
Заметил одну прикольную вещь. Проблема только с Attiny24. С другими чипами все работает, прошиваются читаются и пишутся. А вот Attiny24 читаются и прошиваются FUSE биты и сигнатура без проблем, а флешь память не прошивается ни в какую. Из пачки брал разные Attiny24 и ни один чип не прошивается, хоть убейся. Толи чипы бракованные, хотя раньше эти же чипы прошивались нормально. Непонятно ничего.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.