Самодельный отладчик для ARM (j-link v5)
Для многих любителей, самое болючее в переходе на новую процессорную архитектуру –необходимость заиметь железяки для заливки кода в камень и для отладки его там. Ну признайтесь, вы хотели проиграться с АРМами, но мысля – а как-же это чудо запрограммировать останавливала вас в этой светлой затее и дальше дело не шло!
В этой статье предлагаю вам сконструировать клон отладчика j-link v5 фирмы Keil. Клон называется mt-link.
Параметры
J-link – классический отладчик для АРМов. Это настоящий быстрый отладчик, а не поделка типа Wiggler’a. Максимальная скорость шины – 12МГц. Мне, к примеру, при скорости 1МГц работать вполне комфортно. AvrDragon на той-же частоте и рядом не валялся, тормозюка.
Более подробно о характеристиках отладчиков можно почитать в талмудах типа https://ftp.iar.se/WWWfiles/jlink/J-Link_J-TraceARM-2.pdf.
Я приведу самое важное из него – стандартную распиновку JTAG’a (вид на разъем отладчика):
Напомню вам, что клонирование отладчиков – занятие неблагородное! Делать это можно только в некоммерческих целях в качестве исследования, итп. Я не несу никакой ответственности за то, что вы сделаете с материалами данной статьи.
Как говориться,
Manufacturing and selling these clones is an illegal act
for various reasons, amongst them trademark, copyright and unfair business practise issues.
Я — же лично собрал клон исключительно в некоммерческих исследовательских и образовательных целях.
Изготовление
Тут все как всегда – делаем платку, паяем детали. Платка довольно сложная, рассчитанная на заводское производство, но выкрутиться можно. Я-же выкрутился )
Берем схему тут:
Она-же, только в p-cad.
Ну и плата в p-cad’е:
И, на всякий случай, прошивка:
Для того, чтобы посмотреть P-CAD файлы, вы можете сказать P-CAD Viewer – он бесплатен и найти его в интернете – не проблема.
Делаем платку. Очень повезло, что в P-CAD Viewer’е вполне адекватная печаталка и плату для фоторезиста распечатать таки можно.
Как видно, главная деталька – at91sam7s64, на лицо типичная проблема курицы и яйца. И она, к счастью, тут решена!
Контроллеры at91sam7 имеют USB загрузчик – достаточно только воткнуть USB разъем в компьютер, загрузить с сайта атмела (https://atmel.com, если кто не догадался) пакет at91-isp, установить ее запустить входящую в комплект SAM-PROG.
Теперь – как запустить загрузчик?
Для этого нужно:
-
Отключить питание.
-
Установить перемычку которая подключается к ножке TST
-
Включить питание и подождать 10 секунд.
-
Отключить питание, убрать перемычку
-
Включить питание.
Все, контроллер должен обнаружится и будет готов к программированию.
Если вы пользуетесь IAR’ом, то запустите:
C:\Program Files\IAR Systems\Embedded Workbench 5.4\arm\bin\jlink.exe
Программка обновит прошивку отладчика до текущей версии. В ней так-же можно проверить работу некоторых выводов ( напишите команду “?”, вам все распишут ).
Все, с arm7 должно работать. Если вы предполагаете работать с cortex, то придется еще зайти на
https://www.segger.com/cms/beta-software-version.html
и скачать оттуда “Software and documentation pack V4.11m”. При установке нужно будет разрешить заменить dll’ку иара.
Все, кортекс по JTAG’e теперь тоже поддерживается!
Результаты
Отладчик был использован с LPC1756 (Cortex-M3, если кто не в курсе). Я сравнил его с оригинальным J-LINK от IAR v5.4. Естественно, нет никакой разницы.
PS
Естественно, человеческая мысль не стоит на месте, уже есть схемы и прошивки вплоть до восьмой версии отладчика. Найти их можно тут:
https://electronix.ru/forum/index.php?showtopic=59841&hl=%EA%E8%F2%E0%B8%E7%E0&st=0
Я не собирал, но если вы таки соберете, прошу поделиться.
Мой порыв сделать MT-link умер после того как обаружилось, что на ARM становится Linux, а прошивать можно через COM/Ethernet.
А вот для AVR’ов жизнь заставляет делать USB программатор:-( Теперь вот думаю какой=)
Те армы на которые становится линукс — это уже не эмбеддед, это компы ) Да и не так уж часто они и нужны. По поводу программатора для АВР ничего сказать не могу — сам юзаю дракона )
Да, компы))) Но таки приятно: сунул флешку — видит; сунул SD-карту — видит; даже USB винт на 500Гб сунул — тоже видит.
Для эмбеддеда они таки подходят, если не ставить линукс, а писать сосмому. Хотя, обычно и меги хватает, ибо серьезно я этим не занимаюсь.
А этот MT-Link 5.0 c кортексами под Keil работать будет через JTAG?
Да, в кейле должен работать — это клон сеггеровского линка.
Сергей, а вы можете посоветовать какой-нибудь наиболее перспективный ARM процессор для освоения? Хочется чтобы была производительность приличная по сравнению с AVR, и главное наибольшая безглючность. Смотрел на STM32 Cortex-M3, они вроде ничего, но говорят доки кривые и есть глюки в переферии, есть на данный момент AT91SAM7S32 и LPC2134, но ядро SAM7 не очень шустрое. Как вижу, вы выбрали Cortex-M3 от LPC, какие в пользу этого были доводы? Как впечатление от проца?
Вообще, мне жутко не нравится выражение «процессор для освоения». Процессор должен выбираться под конкретную задачу.
У лпцшных кортексов очень развитая переферия, опробованная на lpc2000, эрраты практически пустые, частота очень высокая — 100МГц, ну и для моей конкретной задачи он подошел, поэтому его и использовал.
Начинать осваивать контроллеры я рекомендую с 8-битных авр/пиков — там больше специфических граблей.
Ну с 8 битными МК я уже работал, но вот тут для одной задачи скорости стало не хватать, пришлось урезать алгоритм и поток данных. Поэтому и хочу освоить более мощную архитектуру.
Ну не знаю, я не согласен. Выбирать процессор под конкретную задачу — их слишком много, и все они в чём то, но разные. Не знаю, может я один такой, но ведь тогда придёться каждые пол-года учить новую архитектуру, что затратно по силам и по времени. А потом перейти не так то легко. Нужен софт , отладчики, библиотеки, операционки и много еще чего… Дорого выходит. Интересно конечно так, поковырять чуть чуть. Разве не в этом плюс контроллеров? Один (Ну не один, но и не все сразу) знаешь, круто на нём программируешь ничего лишнего не учишь. Я сейчас:
1) Пишу для соревнований проект под новый для меня PIC
2) Разгребаю по работе в институте проц ATmega 644
3) Начал осваивать STM8/Пытаюсь хотя как то начать STM32
При этом на компе горы всяких MpLab’ов, IAR’ов, AVR Студий и так далее.
Не говоря уже о Eagl, Proteus, Multisim….
Плюс для каждого свой программатор, разные языки программ…
С другой стороны представление обо всём надо иметь, а знать всё нельзя. Ну вот, что думал, то и сказал=))) Аминь! ))
Новая архитектура учится ровно за день (чтение доки), и то это далеко не всегда нужно — ведь производитель компилятора сделал это за нас. Если знаешь основные принципы — все архитектуры кажутся похожими. Я лично совершенно не чувствую никакого дискомфорта при переходе с архитектуры на архитектуру.
А можно с помощью этого отладчика скажем залезть в проц к КПК ?
ЗЫ А как с следующими версиями ARMов?
>А можно с помощью этого отладчика скажем залезть в проц к КПК ?
Можно, только среда должна поддерживать этот проц.
>А как с следующими версиями ARMов?
Поддерживает все армы с интерфейсом JTAG, не поддерживает SWD
Доброго времени суток.
Скажите пожалуйста, среда H-JTAG с ним работать будет?
И еще :я так понимаю МК серии LPC2xxx он поддерживает?
>среда H-JTAG с ним работать будет?
Не пробовал, но должна.
>я так понимаю МК серии LPC2xxx он поддерживает?
Безоговорочно и непредотвратимо.
Доброго времени суток.
Еще один вопрос: не пробовали программировать из-под Keil’a?
Нет, не пробовал.
Доброго времени суток. У меня есть такой отладчик — отличная штука, но недавно наткнулся на форуме электроникса на тему по апгрейду девайса до седьмой версии. Цена вопроса — 2 перемычки и пол часа времени на перепрошивку. Зачем? — чтобы получить SWD. Смысл в том, что кидаются 2 перемычки от проца к разъему JTAG, т.е. в режиме JTAG обмен с таргетом идет через буфер, а в режиме SWD напрямую, буфер вырубается. Попробовал, запаял перемычки, заменил прошивку на 7ю версию и теперь работаю только по SWD, очень удобно — всего 4 провода, да и то один просто для замера питания таргета. Делал в спешке, поэтому не все помню. Подробности можно найти на указанном форуме в теме что-то вроде «Китаеза линк».
Я в итоге купил китайский клон 8 версии, скоро выложу обзор. Там есть и SWD и SWO.
Обзор где? 🙂
Посмотрел на ПП и ужаснулся. Спектра видать рулила. 🙂
Дешевле купить 🙂 затраты не стоят тех денег. всего то 130 грн и будет вам шастя 🙂