PDA

Просмотр полной версии : Внутрисхемный эмулятор для ATMega



rv3bj
06.04.2008, 19:26
Для удобства отладки программ микроконтроллеров используются внутрисхемные эмуляторы - отладчики. Предлагаю материал, позволяющий своими руками создать такой эмулятор для процессоров ATMega. Поддерживает отладку вариантов микроконтроллеров AVR, имеющих JTAG интерфейc. Формат печатной платы PCAD-2002.
Желаю успехов.
Евгений.

R1ZK
06.04.2008, 20:33
Евгений, подскажите, для чего нужен JMP2. А в SPlan или Eagle печаток нет?

rv3bj
06.04.2008, 21:29
rw1zk
для чего нужен JMP2. А в SPlan или Eagle печаток нет?

Плата и схема только в PCAD. JMP2 используется для апдейта firmware. Программное обеспечение эмулятора устроено так, что в чип изначально загружается только загрузчик. Такое построение позволяет производить обновление основной программы из AVR Studio. Дело в том, что при выходе новой версии AVR Studio она содержит внутри себя апдейт программы. Это позволяет по мере появления новых типов контроллеров обеспечивать их поддержку.

Genadi Zawidowski
06.04.2008, 21:59
Плата и схема только в PCAD.
А можно дополнить архив схемой в p-cad?

rv3bj
06.04.2008, 22:11
Геннадий, конечно можно. Только не знаю как это сделать, не открывая новой темы. Я этот проект сделал несколько лет назад. Честно говоря не все хорошо помню. В частности по поводу JMP2 вспоминая хочу сказать, что при первоначальном программировании его надо держать разомкнутым, а при работе замыкать. Надо будет освежить в памяти, посмотрев исходный текст бутлоадера.

Genadi Zawidowski
06.04.2008, 22:30
Только не знаю как это сделать, не открывая новой темы
Редактируете своё сообщение (первое в этой теме), выбираете файл как для подсоединения нового, но рядом со старым жмёте кнопку "загрузить новую версию".
ps: так у Вас и исходники есть!

rv3bj
07.04.2008, 06:15
Genadi Zawidowski

ps: так у Вас и исходники есть!
Ну конечно есть, если я сам их писал. :D

R1ZK
07.04.2008, 08:31
Программное обеспечение эмулятора устроено так, что в чип изначально загружается только загрузчик. Такое построение позволяет производить обновление основной программы из AVR Studio.
Т.е. я правильно понял, в ATmega16 программатором зашивается загрузчик (из архива), а основная программа подгружается из AVR Studio при подключении отладчика к компу по COM-9?

rv3bj
07.04.2008, 08:53
rw1zk
Да, это так. Правда в архиве в HEX файле наряду с загрузчиком уже находится и софт эмулятора. Так что для запуска устройства достаточно спаяать его, зашить софт внешним программатором при разомкнутом JMP2, закоротить джампер и использовать его уже как эмулятор. Не понял почему вы упоминаете COM-9. Порт будет тот, к ктр. вы подключите эмулятор. Еще одно замечание - на вопрос AVR Studio о необходимости обновить софт следует ответить нет. Начинайте работу в этом режиме. Потом, когда вы освоитесь, можете сделать апдейт софта.
Исходные тексты выложу. Они написаны под IAR. Для использования с другими компиляторами их надо редактировать, т.к. я использовал intrinsic функции. Их придется заменить ассемблерными вставками.

rv3bj
07.04.2008, 09:06
Genadi Zawidowski

Редактируете своё сообщение (первое в этой теме), выбираете файл как для подсоединения нового, но рядом со старым жмёте кнопку "загрузить новую версию".
Геннадий, я пытаюсь добавить новый файл, но не уверен, что сохранится старый. Если можно приведите пошаговую инструкцию. :)
И есть ли возможность отката назад ?

R1ZK
07.04.2008, 09:20
Не понял почему вы упоминаете COM-9. Порт будет тот, к ктр. вы подключите эмулятор.
Евгений, здесь я не понял... Чтобы Вас не мучать бестолковыми вопросами, скажу сразу, что я никогда не работал в AVR Studio с отладчиком. У меня есть самостоятельно собранный Der Hammer (аналог STK500). Им то я и пользовался всегда. Он подключается через COM. Объясните, пожалуйста, раз и навсегда, назначение других разъёмов. (CON6PIN и IDC10_PCB). Спасибо.

Serg_PRQ
07.04.2008, 09:22
Видел подобное с мегой16 на http://pol-sem.narod.ru/AVRminiICE/jtag.htm
Евгений, ваша задумка с АП5 мне очень понравилась. Еще подскажите- как поставить в него кварц на 8Мгц, я понимаю что это не есть гуд, но хотя бы на 19200 нет проблем. Тогда уже можно будет собирать :super:

Вот если бы к тому что уже есть: SPI (STK-500) + JTAG еще и прикрутить HVPROG в этот чип было бы супер! Ну или в 32-ю мегу, по стоимости они с 16-й не сильно разнятся... во губу раскатал :)

rv3bj
07.04.2008, 09:41
Пытаюсь приложить файл.

rv3bj
07.04.2008, 09:45
rw1zk

Объясните, пожалуйста, раз и навсегда, назначение других разъёмов. (CON6PIN и IDC10_PCB).
CON6PIN - это разъем начального программирования эмулятора.
IDC10 - разъем подключения эмулятора к отлаживаемой плате.

rv3bj
07.04.2008, 09:48
Serg_PRQ
Кварц на 8 мгц использовать нельзя, т.к. при этом необходимо править дамп собственно эмулятора, а не только бутлоадера.

Serg_PRQ
07.04.2008, 09:52
Serg_PRQ
Кварц на 8 мгц использовать нельзя, т.к. при этом необходимо править дамп собственно эмулятора, а не только бутлоадера.
Да, спасибо, понятно. Буду искать кварцы на 7, потом они все равно нужны...

R1ZK
07.04.2008, 10:56
Буду искать кварцы
Такие есть в Платане. Я заказывал там.

rv3bj
07.04.2008, 11:22
Вот еще один вариант реализации, используемый моим коллегой по совместному проекту КОНТР & БАСИК Александром Костюком. Прошивка та же самая. Просто отсутствует АП5.

R1ZK
07.04.2008, 11:41
Лучше поставлю буффер.

R1ZK
07.04.2008, 11:50
Не понял почему вы упоминаете COM-9.
Я видимо неправильно написал, а Вы неправильно меня поняли. Я имел ввиду подключение к комовскому разъёму. Разумеется 9-ти пиновому, а не по счёту (COM1...COM9). Sorry.

Serg_PRQ
09.04.2008, 07:29
То rv3bj

Евгений подскажите, что ограничивает применением в данной схеме только меги16? Объем памяти?
Не получится ли запихать весь софт в мегу8, аппаратный джитаг судя по схемотехнике здесь ведь не причем.

Или само ПО загружаемое бутлоадером эволюционировало от 8535, что заранее предполагает такой объем флеша и никому не охота возиться с мелким целевым чипом? Я это к чему- в последнее время попадаются разработки, где народ даже STK-500 делает на 1 меге8.

rv3bj
09.04.2008, 09:24
Serg_PRQ
Сергей, само приложение эмулятора требует достаточно памяти во флэш. Кроме того обязательно должно быть предусмотрено место под бутлоадер. Причем размер области под бутлоадер д.б. точно таким же как в оригинале. При этом Атмел при выходе новой версии AVR Studio включает в него поддержку новых чипов. Таким образом можно использовать любой чип, у которого флэш по размеру не менее флэши в меге16 и предусмотрена область для бутлоадера.

Serg_PRQ
09.04.2008, 09:49
Немного понятно :)
Для меня пока все эти высшие материи с бутлоадером загадочны, если честно. Недавно занимаюсь с данными МК, трудно все переваривать из-за обилия инфо...

Евгений, тогда если можно еще вас помучаю немного :D
Не найдете несколько минут посмотреть вот это: http://www.simonqian.com/en/AVRminiProg/

Насколько я понимаю на меге16 тут JTAG + ISP + высоковольтный программатор в одном флаконе, причем совместимы со студией?

Хочется сделать достаточно функциональный девайс, вот пока никак не остановлюсь какой, Hi!

rv3bj
09.04.2008, 10:55
Serg_PRQ
Я бегло посмотрел. На мой взгляд нет необходимости в создании такого устройства. Как я понял, там пока реализован только программатор. Приведенное мной устройство является полным аналогом JTAG эмулятора, выпускавшегося Atmel. Особенностью контроллеров ATMega является практически полная программная совместимость "младших" версий со старшими. Так вы можете отлаживать свою программу на максимальной ATMega128 и затем легко ее перенести на более младшие чипы. Зачастую это можно сделать даже без перекомпиляции. Так у меня в одном проекте изначально написанном под мегу 128 успешно трудится мега 64.
Единственное отличие, приводимого вами универсального устройства, в наличии режима параллельного программирования. Однако я не рассмотриваю это как преимущество, т.к. никогда не использую этот режим. Я всегда программирую меги внутрисхемно.
Кстати сказать в последних разработках я все чаще использую не мегу, а АРМ, ктр. программирую через JTAG. Мегу также легко программировать через JTAG, а не через интерфейс программирования.
Так что мой совет: не изобретайте велосипед, используйте JTAG. :D

Serg_PRQ
13.04.2008, 21:43
Кстати сказать в последних разработках я все чаще использую не мегу, а АРМ, ктр. программирую через JTAG. Мегу также легко программировать через JTAG, а не через интерфейс программирования.
Так что мой совет: не изобретайте велосипед, используйте JTAG. :D

Правильно ли я понимаю, что для программирования через джитаг придется разрешить соответствующие фузы ей, и т.о. мы исключаем эти порты из применения для периферии (оно понятно, что в 64-128 мегах ног хватает, но в младших чипах, даже в дип-40 порой все на пределе)?

Насчет АРМ-ов, могу только позавидовать, с ними пока никак. Есть у меня старинная железка на 7-м арме, питается от 2 АА аккумуляторов и "живет" почти неделю при не слишком упорном юзанье ... (сорри за оффтопик)

rv3bj
14.04.2008, 12:34
Serg_PRQ
Действительно JTAG ножки в этом случае исключаются из использования. Но на мой взгляд лучше поставить чип с большими возможностями, не экономя на стоимости. Зато очень сильно упрощается отладка. В конце концов, если предусматривается тиражирование проекта, то вполне можно в дальнейшем применить более дешевый чип, не поддерживающий JTAG. Софт-то уже отлажен. Вообще я призываю всех по возможности использовать микроконтроллеры с большими ресурсами. Это позволит в дальнейшем развивать проект без опасения не уместиться в памяти. Это общая тенденция - не экономить на ресурсах. Ведь софт для большинства проектов, создаваемых на микроконтроллерах в настоящее время пишется на С. Такой подход позволяет не останавливаться только на одном типе микроконтроллеров, а легко мигрировать в том числе и на более мощные ARM7, ARM9 и т.д.

PICachu
20.04.2008, 19:57
Serg_PRQ
Я всегда программирую меги внутрисхемно.

Некоторый оффтоп, но, думаю, вопрос в тему: расскажите, пожалуйста, о своих реализациях внутрисхемного программирования, чтобы не изобретать велосипед в уже отработанном Вами направлении.
Использую отладочную плату EasyAVR5, но всегда после отладки на тестборде возникает проблема что-то изменить в прошивке, выдергивать контроллер из устройства и ставить в плату уже надоело...

Serg_PRQ
21.04.2008, 08:08
rv3bj

Евгений, если можно, еще пару вопросов: были ли у вас прототипы отладчика на меге в Dip-40, может где видели готовую разводку?
Я бы перетрассировал ее в лайоут.

Попутно, тоже кратко:
-какая спецификация у устройства- JTAGICE или JTAGICE mkII ?
-не нашел на атмеле конкретные схемы jtag, в плане периферийного разъема надеюсь он застандартизован?

rv3bj
21.04.2008, 10:45
PICachu,
Serg_PRQ
Чтобы ответить на ваши вопросы прикладываю фрагмент схемы пульта дистанционного управления. Из нее видно как подключен разъем для JTAG.

PICachu Я программирую только внутрисхемно. На схеме JTAG эмулятора видно как подключается программатор PonyProg. На схеме пульта есть только разъем для подключения JTAG. Сами можете выбирать подходящий вариант.

Сергей, это у меня JTAGICE. MK2 отличается наличием режима отладки по однопроводному интерфейсу. У меня его нет.
Вроде нашел первый вариант собранный на меге в дип.

Serg_PRQ
21.04.2008, 12:42
Сергей, это у меня JTAGICE. MK2 отличается наличием режима отладки по однопроводному интерфейсу. У меня его нет.
Вроде нашел первый вариант собранный на меге в дип.

Спасибо, буду разбираться.
Кварцы на 7 уже привезли, мега 16 тоже в наличии. Если кому будет интересно- выложу потом свою плату в дипе...

Serg_PRQ
21.04.2008, 14:00
Использую отладочную плату EasyAVR5, но всегда после отладки на тестборде возникает проблема что-то изменить в прошивке, выдергивать контроллер из устройства и ставить в плату уже надоело...

А почему не использовать тот же SPI? Разжиться вторым чипом, параллельно отлаживать в тестборде, из устройства уже ничего не дергать...
Я так понимаю, джитаг ведь тоже не решит именно этой проблемы- перешивать флеш то все равно нужно. Только что более гибко в готовом железе можно будет за программой наблюдать.

Кстати к слову- очень мне понравился симулятор от AVRco, но как оказалось джитаг там не совместим с фирменным айсом, как впрочем и программатор :-(
Проштудировал весь немецкий форум- они там только улыбаются, мол "у нас все и так работает, покупайте готовые отладочные интерфейсы"... вообщем помыкался и решил что проще повернуть к AVRStudio и компании... вот засел за це 8O

rv3bj
21.04.2008, 15:35
Serg_PRQ

А почему не использовать тот же SPI?
Сергей, а вот это ваше предложение мне непонятно. SPI не очень простой интерфейс. С ним надо еще уметь работать. Я полагаю, вы хотите сказать о возможности программирования меги через последовательный интерфейс программирования, ктр. совместим с ножками SPI интерфейса. Если так, то да понипрог решит эту проблему, но без отладки.
А вот житаг как раз можно использовать и для отладки и для внутрисхемного программирования.

Serg_PRQ
22.04.2008, 08:07
Я полагаю, вы хотите сказать о возможности программирования меги через последовательный интерфейс программирования, ктр. совместим с ножками SPI интерфейса. Если так, то да понипрог решит эту проблему, но без отладки.
А вот житаг как раз можно использовать и для отладки и для внутрисхемного программирования.

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

Тем более, что используя клон СТК-200 можно совсем не отключать программатор, т.к. он уходит в 3-е состояние после программирования и не мешает на портах штатной периферии. Только маленький нюанс- если задействовать эти порты в периферии нужно учесть чтобы она "не мешала" программатору, т.е. как я думаю- здесь должны быть ВХОДЫ периферии (например ШД LCD). Экономия портов- налицо!

Все можно делать на 1 машине- перешивать прототип и отлаживать в тестборде, т.к. изи-авр5 имеет внутрисхемный usb программатор, если не ошибаюсь, т.е. одновременно можно юзать понипрог (или прочее) на COM либо LPT программаторах.

rv3bj
22.04.2008, 10:24
Serg_PRQ

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

UX7LO
28.04.2008, 23:22
Подскажите.Мне надо прочесть флеш в в меге64.JTAG+AVRStudi o этого не сделать.Только записать.
Какую програмку можно использовать с JTAG,что бы прочесть(Read flash)???Самому писать нет времени(((

rv3bj
29.04.2008, 06:22
Очень странно звучит, что записать можно, а прочитать нельзя. Прочитать нельзя только в одном случае - если установлены биты защиты. В этом случае ни один программатор или JTAG не поможет, с какой программой их не соединяй. А так JTAG+AVRStudio вполне подходят и для чтения и для записи.

UX7LO
30.04.2008, 12:57
Звучит странно,но факт! :crazy:

UX7LO
30.04.2008, 13:09
Хотя сам чип позволяет...

UX7LO
30.04.2008, 13:36
И еще не понятно.
1.Видел в инете интерфейс JTAG под LPT.А прогу управления не увидел.Cуществуют вообще проги с использованием JTAGa под LPT и работающие с МЕГА64???

rv3bj
01.05.2008, 06:46
Звучит странно,но факт! :crazy:
На вашей картинке ничего не видно.
JTAG под LPT для AVR я не встречал. Под AVR есть только программаторы с LPT интерфейсом.

UX7LO
01.05.2008, 15:03
Cерьезно,AVR Studio только пишет флеши через JTAG, а читает через MOSI.У меня же готовая конструкция с JTAG фейсом и без MOSI.Присоеденятся к MOSI не хотца.
Вобщем только что сделал свой JTAG на 82С52 с портом 1,не совместимый пока со Студио.То есть просто 4 пина с порта на прямую в JTAG разъем.А команды на 8952 с СОМ порта.Управление и формирование все в компе на VC++6.
Итак вопрос:Правильно ли я понял дата шит меги64
1.Включить чип
2.Используя TMS и TSK подать команду ProgEnable,что бы сбрость бит JTD?Или так не выйдет и при включении надо подержать RESET 2 такта???
3.Что дальше что бы прочесть флеш.
PS
Вообще вот эти страницы меня поставили в тупик)))
http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh128/19_3.htm
http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh128/13.htm

UX7LO
02.05.2008, 10:38
Да,кстати,забыл сказать,что AVR Studio при каждом нажатии на старт проекта(отслеживание ) стирает и переписывает флешку!!!Это тоже надо учитывать.Так что лучше чащще отлаживать виртуально.А потом уже через JTAG.Вот.

rv3bj
02.05.2008, 18:54
Да,кстати,забыл сказать,что AVR Studio при каждом нажатии на старт проекта(отслеживание ) стирает и переписывает флешку!!!Это тоже надо учитывать.Так что лучше чащще отлаживать виртуально.А потом уже через JTAG.Вот.
Вы такие откровения приводите, что заставляет меня установить AVRStudio на этот компьютер и проверить. Не хочу обещать что сделаю это быстро. Все что вы излагаете звучит несколько странно.

UX7LO
02.05.2008, 20:47
Сама команда в JTAG ICE есть,это буква r.А в AVR Studio просто прочесть флеш нет.Действительно странно.Инфо у меня пока только с поиска в инете.Так цель сначало считать флешку.
Изучая мегу64,оболдеваю от меги32 и в серьез решил покончить с 89С52 и перйти на мегу32.
PS
Если в инете найдете собщение типа не можешь прошить флеш через джитаг,иди на "ССЫЛКА" - это ловушка,там троянец)))))В частности такая ссылка висит на chipinfo.ru)))))))Вы личиться не реально,только джихостом,если есть копия диска)))

Serg_PRQ
04.05.2008, 08:48
UX7LO

Посмотрите здесь:
http://electronix.ru/forum/index.php?showtopic= 18045&pid=129415&mode=threaded&show=&st=?entry129241?entr y129415

Из командной строки возможно сделать любые операции с МК.


Навскидку промотрел протокол айса: http://www.gaw.ru/html.cgi/txt/app/Atmel/micros/avr/JTAG_ICE.htm
-действительно доступны любые операции с любой памятью авра.

К сожалению пока в железе сам это не пробовал- но думаю, помог вам
:)

rv3bj
04.05.2008, 09:55
Сама команда в JTAG ICE есть,это буква r.А в AVR Studio просто прочесть флеш нет.
Это неверно. В AVRStudio есть команда прочитать флеш. Правда, чтобы до нее добраться надо иметь подключенные JTAG эмулятор и отлаживаемое устройство. Также можно прочитать и записать EEPROM и FUSES.

UX7LO
10.05.2008, 03:57
Я увидел на скриншоте AVR Studio + JTAG ACT II,там чтение появляется только после конекта,определения чипа и фьюзов.

UX7LO
10.05.2008, 04:40
UX7LO

Посмотрите здесь:
http://electronix.ru/forum/index.php?showtopic= 18045&pid=129415&mode=threaded&show=&st=?entry129241?entr y129415

Из командной строки возможно сделать любые операции с МК.


Навскидку промотрел протокол айса: http://www.gaw.ru/html.cgi/txt/app/Atmel/micros/avr/JTAG_ICE.htm
-действительно доступны любые операции с любой памятью авра.

К сожалению пока в железе сам это не пробовал- но думаю, помог вам
:)
Отлично!
Просто купить JTAG ACE не помне.Я его сделаю сам,но позже.Сейчас цель разобрать инструкции самого JTAG на физическом уровне.И побитово понять как работают регистры данных и инструкций.Пытаюсь ему загнать инструкцию "С"RESET.Неостанавливае тся.А вот инструкция "0"???,ее нет в описании останавливает проц.Ну а потом для запуска проца или сброс логики или захват РИ,минуем сдвиг РИ,модиф РИ.Так что пока медленно,но уверенно)))
PS
Нашел ссылку проги программирования через JTAG из LPT1.Сама прога чистая,а ссылка на сайт автора С ТРОЯНЦЕМ.
Так, что на сайт автора не заходите,похоже он кем то хакнутый или...???
http://www.getsoft.ru/scientific/technical/?page=1&programsperpage=100# program3081
Что интересно в этой проге,используя просмотрщик-LPT,можно понять как происходит работа JTAG интерфейса на физическом уровне.Схему простого JTAG программатора под LPT можно найти на 123avr.com

Serg_PRQ
12.05.2008, 09:58
To UX7LO

Все это познавательно, конечно, только какой кайф дебугить параллельник и делать свой джитаг? Я понимаю, конечно, что вы работали с 51-й серией и хотите в авры перетащить свои наработки, но какой смысл изобретать велопипед, когда исходники айса и так откыты, да и сам протокол полностью описан. :?

А то получится как поступили немцы с компилятором AVRco- все у них там в шоколаде, и симулятор и отладчик и программатор.... тока ни с чем не совместимы ни прогер ни джитаг. Ну и кому от этого они сделали хуже???? Судя по форуму- замкнулись сами в себе, со стороны народ потыкается-потыкается и сваливает от них на фрее- аврстудию и компанию... да тот же понипрог для начала. Самому пришлось парить мозги Си, т.к. паскаль по поддержке оказался бесперспективным :-(
Микро-паскаль аналогично- даже сайт уже в дауне неделю, задумки у всех хорошие, только о перспективах и пользователях тоже надо подумать... а не только сиюминутно выжимать бабки.


Да и посмотрите как все бысторожденные навески, на ЛПТ в частности, так же бысто и загнулись после потери интереса к ним разработчика, когда ему удается прошить 1-2 нужных ему чипа. Сами понимаете почему- одному "тянуть" не получается, а народ не поддерживает, т.к. возможности данного девайса далеки от возможностей набортного МК с интерфейсом по RS-232 (а из него и по USB).

Покупка 1 меги-16 не сравнима с той работой, которую хотите сделать, да и не думаю, что сделаете круче самого атмела :)

UX7LO
14.05.2008, 02:12
Все здаюсь.Завтра еду брать JTAG ACE LITE.Поджимают сроки,не влаживаюсь во временные рамки.Игры закончились,пора работать.
http://kosmodrom.com.ua/razrabotka/avr-jtag-lite.php
Подкупает USB порт,так как на буке нет СОМа.А JTAG интерфейс все равно разберу на косточки)))))
Код то открыт,но со стороны компа.Надо дизасамблировать загрузчик на меге 16,а это дольше по времени.Я просто просканирую 4 бита.Просто ну страшно интересно,и хочется понимать JTAG интерфейс полностью.То есть быть с ним на ты.
PS
А не кто не пробывал JTAG делать на меге 32,там ведь разница в болшей памяти,и все?

UX7LO
14.05.2008, 02:40
То UA3PRQ
Атмел все же ведет правильную политику в плане своего интерфейса JTAG.Если выходит новая версия AvrStudio,то прошивка загрузчика другая,да еще и в неизвесном формате.Комерция,что поделаешь.А секрктные команды,которые они не дают.Все как у "Билла" :D

Serg_PRQ
14.05.2008, 07:48
То UA3PRQ
Атмел все же ведет правильную политику в плане своего интерфейса JTAG.Если выходит новая версия AvrStudio,то прошивка загрузчика другая,да еще и в неизвесном формате.Комерция,что поделаешь.А секрктные команды,которые они не дают.Все как у "Билла" :D

Атмел молодец и в другом случае- средства разработки то все фреварные, все чипы их достаточно дешевые. Не "гнушатся" поддержки сторонних разработчиков в своих продуктах, отсюда не нужно уже изобретать велосипед и метаться. Они свою прибыль отвоевали не софтом, а продуманностью чипов и ценовой политикой.
Вообщем поле для деятельности широкое. Для себя уже поставил цель- студия и виневер. Подавляющее большинство разработок и библиотек именно на winavr, затем уже идут кодевижн и иар...

Насчет айса- как я понимаю. Все там не так и заморочено как кажется- бутовый загрузчик, который первым прошивается в мегу служит только для начальной загрузки текущей версии ПО, которое актуально в новой студии. Менять загрузчик наверное не нужно, т.к. протокол обновления не меняется. Само ПО джитага обновляется исключительно с целью поддержки новых кристаллов через студию (в основном экзотических), поэтому правильно Евгений говорит, что можно программатором просто прошить полностью и бутблок и любую рабочую версию самого джитага зараз и не париться больше.
Лично я не вижу большого смысла копаться в кодах ни бутблока ни ПО- зачем? Исходников и проектов будлоадеров полно в сети. Лично мне он не нужен- разобраться бы для себя с тем что нужно. Сам начал заниматься аврами в этом году :)
Сам джитаг? Ну не знаю, если вам дюже интересно- дык никто не запрещает, ковыряйтесь, но цель конечная мне не ясна. Если только хотите предложить свои услуги атмелу :?

Если сильно загорится- ведь собрать плату можно и за 1-2 дня. Для себя буду делать простейший вариант: Мега16 + Мах232 + буфер- вообщем аналогично здесь показанной. Затраты минимальны. Подключение помимо СОМ элементарно делается на USB через заводской конвертер USB-COM (тем более что используем обычный последовательный протокол, да еще без аппаратного квитирования). Все до безобразия просто и надежно. Конвертер я уже давно приобрел для других целей, т.к. вещь действительно универсальная. Еще аналогично хочу использовать его для программатора AVR ISP на меге-8 либо тини2313, последние чипы как достану- видимо попробую на них. Подключение полность аналогичное. Стандартный последовательный протокол позволяет работать на любых машинах, а не только с USB. Конвертер в наших краях стоит около 300-350р готовый. Была мысль распотрошить шнур от сотового и на PL2303 сделать на свой лад- так затраты аналогичны.
Так ведь плюс ко всему, через конвертер легко работать в последствии с аврами через их последовательный порт, не нужно городить никаких навесок типа FT232 и прочего. Так что подумайте...

Вообщем свое видение высказал :D
Пока занимаюсь теорией, т.к. много приходится переосмысливать на Це, сам джитаг именно не горит для меня, но в планах первоочередных. Хватает пока головняка и без него :crazy:

UX7LO
14.05.2008, 09:27
Да,по поводу атмела полностью согласен.Ведь они в Европе и США торгуют своими JTAGами,а программа практически бесплатна.В которой есть все,написание программы,причем на 2 языках по выбору,компилятор, программатор.Да еще и отладчик!!!Время я профуфукал на изучение.Надо было парралельно делать JTAG на 16 меге,а позно уже.Боюсь,что потеряю еще время на оживление и запуск JTAGa.Там есть кое какие заморочки с прошивкой загрузчика,что бы потом AVR Studio увидел и переписал загрузчик.Не хотца,а прийдется перескочить.Мне еще код 51 перевести на AVR необходимо,а это трудоемко.(((А сам же мог начать изучать AVRы года три назад.Кто бы знал,что понадобиться)))
И сегодня вычитал в инете почему JTAG только мега16.Хитрый AVR Studio знает,что JTAG загрузчик сделан только на меге16,то есть читат его инфо о чипе.Однако умельци таки ставят 32е,при этом код загрузчика правят.как я не стал вникать.Просто возьму и 16 и 32,они у нас на базаре $2,2 и $3,5 соответственно.Что в принципе - плиз на шару.))))

rv3bj
14.05.2008, 09:33
Код то открыт,но со стороны компа.

Друзья, ну взгляните же на самой мой первый пост в этой ветке!!!
Я же выложил исходный текст и бутлоадера в том числе. Зачем что-то дизассемблировать, если просто нужно повнимательнее посмотреть. 8O
Я просто завидую вашей молодости и стремлению до всего докопаться самостоятельно. Зачем изобретать велосипед ? И в результате делать неверные выводы относительно закрытия информации со стороны Атмела.

Сергей рассуждает совершенно правильно, что гораздо проще да и дешевле использовать стандартный модуль преобразования RS232 - USB.
Конечно все это можно сделать и на одной плате, объединив JTAG и конвертор. Я так в свое время и делал. Также кстати сделано и в JTAG ACE LITE, ссылку на который вы привели. Так что покупайте его. Это самый простой путь для достижения цели.

Serg_PRQ
14.05.2008, 11:58
Друзья, ну взгляните же на самой мой первый пост в этой ветке!!!
Я же выложил исходный текст и бутлоадера в том числе. Зачем что-то дизассемблировать, если просто нужно повнимательнее посмотреть.

Что-то я там наблюдаю только исходник бутлоадера :)
Ну да это не важно, собственно...

Евгений, если можно, прокомментируйте для чего в схеме R12-14, 16,17. Не понятно. И почему они разные? И еще цепочка на ADC R1, R5- это что детектор падения напряжения или тоже атмеловские заморочки, ведь в меге есть BOD.

rv3bj
14.05.2008, 12:24
Сергей, да я не очень однозначно выразился относительно исходника. Я действительно написал и выложил только бутлоадер. Само приложение эмулятора атмеловское. Оно апдейтится через AVRStudio.

Я думаю, вы спрашиваете относительно резисторов R21-R24 и R19. Скорее всего R21-R24 можно не ставить. R19 обязательно нужен. Он может быть и 10 ком также. Я указываю номера элементов так как они выложены здесь в форуме.
Что касается резисторов на входе ADC, они должны быть т.к. JTAG проверяет наличие питание на отлаживаемом кристалле. Это действительно атмеловская заморочка.

Serg_PRQ
14.05.2008, 15:08
Да с питанием все понятно, но у меня еще вот эта схема, я про нее спрашивал- еще раз пересмотрел ветку, так и не понял откуда я ее взял 8O
Хотя вроде схемотехника от вас...

Какая-то неоднозначность, начинаю путаться. Вот прилагаю еще в зипе несколько схем, где используются выводы меги PC0-PC3. У вас в одном месте тоже- в другом с точностью наоборот? Так Что там атмел тоже что-то проверят? Что делать с этими разрядами?

rv3bj
14.05.2008, 18:48
Хотя вроде схемотехника от вас...

Какая-то неоднозначность, начинаю путаться. Вот прилагаю еще в зипе несколько схем, где используются выводы меги PC0-PC3.
Сергей признаю свою ошибку. Теперь я понимаю почему появились разные варианты схемы. Неоднозначность вкралась из-за того что я сначала сделал макет на Меге16 в дип корпусе, а потом перенес все на мегу16 в смд. У них разные цоколевки. При этом в варианте в дип корпусе у меня нарисовано 2 JTAG интерфейса. Один использовался для отладки бутлоадера, а второй тот ктр. использует Атмел для связи с отлаживаемым процессором. Видно при выкладывании файла я ошибочно взял макетный вариант. Я должен еще раз все проверить и постараюсь завтра выложить проверенный вариант.
Тот вариант, ктр. вы приводите в последнем посте похож на правильный. Только надо иметь в виду, что на нем изображена мега в TQFP-44 корпусе. При переводе схемы в вариант меги в дип обязательно сверьтесь с цоколевкой.

UX7LO
14.05.2008, 20:17
В файле "Еще схемы" не достает F232,то есть USB,видел схему,да ссылку забыл,подскажите плз((((

Serg_PRQ
15.05.2008, 07:37
Тот вариант, ктр. вы приводите в последнем посте похож на правильный. Только надо иметь в виду, что на нем изображена мега в TQFP-44 корпусе. При переводе схемы в вариант меги в дип обязательно сверьтесь с цоколевкой.

Евгений, спасибо заранее. Насчет корпусов я понял, конечно буду разводить и сверю цоколевку, благо библиотеки уже проверенные :)
Единственное еще просветите насчет младшей тетрады порта С. Если сами с этим не заморачиваетесь- тогда я сделаю аналогично, через резисторы. Напрямую как у других порты сажать чревато- всякое может случиться, так и пальнуть недолго мегу.
Только что нашел еше один "нигилисткий" вариант айса: http://www.avrportal.com/?page=jtag
порты вообще свободны. Вообщем я в недоумении пока...

Насчет последнего кто что скажет? Какой-то супер агрегат получился- и ICE и ISP SPI программатор в одном флаконе, я так понимаю? 8O


То UX7LO

Теперь насчет самодельных конверторов:
Вот здесь http://www.radiokot.ru/circuit/digital/pcmod/05/
посмотрите все 3 варианта на спец. мискросхемах.

Небольшой коммент: если найдете ПЛ2303- это лучший вариант, имхо. Никогда не работал с ФТ-шками, но 2303 считается у разработчиков стандартом де факто. Например в линуксе она встроена в ядро, вообще никаких драйверов не нужно. Многие фирмы делают именно на ней, т.к. надежность очень большая и сбоев никогда не бывает. У меня для Ериксона шнурок на ней, но ломать его жалко. Фирменный от Тренднета конвертер у меня сделан тоже на 2303, описание здесь http://trendnet.com/products/proddetail.asp?statu s=view&prod=150_TU-S9&cat=32
После телефона даже драйвера не пришлось ставить, т.к. вендор определился сразу от старых :super: Конвертер поддерживает полное хардварное управление потоком, поэтому можно выжать из виртуально СОМ порта все на что он способен. Единственное- не пробовал его в нестандартных программаторах типа Понипрога, вот доделаю его на MAX206- сообщу что получится...

TUSB- если время позволяет- легко получить бесплатно от TI на сэмплы, правда они щас уже менее охотливы и более 2 чипов одной марки не дают :?
Одно время набрал у них этих м/сх, долго валялись, т.к. самому въехать во всю эту кухню тяжеловато, как нашел эти решения- желание появилось собрать, уже наверное как у автора, в виде съемного набортного конвертера к платкам на аврах.

На закуску посмотрите еще более дешевые варианты на голых AVR:
http://www.recursion.jp/avrcdc/
http://www.cesko.host.sk/IgorPlugUSB_RS232/IgorPlug-USB%20(AVR)%20RS232_ eng.htm
Никак не привезут тини2313- хочу попробовать на ней собрать ради интереса конвертер а на второй тиньке AVR ISP совместимый программатор (придется наверное через инет заказывать).

Ну это уже видимо после отпуска, к июлю :D

UX7LO
15.05.2008, 08:59
Купил JTAG ACE.А у него при поддключении к USB тухнет POWER и никаких реакций.Прийдется сегодня опять ехать в фирму.....

rv3bj
15.05.2008, 09:21
Единственное еще просветите насчет младшей тетрады порта С. Если сами с этим не заморачиваетесь- тогда я сделаю аналогично, через резисторы.

Резисторы и выходной буфер стоят в оригинальном атмеловском житаге. Я не заморачивался на этом. Сделал также.

rv3bj
15.05.2008, 09:35
Вот прилагаю вариант схемы, в которой точно нет ошибок. Правда это видоизмененный вариант с поддержкой USB.
Сергей можно спокойно ее использовать для уточнения неясных моментов.

Serg_PRQ
15.05.2008, 09:51
Вот прилагаю вариант схемы, в которой точно нет ошибок.
Все понял, спасибо!

UX7LO
15.05.2008, 13:35
Итак,съездил на фирму со свим букой.И не один ихней JTAG на видется!!!!Купил USB-COM.И тоже ноль))))))Вобщем Отдавши JTAG,купил мегу16,платку с дырочками, кварц 7,3728 и мах232.Остальное есть,да и USB-COM оставил себе.То есть теперь СОМ порт есть.Так, что и мне прийдется пройти нелегкий путь изготовления JTAG ICEа.Постараюсь отписать,что да как!
И сразу вопрос к Евгению.Чем и как писали загрузчик в мегу16???
PS
Блин видел же схему JTAG ICE,где и СОМ и USB.Переключается переключателем.Вот балда не скачал,а теперь жалею.Схема похожа,что Евгений привел,да и в pdf формате была.

rv3bj
15.05.2008, 14:09
Загрузчик написан на С, компилятор IAR.
Последняя схема, ктр. я привел - это простое объединение компортового житага со стандартным решением от FTDI. Сначала был создан внешний преобразователь COM - USB, к нему подключался житаг. После тестирования была нарисована общая схема и общая печатная плата и все помещено в корпус.
Вообще я бы порекомендовал использовать более новую микросхему Com - USB от того же производителя. Она в другом корпусе и похоже имеет встроенное ПЗУ. Таким образом из схемы исключается 93C46, и главное исключается операция программирования этого ПЗУ.
Еще раз подтверждаю, что схема рабочая, но все-таки рекомендую ее доработать.

UX7LO
15.05.2008, 14:23
Ну,что ж пора браться за паяльник.
А откомпилированый загрузчик программировать ПониПрогом по ISP?????
PS
Интересно,JTAG ICE думаю лицензирован.А значит если фирма делает на продажу,значит и лицензия должна быть?Однако претензий по возврату не было.Посоветовали поменять ноут.То есть под их JTAG ICE купить другой комп.Как то не реально это выглядит))))

rv3bj
15.05.2008, 16:29
А откомпилированый загрузчик программировать ПониПрогом по ISP?????

Да.

UX7LO
15.05.2008, 20:22
Так,запрограммировал загрузчик в мегу16 с помощью avreal.Поигрался...н е врубился,почему загрузчик расположен с адреса 3800???Идем дальше.......
PS
Еще есть вопрос по максу232.В одной схеме емкости 22мкф и электролиты,а в другой 0,1 керамика.В чем соль то??????Ставлю 1мкф электролиты....

Serg_PRQ
16.05.2008, 07:23
Еще есть вопрос по максу232.В одной схеме емкости 22мкф и электролиты,а в другой 0,1 керамика.В чем соль то??????Ставлю 1мкф электролиты....

Все зависит от исполнения преобразователя видимо. TI рекомендует 1мкФ, Sipex в 3-5В версии пишет что не ниже 0.1х16В, т.к. тактовая ключей внутри (как они называют "Charge Pump") около 250 кГц, видимо этой емкости хватает, основная просадка будет при сильной нагрузке со стороны RS-232 или на больших скоростях, где заполнение импульсов больше. В SP3232E они гарантируют типовую скорость 235Kbps при 0.1мкФ.
У меня щас стоят тантал вертикальные на 10.0 в тестборде, меньше не нашел. Пробовал в панельке MAX232CPE, TI MAX232I, Sipex SP3232E/EP чипы- все работают одинаково на Меге-16, разницы не заметил.

UX7LO
16.05.2008, 09:33
что то у меня непонятки.....avrPro g не видет чип.Загрузчик взял с вашей ссылки boot.hex.Может устарел.А Евгений не может компильнуть свой загрузчик и выложить в .hex формате
Вот читал,что есть разница,но что то не доходит где)))

UX7LO
16.05.2008, 09:38
Еще есть вопрос по максу232.В одной схеме емкости 22мкф и электролиты,а в другой 0,1 керамика.В чем соль то??????Ставлю 1мкф электролиты....

Все зависит от исполнения преобразователя видимо. TI рекомендует 1мкФ, Sipex в 3-5В версии пишет что не ниже 0.1х16В, т.к. тактовая ключей внутри (как они называют "Charge Pump") около 250 кГц, видимо этой емкости хватает, основная просадка будет при сильной нагрузке со стороны RS-232 или на больших скоростях, где заполнение импульсов больше. В SP3232E они гарантируют типовую скорость 235Kbps при 0.1мкФ.
У меня щас стоят тантал вертикальные на 10.0 в тестборде, меньше не нашел. Пробовал в панельке MAX232CPE, TI MAX232I, Sipex SP3232E/EP чипы- все работают одинаково на Меге-16, разницы не заметил.
Нашел 0,1 все таки,проверю в работе с 89С52,чтот то типа управление порта через сом.....

rv3bj
16.05.2008, 13:42
А Евгений не может компильнуть свой загрузчик и выложить в .hex формате

Я думал, что выложил HEX файл. Но похоже нет. Теперь исправляюсь.
Причем это не только загрузчик, но и приложение. Все в одном файле. Т.е. прошив микросхему, можно подключаться к AVRStudio и все должно работать. Правда я выкладываю приложение от AVRStudio версии 4.12.
Поэтому при старте AVRStudio предложит проапдейтить приложение. Для начала можно этого не делать. Все должно работать.

UX7LO
16.05.2008, 13:48
А Евгений не может компильнуть свой загрузчик и выложить в .hex формате

Я думал, что выложил HEX файл. Но похоже нет. Теперь исправляюсь.
Причем это не только загрузчик, но и приложение. Все в одном файле. Т.е. прошив микросхему, можно подключаться к AVRStudio и все должно работать. Правда я выкладываю приложение от AVRStudio версии 4.12.
Поэтому при старте AVRStudio предложит проапдейтить приложение. Для начала можно этого не делать. Все должно работать.
У меня есть 4,12 4,13 и последний,непомню какой.Свежий))))
Правда сегодня "Слобожанский спринт",продолжу завтра или после спринта,если силы будут....

UX7LO
18.05.2008, 10:52
А Евгений не может компильнуть свой загрузчик и выложить в .hex формате

Я думал, что выложил HEX файл. Но похоже нет. Теперь исправляюсь.
Причем это не только загрузчик, но и приложение. Все в одном файле. Т.е. прошив микросхему, можно подключаться к AVRStudio и все должно работать. Правда я выкладываю приложение от AVRStudio версии 4.12.
Поэтому при старте AVRStudio предложит проапдейтить приложение. Для начала можно этого не делать. Все должно работать.
Круто,это не просто лоадер,а прошивка готовая для работы JTAG ICE устройства!
И бутлоадер находится по адресу 3С00,а не 3800!!!!Как положено!!!!!
PS
Евгений,я надеюсь прошивка под кварц 7,3728?????

UX7LO
18.05.2008, 13:26
Max работает jtag не видется.А такой вопрос,после зашития флешки в мегу 16,фьюзы тоже надо зашить????Если у меня все заводские установки.И если я зашил ваш нех файл,то фьюзы должны соответствовать fuses_ice правильно???То есть воот_rst должен быть убран?
Еще вопрос,если я буду программировать ПониПрогом,то какой кварц подцепить?8мгц???А также BLB0 и BLB1 должны быть в 0 или 3???
PS
avreal после erase выдал состояние фьюзов:
OSCCAL C7,C6,BF,C2
BODLEVEL=1
BODEN=1
SUT=2
CKSEL=1
BLB1=3
BLB0=3
OCDEN=1
JTAGEN=0 ??? СТРАНО
СKOPT=1
EESAVE=1
BOOTSZ=0
BOOTRST=1
Не врубится почему JTAGEN=0,или это означает установлен,и смущает BLB1 и BLB0.После программирования считется нормально.....значит устанолен означает 0 а не установлен 1???
Да,не плохо было бы про фьюзы в меге16 на русском прочесть((((И как сбросить фьюзы????При необходимисти.

UX7LO
18.05.2008, 17:18
А вот фьюзы отличаются(((
http://www.onembedding.com/tools/avrjtag/bialix/

rv3bj
18.05.2008, 18:59
А такой вопрос,после зашития флешки в мегу 16,фьюзы тоже надо зашить????Если у меня все заводские установки.И если я зашил ваш нех файл,то фьюзы должны соответствовать fuses_ice правильно???То есть воот_rst должен быть убран?
Еще вопрос,если я буду программировать ПониПрогом,то какой кварц подцепить?8мгц???А также BLB0 и BLB1 должны быть в 0 или 3???
PS
avreal после erase выдал состояние фьюзов:
OSCCAL C7,C6,BF,C2
BODLEVEL=1
BODEN=1
SUT=2
CKSEL=1
BLB1=3
BLB0=3
OCDEN=1
JTAGEN=0 ??? СТРАНО
СKOPT=1
EESAVE=1
BOOTSZ=0
BOOTRST=1
Не врубится почему JTAGEN=0,или это означает установлен,и смущает BLB1 и BLB0.После программирования считется нормально.....значит устанолен означает 0 а не установлен 1???
Да,не плохо было бы про фьюзы в меге16 на русском прочесть((((И как сбросить фьюзы????При необходимисти.
Фьюзы конечно надо зашить. Их надо установить как в файле fuses_ice.jpg. При этом установка OCDEN и JTAGEN необязательна. Это рудименты от процесса отладки. BOOTSZ0 и BOOTSZ1 тоже не важны. Главное BOOTRST должен быть снят, чтобы процессор стартовал с нулевого адреса. Кварц должен быть 7.3728. Все картинки по фьюзам приведены для понипрога.
С фьюзами у Атмела не очень удобно разбираться. Я буду говорить о понипроге. Надо запомнить, что если не установлена галочка значит соответствующий фьюз установлен в "1". Если галочка стоит, значит этот фьюз равен нулю. Никакие BLB не надо помечать галочками. Таким образом все они будут в единице.

UX7LO
18.05.2008, 20:05
ага,то есть к LOCK битам вообще не прикасаться,после стирания?
Ох и намучался я за сегдня))))

UX7LO
18.05.2008, 20:23
Ну наконецто нашелся))))))))))))) )
Правда проверочный чип не цеплял.
Вся проблема во фьюзах была,то есть все наоборот,а я че те подумал птичка=еденице,а оно оказалось птичка=0!!!!!!
Значится так,схема http://pol-sem.narod.ru/AVRminiICE/jtag.htm , прошивка ваша,шил avreal,правда там баг с бат файлом фьюзов.Щас выложу все искомое!УРА!!!!!!!!! !!!!!!!
То Евгений,а есть у вас прошивка только boot.Руки чешуться попробывать зашить из AVR Stodio.Или достаточно поставить галочку bootrst???

UX7LO
18.05.2008, 20:41
Тут усе по зашивки меги16ой!
==================== ===
Разобрался и с бутом,установил флажек bootrst,avr prog eго увидел и зашил без проблем.Однако пришость bootrst снимать avreaлом.Пробывал и буты с адресом 3800,работет тоже)Отаке!
PS
Евгений мучает вопрос,какие фьюзы запрещают стерать флеш по JTAGу?Ставлю на макетную плату еще панель под другую мегу16.Которую буду насилоать по JTAG протоколу.Что бы не лохануться и не подключать SPI LPT avreal и стирать,а то поднадоело)))))

UX7LO
19.05.2008, 16:40
Вобщемто конструкция занимает 1 час))))Но зато как прикольно когда открывается окошко с подключением к иследуемому чипу.Как в покер))))
На свободном месте планирую поставить 40пин разъем и мегу16.
Вобщем то ничего страшного нет.Легче человеку знакомому хоть с какимито контроллерами.Однако и не посвященному можно сделать и выучить AVR!
Удачи усем!

rv3bj
19.05.2008, 20:56
Евгений мучает вопрос,какие фьюзы запрещают стерать флеш по JTAGу?
Операция стирания всегда доступна. Фьюзы Lock не позволяют просто считать содержимое флеши. А уж стереть и заново что-то зашить это без проблем. :D Кстати и фьюзы защиты тоже сотрутся.

UX7LO
19.05.2008, 22:42
Да,да Евгений я понял.В общем то пока прикосаться к LOCK битам не намерен,не буду для своего же блага.В принципе мой проект заключается перевести код (Асамблер) MCS51 в AMR.В этом то и суть,что AMRы работают в 5 раз быстрее и в 20 раз реагируют быстрее.Может быть для нас радиолюбителей не существенно,но что же все таки дает нам:
Возможность изучения AVRов как микроконтреров,CW ключи с неограниченой памятью,маяки,контро ллеры синтезаторов частоты........
А главное,кто знаком с Микрософт Студио(или DELFI 5 например),знает,что такое отладчик,и как он важен!!!
Думаю,что я не новое скажу,что микро_электроника,пр ограммирование тоже удел радоилюбителей.А значит помимо паяний надо и программерские вещи обращать.
Евгений вам большой респект за тему,не потому,что она совпала с моими взглядами,а потому,что я надеюсь эту тему прочтут другие, и начнут что-то делать и моделировать сами,а не запрашивать прошивки(кроме бутов).То есть будет больше радиолюбитей,которые будут программировать!
Народ,изучайте AVRы и AVR Studio,как прибавку для пенсии и новых разработок для радиолюбителей.
PS
Евгений,а у вас почтовый адрес есть?Без базара ящик балтики троички в эквиваленте!!!!!!!!Я серьезно!

rv3bj
20.05.2008, 12:27
Спасибо за хорошую оценку. Этого вполне достаточно.