Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: JTAG-программатор для прошивки приборов без компа
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
SanvaldYV
Всем здравствуйте.

Для прошивки приборов (на базе LPC2132) на производстве есть необходимость сделать JTAG-программатор, в котором бы уже находилась рабочая прошивка, и который бы самостоятельно (по нажатию допустим кнопки) записывал бы ее в контроллер (подключенный по JTAGу).

В связи с этими возник вопрос - "как?" smile.gif
Скачал из инета "ARM7TDMI-S (rev 4) Technical Reference Manual" (ARM DDI 0234A), где вроде бы (все еще не осилил, только бегло просмотрел) описана работа с ядром ARM7TDMI-S через JTAG interface.
Однако, там в основном речь о том как "дебажить", и ничего не говорится о собственно записи программы во флэш контроллера.

Если кто нибудь делал что то подобное, или просто "в курсе дела", буду благодарен за советы.


П.С. В принципе, в качестве альтернативы можно "заливать" прошивку и по УАРТу через встроенный бутлоадер. Команды ISP и работа с встроенным загрузчиком достаточно подробно описаны в ЮзерМануале на чип, но тем не менее хотелось бы разобраться с JTAG-ом...
sergeeff
На PC достаточное количество программ, позволяющих залить firmware через jtag. В чем необходимость какого-то отдельного устройства? А в чем прелесть jtag для этих целей?
zltigo
Цитата(Юрий Санвальд @ Sep 2 2008, 15:47) *
...но тем не менее хотелось бы разобраться с JTAG-ом...

Думаю, что никто не реализовывал у серийного девайса JTAG только для заливки оного неким прибором. Странно смотрится... Кроме того, внутренний Flash LPC Вы не запрограммируете ввиду отсутствия документированной процедуры программирования, которая в свою очередь осложняется 128битовостью и патентованым MAМ. Хотите, можно грузить в RAM программатор который будет через тот-же ISP шить...
Только зачем все эти приключения на свою голову?
SanvaldYV
Цитата(sergeeff @ Sep 2 2008, 17:57) *
На PC достаточное количество программ, позволяющих залить firmware через jtag. В чем необходимость какого-то отдельного устройства? А в чем прелесть jtag для этих целей?


На производстве народ не желает разбираться с каким бы то ни было firmware и напрягать мозг. Он хочет - подключил к разъему на плате некую коробочку, нажал кнопку - и она запрограммировала.
"А в чем прелесть jtag для этих целей?" - если честно не знаю, просто уже были сделаны подобные программаторы для AVR.


Цитата(zltigo @ Sep 2 2008, 17:59) *
Хотите, можно грузить в RAM программатор который будет через тот-же ISP шить...
Только зачем все эти приключения на свою голову?


Не, таких приключений нам не надо wacko.gif , остановимся наверное на прошивке по УАРТу через встроенный загрузчик smile.gif
zltigo
Цитата(Юрий Санвальд @ Sep 2 2008, 16:28) *
...просто уже были сделаны подобные программаторы для AVR.

AVR? Автономно через JTAG?! Смысл??
zhevak
Цитата(zltigo @ Sep 2 2008, 21:23) *
AVR? Автономно через JTAG?! Смысл??

А смысл в том, что для серийного производства не надо иметь:
1. Комп + Венда + Программатор + Софт + еще какая-нибудь хрень == равносильно достаточно богато-укомплектованному рабочему месту.
2. Работника, который имеет соответствующий уровень подготовки.

При наличие коробочки с одной кнопочкой "Пуск" и двумя ЛЭДами (красный -- "брак", зеленый - "ОК") можно садить чела вообще без подготовки. Полчаса инструктажа и работа налажена. Разумеется, сложные вопросы программирования изделий такой работник-программаторист не должен решать.
aaarrr
Дык про коробочку все понятно, сама идея программировать AVR чарез JTAG кажется странной.
zltigo
Цитата(aaarrr @ Sep 2 2008, 22:50) *
сама идея программировать AVR чарез JTAG кажется странной.

Именно так.
zhevak
Цитата(zltigo @ Sep 3 2008, 03:23) *
Именно так.

Да, согласен. Для программирования в AVR имеются более другие интерфейсы, которые намного проще JTAG. Действительно, странно.
fmdost
Цитата(Юрий Санвальд @ Sep 2 2008, 18:28) *
На производстве народ не желает разбираться с каким бы то ни было firmware и напрягать мозг. Он хочет - подключил к разъему на плате некую коробочку, ...

Коробочка ASUS900 Называется wink.gif.
Alex03
Цитата(Юрий Санвальд @ Sep 2 2008, 19:47) *
Для прошивки приборов (на базе LPC2132) на производстве есть необходимость сделать JTAG-программатор, в котором бы уже находилась рабочая прошивка, и который бы самостоятельно (по нажатию допустим кнопки) записывал бы ее в контроллер (подключенный по JTAGу).

В связи с этими возник вопрос - "как?" smile.gif
Скачал из инета "ARM7TDMI-S (rev 4) Technical Reference Manual" (ARM DDI 0234A), где вроде бы (все еще не осилил, только бегло просмотрел) описана работа с ядром ARM7TDMI-S через JTAG interface.
Однако, там в основном речь о том как "дебажить", и ничего не говорится о собственно записи программы во флэш контроллера.

В том же CrossWorks для разных процев имеются разные загрузчики, которые первоначально грузятся в RAM и запускаются, а уже потом эти загрузчики принимают команды/данные через JTAG (либо через определённые ячейки RAM, либо DCC(debug comms channel)) и производят запись во flash обращаясь либо к определённым регистрам проца, либо вызывая функции IAP как в LPC.
Посмотрите как написаны загрузчики, исходники там прилигаются.
etoja
Флудерам:Читайте вопрос внимательно и отвечайте по делу.

Программирование процессоров LPC213x возможно через интерфейс RS232 и через JTAG. При этом всегда происходит обращение к программе внутрисхемного программирования ISP, зашитой в процессор.
Для решения поставленной вами задачи можно воспользоваться исходными текстами программы H-JTAG, работающей через JTAG программатор Wiggler. Исходные тексты короткие и понятные, находятся по адресу: http://www.hjtag.com/download/jtagsrc.rar
Алгоритм работы JTAG описан в документе: http://www.hjtag.com/download/jtag.rar - текст на китайском языке, но диаграмма состояний, таблицы и коды возвратов - на английском.
SanvaldYV
Цитата(etoja @ Sep 3 2008, 08:33) *
Программирование процессоров LPC213x возможно через интерфейс RS232 и через JTAG. При этом всегда происходит обращение к программе внутрисхемного программирования ISP, зашитой в процессор.
Для решения поставленной вами задачи можно воспользоваться исходными текстами программы H-JTAG, работающей через JTAG программатор Wiggler. Исходные тексты короткие и понятные, находятся по адресу: http://www.hjtag.com/download/jtagsrc.rar
Алгоритм работы JTAG описан в документе: http://www.hjtag.com/download/jtag.rar - текст на китайском языке, но диаграмма состояний, таблицы и коды возвратов - на английском.



Спасибо, изучу. Хотя шить наверное все же будем через УАРТ...

Цитата(Т.Достоевский @ Sep 3 2008, 04:05) *
Коробочка ASUS900 Называется wink.gif.


Эээ, а можно чуть подробней? Поиск в гугле по такому запросу не дает ничего хоть отдаленно связанного с прошивкой МК....
misyachniy
Я разрабатывал такой программатор.
Для SAM7S.
Через JTAG в режиме Embedded ICE.
В этом режиме процессор останавливается и ему "подсовываются" команды "считать/записать регистр/ячейку памяти".
Таким образом в оперативную память загружается флешлоадер и ему передается управление.
У меня была задача прошить только бутлоадер размером не более 8К.
По этому я ложил в оперативку флешлоадер и бутлоадер.
Затем управление передавалось флешлоадеру он стирал флеш и перепрошивал/проверял бут.
Затем заносил в ячейку код о успешном завершении.
Потом процессор останавливался и читалась ячейка памяти.
По результатам чтения зажигался светодиод годен/не годен
За основу был взят пример от АТМЕЛ для процессоров ARM без флеш.
Программатором выступал ATmega128.
Мне так и не удалось вовремя дописать программу, чтобы вначале процессор программировал PLL и переходил на работу от нее. Поэтому запись 8К занимает время около 30..45 секунд. Забыл сколько ;-)
Весь проект открыть не могу но кусок работы через Embedded ICE могу поискать.
KRS
Цитата(etoja @ Sep 3 2008, 08:33) *
текст на китайском языке, но диаграмма состояний, таблицы и коды возвратов - на английском.

Полно же документов на английском. И от самого ARM и здесь лежат стандарты. Это полный изврат смотреть только картинки в этом документе.
etoja
LPC2138 программируется через JTAG/H-JTAG со скоростью 45кбайт за 12 секунд.
Через RS232 будет гораздо медленнее.

Предлагая ASUS 900 вам пытались предложить мини-ноутбук ASUS EePC-900
http://ru.asus.com/products.aspx?l1=24&l2=164
v_shamaev
Цитата(Юрий Санвальд @ Sep 2 2008, 17:47) *
Всем здравствуйте.

Для прошивки приборов (на базе LPC2132) на производстве есть необходимость сделать JTAG-программатор, в котором бы уже находилась рабочая прошивка, и который бы самостоятельно (по нажатию допустим кнопки) записывал бы ее в контроллер (подключенный по JTAGу).

В связи с этими возник вопрос - "как?" smile.gif
Скачал из инета "ARM7TDMI-S (rev 4) Technical Reference Manual" (ARM DDI 0234A), где вроде бы (все еще не осилил, только бегло просмотрел) описана работа с ядром ARM7TDMI-S через JTAG interface.
Однако, там в основном речь о том как "дебажить", и ничего не говорится о собственно записи программы во флэш контроллера.

Если кто нибудь делал что то подобное, или просто "в курсе дела", буду благодарен за советы.
П.С. В принципе, в качестве альтернативы можно "заливать" прошивку и по УАРТу через встроенный бутлоадер. Команды ISP и работа с встроенным загрузчиком достаточно подробно описаны в ЮзерМануале на чип, но тем не менее хотелось бы разобраться с JTAG-ом...


PEEDI умеет прошивать без компьютера. Но идея с ноутбуком мне нравиться больше - дешевый ноутбук с вигглером - дешевле, правда повозиться придеться побольше.
SanvaldYV
Цитата(misyachniy @ Sep 3 2008, 11:25) *
Я разрабатывал такой программатор.
Для SAM7S.
Через JTAG в режиме Embedded ICE.
...
Весь проект открыть не могу но кусок работы через Embedded ICE могу поискать.


За пример работы с JTAG Embedded ICE буду очень признателен.
Мой е-мэйл: yurasanvald@yandex.ru
zltigo
Цитата(etoja @ Sep 3 2008, 06:33) *
Флудерам:Читайте вопрос внимательно и отвечайте по делу.

Парящим над поверхностью: Внимательно читайте ответы.


Цитата(etoja @ Sep 3 2008, 10:08) *
LPC2138 программируется через JTAG/H-JTAG со скоростью 45кбайт за 12 секунд.
Через RS232 будет гораздо медленнее.

На 115200 - ISP много быстрее smile.gif. Кроме того для поминаемого всуе H-JTAG нужно знание недокументированноой работы с FLASH NXP. Откуда его взять? Про загрузку своего боотлоадера я писал - можно, но к чему эти пляски.
KRS
Цитата(zltigo @ Sep 3 2008, 16:39) *
Кроме того для поминаемого всуе H-JTAG нужно знание недокументированноой работы с FLASH NXP. Откуда его взять?

Это еще зачем H-JTAG использует тот же IAP.
Грузит в RAM драйвер, потом передает ему через DDC данные и команды. А этот драйвер работает через IAP и ничего недокументированного не использует.
Все драйвера H_JTAG лего посмотреть с помощью IDA
zltigo
Цитата(KRS @ Sep 3 2008, 15:10) *
Это еще зачем H-JTAG использует тот же IAP.

Очем и речь вместо прямого использования IAP через достаточно приличный по скорости ДВУХ ПРОВОДНЫЙ интерфейс городится огород - через ногомахание кучкой пинов грузится загрузчик, грузится блок и... вызывается IAP. Когда JTAG используется для отладки это нормально, ибо импользуется один интерфейс. Когда есть PC и нормальный USB-JTAG адаптер, это нормально, ибо скорость побольше. А вот когда делают штучную коробочку с каким-нибудь контроллером для автономной работы, то зачем???
fmdost
Цитата(etoja @ Sep 3 2008, 12:08) *
Предлагая ASUS 900 вам пытались предложить мини-ноутбук ASUS EePC-900
http://ru.asus.com/products.aspx?l1=24&l2=164

Да. И кнопочка "запрограммировать" реализованная через любые стандартные средства.
По моему самый простой и дешёвый вариант
sergeeff
По моему, на любой фирме в кладовке запросто можно найти старенький PC. А уж простенькую программку, посылающую данные через COM-порт, и под DOS можно наваять за час-другой.
aaarrr
Я встречал наладчиков, которые не умеют обращаться с компьютерной мышкой (и компьютером вообще).

Так что коробочка с кнопкой и лампочками надежнее smile.gif
sergeeff
Ну взять тогда какой-нибудь demo board на привычном процессоре и SD-карточкой и на этом заветную "коробочку" с COM-портом и сваять.
IgorKossak
Цитата(aaarrr @ Sep 3 2008, 20:42) *
Я встречал наладчиков, которые не умеют обращаться с компьютерной мышкой (и компьютером вообще).

Так что коробочка с кнопкой и лампочками надежнее smile.gif

Я так понял, что советы по этой теме сводятся не столько к PC против коробочки, сколько к ISP против JTAG.
Если Вам (это я и к автору тоже) милее коробочка, то сделайте коробочку, умеющую программировать через ISP. Будет намного проще, чем в случае с JTAG.
misyachniy
Часть исходников для прогрмаммирования AT91SAM7S128 через JTAG с помощью ATMEGA128.
Описание внутри.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.