Самодельный отладчик для ARM (j-link v5)

Опубликовано в рубрике "ARM,Инструменты,Программаторы", 18.02.2010.
Тэги: , , , автор:

Для многих любителей, самое болючее в переходе на новую процессорную архитектуру –необходимость заиметь железяки для заливки кода в камень и для отладки его там. Ну признайтесь, вы хотели проиграться с АРМами, но мысля – а как-же это чудо запрограммировать останавливала вас в этой светлой затее и дальше дело не шло!

В этой статье предлагаю вам сконструировать клон отладчика j-link v5 фирмы Keil. Клон называется mt-link.

debug

Параметры

J-link – классический отладчик для АРМов. Это настоящий быстрый отладчик, а не поделка типа Wiggler’a. Максимальная скорость шины – 12МГц. Мне, к примеру, при скорости 1МГц работать вполне комфортно. AvrDragon на той-же частоте и рядом не валялся, тормозюка.

Более подробно о характеристиках отладчиков можно почитать в талмудах типа https://ftp.iar.se/WWWfiles/jlink/J-Link_J-TraceARM-2.pdf.

Я приведу самое важное из него – стандартную распиновку JTAG’a (вид на разъем отладчика):

image

Напомню вам, что клонирование отладчиков – занятие неблагородное! Делать это можно только в некоммерческих целях в качестве исследования, итп. Я не несу никакой ответственности за то, что вы сделаете с материалами данной статьи.

Как говориться,

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’е вполне адекватная печаталка и плату для фоторезиста распечатать таки можно.

 

debug1

 

Как видно, главная деталька – at91sam7s64, на лицо типичная проблема курицы и яйца. И она, к счастью, тут решена!

Контроллеры at91sam7 имеют USB загрузчик – достаточно только воткнуть USB разъем в компьютер, загрузить с сайта атмела (https://atmel.com, если кто не догадался) пакет at91-isp, установить ее запустить входящую в комплект SAM-PROG.

Теперь – как запустить загрузчик?

Для этого нужно:

  1. Отключить питание.
  2. Установить перемычку которая подключается к ножке TST
  3. Включить питание и подождать 10 секунд.
  4. Отключить питание, убрать перемычку
  5. Включить питание.

Все, контроллер должен обнаружится и будет готов к программированию.

 

Если вы пользуетесь 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

Я не собирал, но если вы таки соберете, прошу поделиться.

Комментарии
  1. Detruanto написал(а) 21st Февраль, 2010 в 11:53

    Мой порыв сделать MT-link умер после того как обаружилось, что на ARM становится Linux, а прошивать можно через COM/Ethernet.

    А вот для AVR’ов жизнь заставляет делать USB программатор:-( Теперь вот думаю какой=)

  2. BSVi написал(а) 21st Февраль, 2010 в 12:01

    Те армы на которые становится линукс — это уже не эмбеддед, это компы ) Да и не так уж часто они и нужны. По поводу программатора для АВР ничего сказать не могу — сам юзаю дракона )

  3. Detruanto написал(а) 21st Февраль, 2010 в 14:01

    Да, компы))) Но таки приятно: сунул флешку — видит; сунул SD-карту — видит; даже USB винт на 500Гб сунул — тоже видит.
    Для эмбеддеда они таки подходят, если не ставить линукс, а писать сосмому. Хотя, обычно и меги хватает, ибо серьезно я этим не занимаюсь.

  4. Нуб написал(а) 23rd Февраль, 2010 в 11:36

    А этот MT-Link 5.0 c кортексами под Keil работать будет через JTAG?

  5. BSVi написал(а) 23rd Февраль, 2010 в 12:18

    Да, в кейле должен работать — это клон сеггеровского линка.

  6. Electroniq написал(а) 19th Март, 2010 в 10:40

    Сергей, а вы можете посоветовать какой-нибудь наиболее перспективный ARM процессор для освоения? Хочется чтобы была производительность приличная по сравнению с AVR, и главное наибольшая безглючность. Смотрел на STM32 Cortex-M3, они вроде ничего, но говорят доки кривые и есть глюки в переферии, есть на данный момент AT91SAM7S32 и LPC2134, но ядро SAM7 не очень шустрое. Как вижу, вы выбрали Cortex-M3 от LPC, какие в пользу этого были доводы? Как впечатление от проца?

  7. BSVi написал(а) 19th Март, 2010 в 10:55

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

    У лпцшных кортексов очень развитая переферия, опробованная на lpc2000, эрраты практически пустые, частота очень высокая — 100МГц, ну и для моей конкретной задачи он подошел, поэтому его и использовал.

    Начинать осваивать контроллеры я рекомендую с 8-битных авр/пиков — там больше специфических граблей.

  8. Electroniq написал(а) 19th Март, 2010 в 11:33

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

  9. Answer написал(а) 20th Январь, 2011 в 0:01

    Ну не знаю, я не согласен. Выбирать процессор под конкретную задачу — их слишком много, и все они в чём то, но разные. Не знаю, может я один такой, но ведь тогда придёться каждые пол-года учить новую архитектуру, что затратно по силам и по времени. А потом перейти не так то легко. Нужен софт , отладчики, библиотеки, операционки и много еще чего… Дорого выходит. Интересно конечно так, поковырять чуть чуть. Разве не в этом плюс контроллеров? Один (Ну не один, но и не все сразу) знаешь, круто на нём программируешь ничего лишнего не учишь. Я сейчас:
    1) Пишу для соревнований проект под новый для меня PIC
    2) Разгребаю по работе в институте проц ATmega 644
    3) Начал осваивать STM8/Пытаюсь хотя как то начать STM32

    При этом на компе горы всяких MpLab’ов, IAR’ов, AVR Студий и так далее.
    Не говоря уже о Eagl, Proteus, Multisim….
    Плюс для каждого свой программатор, разные языки программ…

    С другой стороны представление обо всём надо иметь, а знать всё нельзя. Ну вот, что думал, то и сказал=))) Аминь! ))

  10. BSVi написал(а) 20th Январь, 2011 в 0:13

    Новая архитектура учится ровно за день (чтение доки), и то это далеко не всегда нужно — ведь производитель компилятора сделал это за нас. Если знаешь основные принципы — все архитектуры кажутся похожими. Я лично совершенно не чувствую никакого дискомфорта при переходе с архитектуры на архитектуру.

  11. qic написал(а) 27th Август, 2010 в 17:42

    А можно с помощью этого отладчика скажем залезть в проц к КПК ?
    ЗЫ А как с следующими версиями ARMов?

  12. BSVi написал(а) 27th Август, 2010 в 18:18

    >А можно с помощью этого отладчика скажем залезть в проц к КПК ?
    Можно, только среда должна поддерживать этот проц.

    >А как с следующими версиями ARMов?
    Поддерживает все армы с интерфейсом JTAG, не поддерживает SWD

  13. zov написал(а) 31st Август, 2010 в 16:39

    Доброго времени суток.
    Скажите пожалуйста, среда H-JTAG с ним работать будет?
    И еще :я так понимаю МК серии LPC2xxx он поддерживает?

  14. BSVi написал(а) 31st Август, 2010 в 17:36

    >среда H-JTAG с ним работать будет?
    Не пробовал, но должна.

    >я так понимаю МК серии LPC2xxx он поддерживает?
    Безоговорочно и непредотвратимо.

  15. zov написал(а) 18th Сентябрь, 2010 в 13:17

    Доброго времени суток.
    Еще один вопрос: не пробовали программировать из-под Keil’a?

  16. BSVi написал(а) 18th Сентябрь, 2010 в 19:09

    Нет, не пробовал.

  17. Lexatagan написал(а) 10th Декабрь, 2011 в 16:23

    Доброго времени суток. У меня есть такой отладчик — отличная штука, но недавно наткнулся на форуме электроникса на тему по апгрейду девайса до седьмой версии. Цена вопроса — 2 перемычки и пол часа времени на перепрошивку. Зачем? — чтобы получить SWD. Смысл в том, что кидаются 2 перемычки от проца к разъему JTAG, т.е. в режиме JTAG обмен с таргетом идет через буфер, а в режиме SWD напрямую, буфер вырубается. Попробовал, запаял перемычки, заменил прошивку на 7ю версию и теперь работаю только по SWD, очень удобно — всего 4 провода, да и то один просто для замера питания таргета. Делал в спешке, поэтому не все помню. Подробности можно найти на указанном форуме в теме что-то вроде «Китаеза линк».

  18. BSVi написал(а) 10th Декабрь, 2011 в 20:15

    Я в итоге купил китайский клон 8 версии, скоро выложу обзор. Там есть и SWD и SWO.

  19. Blambik написал(а) 15th Август, 2013 в 21:15

    Обзор где? 🙂

  20. Blambik написал(а) 15th Август, 2013 в 21:16

    Посмотрел на ПП и ужаснулся. Спектра видать рулила. 🙂

  21. Blambik написал(а) 15th Август, 2013 в 21:20

    Дешевле купить 🙂 затраты не стоят тех денег. всего то 130 грн и будет вам шастя 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.