Проблемы с программаторами 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, но стал видеться только один программатор, как и надо).

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

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
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.