Внутрисхемная отладка AVR через JTAG ICE

Распечатать

Одним из самых мощных отладочных инструментов в микроконтроллерной среде является JTAG — внутрисхемный отладчик.

Суть тут в чем — через JTAG адаптер микроконтроллер подключается напрямую к среде программирвания и отладки, например к AVR Studio. После чего микроконтроллер полностью подчиняется студии и дальше шагу не может ступить без ее разрешения. Доступна становится пошаговое выполнение кода, просмотр/изменение всех регистров, работа со всей периферией и все это в реальном микроконтроллере, а не в программной эмуляции. Можно ставить точки останова (breakpoints) на разные события — для ICE1 три штуки. В общем, сказка, а не инструмент.

К сожалению в AVR микроконтроллерах JTAG доступен далеко не везде, как правило контроллеры с числом ног меньше 40 и обьемом памяти меньше 16КБ такого удовольствия лишены (там, правда, часто бывает debugWire, но на коленке сделать его адаптер еще никому не удалось, а фирменный JTAG ICEII или AVRDragon стоят довольно больших денег). А поскольку у меня в ходу в основном Tiny2313, Mega8, Mega8535 и прочая мелочевка, то мне JTAG что собаке пятая нога — не поддерживается он в этих МК.

Тем не менее, поддашвись многочисленным просьбам, я сварганил этот агрегат и сейчас покажу вам как им пользоваться.
Велосипед изобретать я не стал и взял широко известный проект от scienceprog.com

Схема несложная, требует ATMega16 и чуть чуть обвяза. В качестве интерфейса можно поставить MAX232 и воткнуть все это дело в COM порт, а можно сделать на FT232RL и тогда интерфейсом будет USB.

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

Поэтому пусть лучше JTAG адаптер питается от целевой платы, а не наоборот.

Я же не стал мудрить и сделал на MAX232 — с USB у меня напряг вечный, а COM порты свободны. Тем более это дешевле.

Однако я не обломался развести плату и под FT232RL суть та же.

В остальном же, как видите, разводка почти один в один, а USB часть взял и своего прошлого поста про FT232. Кстати, разводя вот такие вот маленькие кусочки схем вроде блока с FT232 я их сохраняю в макросы и потом, когда надо, собираю из них печатную плату как из конструктора. Очень удобно! Рекомендую!

Вытравили плату, запаяли компоненты. Получилась вот такая вот платка:

Теперь надо прошить контроллер. Вообще, по науке, сначала прошивается bootloader, потом из AVR Studio делается обновление прошивки JTAG ICE до последней версии. Но я нашел путь проще, на сайте pol-sem.narod.ru был обнаружен уже готовый HEX файл который просто надо залить в МК и все.

Поэтому цепляем к нашему адаптеру программатор, благо все штыри нужные (MISO, MOSI, GND, RST, SCK, Vcc) есть. А то что они не в нужном порядке стандартного AVR ISP разьема, так это не беда — я временно распотрошил колодку своего программатора и одел отдельные пины как надо. Однократная же процедура, чего мучаться разводить еще и ISP разъем.

Заливаем прошивку.
Выставляем Fuse биты.

Тут надо быть внимательными, так как существует несколько нотаций FUSE — прямая (по даташиту, где 0 = ON, 1=OFF) и инверсная (1 = ON, 0 = OFF). В прямой нотации работает UNIPROF, в инверсной нотации работает PonyProg и USBASP _AVRDUDE_PROG.
Определить в какой нотации работает твой программатор очень просто. Дjстаточно подключиться к своему МК и нажать кнопку чтения Fuse битов и посмотреть на бит SPIEN если галка стоит — нотация инверсная. Потому как по дефолту SPIEN включен всегда (без него невозможно прошить МК через ISP внутрисхемно).

Прошиваются Fuse следующим образом:


БитПрямая нотация (UniProf, Даташит)Инверсная нотация (PonyProg, AVR DUDE GUI)
OCDEN[ ][v]
JTAGEN[ ][v]
SPIEN[ ][v]
CKOPT[v][ ]
EESAVE[v][ ]
BOOTSZ1[ ][v]
BOOTSZ0[ ][v]
BOOTRST[v][ ]
BODLEVEL[v][ ]
BODEN[v][ ]
SUT1[ ][v]
SUT0[ ][v]
CKSEL3[v][ ]
CKSEL2[v][ ]
CKSEL1[v][ ]
CKSEL0[v][ ]

Если прошивать голый бутлоадер, то надо включить бит BOOTRST и подключившись через студию сделать обновление прошивки JTAG, залив через AVRProg файл upgrade.ebn (лежит он где то в каталоге AVR Studio). А после прошивки выключить BOOTRST.

Все, девайс готов к работе. Теперь осталось его только испытать в деле.

Работа с JTAG AVR ICE
Особо заморачиваться я не буду, так что покажу на простом примере мигания светодиодов.
Запускаем студию, создаем новый проект.
Выбираем язык программирования, пусть это будет Assembler.
Задаем имя проекта.

А далее, в разделе Debug Platform выбираем не AVR Simulator как раньше, а JTAG ICE.

В правом окне выбираем отлаживаемый кристалл, (у меня это Mega16) и жмем финиш. Все, дальше как обычно, вбиваем текст программы. Я не стал мудрить и по быстрому настрогал следующее:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
	.include "m16def.inc"	; Используем ATMega16
 
 
	LDI	R16,0xFF		; Порт А на выход.
	OUT	DDRA,R16
 
Main:	SEI			; Разрешаем прерывания.
 
 
	SBI	PORTA,0		; Зажгли диод 0
	SBI	PORTA,1		; Зажгли диод 1
	SBI	PORTA,2		; Зажгли диод 2
	NOP			
	CBI	PORTA,0		; Погасили диод 0
	CBI	PORTA,1		; Погасили диод 1
	CBI	PORTA,2		; Погасили диод 2
	NOP
 
	RJMP	Main		; Зациклились

Вот так вот просто. Если ее скомпилить, прошить и запустить, то диоды будут моргать с бешеной частотой, так как никаких задержек не предусмотрено. А что же будет из под JTAG?

Беру свою новоиспеченную отладочную плату на Mega16, подключаю к порту А три светодиода.
Подключаю к плате JTAG адаптер — четыре провода интерфейса (TDO,TDI,TMS,TCK) и два силовых Vcc на плюс и GND на землю — JTAG адптер запитан от целевой платы и все готово к работе.

Жму в студии компиляцию и запуск (Ctrl+F7). Проект по быстрому компилится, тут же через JTAG заливается в МК (JTAG может заменить программатор) адаптер при этом весело перемигивается светодиодом. Программа встает на выполнение, бодро показывая стрелочкой начало программы.

Можно трассировать! Тыкаю по F11 — прога исполняется по одной команде, показывая стрелочкой где я нахожусь в данный момент. После каждого выполнения команды SBI — у меня на плате зажигается соответствующий светодиод. Круто, блин! Как в каком-нибудь Proteus только без глюков и все вживую! Пробежался дальше по тексту — после CBI диоды погасли, как и положено. Вот как это выглядит вживую:

Дальше решил поразвлекаться. Не меняя программу, не перекомпиливая, не выходя из режима отладки. Открываю в AVR Studio вкладку I/O View
Протыкиваю там галочки:

  • DDRD.7=1 — вывод PD7 на выход
  • Затем лезу в раздел Timer_Counter_2 и там прямыми тычками по битам выставляю:
  • COM2 = 11 — инверсный режим работы вывода OC2 в режиме FastPWM
  • WGM20 = 1, WGM21 = 1 — Режим таймера 2 устанавливаем в FastPWM
  • От балды натыкиваю число в OCR2 — от него зависит коэффициент заполнения
  • Выставляю биты CS2 = 001 — запуск таймера.

Снимаю прогу с паузы (F5 — Run). Тычу осциллографом в ногу PD7 (OC2)

ЫЫЫ!!! ШИМ!!! Ставлю прогу на паузу, меняю биты в OCR2 запускаю снова — коэффициент заполнения изменился. Хы. Ручное управление :)

Так что с JTAGом если хочешь получить по быстрому какую нибудь фиговину вроде генератора даже не надо прогу писать — взял и включил вручную что тебе нужно. Богат AVR периферией :)

Прошивка микроконтроллера через JTAG
JTAG ICE можно также использовать для прошивки микроконтроллера и установки FUSE битов. Для этого надо запустить AVR PROG (Tools — Program AVR — Connect…) и выбрать там JTAG ICE ну и COM порт, хотя обычно канает Auto.

Жмем Connect и мы в эфире, главное не забыть выйти из режима откладки в студии. AVRPROG сам определяет тип контроллера, можно выбрать файл с флешем и/или епромом и прошить их. Отдельного разговора заслуживает вкладка Fuses.
В отличии от большинства программаторов, тут уже не придется париться по поводу битов SUT:CKSEL — все выбирается из понятного списка, написанного человеческим языком:

Наигрался, зафотографировал для статьи, упаковал в красивый корпус. Даже не поленился и обложечку сфигачил. Очень уж мне игрушка понравилась.

Файлы к статье:

Вот так и развращаютя эмбеддеры. Сначала к JTAG пристрастятся, потом ради одного лишь JTAG прееходят на более мощный кристалл там, где хватит и Tiny, а дальше Си, Си++, потом .NET какой нибудь на виртуальной машине… И вот уже операционная система весом в несколько гигабайт и требующая гигазы ОЗУ ни у кого не вызывает шока и ужаса. А ведь это страшно, господа! Прогресс, мать его. Не развращайтесь благами цивилизации, будте аскетичны и разумны. И не забывайте об оптимизации как программной, так и аппаратной.

Запись опубликована в рубрике AVR. Учебный курс, Готовые устройства с метками , , , . Добавьте в закладки постоянную ссылку.

409 комментариев: Внутрисхемная отладка AVR через JTAG ICE

  1. dumpkin говорит:

    Благодарности нет предела ))) Спасиб за сильную челюсть разжевывающая нам пищу для мозга.

    А как демоплата себя показала? Там у тебя вроде даже 2 USB есть…

    • DI HALT говорит:

      Демоплату еще толком даже не протестил. Не до нее было — с частным заказом разбирался.

      Усб там два, ага. Один аппаратный на FT232, а второй софтверный — просто нужный обвяз для подключения меги напрямую к USB

      • Интересная демоплатка. Не припоминаю что-то ее описания.

        • DI HALT говорит:

          А его пока не было — наметки на ее изготовление были постов 5 назад. Там же есть кривой (там футпринт под мегу не тот) прототип в Lay формате.

          А это полукоммерческая разработка. Может выпущу в производство, хочу сделать убийцу EasyAVR5 :) Те же фичи но в 5 раз дешевле :)

          • nwanomaly говорит:

            это был бы мегапост, про конечный вариант демоплаты )
            многих бы заинтересовал.

  2. sadmitry говорит:

    Есть вопорсы по JTAG:
    1. даже если программа не менялась, все равно при каждом запуске отладки студия перешивает кристалл заново ?
    2. Отработка программных задержек в студии через JTAG приводит в повисанию оной на время отработки задержки ?

    Купил дракона, скоро начну играться :)

  3. Werewolf-Prankster говорит:

    JTAG порадовал. Только не нужен он мне. Пока. Я думаю)

    Вопрос почти по теме. А где ты коробочки берешь? У нас они просто стоят ощутимо ) По крайней мере платить 30 грн за коробку мне кажется нерационально.

  4. Stalker46 говорит:

    ДИ, а что такое жтаг? и для чего он мне нужен?

  5. Stalker46 говорит:

    т.е. можно не по программе, перекинуть выполнение с одного куска проги, на другой?

  6. chipic128 говорит:

    Пины TCK TDO TMS TDI
    ето: SCK MISO ? MOSI
    как и куда их подключать к контроллеру?

    • DI HALT говорит:

      Ты при прошивке управляющего контроллера JTAG имеешь ввиду?

      Ну посмотри по плате и схеме как и куда ведут дорожки и так и подключай, словно обычную мегу.

      • chipic128 говорит:

        неа, — нето — А то куда в испытуемую мегу втикать
        и я атк понял можна только выше Меги16 ниже жтага нет?

        • DI HALT говорит:

          Да начиная от Мега16 и выше.
          Вот вроде перечень, не знаю насколько полный, но это то что поддерижвает конкретно первый айс:
          ATmega128, ATmega128L, AT90CAN128
          ATmega16, ATmega16L
          ATmega162, ATmega162L, ATmega162V
          ATmega165, ATmega165V
          ATmega169, ATmega169L, ATmega169V
          ATmega32, ATmega32L
          ATmega323, ATmega323L
          ATmega64, ATmega64L

          Подключать его к ногам TDI,TDO,TMS,TCK у отлаживаемого контроллера.

  7. Fox_Alex говорит:

    Вечный вопрос: этот JTAG — это совсем не то что JTAG для ARMов? Или он везде одинаковый?

  8. arkamax говорит:

    У маленьких камней debugWIRE для отладки… выполняется сумасшедшим дерганием RESET’а. Кстати куда более ного-экономное решение, хоть и геморройное — надо сначал через ISP врубить отладку по DW через соотв. фьюз, тогда отрубается сам ISP, но начинается отладка. Если нужен ISP — надо через DW отрубить фьюз DW, тогда включается ISP. В принципе с использованием студии и ICEII все работает более-менее приемлемо.

  9. Serg_v52 говорит:

    Интересно, на какое число прошивок уменьшается жизнь кристалла после отладки.
    Например, каждая точка останова это перепрошивка флеша?
    Выходишь из отладки — опять прошивка «верни все как было! » :)
    Может конечно и не страшно — 10 000 прошивок кристалл выдерживает по даташиту, но немного настораживает.

  10. SWG говорит:

    И чего это любители Атмел вечно с кварцами мудрят? На 11,0952 еще понятно — на нем все стандартные скорости RS232 на MCS51 (Intel 8051) получались с минимальной погрешностью, при его 12 тактовом исполнении инструкций. Но на Атмел с риск структурой — то зачем? Сколько в Интернете схем на PIC — везде частоты круглые, — 4, 8, 10, 16, 20МГц, и любые скорости RS232 — без проблем. Как же попадет схема на Атмеловском контроллере, так почти у половины — какой — нибудь хитрый кварц, который больше нигде нафиг не нужен, а потому смысла нет их закупать, пусть даже и по 50 центов (если еще найдешь)… Дурь какая — то… (Наверное, чтобы враг не смог задержки посчитать).

    • Fox_Alex говорит:

      Исполнен7ие инструкций тут совсем не при чем. Скорость UART делается из скорости кварца обычным делением на заданное число. А значит кварцы должны быть подходящие. Скажу по-секрету что AVR может и на 8 и на 16 Мгц работать нормально. Только если гонять большие посылки — будут сбои. Так-же и на PIC — «круглые» кварцы могут работать только при небольших объемах обмена. За 10-20 символов ничего никуда не уедет, а вот за 512 — уже так уплывет, что примется на ПК неверно.

      • SWG говорит:

        «за 512 — уже так уплывет, что примется на ПК неверно.» При асинхронной передаче синхронизация ПОСИМВОЛЬНАЯ! Накопление искажений за счет скорости исправляется привязкой начала отсчета к стартовой посылке! Так что по фигу, один байт принять или 1000. Я связист с сорокалетним стажем, и в свое время немало занимался проблемами искажений сигналов в телеграфных сетях и сетях передачи данных, разрабатывал приборы для их измерения, так что с проблемой знаком хорошо. Прием комбинации из 10 бит (стоп, старт, 8бит символа) + необязательный бит паритета, возможен при уходе скорости до 5%!
        «Так-же и на PIC — “круглые” кварцы могут работать только при небольших объемах обмена.» — аналогично. Например, с кварцем 4, 8, 16 мгц отклонение скорости, например, на 9600 бод, составляет всего 0,16%! Как видите, до 5% с круглыми кварцами весьма далеко… Учите матчасть, юноша.

    • DI HALT говорит:

      Потому что в каждом атмеловском даташите приводятся значения UBBRR для обычных кварцев и кварцев «особенных» и на особенных написано, что процент ошибки 0.
      Видимо оттуда мода и идет. А так да, на родном RC генераторе гоню данные на 19200 и никаких ошибок не возникало.

      • SWG говорит:

        Кроме искажений из за ухода скорости, (старт-стопных), есть еще искажения краевые (сдвиг или затяжка битовых фронтов, зависящих от канала связи). Возможно, многие их путают и валят все на кварц. Или неправильно считают коэффициенты делителей…

  11. Stalker46 говорит:

    ДИ, а как ты делаешь в 5 лайоуте макрос, с дип микросхемой с выводами в отверстия:? а то там только смд исполнения…

  12. Stalker46 говорит:

    а еще, какие номиналы электролитов во всей схеме? какие ты брал? в микрофарадах сразу скажи…

  13. Stalker46 говорит:

    а тот, что около МК? 10u — это сколько мкф? а то я все время путаю с 10uF.

    а еще. какие ты провода на разъем цеплял. что это за провод, например, который идет на 1 вывод МК? зачем он нужен?

  14. Stalker46 говорит:

    Я вообще схемы не понямаю, что куда идет… можешь нарисовать нормально в другой проге, а то уж очень хочется сделать. И печатку я свою сделаю, тк смд деталей пока что нет. Нарисуй схему, по которой ТЫ собрал.

  15. Stalker46 говорит:

    да, вот теперь понятно. Спасибо.

  16. Stalker46 говорит:

    так, схему посмотрел, кое что не понятно. Куда девать вывод LED и светодиод для него? что за выводы 15 и 16 на MAX232?

    • DI HALT говорит:

      У мк есть торчащая линия с надписью LED, очевидно туда.

      Если что не понятно — смотри по печатной плате.

      По поводу того что значит какой вывод — скачай даташит на МАХ232 там все расписано.

  17. Br.Misha говорит:

    Я живу в полтаве и тут небольшой напряг с р-деталями, вобщем заказываю их с харькова но меги16 щас у меня дома нету, и соответственно один МК я заказывать не буду. Но у меня есть мега32, можна ею заменить мегу16?

  18. Serg_v52 говорит:

    … «А поскольку у меня в ходу в основном Tiny2313, Mega8, Mega8535 и прочая мелочевка, то мне JTAG что собаке пятая нога — не поддерживается он в этих МК.»…

    Так может код отладить на Mega16 или другой с JTAG (на отладочной плате, на STK-500), а после отладки перекомпилить на «любимый» контроллер? В Меге 16-й скореее всего можно найти все необходимое, что есть в более мелких контроллерах, хотя надо проверять, может чего и нет…

    Этот вариант конечно не проходит при отладке готового устройства с уже впаяной микрухой без JTAG.

  19. SAWushka говорит:

    Схема принципиальная конечно, слегка несоответствует тому что на плате имеется :)

  20. chipic128 говорит:

    Все собрал, устройство собраное студия, я так понял видит, но выбрасывает ошибку
    скриншот:
    http://molokija.com/other/error_avrStudio.JPG

    Что можно сделать, та же ошибка вискакивает и без подключенного програмируемого контроллера и с ним… Подключаю ATMEGA16 16PI, в устройство JTAG поместил ATMEGA16 16PU

    тут на сайте http://www.scienceprog.com/build-your-own-avr-jtagice-clone/ нашел:

    scienceprog Says:
    March 20th, 2007 at 12:06 pm

    I cant say exactly for now, but once I had such situation. Maybe you have burnt atmega163 bootloader instead of atmega16. Or there is something wrong with detection with your adapter.
    crowinu Says:
    March 20th, 2007 at 8:21 pm

    i burnt this bootloader : http://www.scienceprog.com/wp-content/uploads/2006/11/boot.zip

    what adapter are you referring to?

    when i tried the other bootloader , this error popped up “No supported board found, AVR Prog version 1.40″.
    crowinu Says:
    March 24th, 2007 at 12:14 pm

    AVR JTAG ICE clone working. I still got the Atmega163 instead of atmega16 BOOT.

    Thanks.

    но как у него реально получилось решыть проблему я так и не понял…

    • DI HALT говорит:

      Прошей сразу готовой прошивкой. Не бутлоадером.
      http://easyelectronics.ru/img/AVR_kurs/JTAG/miniICE.hex

      • chipic128 говорит:

        я пробовал и так и так… много-много раз,… фюзы выставил как ты писал…
        сейчас еще раз попробую, но думаю что ничего не изменится.. вчера весь вечер седел… шыл

        • DI HALT говорит:

          А линии до таргета не перепутал? Все как надо?

          • chipic128 говорит:

            а если таргет вааще не подключать, должно запускатся?

          • DI HALT говорит:

            Если таргет плохо подключен (я просто щас выдернул два проводка из четырех),но JTAG запитан то вылазит как раз такая ошибка как ты мне на картинке показал.

          • chipic128 говорит:

            Видно чтото с контроллером таргета нето… не работает и все… все провода подсоеденил правильно
            MEGA16
            JTAG TARGET
            TCK(8) -> 24(PC2)
            TMS(2) -> 25(PC3)
            TDO(7) -> 26(PC4)
            TDI(6) -> 27(PC5)
            VCC <- VCC
            GND <- GND
            буду пробовать, можт кристал подцеплю так в воздухе…
            Кстати Таргет работать без кварца будет, если настроить от внутреннего RC генератора?

          • DI HALT говорит:

            Конечно будет. Главное хоть от чего то его затактовать.

          • chipic128 говорит:

            УРА!!! получилось, нашел причину — проблема в пиатнии, у маня на отладочной плате (Таргете стоит своя кренка на 5В, а питания Жтага я брал от иного источника, вот и получилась разница… в 0,5…1В и все… я и так и так… но теперь работает)
            вот фотки моих некоторых девайсов:
            target JTAG плата питания USBASP программатор
            http://molokija.com/other/device.JPG

    • ygrec говорит:

      Спасибо за программатор. Заработал не сразу, пришлось долго мучатся. Исключая косяки сборки резюме:
      - на плате проверяйте, включена ли отладка по JTAG, без этого выдается то же сообщение, что и по приведенной выше ссылке (http://molokija.com/other/error_avrStudio.JPG), о том, что отладчик виден, устройство не видно.

      Еще остался следующий вопрос — работает связь с таргетом в AVRStudio4 через меню Tools->Program AVR->Connect… , работает отладка как в студии, так и в IAR. Но AVRProg не догадывается, что связь с платой есть и не хочет прошивать кристалл. Работает ли у вас прошивка через AVRProg?

  21. Stalker46 говорит:

    и все таки мне не понятенузел с макс 232. впринципе, все там ясно (я такие схемы терпетьне могу) но не понятно одно:
    куда девать выводы 15 и 16 с кондеров С1 и С2?

  22. Stalker46 говорит:

    все. спасибо. печатку развел. можешь проверить? правильо? а то я как ты, часто косячу там, где можно накосячить)))

    http://stalker46.nnover.ru/photos/4853054.html

  23. Stalker46 говорит:

    да нет, кое что не так. резет для программирования забыл) подредактировал.

    т.е. жтагом можно запрограммировать МК?
    а обязательно ли atmega16 L ? или можно брать любую Мегу 16?

  24. VBKesha говорит:

    Спасибо за статью всегда интересно было узнать как это работает.

  25. GRafGRay говорит:

    На счёт внешнего питания не соглашусь, бо проблему вижу только в токе потребяемом ведомым устройством. Если от USB питать и программатор и программируемое устройство, пусть и с кучей светодиодов, проблема ИМХО может возникнуть только с портом USB, который в свою очередь до 500мА может отапливать.
    Я в своё время собирал железку, в которой было порядка 70 светодиодов — шил её вдоль и поперек и на сутки оставлял в рабочем состоянии — никаких казусов не произошло, всё живое всё функцианирует. Кроме того, в продаже есть самовосстанавливающиеся предохранители, у меня во всех программаторах на пол ампера стоят.

  26. Stalker46 говорит:

    DI, а какие ты бытовые контроллеры создаешь на заказ? и вообще что ты делал вообще для покупателей? Например, бытовой контролер. какой именно? что он делает? за скольо ты его родал, например, можешь описать?

    • DI HALT говорит:

      Я больше под промышленные решения делаю. ВСякую автоматизацию станков например.

      Последнее что делал:
      Систему управления заслонками печи. И туда же до кучи автоматику входной двери.
      Систему учета штрафных баллов для автодромов
      Систему связи охранной сигнализации и GSM терминала. (это у меня вообще серийный девайс)
      Цены большие. Скажем так, ниже 15-20тысяч я даже не берусь. Если дешевле, то девайс должен быть с прицелом на серию.

  27. Stalker46 говорит:

    можно даже статью написать)

  28. Stalker46 говорит:

    Е… мае… а как ты делаешь, например заслонки для печи? или ты только электронику готовишь? а остальное они? что такое Система учета штрафных баллов для автодромов

    • DI HALT говорит:

      Только электронику конечно.

      Да это фиговина такая. Табло с цифрами и пультом. Студент рулит, а гаишник сидит сзади и накидывает ему штрафные баллы за косяки. Как накидает до цимеса звучит сигнал и студент обламыавется получить права в этот раз.

  29. Stalker46 говорит:

    т.е. там есть приемник и передатчик? мент в другой машине?
    А как ты объявления делал? куда ты ходил? может ты спрашивал, не нужен ли вам… контроллер… дай сюда свой емейл. дело обговорить надо. или юин.

  30. Stalker46 говорит:

    понятно. А это окупается? Разве они готовы платить за то, что просто пульт? можно и словам исказать — извини друг, не в этот раз, придешь в среду… Чего они это покупают? это удобно?
    меня тоже заинтересовало.
    а что на счет Системы связи охранной сигнализации и GSM терминала — это что такое? как там все работает, расскажи пожалуйста)))

  31. Stalker46 говорит:

    iljin1994@yandex.ru напиши мне что нибудь. поговорим кое о чем.

  32. Stalker46 говорит:

    Кароче, ладно, буду сюда писать. Ты писал статью о том, как сделать квадратное отверстие — это случем, не тот индикатор, который показывает, сколько ошибок совершено студентом? если да, то покажи весь девайс))) просто хочется его вживую посмотреть, что он из сея представляет. Это первое.
    Второе. Кароче, что такое система связи охранной сигнализации и GSM терминала? где она применяется? много мороки с ней? Кто ее покупает?
    какие еще бытовые контроллеры делал?
    Я вот хочу сделать силовой девайс, но нужен совет. Кароче, это типа мешалка хлорного железа. Вобщем стоит банка диаметром в 30 см, с крышкой. в щентре крышки проделано отверстие. в отверстие опускаем вал двигателя на 12В. С другой стороны крышки на вал одевается винт от вентилятора. Мне надо сделать ШИМ. Нашимаем на 1 кнопку, работает двигатель с одной скоростию, нашимаем еще раз — с другой скоростью. Всего надо организовать 6 режимов работы. На лицевой панели стоят 6 светодиодов — 2 зеленых — 2 первых ШИМа, 2желтых — 2 средних ШИМа и 2 красных — 2 последних ШИМа — 2 последние максимальный скорости вращения двигателя. Транзистор я рассчитаю. Контроллер — Атмега 8. На чем ШИМ лучше будет делать?

    • DI HALT говорит:

      1) По новым правилам машины учеников должны бы быть оснащены такими пультами. Девайс не покажу, прототип ушел к заказчику. Дырки да, туда нужны были. Тот редкий случай когда надо быстро и красиво. Выглядит как две коробочки. На одной две цифры и две кнопки. На другой 6 кнопок.

      2) Рассказывать долго. Вкратце там стоит ОПС «Кварц» и какая то GSM херня на базе Wavecom. Между ними моя система. Покупает у меня их одна охранная фирма.

      » На чем ШИМ лучше будет делать?»
      Шим может сгенерировать АТмега же. Но тебе рекомендую для общего развития построить развертывающий преобразователь на дискретной логике (погугли на предмет того что это такое) ;)

      • >(погугли на предмет того что это такое)
        Гугл на первой странице по такому запросу ничего внятного не выдает

        • DI HALT говорит:

          Да, в самом деле. Странно, у нас целый предмет в универе был — Теория развертывающих систем. Там мы только и делали что разбирали изготовление ШИМ всякими извратскими способами. Кафедральный сленг? Слишком устарелая инфа?

          Короче, суть там в том, что есть опорный сигнал (постоянка) и развертывающий (пила то или иной формы) и постоянка вот этой пилой развертывается на компараторе в ШИМ.

  33. zgora говорит:

    Еще чем полезен JTAG: почти любой чип с JTAG поддерживает технологию граничного сканирования (boundary-scan). Boundary-scan предназначена для тестирования печатных плат и позволяет 1) считывать и 2) устанавливать сигналы на пинах чипов. Для устройств в BGA корпусах boundary-scan единственный способ «добраться» до сигналов на пинах (или правильно на шариках:) Есть программы, например, TopJTAG Probe http://www.topjtag.com, которые используют JTAG как 1) медленный логический анализатор и 2) для проверки соединений на печатной плате. Жаль только TopJTAG Probe не работает с Атмеловскими JTAG адаптерами.

  34. dobry_bobr говорит:

    Ди, а в Промэлектронике есть dip-переключатели)? и как они там назыаются?
    Это ведь они у тебя на отладочной плате справа, около светодиодной линейки стоят?
    зы: отладочная плата по фоткам шикарна))

  35. Stalker46 говорит:

    ДИ, смотри, на схеме есть обозначение выводов жтага —
    sck — tck
    mosi — tdo
    miso — tdi
    to1 — tms
    vcc
    gnd
    Это на самом жтаге. А куда эти выводы — tms, tck, tdo, tdi, подключать на сам отлаживаемый контроллер? На выводы tms, tck, tdo, tdi отлаживаемого контроллера? Значит надо просто соединить выходы tms, tck, tdo, tdi жтага с выводами tms, tck, tdo, tdi отлаживаемого микроконтроллера?

      • Vlad777 говорит:

        Добрый день!!!
        Собрал схему с FT232, замыкаю TX-RX — тестирую ком порт — обмен есть, диодики бодро мигают!
        Зашил готовой прошивкой — Студио не видит ДЖитаг….. -((((
        Зашил Бутлоадер, обновляю из студии прошивку — диодики мигают, статусбар движется, правда в конце какую-то ошибку выдает, но все равно после всех этих плясок студия целевое устройство не видит…..
        Правда у меня Мега32! Смотрел в книжке — вроде с Мега16 — близнецы-братья, только памяти больше… Я в шоке! Вчера весь день убил — ничего не получилось!
        А Вам не сложно затестить устройство на Мега32?
        Заранее спасибо! -)

    • TheZotant говорит:

      Stalker46 01 Авг 2009 15:58 написал:
      sck — tck
      mosi — tdo
      miso — tdi
      to1 — tms
      В соответствии со схемой с сайта scienceprog.com (ссылка есть в статье) и согласно печатной плате от DI HALTa в приведенном выше порядке перепутаны mosi и miso, правильный порядок:
      sck — tck
      mosi — tdi
      miso — tdo
      pb1 — tms
      Хотя я думаю Stalker46 все сделал правильно, просто опечатка.

  36. Vlad777 говорит:

    А в оригинале схемы PC1, PC2, PC3 подтянуты к земле, это принципиально???

    • DI HALT говорит:

      Там какие то джамперы должны быть. Вводящие адаптер JTAG в режим программирования. Я не знаю чо там в оригинале было. Видимо создатель клона решил сэкономить на пеньках. Собственно, работает.

  37. Jinrui Teki говорит:

    вполне фанерный вопрос, но теория интересна:
    Если я правильно все понимаю, то MAX232 есть нечто иное как девайс, принимающий и передающий сигнал?
    а если МК включить напрямую в СОМ-порт, исключая MAX232?
    Объясните пожалуйста для чего конкретно нужен сей девайс (MAX232).

  38. sergey2b говорит:

    Подскажите пожалуйста кому нибудь удалось успешно использовать в это схеме atmega16 вместо atmega16L ?

    >Вот, нарыл по Меге16
    http://www.telesys.ru/wwwboards/mcontrol/303/messages/144412.shtml
    читал, отличия в даташите кроме частоты и возможного V питания не нашел.

    • DI HALT говорит:

      Мне. БУдет работать, разница только в частоте, но жтаг работает на 7 мгц, поэтому даже на Л он в допустимых пределах

      • sergey2b говорит:

        большое спасибо за ваш ответ.

        еще один вопрос пожалуйста можно ли использовать в обвязки MAX232 не электролиты

        • DI HALT говорит:

          Я всегда на мах232 ставлю кондеры 100n керамику и никогда еще проблем не было.

          • sergey2b говорит:

            Спасибо за ваш ответ

            Если возможно дайте пожалуйста совет

            Я в свободное время собираю на atmega контролер (просто хобби не какой комерческой выгоды).
            одна atmega16 у меня для вывода видео на TV
            другая atmega8/16 CPU

            по какому протоколу лучше всего связать их между собой.
            atmega которая отвечает за вывод видео фактически видеоконтролер и ее RAM это фактически видеопамять

            второй вопрос где можно посмотреть как использовать один кварц для двух atmega

  39. svv говорит:

    Как вы думаете, возможно ли переделать Pickit2 в GTAG? Bедь у него на борту наверно всё есть и наверно дело только за софтом, ну может ещё пару пинов от проца на выход скоммутировать?

  40. SAShA_II говорит:

    Очень хочется собрать отладчик с debugWire. Если есть у кого какая информация скиньте на saveinfo@mail.ru. А то что-то в интернете про это ничего нет. Как я понимаю это очень простая штука, тока про неё никто ничего не знает.

    • DI HALT говорит:

      Там все очень сложно. ATMEL лоханувшись с AVRICE в своем ICE 2 или Dragon’e сделали неслабую защиту.

      Единственный клон который может поддерживать DebugWire сделали китайцы, продают за 30 чтоль баксов. НА Ебае можно найти, они там единственные. Также можешь купить себе AVRDragon — он тоже стоит недорого, что то около 2.5тыр.

  41. tanGO говорит:

    А можно пошагово расписать заливку программы в контроллер через JTAG?
    Постоянно ошибки выскакивают, а после нескольких попыток и перестал видеться отладчик JTAG ICE

    • DI HALT говорит:

      А сам JTAG работал?

      • tanGO говорит:

        Наверное, да…
        Этап просмотра — настройки фьюзов был пройден и распознавался JTAG нормально
        А попытался залить .hex и ELF файлы и полный пипец.
        А программно JTAG убить можно или только слетает прошивка или что- там еще может…дрова на УСБ например??

        • DI HALT говорит:

          Пихай туда уже готовый флешь, не майся с бутлоадером.

          JTAG можно программно убить только если попытаться его обновить или перепрошить через его родной бут.

          А дрова на USB легко проверяются. Коротишь RX TX и цепляешься терминалкой на виртуальный порт — символы должны возвращаться.

  42. svv говорит:

    Когда-то наверное года 3 назад сделал ком-порт на FT232BM, для ICD2, всё как положено с преобразователем напряжения на 13в, с памятью, со светодиодами, плата размером со спичечный коробок заканчивалась разъёмом к которому предполагалось подключать программаторы, для пиков или атмелов. В силу того что мне в руки попал заводской ICD2, а атмелы тогда были не нужны, сия маленькая платка так и валялась всё это время. На днях собрал и подключил к ней схемку описанную в статье, драйвер для FT232BM взял здесь ftp://ftp.efo.ru/pub/ftdichip/Drivers/combined/2_04_06/CDM%202.04.06.exe . Заработало всё сразу. После установки драйвера при подключения девайса в «диспетчере устройств» появляется «USB Serial Port (COM6)», но шестой студией не ищется автоматически (максимум до четвёртого), изменил на второй (этот номер не был занят). Зашёл в «параметры порта», установил нереальную для настоящего ком-порта скорость 9215600 – больше там не предлагается (по умолчанию 9600) – работает, значит шить можно быстрей! Т.о. польза от USB не только халявное питание и удобное подключение.
    Полагаю, что на моей маленькой плате память необязательна, так как в инете выложены варианты и без неё. А вот 13в можно использовать если из него делать 5в посредством 78L05 который ограничивает ток до 100мА защитит от короткого и можно без опасений питать целевую плату.
    Упомянутая в статье опасность питания целевой платы через защитные диоды нереальна в силу того что эти диоды получаются включены встречно, а вот наоборот или через порты возможно, и в некоторых случаях при неаккуратных действиях с напряжением в целевой плате выше 6в кристалл программатора можно убить, поэтому параллельно питанию считаю следует поставить стабилитрон на 5.6в, при малом токе это поможет.
    В целом статья полезная, спасибо.

  43. eliran говорит:

    дык как дебагить мегу8 или тини2313?

  44. VirZh говорит:

    Классная штука JTAG. Решил повторить, но, думаю сделать на SMD Меге16… Начал переделывать печатку… А ведь со схемой небольшие неувязочки… Например вывод 17 меги сидит прямо на корпусе, по схеме — через резистор… Вывод 25 по схеме — не подключен, на печатке — корпус… Предполагаю, что правильно все-таки печатная плата (Поскольку уже повторялась). Что по этому поводу думает разработчик?

    • DI HALT говорит:

      Да есть там такие мелочи. Дело в том, что эти выводы настроены на вход и служат задачей версии прошивки. У меня они жестко на землю и там всегда ноль. А через резистор в оригинальной схеме — это автор схемы перестраховался, чтобы вдруг случайно не выставили там жесткую 1 и схема не сдохла.

  45. phreaker говорит:

    Собрал,все работает. Автору спасибо,сайт супер!!!

  46. ZiC говорит:

    Доброе время суток! Скачиваю прошивку miniICE.hex, а она весит 46кило. Это я неправильно делаю или она насамом деле стока весит, но тогда как ее впихнуть в мегу16 для которй она какбы «перднозначена»?

    • DI HALT говорит:

      Так и должно быть. Почитай описание формата хекс. Там дофига левой инфы (контрольные суммы, адреса итыды) не считая того, что каждый байт записан текстом и занимает 2 байта

  47. Br.Misha говорит:

    несколько туповат вопрос но всё же спрошу:
    Если этим отладчиком отключить SPI то МК можна будет программировать по JTAG?

  48. s_black говорит:

    Здравствуйте!
    Собрал JTAG. В режиме отладки работает, в режиме программирования не хочет — пишет какую-то ошибку (не знаю, как сюда добавить скриншот). Может нужно «поиграть» уровнями на PC0-PC3?

  49. xmrp говорит:

    Добрый вечер.
    Есть один вопрос по поводу разводки уартной части жтага. Есть некоторые отличия от оригинальной, которую вы предложили в предыдущем посте
    Например, здесь на ножку 19 ft232 подается Vcc (хотя в оригинале у Вас Vcc подается на 20 пин, 19 вообще не используется, так же сразу Vcc идет на 2 резистора по 510 Ом). Так же на линии Vcc добавлен резистор в 4.7кОм.
    Если не секрет, с чем связаны эти изменения?
    Собрал плату по твоей схеме, еще МК не садил в панельку, но предварительно включая саму ftdi-шнурок который образовался на этой схеме к юсб он не дает виртуальный ком (

    • DI HALT говорит:

      Там сделано питание усб адаптера от отлаживаемой платы.

      Чтобы при включении платы появлялся порт. Поэтому чтобы адаптер дал виртуальный ком порт надо подать питалово на FTDI от целевой платы.

  50. RDX говорит:

    Извиняюсь если уже спрашивалось, а схем для самопального высоковольтного программатора нигде нет ? ато надо пару запореных атмег8 воскресить

    • DI HALT говорит:

      Я не делал, а вообще схема есть. На мега16 собрана. pol-sem.narod.ru

      • RDX говорит:

        Программатор FBPRG
        Параллельный программатор AVR Paraprog

        который из них ? если второй то проблема микросхему с оптопарами найти кр293, можно ли заменить, и почему такой кварц диковинный 7.37 Мгц?

        • DI HALT говорит:

          Paraprog

          АНалогов такого оптрона не встречал, но подойдет любые опторелюшки по такой схеме.

          Это не диковиный кварц, это кварц для минимизации ошибок UART часто встречается.

          • RDX говорит:

            попробую собрать, как я понял 12 вольт только к ресету подключается, остальные провода на обычные порты тянутся от програматора к МК ?

  51. MishaL говорит:

    Собрал Jtag по вашей схеме.AVR Studio его видит,но говорит,что питание меньше минимальных 1,7В.Никак не могу понять в чем проблема,хотя на всех ножках питания присутствует 5В.Нигде не коротит,все уже проверил…

  52. Negor говорит:

    DI, напиши аддон к статье если не сложно. Для тех кто в танке с заваренной башней-смотрите схему и не думайте что подключение такого же типа как при SPI интерфейсе. Я то не знал что в адаптере jtag программно реализован и так себе смело TMS к TMS TCK к TCK и тд и всю очь сижу и тыкаюсь чёж блин оно не работает? под утро когда схему начал смотреть думал что приснилось. не поверил и пошёл на polshem.ru смотреть. Вот такой вот косячище я накосячил

  53. Mihey говорит:

    Добрый вечер, тоже решил собрать схему, после пары часов мучений получил вот это [URL=http://piccy.info/][IMG]http://i.piccy.info/i4/9b/4d/6542df8078fc9ac398a25e932320.png[/IMG][/URL]… заступорился)))
    ничего не знаете про эту штуку?

    • DI HALT говорит:

      Знаю, не все выводы к земле подключил. По моей печатке собирал?

      • Mihey говорит:

        да, в смысле все ноги к земле? у меня ещё мега 16 в tqfp корпусе, плату развёл по пинам даташита, сейчас проверю ещё разок..
        (если имееш ввиду ногу с резюком 10к, то всё нормально)

        • DI HALT говорит:

          Посмотри по моей разводке, там выводы некоторые надо к земле приткнуть. На родном жтаге там стоят джампера которыми версию прошивки задают, а еще АЦП которое меряет напряжение на целевой плате, вот один из выводов надо на питалово загнать, другие (которые задают номер версии) на землю.

        • DI HALT говорит:

          Коммент чуть выше твоего:

          «Спасибо,так и есть!Подал напряжение на PC0,PA2 и землю повесил на PC1,PC2,PC3-все заработало=)»

  54. sergey2b говорит:

    Подскажите пожалуйста можно ли питать jtag от собственного источника питания (не PC) а с отлаживаемой платой соединить только землю ? или лучше все же брать питание от таргета. Вопрос возник потому что на плате на которой я его собираю уже есть собственные +5

  55. Mantaj говорит:

    извиняюсь если повторяюсь.Но печатка на это изделие у меня по какойто причине не открывается,вернее открывается всякая абра кадабра.Ваши комментарии по этому поводу,и в какой версии проги она соткана.

  56. DocentM говорит:

    А зачем нужен 6 провод на шлейфе? Я не увидел куда его подключать.

  57. vjr говорит:

    Дорогие друзья, есть вопрос такого плана, не могу определиться — внутрисхемная отладка AVR через JTAG ICE на макетке — набор стандартный ( mega128l, кнопки, ЖКИ, св.диоды и т. д. ) так сказать пошупать в живую, или начать изучать протеус и тоже самое делать в нем — убить время? Для шаманства есть то и то, как быть?

  58. vjr говорит:

    Не долго музыка играла, …, не подскажите где про фузы можно почитать.

  59. vjr говорит:

    Интересует в Пони, галка стоит это — вкл. или выкл., а то я в codevision прошил, наверное отправил «камень» к проотцам.

  60. valio говорит:

    А разводку платы под FT232RL + JTAG AVR ICE случайно не делали ?

    Какие там могут быть особенности с подключеним ?

    СОМ-а нет в принципе :-(((

  61. vjr говорит:

    Возможно не по теме, но раз связанно с отладчиком, напишу сюда, что если при прошивке megи в code vision через lpt — фузы установил в точности до наоборот, просто не пойму, новый «камень» определялся, читался, ВСЕ нормально и фузы выставил ( скорей всего перепутал 0 с 1 ) , после шаманства — список проблем и в Пони ошибка (-24). Возможна реанимация?

    • DI HALT говорит:

      Скорей всего поможет подключение либо внешнего кварца, либо RC цепочки. либо внешнего генератора. Смотря как ты фузы не так выставил. Хотя если ты отключил reset то тебе без выскоокольтного программатора делать нечего.

  62. vjr говорит:

    Да, но если OCDEN — 0, разве можно читать содержимое МК? И вообще можно, что либо делать? Кварц есть, делаю.

  63. Виктор говорит:

    О, сайт ожил…

    А оптически развязывать его не надо? При питании отлаживаемого девайса от внешнего блока питания.

  64. NicholasR говорит:

    Скажите пожалуйста, для чего используется линия PB0 — 6 вывод разъема IDC10?
    Для чего он нужен и можно ли обойтись без него при программировании контроллеров?
    Спасибо.

  65. Dmitriy_L говорит:

    Здравствуйте. Скажите пожалуйста, выводы – TDI, TDA, TMS, TDO на целевой плате во время отладки по JTAG можно использовать (например как обычные порты ввода вывода)?

    • DI HALT говорит:

      Нельзя, их даже сконфигурировать будет нельзя пока JTAG не отключишь фуз битами.

      • R_ura говорит:

        А если в отлаживаемом устр-ве на этих ( TDI, TDA, TMS, TDO ) ногах висят внешние цепи? Скажем оптопары. Как быть при подключении JTAG? Отключать от этих ножек МК или не будут мешать?

        • DI HALT говорит:

          Если там что то управляющее, то оно может сойти с ума. Т.к. жтаг будет гнать там свои данные. Или будут мешать работе жтага.

          • R_ura говорит:

            На них висят датчики, т.е. оптопарный транзюк с резистором, подключенным к +5в. Сконфигурированы как входы. Причем в отладке датчики эти не работают, т.е. просто будет висеть на ноге резистор на +5в и закрытый транзистор на землю..

          • R_ura говорит:

            Да! Еще вопрос возник. А какая максимальная длина шлейфа может быть от JTAG до отлаживаемого устройства?

          • DI HALT говорит:

            Не проверял, у меня больше 30см не было. В оригинальном жтаге тоже проводок короткий.

  66. Dmitriy_L говорит:

    Скажите, а будет ли работать схема с СОМ-портом через переходник USB-COM? Понятно, что можно сделать плату сразу для USB, но все же?

  67. Dmitriy_L говорит:

    Еще вопрос, а кроме JTAG и Debug Wire есть еще другие средства отладки.

    • DI HALT говорит:

      Есть еще внутрисхемная эмуляция. Это когда вместо МК в схему вставляется эмулятор МК, делающий все через комп. Но это дорогая экзотика уже.

      Плюс софтверные эмуляторы вроде протеуса. А еще есть вариант с отладочными сигналами (usart и выводы под отладку)

  68. raym0n говорит:

    Добрый день!

    Для дипломного проекта понадобился JTAG ICE. У меня есть arduino (http://www.arduino.cc/en/uploads/Main/Arduino-Diecimila-schematic.pdf) — почти тоже самое, за исключением кварца. В arduino установлен кварц на 16 MHz а в данной схеме — на 7.3 MHz. Будет ли работать прошивка на 16 MHz??

  69. decibel говорит:

    Здравствуйте.Собрал по вашей схеме USB JTAG. Прошивал через STK500.Как я понял в AVR Studio fusi инверсные. Но Studia его невидит. Ниже прочитал что надо соединить ноги 23,24,25 на минус.После етого загорелся Led который подсоединон к 4 ноге, но Studia всоравно его невидет. Помогите пожалуста советом, что не так?

    • DI HALT говорит:

      фузы то верно зашил?

      • decibel говорит:

        Сегодня решил зашить заново,но считать фузы немогу. Выкидывает ошибку ISP Mode Error. Это значит что фузы неправильно зашил7

        • DI HALT говорит:

          А какой программатор? Кварц подключен был?

          • decibel говорит:

            Программатор у меня STK500.Кварц при програмировании неподключал.Сегодня подключил кварц и удалось зайти,зашил заново но непомогло.В Avr Studia в фузах галки посравил на OCDEN,JTAGEN,SPIEN.Меня смущает то, что при подключение JTAGa компютер его опазнает как USB. В Avr Studia USB порт выбрать не предлогает. Может в етом причина?

          • DI HALT говорит:

            Такс, значит у тебя usb раз usb то должен быть usb-com определи на какой com порт у тебя сел адаптер usb-com и выстави ему номер порта не старше чем 4 (т.к. авр студия сканирует только первые четыре ком порта)

          • decibel говорит:

            Подскажи, пожалуйсто, как выставить номер порта?

          • DI HALT говорит:

            в настройках устройства. В диспетчере оборудования.

          • decibel говорит:

            Ура, получилось!Выставил порт и всё пошло. Спасибо!

  70. prometey говорит:

    JTAG конешно вещь, но есть куча но. Нажатие на F11 это не один тик контролера, а вследствие этого начинают работать сами по себе все интерфейсы, АЦП, а если прога завязана на таймер то ваще на выходе получаешь жуткую кашу… Может это дело не лыжах конешно, но соответствующей настройки не нашёл ни в драгоне, ни в айсе. Как то так,)

  71. prometey говорит:

    Забыл добавить, dW — отладка(на драгоне по крайней мере) работает честно, один шаг — один тик. Странно однако.

  72. decibel говорит:

    Сегодня решил зашить заново,но считать фузы немогу. Выкидывает ошибку ISP Mode Error. Это значит что фузы неправильно зашил?

  73. aske12345 говорит:

    Здравствуйте, извините за глупый вопрос но всётаки: — на представленной разводке, которая для usb между 15-й ногой mega16 и 5-й ногой FT232 стоит какой то чип элемент при наведении курсора на который у меня отоброжается 000 — это просто перемычка или что это? не догнал я чтой то

  74. TheZotant говорит:

    Всем привет. Есть вопрос по схеме отладчика с USB. На схеме между питанием и землей микросхемы FT232R стоят кондеры 100nF и 4.7uF, на плате DI HALTa их нет. Вопрос: будет ли без них работать отладчик?

  75. TheZotant говорит:

    Всем привет. Есть вопрос по схеме отладчика с USB. На схеме между питанием и землей микросхемы FT232R стоят кондеры 100nF и 4.7uF, на плате DI HALTa их нет. Вопрос: будет ли без них работать отладчик? Спасибо, DI HALT, за отличную работу.

  76. R_ura говорит:

    Добрый день. Не понял я следующего. А при помощи JTAG можно отлаживать программу в реальном времени. Вот у меня, если отсчет паузы начинается с 6 секунд, то при досчете до 1 сек, МК начинает жутко тормозить. В АВРСтудио, чтобы дождаться отсчета этих 6 секунд, при 16мгц МК, надо ждать неделю или вручную выставлять все эти многочисленные флажки и и.п.. А с JTAG возможно запустить МК в реальном времени и в нужный момент остановить выполнение программы, чтобы глянуть, что там происходит?
    Еще вопрос — а для варианта с USB пршивка та же??

  77. R_ura говорит:

    Сейчас глянул, у нас MAX232 в корпусе DIP стоит примерно 8 у.е. а в корпусе SO 16 (smd) 1.5 у.е. С чего бы такая разница? Может какие нюансы есть?

    • DI HALT говорит:

      Разницы почти никакой. Может из разных приемок (военная/гражданская) или партии разные. Или серии (более дорогая более быстрая, хотя один хрен до 115200 все пашут идеально)

  78. R_ura говорит:

    Спасибо за ответ. И за сайт тоже. ))

  79. R_ura говорит:

    Кстати, далеко не у всех есть Webmoney и подобная хрень. Было бы больше пользы , если бы мохно было тоже сделать через смс.

  80. R_ura говорит:

    А зачем мне знать, сколько там снимут? Я отправил, к примеру, сколько не жалко в данный момент, а ты там получил, с вычетом связистов. Думаю, что значительную сумму вряд ли кто отошлет, но даже, если из нескольких долларов тебе останется половина — плохо что ли? Деньги маленькие, но людей много. Я сужу по некоторым сайтам — там указана цена смс ( пусть там 2 у.е, к примеру), а сколько доходит адресату после связистов — кто знает?? В любом случае за счет кол-ва народа что-то набегает.. А с этими электронными платежами сложно все. Я в большом городе живу и не сталкиваюсь с этим, а многие в глуши. Просто был сегодня порыв, но сунулся , а там — стена из Webmoney..))))) Думаю, я не один такой..

  81. R_ura говорит:

    Ну что поделаешь, все мы платим кому-то. А так большинство просто лишены возможнности отблагодарить тебя за твой труд. Может я отстал от жизни, но мне кажется, что с электронными деньгами как-то гемморойно. Его еще завести где-то надо, уметь пользоваться.
    )))) Кстати, если ты не укажешь, то никто и знать не будет , что больше платит операторам, чем тебе.
    Ну это твое дело, разумеется. Я просто изложил взгляд со стороны. Телефон есть всегда и у всех. И отправить смс проще пареной репы. Ну в любом случае спасибо за твой полезный труд.

  82. R_ura говорит:

    Di, собрал отладчик, но возник вопрос с фьюзами. Я пользуюсь Pony Prog. Открыл окно фьзов, считал с 16 меги их состояние. Окошко SPIEN неактивно, в смысле не меняется, но в нем на затемненном фоне стоит галочка. Так и дрлжно быть? И можно ли потом будет перепрошить этот МК обычным программатором?

  83. R_ura говорит:

    Добрый день! Что-то я совсем запутался. Выше указано, что надо собрать по твоей плате.
    Сделал. Не работает.:))) Читаю дальше:
    DI HALT декабря 11, 2009 at 3:06

    Посмотри по моей разводке, там выводы некоторые надо к земле приткнуть. На родном жтаге там стоят джампера которыми версию прошивки задают, а еще АЦП которое меряет напряжение на целевой плате, вот один из выводов надо на питалово загнать, другие (которые задают номер версии) на землю.
    DI HALT декабря 11, 2009 at 3:07
    Коммент чуть выше твоего:
    “Спасибо,так и есть!Подал напряжение на PC0,PA2 и землю повесил на PC1,PC2,PC3-все заработало=)”
    Запутался совсем. На твоей плате ноги PC1,PC2, никуда не подключены. Как правильно ?

  84. R_ura говорит:

    Спасибо. Понятно. Тогда вопрос — почеу Студия не находит JTAG? Я, правда, никогда не использовал COM порты. Может их надо в Винде как-то включить? Еще, а как, не создавая новый проект, на JTAG «повесить» старый, готовый проект?

    • DI HALT говорит:

      Причин может быть масса. Но если все гарантированно верно прошито, то скорей всего номер порта выше 4, тогда студия не увидит адаптер.

      В настройках проекта можно изменить тип отладки.

  85. R_ura говорит:

    Ну прошивка вроде нормально прошла. Pony выдал, что прошивка завершена успешно.
    Di , извини, но мы говрим на разных языках, вернее на разных уровнях. Тебе понятно и кажется, что это ясно само собой.
    Вот что в реальности значит — скорей всего номер порта выше 4, тогда студия не увидит адаптер.

    У меня всего 2 COM порта в компе.

    • DI HALT говорит:

      Если ты еще и фузы верно выставил, то вообще должно быть хорошо :) МК то еще раз отзывается на программатор? ;)

      Так, значит у тебя нативный ком порт. Проверь интерфейс. Замкни у меги 14 и 15 выводы. Это ком порт. Подключись в терминалку и отправь что нибудь — символ должен вернуться.

  86. R_ura говорит:

    Спасибо, Di, попробую вечером.

  87. R_ura говорит:

    Прверил весь монтаж, установил еще раз фьюзы, перепрограммировал еще раз МК. И — ничего. У меня стоит MAX232IN, а не 232А. Может поэтому? Где-то я читал, что емкости в обвязке должны быть другие.
    А что значит нативный кои порт? Неактивный что ли?
    Как подключиться к терминалке? ( что это?) и как и куда что-нибудь оправить?

  88. R_ura говорит:

    Спасибо, первый раз вижу эту программу.
    )))) Черт знает как ей пользоваться. Нажал вверху кнопку Connect. В нижнее белое поле ввел 65 , нажал Send. в СЕРОМ ПОЛЕ НИЖЕ ПОЯВИЛОСЬ 65. Выходит, что МАХ работает??

  89. R_ura говорит:

    Переключил в терминале на COM2, результат тот же. А я ведь на другой порт разъем не преключал. ))) Выключил питание JTAG — тоже значки пересылаюися из белого поля в нижнее серое.. Или чудеса или я совсем тупой ??))))

  90. R_ura говорит:

    Там же все написано!!!
    )))) Di, не раздражайся . Это тебе уже все понятно. А на первый взгляд сразу и не въедешь.
    По сути дела — ничего в верхнеесерое поле не возвращается. Наверное дело в MAX.
    Куплю с буквой А, думал без разницы. Во как !))

  91. R_ura говорит:

    Сначала 0.1 smd, сегодня поменял на 1мкф электролиты. Тоже самое. Не возвращается ничего через терминал. Только в верхнем сером поле как-то произвольно появляются и т.д.. Сейчас, пправда, включил — нет нулей в поле возврата. Вообще-то странно — простейшее, вроде бы, изделие — не работает..)))))) Щас еще 101 раз проверю монтаж. А если замкнуть COM порт не после MAX, а перед ней?? Может у меня в компе что-то не то с этими портами? Я ими не пользовался никогда.. Хотя заходил в мастер настройки оборудования, выдает , что COM1, COM2 работают нормально.

  92. R_ura говорит:

    Di, спасибо за участие и советы. Замкнул линии на входе MAX — порт работает, в терминале возвращаются данные. Теперь буду знать, как COM проверить.))) Судя по всему, продали мне нерабочую микруху, а я тебя тут гружу. Завтра куплю другую.

  93. R_ura говорит:

    ))Это какой-то позор — не могу сделать простейшее устройство!!))))))
    Di, такая вот картина — с вынутой Мегой16 и замкнутыми ногами 14,15 Терминал возвращает все значения правильно. Со вставленной (м разомкнутыми ногами 14,15) — возвращает какую-то хрень, вместо букв — другие буквы. И не находится Студией! Мегу 16 я программировал в отладочной плате, там стоит кварц на 16Мгц. Хотя Пони выдает, что запись прошла успешно. Фьюзы тоже соответствуют твоей таблице. Длина кабеля от COM порта около 2 метров. Не знаю, на что еще и грешить? Кварц 7 мгц, правда , нечем проверить!!
    Взял другую Мегу — результат тот же! При включении питания загораются оба светодиода, начинаю в Терминале отправлять символы — один гаснет и начинает возвращаться ерунда какая-то.

  94. R_ura говорит:

    Ну как у тебя выше в таблице указано — там где у тебя галка, я в Пони тоже галочки поставил. Где у тебя в скобках пусто, в Пони тоже чисто.

  95. R_ura говорит:

    Блин, эта путаница с фьюзами может свести с ума. Можно заблудиться в трех соснах. Чем больше разбираюсь, тем меньше понимаю. Запрограммированный воспринимайте как незапрограммированный и наоборот!!))))))))) Тьфу, тфу, тьфу! )) Сейчас глянул для Пони фьюзы для ВЧ кварцевого резонатора (3-8 мгц) — SKSEL0-3 = 1, т.е. без галок, а для такого варианта SUT0-1 = 0 вообще нет, как у тебя указано. Бляяя, или все наоборот??))))))))))))))

  96. R_ura говорит:

    )))) Di, на SUT то я забил, и после прошивки все видится, но ведь нихрена Студия его не видит. Мне уже стыдно надоедать, но хочется этот девайсик повторить..))) Может Студия кривая какая? Версия 4.14..

  97. R_ura говорит:

    Да, после подачи питания, при выключенной Студии, зажигается светодиод. На второй попытке что-то отправить в терминале — гаснет и что-то начинает возвращаться.
    Блин, как я могу неправильно запрограммировать МК? Не может же кварц в отладочной плате на что-то влиять? Попробую еще раз прошивку скачать..

  98. R_ura говорит:

    S>> a , drt>>EE, P>>E, большей частью возвращается Е .
    Сейчас еще проверил , вместо S возвращается А, следующий возврат Е, следующий А..)))
    если подряд отправлять S, то возвращаются AEAEAEAEAE..
    Di, а должна студия находить JTAG если нет отлаживаемого МК?

    • DI HALT говорит:

      Ну мой как себя ведет — после запуска горит диод. Отправляю первую S — диод гаснет, а в ответ нифига. Отправляю вторую S — в ответ E.

      Если МК не подключен, то студия скажет тебе что жтаг найден, но таргет не подключен и предложит попробовать еще раз.

  99. R_ura говорит:

    У меня так — после подачи питания загорается диод. Отправляю S — ничего, отправляю второй раз — гаснет диод и возвращается E, а вот дальше возвращается Е только каждую третью посылку. Может все нормально он работает, а надо в студии где-то поклацать?

  100. Alexoid говорит:

    Собрал схемку,связь через СОМ,как программатор — JTAG работает отлично. А в режиме отладки Студия выдаёт ошибку-»Сould not connect to JTAG». Порт указан верно, везде питание включено, debug platform — JTAG ICE, проц — ATmega32.Где то встречал что такое может быть из за не правильной последовательности включения железа и софта если кто сталкивался подскажите каков порядок работы в режиме отладки. Спасибо!!!

  101. marsden говорит:

    DI HALT, правильно ли я понимаю, что через этот программатор можно программировать МК, у которых SPI заблокирован?

  102. Stydent говорит:

    DI HALT, возник вопрос по пункту «Прошивка микроконтроллера через JTAG». Что конкретно произойдет после нажатия Connect? появится окно с вкладкой Fuses? а как и когда происходит сама прошивка? Извиняюсь за вопрос, нет возможности проверить на практике

  103. Medved говорит:

    Собрал я отладчик. Только работает он не совсем так как надо. Если я выполняю программу построчно (тыкаю F11) то всё нормально. А вот если ставлю где то в коде брекпоинт и жму F5 то программа в контроллере (бегущие огни) виснет намертво. Иногда бывает что программа всё таки останавливается на брекпоинте но это бывает редко. Может быть это от того что у меня Atmega32А (там когда выбираешь Platform & DEvice есть просто мега32 без индекса А)?

  104. AJ26 говорит:

    Доброго времени суток! задался вопросом — отладка по jtag доступна в основном для «сороконожек», вроде atmega16 … это понятно. A Прошивка микроконтроллера через JTAG например для atmega8 наверное тоже недоступна ? или я приятно ошибаюсь?

  105. marsden говорит:

    Не работает :(
    Собрал схемку, залил прошивку, воткнул МК в схему, запитал, сделал Tools-Program AVR-Connect, выбрал JTAG ICE, порт Авто, жму Connect — через несколько секунд светодиод гаснет, а AVRStudio вываливает это же окошко и в заголовке Connect failed. От схемы отошел только в том, что кварц поставил на 8,0 МГц — может быть причина в этом?

    • DI HALT говорит:

      Причина именно в этом! Кварц должен быть точно такой, какой указан на схеме.

      • marsden говорит:

        Вот засада! :) Ладно, уже заказал, через недельку придет — погоняю :)

        • DI HALT говорит:

          Вообще, если где то стоит хитрый кварц, то наверняка он стоит там неспроста. А если используется USART или USB то однозначно так нужно, т.к. все тайминги тактируются от этого кварца. Поменял его хоть чуть чуть — все накрылось.

          • marsden говорит:

            Век живи — век учись! Дураком помрешь… )))
            Спасибо тебе, DI HALT, как только проект сбацаю — пиво с меня )))

          • DI HALT говорит:

            Ловлю на слове!

          • marsden говорит:

            Супер! Заработало! привезли кварц, впаял, подключил — тут же все пошло :)

  106. pavel777k говорит:

    Спасибо автору за статью и предоставленный материал.
    Сегодня собрал, подключил — все работает. С прошивкой вообще не парился, взял прогу
    EBN2HEX.exe (в инете любым поисковиком, я взял со страницы http://forum.easyelectronics.ru/download/file.php?id=488&sid=12d18e7d63f55c9ed0c57cf6eedc51b3 ), затем из каталога студии взял файл Upgrade.ebn,
    командой EBN2HEX.exe Upgrade.ebn Upgrade.hex получил файл Upgrade.hex который прошил прогой PonyProg в Мегу16. Все, никаких бутлоадеров и битов BOOTRST !!!

  107. marked говорит:

    Странно, всё прошил, плата без косяков, а когда подключаб питание всё жетка греется. Даже без МК и max232. Прошивал с кварцем в 16 МГц и фузы верные, прошивка точно в МК. Светодиоды тоже вроде верно.
    Что может быть?

  108. Dobby говорит:

    DI HALT слушай такая беда, атмег 16 в помине нет в магазине, а есть атмега 32, которая и была куплена в колличестве двух штук, так вот по сути как ее прилепить к этому программеру с JTAG ? Нужно быстро слепить, так как времени не очень много, я правильно думаю, что прошивать чипсет, который в программаторе, также как и 16 атмегу нельзя или нет? И если нельзя, то как выкрутиться? Да кстати хорошего отдыха тебе и всем присутствующим на этом форуме!

  109. Dobby говорит:

    Собрал за два дня такого зверя, завтра буду проверять, кабель юсб забыл сегодня купить.
    Плату правда сам разрисовал т.к. разьема юсб не было такого как на сканере, да и фт 232 получается под атмегой, мне это не понравилось. Плата получилась размером чуть меньше футбольнога поля. В следующий раз учту промахи. :)))

  110. Blambik говорит:

    Я вот подумал мож схему переделать с гальванической развязкой? Никто не делал?

  111. Dobby говорит:

    DI HALT привет.
    Только сейчас смог вернуться к программатору. Короче такой вопросик:
    прошил, загорелся светодиод, записываю фузы, далее пытаюсь прочитать их, но они как были в отключенном состоянии так и есть… Т.е. в состоянии 1. Все делаю в понипроге. Вроде помню, что у меня что-то подобное уже было, когда с мегой128 упражнялся и потом что-то сделал м фузы прочитались, как я их и записал. Только вот не помню что…
    P.S. Сама прощивка встала и читается нормально.

    • DI HALT говорит:

      Уже в схеме? А кварц нормально работает? Прошивка сейчас нормально считывается и верифицируется?

      • Dobby говорит:

        Уже нет. Как только я в выпадающем списке выбрал ATmega16 вместо ATmega Auto, фьюзы вроде записались. Только сразу же после записи вылезло: Device missing or unknown device (-24).
        Щас только что проверил схему. Оказалось что одна нога кварца накоротко замкнута на землю. Поправил, но все равно работать не хочет…
        Теперь светодиод погас и мк не определяется.

        • Dobby говорит:

          Из-за чего такое вообще могло случиться? Вроде все правильно делал, по инструкции… Ладно уж с этой атмегой, если нече с ней сделать невозможно, то как-то придется обойтись какое-то время без JTAG’а. Но просто хочу узнать где конкретно была моя ошибка, чтобы не допускать уже ее в будущем…

          P.S. В Понипроге, где стоит буковка «v» я ставил галку, правильно?

          • Dobby говорит:

            Внешний такт на xtal1 подавал…

          • DI HALT говорит:

            Да фиг знает. У меня никогда проблем с этой схемой не возникало, собрал около 4 экземпляров. Понипрог странная программа, в ней вообще нет никаких обработок ошибок. ДАже если МК не подключен или подключен криво она что то там сделает и напишет ок.

            Да, V это галочка.

  112. valio говорит:

    Нет ли никаких проблем (ножки, исп. инструкции) использовать вместо атмега16л скажем ATMEGA16-16PU ?

  113. ViNT говорит:

    Можно ли с помощью данного девайса дебажить программу в студии по COFF файлу?
    Пишу пока на микропаскале, в хелпе написано, что можно экспортировать код в AVRStudio в Common Object File Format (COFF) и дебажить его там черз JTAG ICE mkII. Подойдет ли данный адаптер, или нужен именно mkII?

  114. sany говорит:

    Здраствуйте! как проверить что JTAG контроллер вообще исправен? может подскажете куда встать ножкой осциллографа чтоб проверить его исправность/неисправность?
    у меня вообщем не получается вот что: включаю JTAG контроллер и свою отладочную схему, в avr studio нажимаю ассемблирование и avr studio пытается найти порт и вообщем то говоря не может его найти — выдает соответствующую ошибку.
    Как поступить дальше, что проверять?

    • DI HALT говорит:

      0. Проверь номер порта, должен быть не старше 4го.
      1, отключи интерфейсную линию от JTAG контроллера. Замкни RX на TX и подключись терминалом. Символы должны возвращаться
      2. Сам жтаг должен быть собран в точности как есть, с теми же номиналами кварца и кондеров на нем.

      Когда адаптер работает нормально, но не отвечает таргет, то сообщение об ошибке совсем другое.

      • sany говорит:

        можно немного глупые вопросы задам? интерфейсная линия это провод уходящий на com порт? а терминал это — программа avr studio? а что значит «Символы должны возвращаться» ? какие сомволы?
        А ещё такие вопросы:
        - на схеме JTAG контроллера стоят электролитики, а я поставил планарные не электролиты, пойдёт?
        - на 9 ножку контроллера посадил планарный электролитический конденсатор номиналом 10 мкф на 35 вольт (ну какой был) эт нормально?

        кварцевый резонатор стоит такой как на схеме..

        • DI HALT говорит:

          Провод от MAX232 до контроллера JTAG . Пока не проверишь его на исправность дальше и смысла нет лезть. 90% косяк там.

          Терминалка это программа для работы с терминалом — лучшая Terminal v1.9b by Br@@y++

          Главное это конденсаторы что возле кварца. Они должны быть такими какие есть. Остальные пофигу.

          • sany говорит:

            блин…с этой программой Terminal v1.9b by Br@@y++ нужно долго разбираться, может «накидаете» чего куда нажимать?

          • DI HALT говорит:

            А че там разбираться. Нижнее большое поле ввода — то что ты посылаешь и что от тебя уходит по линии TX верхнее, что приходит по линии RX.

            Когда коротишь RX на TX то все что ввел снизу вернется эхом вверху. Жмешь коннект и проверяешь.

          • sany говорит:

            Ну всё, я разобрался в чём было дело… Дело было в плохом контакте разъёма, который подключается с com — порта на плату, я припаял напрямую и всё пошло.
            …и кстати программка Terminal v1.9b by Br@@y++ не плохая, хорошо помогла :-).
            Лан, спасибо за устройство, нормальненькое такое….

  115. jaspern19 говорит:

    Есть проблемка. На плате Pinboard 1.1 работал житаг нормально. Но Что-то видать накрутил я) и шас включаешь обшее питание, на плате сразу загорается индикация типо он работает, тумблер юарт — офф, житаг — он. Может спалил случаем?

    • DI HALT говорит:

      попробуй проверить.
      0. Проверка номера порта, а также что порт никем не занят.
      1. Проверка линии связи.
      вытаскиваешь жтаг проц. Коротишь линии RX TX его процессора, прям в панельке. Проверяешь линию RX TX до житага. Терминалкой, символы должны возвращаться.
      3. Можешь попробовать заново прошить житаг проц.

      4. позырь ничего ли не налипло/натекло на кондеры возле кварца у жтаг контроллера.

  116. jaspern19 говорит:

    Ооох, пасибо DI, прям от жопы отлегло) Думал контроллер сдох, а нет, он вроде робит Сам не нашел что было, проверил все почти все по списку, вроде заработало. Тока не понял как на самом житаге замкнуть.

  117. Stress говорит:

    Собрал отладчик согласно схеме. Только заменил 4.7к->5.1к(USB-версия) и 510 Ом->470 Ом. Конденсаторы и кварц те же. Прошивку николаевскую зашил.
    При попытке подключиться к программатору выдал «The OCD JTAG adapter was detected, but the target device did not return a valid JTAG ID…..»
    Фьюз для JTAG на отлаживаемом контроллере ставил и так и так.

  118. Gordienko Victor говорит:

    1. JTAG ICE можно использовать в качестве программатора например для ATmega8 и остальных AVR которых JTAG ICE не поддержывает ?
    2. JTAG ICE можно использовать в CodeVision ?

  119. Rasman говорит:

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

  120. mahajrod говорит:

    Доброго времени суток.
    Возник вопрос — можно этого зверька заставить работать с mega325?

  121. Rasman говорит:

    С питанием маленько не догнал. Т. е. желательно объединить питание JTAG с питанием целевой платы.

  122. vjr говорит:

    Целый день борюсь с этим JTAGом, монтаж перепроверил 100 раз, подключал как у DI на плате и как на схеме. Диоды на FT232 мигают, в терминалке тоже Ок, при вкл. загорается диод с 4 ноги МК, установил студию SP3, выставил на COM2 и при Tools-Program AVR-Connect выдает следующее:

    The OCD adapter was detected but the target did not return a valid ID.
    Please check the points below and click Retry.
    -Check that the JTAG ICE is properly connected to the target device.
    -Check that the JTAGEN fuse of the target device is progrmmed.
    -In case the existing application code programmed into the device disables the JTAG
    interface, select the check box below to activate external reset upon connect.
    -In case the target device is part of a daisy chain, click the button below to set the proper settings.

    Такое было и при COM5. Прошивка отсюда — http://easyelectronics.ru/img/AVR_kurs/JTAG/miniICE.hex.
    Можно еще как нибудь проверить?

    • DI HALT говорит:

      Жтаг у тебя работает. У Тебя контроллер не отвечает. А вот почему он не отвечает это другой вопрос. МОжет фуз бит JTAGEN вырублен. Может где косяк с коннектом.

  123. vjr говорит:

    Все. Разобрался.
    Собрал по схеме http://pol-sem.narod.ru/AVRminiICE/jtag.htm + USB
    Прошивка http://easyelectronics.ru/img/AVR_kurs/JTAG/miniICE.hex
    А проблема была в том, что подключал JTAG ICE без целевого устройства, подкинул ATmaga128L и все сразу заработало, видит, читает все как надо. Правда отлаживать им еще не пробывал. И мне кажется, что номер COM порта значения не имеет, но по советам переставил на COM2.

  124. vjr говорит:

    Просто уж сильно хотелось увидеть результат кропотливой работы навесным монтажем. А так как в наличии кроме 8х мег ничего небыло — получился облом. Ну теперь все пучком, едем дальше. Всем спасибо !!!

  125. vjr говорит:

    При работе с JTAG ICE (при отладке) на МК нужно вешать кварц, чтоб в живую видеть работу?
    DI писал:
    «Жму в студии компиляцию и запуск (Ctrl+F7). Проект по быстрому компилится, тут же через JTAG заливается в МК»
    Это при изменениях в программе и дальнейших манипуляциях отладки, получается что МК (пере)прошивается?
    DI:
    «Тыкаю по F11 — прога исполняется по одной команде, показывая стрелочкой где я нахожусь в данный момент.»
    А в режиме симуляции код можно запускать на выполнение, так чтоб было видно, что программа работает?

  126. vjr говорит:

    Для примера, для опробывать ICE взял мигалку — http://www.compitech.ru/html.cgi/arhiv/04_03/stat_avr_2.htm — но горит один диод. Мышей выставляю биты диоды горят/тухнут, запускаю — горит один.
    Прошу сильно не пинать, я только учусь.

    • DI HALT говорит:

      А если пошагово, по одной инструкции выполнять, то мигают?

      • vjr говорит:

        Пошагово — загорелся один, прыгает на задержку и, просто терпения не хватит клацать до нулей эту задержку. И при выполнении кода, если на запуск поставить тоже самое — загорается один и все. Думал может из-за отсутствия кварца на МК. Но главное ICE работает, а остальное буду вкуривать.

        • DI HALT говорит:

          Ну так это, ты задержку то сделай поменьше. Или брейкпоинт поставь на выходе из нее и запусти в свободное плавание. А то может у тебя из цикла не выходит просто.

          • vjr говорит:

            Да я уже понял, что из цикла не выходит. Курю «Белова & Ревича» дальше. Спасибо за поддержку.

  127. kataconov говорит:

    Здравствуйте, есть вопрос. FT232R работает от 4,8,16 и т.д. мегагерц. А atmega 16l от 7,37МГц. Это страшно или нет?

  128. ASFiN говорит:

    Сделал по схеме плату под мегу в TQFP корпусе, и столкнулся с проблемой, ЖТАГ адаптер вроде как и работает, в частности можно конфигурировать фузы и прочее, но при попытке запустить «эмуляцию» вылазит куча ошибок:
    JTAG ICE: Warning: Reading the program counter, an invalid value (0xFFFE) was received from the device.
    JTAG ICE: Warning: A problem occured while executing this debug command! Please check the connections, the voltage, and the clock system of the target application!
    Error reading memory : IO Address:0 Size:64
    Error reading memory : REGISTERS Address:0 Size:32
    Error reading memory : PROGMEMORY Address:0 Size:108

    PC1-PC3 и прочее вышеописанное подключал.

    • DI HALT говорит:

      У меня было похожее когда запуск таргет-контроллера шел не с 0000 а с вектора бутлоадера. А программа написанная под отладку запускалась с нуля.

      Но вообще адаптер капризен к качеству контакта и длинным проводам.

      • ASFiN говорит:

        Манипуляции с бутлоадером ничего не изменили(либо я такой криворукий), провод от силы сантиметров 20.

        • ASFiN говорит:

          Хм, каким то чудом он стал работать через раз, то ругнётся, то пойдёт шагать.

          • DI HALT говорит:

            А может у тебя таргет не стартует нормально? Или со сбоями. На кварце или на внутреннем RC?

          • ASFiN говорит:

            Как это ни печально, но проблема действительно была в тактировании. При работе на внутреннем такте, ЖТАГ работает прекрасно, а на внешнем, только если одну из ног посадить на землю.

  129. Misha_L говорит:

    Собрал по Вашей схеме девайс…Запукаю студию,она отвечает, что не может подключиться к жтагу. При этом, когда нажимаю Connect, то таргет обнаруживается, определяется кристалл таргета(мега128), читается прошивка, фузы и т.д.,но при попытке дебагить все так же отвечает, что не может подключит жтаг…
    В чем проблема?

  130. TracerrecarT говорит:

    Долго сопротивлялся — боролся с привычками, но таки сделал этот JTAG — это какой то пи.. восторг. Полный разврат ембеддеров :0)
    Спасибо. Как я раньше без него жил???

  131. alex_avr говорит:

    а ведь на фото — прототип пинбоарда, причем сделанный очевидно в домашних условиях :)

  132. qwerty380 говорит:

    Уважаемый DI HALT!
    Огромное спасибо за глубокую проработку этой темы.
    Прочитав статью и ее бурное обсуждение, пришел к мысли, что мне непременно надо попробовать повторить Вашу разработку (ну очень хочется).

    Мысли вслух: У меня напряг с деталями для JTAG.
    Подозреваю, что можно что-то взять из аналогового модема.
    Где-то у меня валяется без дела старый Sportser.
    Точно от него пойдет в дело шнур для com-порта,
    корпус модема (размеры программатора меня не волнуют)и разъем в нем.
    Самое печальное — нет у меня кварца на 7.3728 MHz.
    Хочется надеяться, что в модеме этот кварц есть
    (только куда я этот модем задевал? будем искать).

  133. asm_lock говорит:

    Девайс собрал. Подключился к нему через AVRISP mkII в Code Vision AVR…Выставил галочки напротив фьюзов:

    OCDEN=0, JTAGEN=0,BOOTSZ0=0, BOOTSZ1=0, SUT0=0, SUT1=0…. и нихрена =( Кварц завелся, а вот после того как прошил фьюзы программатор перестал видеть контроллер.
    Если есть список фьюзов для AVR Studio v4.16 скиньте скрин пжалста…а то там с фьзами разработчики намудрили…

    • DI HALT говорит:

      ХЗ какая нотация фузов в кодвижине. Я его не использую. Но вообщето все что ты выставил не влияет особо на тактирование. Как выставлены биты CKSEL?

      • asm_lock говорит:

        напротив фьюзов CKSEL3..0 галки не ставил. Насколько я знаю, установка галки в кодевижине означает, что «FUSE»=0. Я думаю что в этом и есть проблема, получается, что CKSEL3..0 не установлены в 0.

        • DI HALT говорит:

          Ну то что ты галки не ставил не значит, что они не изменились. Фузы надо сначала считывать, прежде чем записывать. Раз галок не было, видать записал туда то, что было в окошке кодвижна. А раз там галок не было, то 1111

          • asm_lock говорит:

            Фузы естесственно сперва считывал. Галок на CKSEL3..0 не было и я их не ставил (т.к. это указано в таблице программирования фузов в данной статье-вариант для инверсной нотации). С инверсной нотацие работает и кодевижн и AVRStudio. Если фузы CKSEL3..0 записаны как 1111 (см. таблицу выше)то после прошивки фузов программатор AVRISP не увидит контроллер и поэтому прошивку залить не могу. Кварец то на 7.37 Мгц, и фузы CKSEL3..0 надо установить в 0 ! чтобы был режим External Clock.

            ЗЫ: Иногда надо поговорить с умным человеком, для того чтобы самому ответить на свои вопросы.

  134. RxDTxD говорит:

    Доброго дня, DI HALT.

    Наткнулся я одном прекрасным днем на 16битные контроллеры от Texas Instruments. Как я понял, прошиваются они JTAGом. Можно ли их шить вот этим отладчиком? Или искать схемы программаторов для МК TI? Или таких нет, и, упаси боже, придется покупать заводской?

    • DI HALT говорит:

      Нет этот только для AVR вообще JTAG един только для граничного сканирования (проверку всех цепей в схеме), а прошивка и отладка там уже как бонус-фича и у каждого контроллера своя.

      Так что скорей всего придется покупать. Но не все так плохо. Периодически проходят акции невиданной щедрости. Я вот недавно видел раздачу халявы от ТИ — давали старт наборы где как раз был жтаг и какой то МК. многие себе заказали и им таки приехало! :)

  135. R_ura говорит:

    Что значит JTAGICE mkII ??

  136. jacek говорит:

    Ди, что-то я не пойму, зачем у тебя на схеме из PB0 идет провод на разъем JTAG (IDC10 который)? На печатке я у тебя его не вижу. Нужен ли?

  137. Gordienko Victor говорит:

    Сделал но как то он кыряво работает (((((
    Запускаю бывает сразу все работает, а бывает выскакивают ошибки, такие
    http://s004.radikal.ru/i207/1104/d9/ff91c83d6108.jpg
    и такая
    http://i041.radikal.ru/1104/27/f74f3b47fa59.jpg
    вот такая
    http://s16.radikal.ru/i190/1104/83/e7cd1d3967c6.jpg
    ну и такая
    http://s16.radikal.ru/i190/1104/57/252abe6bbd06.jpg

    нажимаю повтор пару раз и запустилось….
    Как то глючно работает, что может быть ?

    • DI HALT говорит:

      Когда студия не видит жтаг — видимо винда что то тупит с портами. Особенно если он через USB — COM работает. У меня такая ошибка раз в сто лет бывает. А вот на ноуте постоянно.

      Когда не может прочитать id или где что то там про OSD — плохой контакт шлейфа и контроллера.

      Другую ошибку (что то про фузы) я ни разу не встречал.

      • Gordienko Victor говорит:

        да я на ноуте, вот блин раз нормально запустилось,запускаю следующий раз, уже куча ошибок 10 раз нужно нажать, повторить ! что бы запустилось, может студия сама глючная ?

        • DI HALT говорит:

          У меня все работает стабильно и надежно. На стационаре. А вот на ноуте подглючивает ,но не смертельно. Чтобы вот так вот, пачками — не наблюдал такого ужаса

          • Gordienko Victor говорит:

            Если http://s004.radikal.ru/i207/1104/d9/ff91c83d6108.jpg то JTAG не работает ? или не может найти отлаживаемый кристалл ?

          • DI HALT говорит:

            Жтаг не работает. Причин много. Может завис (иногда бывает, помогает ребут его по питанию).
            Может линия связи с компом хреновая или с помехами. Может просто драйвер usb-com глючит и по таймаутам не обеспечивает передачу. Или не контачит что то в усб разьеме от чего он отваливается.

          • Gordienko Victor говорит:

            Большое Вам спасибо ) Будем разбираться

          • Gordienko Victor говорит:

            Да будет свет ) Все работает нормально, проблема была в разъеме COM порта

  138. wasp говорит:

    Привет. Можно ли использовать вместо схемы FT232 какой либо другой преобразователь UART-USB?
    Например, импользовать МК для программной реализации такого преобразователя (ATmega8, к примеру)?

    Благо контроллеров много, да и дешевле они того же FT232.

  139. Volldemar говорит:

    Вопрос по фузам, ох уж эти фузы…
    Какие фузы высталять, если прошивать через студию(STK500)? Или хекс значение фузов, при заливке готовохо эхешника, который http://pol-sem.narod.ru/AVRminiICE/jtag.files/miniICE.hex

  140. flipflop говорит:

    Сделал два образца по этой схеме. В варианте под СОМ-порт. Добавил гальваническую развязку. Все заработало на раз. Платы не разрабатывал, сделал на макетке, вставил в самопальный корпус из стеклотестолита. Привязал к IAR Embedded Workbench 4.0 (кажется 4.0).Работает из-под него. Если кому интересно, могу дать материал, но только если покажут как здесь файлы прикреплять.

  141. vasily-hertz говорит:

    Это у-во подключается к выводам тди, тдо, тмс, тцк, но это же выводы порта Ц? Т.е., в тестируемом мк эти выводы надо сделать входами? А если они задействованы как выходы, то ни че не получится?

    • DI HALT говорит:

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

  142. roman12345 говорит:

    всем привет. помогите пожалуйста заставить мой джитаг работать. все подключил, горит диод питания, делаю в аврстудии все как написано, но светодиоды не мигают на плате и второй диод тоже не горит. что делать? помогите плиз ( только начинаю изучать МК, сделал всего два девайса на меге8) заранее благодарен всем

  143. crab говорит:

    Если попробовать прошить контроллер через JTAG с уже имеющимся там бутлоадером, будет ли затерт бутлоадер?

  144. daltonik говорит:

    Подскажите!
    конденсаторы E2 — E5 каких номиналов должны быть?
    возможно ли использование MAX232 с какими нибудь другими индексами кроме A?

  145. maxmihan говорит:

    Делюсь где я обделался. Аналогичную схему взял с кота. Похоже тот гммм… нехороший человек, который ее рисовал содрал с MAX-варианта и забыл перекрестить RXD и TXD от контроллера к FT232 — т.е. у них схема и сейчас на сайте неправильная.
    Я моск сломал, понавесил проводочков необязателных, проверил осцом, что кварц запускается. Под конец начал совсем тупо сверять со схемой от ДИ (хорошо он два варианта нарисовал на одной схеме) и тут FFFUUUUXXX !!!
    Короче порезал дороги, зато теперь точно видно как проводочками идет перекрещивание :)
    Шняга опознается студией, но ожидаемо не хочет работать с ATxmega128, говорит неверный JTAG идентификатор (или типа того). Ничего проще пока под руками нет, но вроде должно работать. Спасибо, ДИ.

  146. curock говорит:

    Подскажите, нужно ли ещё какие-то ноги сажать на землю или питание. Схема на рисунке по ссылке. Использую МК ATMega16A. Благодарю.

    http://s41.radikal.ru/i093/1110/85/7b51eb3216f0.jpg

  147. Hamito говорит:

    Можно ли 232RL заменить микрухой 232BM?

  148. Hamito говорит:

    А менять что-нибудь нужно? Или прошивка та же?

  149. Dima 33 говорит:

    Здравствуйте DI HALT ! Подскажите пожалуйста я хочу программировать AVR на ноутбуке с виндовс 7 , что мне для этого необходимо ?

  150. daltonik говорит:

    Здравствуйте!
    У меня тут проблема возникла….
    Собрал stk200/300 и JtagIce для COM порта
    Прошил с помощью STK200/300 и PonyProg JtagIce. Выставил Fuse биты как указано для PonyProg и и тут PonyProg ответила что фьюзы прошить не удалось, больше к меге подключиться не удалось
    Из AVRStudio (ver4.19 build 730)Jtag не виден при выполнении Shelftest avrstudio пишет:
    == ICE Selftest Version 2.5.14 ==
    Starting test at 15.11.2011, 18:53:29
    Searching for ICE… Could not connect to ICE, aborting.
    При этом до выполнения shelftest горит 2 светодиода, а после того как avrstudio пытается найти
    jtagIce горит только зелёный а красный гаснет…

    Как быть что посоветуете?

  151. daltonik говорит:

    Судя по тому что никто не ответил, отвечу сам себе — приведенная схема этого самого JTAG ICE немного не соответствует печатной плате, а поскольку я печатку рисовал под корпус который у меня был в наличии — орентировался на схему… я не совсем понял но мне кажется выходы TXD и RXD перепутаны местами, собрал на макетке и всё заработало, а мега после програмирования в пони-прог потерялась потому что затактована после установки фьюзбитов на внешний генератор — это перый контроллер avr который я програмировал поэтому такой вот косяк и получился, програмировал я его не в схеме, а отдельно — на макетке, потому что разъем у меня выполнен стандарнтый а не как у автора, в этом и был косяк, для дальнейшего доступа к меге требовался кварц и конденсаторы (по схеме ноги 12 и 13 и GRD),стоило их подключить и мега по прежнему работоспособна. Короче — использование com порта оказалось не совсем удобным, поэтому собрал вариант JTAG ICE для usb, к удивлению ft232rl запаял с первого раза…. включил всё работает! Спасибо!

  152. MasterAnker говорит:

    Здравствуйте DI HALT!

    Извините что немного не в тему. Не нашел в какю ветку надо писать.

    Во — первых. Хочу поблагодарить за Вашу замечательную статью «Трактат о паяльниках», которая мне помогла выбрать хороший паяльник с термоконтролем.

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

    В журнале Хакер за ноябрь 2007 г. прочитал Вашу статью «Длинная рука контроля» (Рулим мобилой через микроконтроллер). Где рассказывается о том как сделать простую GSM-сигнализацию.

    Собрал все по схеме. Залил в конроллер программу. Но устройство не работает.

    Возикли вопросы по статье:
    1) В статье написано:»… прикупи грошовый керамический конденсатор на 100 пикофарад в количестве двух штук..»
    а на схеме указан только один конденсатор на 33 пикофарад, а куда ставить 2 по 100 пикофарад???
    2)В статье написано: «… не помешает напайка конденсатора между ножками 10 и 11 микроконтроллера — защита от импульсных помех по питанию микросхемы …»
    А какой конденсатор сюда надо паять??? Я припаял на 100 пикофарад, но все равно ничего не заработало.
    3)В схеме не нарисован кварц. Это так надо?
    4) В схеме используется 2 вида питания от БП компьютера и от зарядника а почему нельзя телефон запитать от БП компьютера, хотя там меньше будет напряжение — телефон от этого просто будет медленне заряжаться или я не прав?
    я не подключал телефон к заряднику, т.к. у меня его нет и телефон еще пока заряжен.

    Хотел выложить фотографию собранной сигнализации, но не знаю как.

    Помогите пожалуйста. Очень хочется запустить это устройство в работу.

  153. Arseniy Muradov говорит:

    А зачем резет подключать к плате целевого устройства?)
    Можно же без его?)
    Или я не понял зачем он к разъему выведен)

    • DI HALT говорит:

      Для программирования, а еще JTAG через него может сам контроллер ребутнуть, Стабильней работает.

      • Arseniy Muradov говорит:

        Не, ты наверно не понял что я спросил)) посмотри, на печатке 9я нога меги(резет) идет к pls’у.
        Зачем соединять резет микроконтроллера ЖТАГа с целевой платой?
        ЖТАГ, а точнее МК на котором он сделан(а точнее мега 16) не может управлять своим резетом)) соответственно мы просто тянем резет меги 16, который подтянут к питанию, к целевой плате)
        Такое ощущение, что это не ЖТАГ перезагружает целевую плату, а целевая плата перезагружает ЖТАГ)))

      • Arseniy Muradov говорит:

        Ы! он еще и к PA2 подключен?))
        т.е. PA2 дергает их резеты?
        Так?)

        • DI HALT говорит:

          Не подключен он к PA2. А ресет у жтага выведен на колодку, чтобы прошивать можно было его внутрисхемно, не вытаскивая из панельки.

          • Arseniy Muradov говорит:

            фак) вот оно что))
            Значит на целевую плату его не надо выводить) а я голову чуть не сломал)))))

  154. Arseniy Muradov говорит:

    А не)
    Блин) корчое я нифига не понел)))

  155. nigiritka говорит:

    Блин, неделю трахался, на работу забивал, девушку игнорил, убил три меги,но все таки сделал его, но не сдался и дошел до этой заветной цели -так сказать «живого протеуса»… Офигенная штука… Спасибо огромное…

    Может кому нибудь станет интересен опыт моих ошибок…

    1. Сначала были проблемы с тем чтобы запрограммировать отладчик, сделал скоростной программатор на FT232, взятый с этого сайта… аврдюд не как не мог его найти…. говорил что не знает что такое «FT245″ (тип программатора который мы добавили в avrdude.conf)… оказалось, что я не скачал обновления на дудку… скачал, все было нормально, нашелся))
    2. ну конечно же ФЬЮЗЫ!! я думал я такой самый умный и мне не надо ниче читать про них, просто налипил галочки как было на картинках «ди халта», ну и конечно напутал с выбором тактового сигнала, а может и еще с чем, подключал тактовый генератор к XTAL1, пытался прошить…. неудачно, разозлился, ножем вырвал мегу, припоял новую, и начал все с начала…. вторую мегу убил примерно также, ну очень тупо, пришел с работы, затраханный, невнимательный, и на подобной ошибке попался….
    3. еще был косяк, то что скачал готовую прошивку для програматора, нормально заливал, АВРСТУДИО не видет и все программатор, день другой ни как не понимал что с ним…. оказалось что файл скачался не до конца, хотя загрузчик сказал что все скачано успешно… капец, н мог нормально скачать 46 килобайт, скачал 37, и успокоился, сказал, мол, и так тебе хватит…. нормально скачал, залил, все норм, АВРСТУДИО нашел программатор, но не видет таргет…
    4.АВРСТУДИО не видел таргет… сидел, сидел я, потключал и отключал таргет, думал проводочки перепутал… а потом вспомнил, что на целевой плате (таргете) у меня уже есть прошивка, мне ее карифан залил, и там как раз используються выходы JTAGа, взял другую мегу, подключил к отладчику, и все супер, находиться….
    5. Все хорошо, Отладчик работал, АВРСТУДИЯ находила даже целевое устройство, даже мог прошивать его, но вот незадача, самоя главная и интересная функция ДЖЕТАГА — пошагавая отладка, не работала…. так я и не понял как я решил эту проблему, ну что-то поклацав, через день я писал кипятком радуясь как у меня моргают светодиодики, по нажатию ее величества «F11″)))

    Всем удачи, все получиться, главное терпение))

  156. Таргаев Михаил говорит:

    спс большое за устрйство, собрал на FT работает без глюков и проблем (не считая проводка, который отвалился на моем шлейфе к отлаживаемой плате, пол часа искал проблемку).
    И хотел вопросик задать, камень AT90USB64/128 нельзя выбрать для отладки этим «льдом», он не поддерживается или это у меня какая-то фигня?(Мега 16-64 видится без проблем).

  157. DrValerii говорит:

    Добрый день.
    Подскажите какой последний релиз AVR Studio будет корректно работать с этим JTAG ICE ?

  158. Hamito говорит:

    Собрал Jtag на USB. Не работает. Симптомы. Диод актив горит сразу при подачи питания. В аврстудио ошибка подключения. Не может подключится через usb или com1-com4. Подключение стоит авто. В Диспетчере что-нибудь должно показываться? Скриншот фьюзов из аврстудио, которые в описании у вас правильный? Или это фьюзы не для jtag? Если нет можно попросить выложить скриншот фьюзов аврстудио или коды в sinaprog?

  159. Hamito говорит:

    В общем такая штука. Есть 2 проги терминальных собственно terminal и hercules. В обеих прогах одинаковая реакция. Доступны два порта. 4 и 6. Подключаем 4 порт отсылаем данные-ничего не возвращается. Подключаем 6 порт приходят те данные, которые отправляли в 4 порт. Также и наоборот. Микруха ft232bm, PS: 4 и 6 порт использовался ранее как виртуальный нуль-модем (com0com) для организации работы программатора usbtiny в качестве stk500

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