Внутрисхемная отладка 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 какой нибудь на виртуальной машине… И вот уже операционная система весом в несколько гигабайт и требующая гигазы ОЗУ ни у кого не вызывает шока и ужаса. А ведь это страшно, господа! Прогресс, мать его. Не развращайтесь благами цивилизации, будте аскетичны и разумны. И не забывайте об оптимизации как программной, так и аппаратной.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  11. Все собрал, устройство собраное студия, я так понял видит, но выбрасывает ошибку
    скриншот:
    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.

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

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

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

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

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

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

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

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

    1. Нижний ЖЖЕт.)Где учишься? Не в политехе?
      Дай свою схемку проверить другу или еще кому. У нас я черчу, брат проверяет, я трассирую, но опять проверяет. Нужен двойной контроль на каджом этапе :-D. А то вообще такого нагородишь))))

    2. А проще установить прогу для трассировки покруче и в ней «криво не соединишь». Например Altium Designer 2009. Много в ней готовых корпусов и элементов, а если нету, то можно самому начертить побыстрому))

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

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

    1. У ATMEGA16L диапазон напряжения питания шире — лучше ее я думаю.
      У нас не нашел ATMEGA16L, зато есть ATMEGA16A-AU в корпусе TQFP-44. У нее питание от 2,7 до 5,5в (как у 16L).
      Только прийдется печать под нее самому разводить…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  22. ДИ, смотри, на схеме есть обозначение выводов жтага —
    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 отлаживаемого микроконтроллера?

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

        1. У них запросто могут отличаться внутренние адреса. Так что для запуска на Мегу32 надо перекомпилить проект.
          Но т.к. исходников нет и не будет то надо ставить Мегу16

    1. 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 все сделал правильно, просто опечатка.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  26. Когда-то наверное года 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в, при малом токе это поможет.
    В целом статья полезная, спасибо.

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

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

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

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

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

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

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

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

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

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

        1. Paraprog

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  39. Добрый день!

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

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

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

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

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

      1. Поменял комп и версию студии, ICE заработал как надо, а драгон всё так же гонит. Вот блин, сам торможу и народ смущаю. Как говорится дети жили счастливо пока не узнали, что остальные едят каждый день.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  69. Спасибо автору за статью и предоставленный материал.
    Сегодня собрал, подключил — все работает. С прошивкой вообще не парился, взял прогу
    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 !!!

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

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

    1. Увы никак. У меги16 и меги32 несколько отличается адресация нескольких регистров. Так что прошивку надо бы перекомпилить, но вот беда — исходников то нет и атмел их не даст. Остается только декомпилировать хекс и править его вручную. Задачка не тривиальная, скажу тебе.

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

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

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

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

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

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

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

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

    1. Вроде бы можно, но я не проверял. Если в студии в режиме эмуляции (даже не айса, просто софвтерная эмуляция) будет работать по кофу, то значит должно и под айсом проканать.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  78. Собрал отладчик согласно схеме. Только заменил 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 на отлаживаемом контроллере ставил и так и так.

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

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

  81. Целый день борюсь с этим 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.
    Можно еще как нибудь проверить?

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

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

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

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

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

  85. Сделал по схеме плату под мегу в 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 и прочее вышеописанное подключал.

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

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

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

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

          1. Сейчас от внутреннего RC на 1МГц.Я пробовал и от внешнего на 8МГц тактировать,но та же фигня вылазит, что не может жтаг подключить. Перепрошивал таргет, кстати, через жтаг в студии, а вот отлаживать никак не хочет.

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

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

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

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

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

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

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

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

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

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

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

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

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

      1. Пошерстил я сайт ТИ — убей не нашел ни расписания семинаров, ни где, как и по каким темам они проводятся. А какие семплы там раздают — тем более, и это меня печалит. Может я на гугол тугой — я не знаю =) Будь добр, подтолкни нужную ссылку на глаза.

  91. Сделал но как то он кыряво работает (((((
    Запускаю бывает сразу все работает, а бывает выскакивают ошибки, такие
    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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  97. Здравствуйте!
    У меня тут проблема возникла….
    Собрал 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 горит только зелёный а красный гаснет…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        1. Не можно просто его проверить. На панельке контроллера замкнуть RX на TX и проверить возвращается ли эхо в терминалке (контроллер вытащить естественно)

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

  104. Вы не ответили на вопрос, по поводу диспетчера, при подключении вообще как-то отображаться должен модуль? Потому что через вирутал com0com uart то работает, а с Jtag что-то не так

  105. Подскажите пожалуйста, какие выводы и куда подключатся, а то на плате 7 выводов, а на картинке видно что при подключении шлейфа один из них пропущен.

  106. Собрал схему с usb -версией, только вместо atmega16l использовал atmega16pu, питание даю от БП 5вольт.
    При подключении к компьютеру обнаруживает устройство ft232rl и создаваемый им виртуальный com порт, однако avr studio не видит этот отладчик. В чем может быть проблема?

  107. зелёный светодиод горит, красный мигает, а светодиоды, подключённые к ft232 мигают при подключении к компьютеру.
    Подскажите пожалуйста, в чем проблема?

  108. UniProf не видит плату. Светодиод питания — горит (понимаю что это еще ничего не значит). Осциллографом смотрел кварц — никакого сигнала на контроллер с него не поступает (до этого проверил на отладочной плате с Xmega256A3BU — сигнал с частотой как указано на кварце). Подскажите, как выяснить в чем проблема — кварц бракованный или я сжег МК?

      1. Не правильно выразился — проблема как раз при попытке прошить Мегу16 на отладчике. Про Хмегу упомянул для примера.
        Я вот чего-то не понимаю — не прошитый МК сигналы тактирования на кварц не выдает? Иными словами — свежекупленный и запитанный МК, на его ножках XTAL1 и XTAL2 будет что-то?

  109. DI HALT огромное спасибо за статьи
    собрал JTAG c USB FT232RL на 4 студии заработало с первого раза
    даже удивился
    а вот 6 студия его в упор не видит
    или там еще какие то настройки по включать надо?

  110. Подскажите пожалуйста — пробую прошить файл «miniICE.hex» UniProf’ом. Считывает память и Фьюзы нормально. Но при попытке зашить — выдает ошибку «Access violation at address 00479856 in module ‘uniprof.exe’. Read of address DD237AD6.» Что это значит? До этого прошивал USBASP — все нормально прошилось. А если снять галки с «Write 0xFF» рядом с «PROGRAM» и «EEPROM» пишет — «TProgressBar property out of range».

  111. собрал jtag, прошил и выставил фьюзы понькой, но когда пробую запуститься через студию пишет:The OCD JTAG adapter was detected, but the target device did not return a valid JTAG ID.
    Please check the points below and click Retry. Read the online help for more information.
    Check that the J TAG ICE is properly connected to the target device.
    Check that the J TAG EN fuse of the target device is programmed.
    — In case the existing application code programmed into the device disables the J TAG 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. Activate target device external reset upon connect
    Подскажите пожалуйста, в чём ошибка?

  112. Схема год проработала безотказно, но щас что-то непонятное приключилось.
    Такие ошибки уже есть в комментариях, но дело уже не в этом….
    Короче, JTAG программирует, спокойно узнает разные МК и пишет, если я выбрал не тот в настройках, так же отлаживается, как и раньше, но он ооочень долго загружает прошивку.
    Судя по светодиодам он после загрузки прошивки устраивает дискотеку, непонятно зачем мигая светодиодами(тактируя линии) как буд-то он попал в незапрогаммированную область, где все FF и его не получается остановить(думаю кто сталкивался с вылетом или срывом стека меня поняли)

    после чего он находил резет и можно было отлаживать.
    при этом 2 варнинга выдавал:
    JTAG ICE: Warning: Reading the program counter, an invalid value (0x7FFFFFFF) was received from the device.
    и
    JTAG ICE: Warning: A problem occurred while executing this debug command! Please check the connections, the voltage, and the clock system of the target application!

    Я искал в гугле и из рускоязычных ответов были толкьо комменты этой статьи, которые я проигнорировал, ибо Ди говорил там о проблемах с фюзом bootrst. Ну я и подумал, мол с какгого фига у меня раньше все норм было, если я фюзы не менял? — значит проблема не в этом.

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

    И в итоге, 2 раза перустановив 4-ю студию, потом еще раз удалив ее, вместе с 5, 6 и всеми программами и драйверами, которые они ставили, почистив реестр, удалив всевозможные упоминания и настройки студий, и с чистого листа установив все заново, после чего 2 раза 2мя способами перепрограммировал и перепаял JTAG, проверив на разных платах, на разных микроконтроллерах, я послал все к черту и проверил фюз-бит BOOTrst — он оказался включен.
    Ну я и подумал: была не была, отключу ка я его.

    И ВУАЛЯ ВСЕ ЗАРАБОТАЛО!!! ДО 5-ти УТРА СИДЕЛ, ПОТОМ УТРОМ ЕЩЕ!
    Кучу настроек потерял, оформление к чертям, все к чертям!
    И все из-за этих битов!
    Какого фига-то раньше у него проблем с ними не возникало??? О_О
    Почему щас??
    Я ж реально не менял фюзы, с которыми пару дней назад работало.
    Разве что это домовой нагадил..

    короче жесть.

    1. Ну да, у тебя жтаг ждет, что прошивка пойдет с 00000, а она идет с бутвектора. И он пока ее через жтаг (т.е. медленно) через себя провернет насквозь до 0000 адреса то поседеть можно.

      1. угу) осознал)

        не понимаю почему он только щас начал так на это реагировать)
        я с’неделю фюзы в платах и проектах не менял, а трабл появился только сегодня в полночь)

  113. Сделал все по схеме с USB. зашил прошивку в программатор, подключил к устройству, горит зеленый светодиод питания , второй тоже горит. AVRSTUDIO 4.19 при попытке соединиться с программатором второй светодиод (не питания) гаснет, с задней части 2 светодиода (связанные с FT232RL) моргает только один второй не моргает. Я в этом деле новичок подскажите что дальше?
    программатор был подсоединен и в диспетчере устройств поставлен на порт сом1 , а в настройках перепробовал JTAGICE mkll и JTAG ICE! Контроллер программатора прошил AVRISP mkll.

    И еще вопрос куда подсоединить TMS c программатора на контроллер (ATtiny2313)?
    Заранее благодарен!

      1. теперь понял! т.е. лучше собрать другую монтажную плату с мегой 16?
        короче у меня была заблокирована тини2313 я подумал можно ее с помощю этого программатора прошить, но обломался!
        Этот программатор позволяет разблокировать контроллер если убрано Spien?

        1. Нет. Это вообще не программатор. Не, он шить конечно может, но это не его работа. Тебе нужен HV программатор. AVR Doper, FuseDoctor или подобная шняга. С высоковольтным прожигом. Впрочем, погляди эррату в даташите. У тини2313 вроде какая то фигня была, что если ISP снял, то обратно его не вернуть. Ошибка проца. Но я могу ошибаться.

      2. Второй месяц парюсь! не хочет программатор подключаться к студии! При первом включении горят зеленый и красный светодиоды. После нажатия кнопки connect в студии, красный светодиод гаснет и студия выдает что ничего не нашла. т.к. светодиоды раньше не горели я решил что программатор прошит. в чем может быть проблема? USB Serial Port (COM2) все равно невидит!
        Какие проблемы могут быть ? или как проверить программатор?

        1. Этим же программатором возможно прошить тот же контроллер ATMEGA16A? будет-ли определяться программатор если его включить а на выводы его подать напряжение и запитать его?

  114. Смотрю на схему в тексте — нога PC3 болтается свободно. Смотрю на схему, которая открывается при нажатии на кнопку «Увеличить схему» — нога PC3 посажена на землю…. Глюк? И какой из вариантов правильный?)
    PS хочу себе такой на smd-компонентах запилить)

  115. Господа, никак не пойму каким образом сей девайс может выступать в роли программатора.
    На скриншоте в статье ясно видно диалоговое окно именно программатора, но далее в комментариях этот факт несколько искажается. Поэтому, все-таки, каким образом?
    — Только как отладчик-программатор (т.е. прошивка заливается (программируется)) только по Сtrl+F7 (таким образом готовый хекс-файл или фьюзы запрограммировать не возможно)
    — Или как почти полноценный программатор (почти потому что программирует не через SPI, а только через JTAG, следовательно младшие микроконтроллеры курят).
    У меня как JTAG устройство работает отлично. А вот как программатор пока не получается.

    Второй вопрос:
    При пошаговом выполнении (по F11) или при нажатии Alt+F5 (AutoStep) как долго у вас длится переход с такта на такт? (т.е. как я себе представляю насколько тормознутый этот отладчик) У меня около полусекунды. И это, как странно, не зависит от настройки скорости COM-порта.

    Кстати, FT2323R пока не разжился, поэтому USB — UART сделал на tiny2313 по схеме http://www.getchip.net/posts/041-uart-to-usb-prostojj-preobrazovatel-na-attiny2313. Кто делал тоже-самое? Может, программировать не хочет именно из-за этого?

    Третий вопрос:
    AVR Studio предлагает нам запустить наше устройство как через Assemble and Run (Ctrl+F7), так через Start Debugging (Ctrl+Shift+Alt+F5). В чем разница в нашем случае, при выполнении отладки через JTAG? Будет ли микроконтроллер перепрошиваться и в одном и в другом случае?

    Четвертый вопрос:
    Это у всех так, когда запускаешь AVR Studio, и начинаешь компилировать программу, то студия просит обновить прошивку? То, что делать этого не надо — я знаю. Только немного напрягает это постоянное диалоговое окно…

  116. Оно-то и понятно, что шьет по штагу. Меня волнует возможность использовать сей девайс именно как программатор. Не по Ctrl+F7, а Tools -> Program AVR -> Connect. Понятно, что таким образом можно шить только штагные микроконтроллеры. У меня пока не получается использовать его в этой роли. Т.е. при первом запуске все вроде в порядке. Окно программатора имеет заголовок «JTAG ICE in JTAG mode with ATmega16». Но как только я пытаюсь прочесть сигнатуру таргет-устройства (в моем случае мега16) или прочитать фьзы или напряжение, то все, кранты. Выдает ошибку, что, мол, «не могу присоединиться к программатору». И дальше, кроме как выдернуть usb — включить usb, ничего не помогает. Уже и как Jtag его никто не находит. Так вот, собственно, я и не пойму. отчего так… То ли из-за того, что USB — UART у меня реализовано программным способом (через tiny2313), то ли я где-то накосячил, то-ли надо выставить где-то какие-то настройки (может daisy chain settings), то-ли так и должно быть. Был-бы чуть побагаче — купил бы FT232 и был бы на шаг ближе к ответу, а просто так жаба давит тратиться. Может, у кого-то есть возможность проверить такую-же схему включения как у меня (с USB — UART через tiny2313 (http://www.getchip.net/posts/041-uart-to-usb-prostojj-preobrazovatel-na-attiny2313)) и сравнить наши результаты…

    1. Да. Таки проблема была со схемой с Tiny2313.
      Купил на барахолке шнур для старого телефона. там оказалась микросхема 2303. Она как раз подошла вместо FT232.
      Получилось и дешевле и проще. После этого отладчик можно использовать и как программатор тоже)

  117. здравствуйте!
    спаял сх. на ft232 JTAG
    купил мегу16-ю
    и сразу захотел в нее захотел сбросить
    boot.hex
    ан нет-моя прошивалка этот файл сначала не захотела сбрасывать-а потом показывает ч. контроллер ей не нравится-ТИПИЧНОЕ сообщ.-окно со списком всяческих неприятностей при плохой связи с контроллером- и тд. и тп.
    на ту беду у меня 2-ая мега16-ая .на ней я изощряюсь пишу примеры на Си в кодеВижн
    проверил-все отл-и читает и пишет
    это что ж случилось?
    нельзя было в нее сбрасывать эту проклятую boot.hex ?
    или не все еще потеряно?
    хотя фусиКи читаются из этой меги-
    я их могу продемонстрировать-желающему помочь в моем Горе
    спасибо заранее!
    ник

  118. Di большущий респект тебе (Вам), на твоих примерах регулярно просветляю свою бошку…
    Но вот закавыка понимаеш, собрал уже не один jtag работают на 5+, в одном проекте в меге 16 на одном порту висит и отладчик и I2C часы (jtag PC2…PC5 и часы PC0 PC1 соответственно), тык вот не проходят часики инициализацию..и все дальше не едем… подскажи влияет ли jtag на эти часики

    1. Для этого придется реверснуть прошивку ICE, переписать ее под 162, реализовав на нем COM порт через USB, да еще уложиться во все тайминги. Овчинка не стоит выделки.

  119. Решил собрать сию железку и тут же упёрся в несколько проблем)
    1) типоразмер 1206 днём с огнём не сышешь, соответственно попробовал переделать на ближайший имеющийся 0805, если возможно, кто-нибудь более опытный гляньте краем глаза не наступил ли я на какой подводный камень) схема в жпэге
    2) следом оказалось что элемент — легенда — пофигистор, тоже фиг где найдёшь) насколько допустимо его заменить на обычную перемычку из ножки конденсатора/резистора?
    3) и подскажите по-какому феньшую для AVR`ок выбирается кварц или ткните мордой во что почитать)
    на этом уже весь мозг сломал) даташит скромно пишет 1..20 MHz но что-то заднее подсказывает что не всё так просто)

      1. Я уже понял, что там коментарии всякие и прочее, не берущееся в расчет, просто когда я стал прошивать с помощью программы khazama через программатор usbasp, то она ругалась. Тоже самое было с вашей дуде из прилагаемого архива. Потом я скачал полноценную версию дуды и все нормально прошилось. Зачем Вы кладете заведомо не работающую прогу в архив, новичок может подумать что он что-то не то делает.

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

  120. Вопрос по соответствию схемы и печатки (версия с USB). Переразвожу под мегу в TQFP и в процессе возникло несколько вопросов.
    1) Соответствие выводов TXD и RXD микроконтроллера и FT232. С микрухой МАХ совпадает, с FT поменяно местами. Это верно или очепятка?
    2) Не увидел конденсаторов 10 и 4,7 мкФ на печатке. По-видимому, не критично?
    3) На схема 3 светодиода, на печатке 4.

    1. 1) Так и должно быть. У Макс это всего лишь транслятор, а тут UART UART и должны быть TX-RX RX-TX цепи.
      2) Не критично. Но с ними лучше. Если есть куда поставь.
      3) Питание может быть или еще что то подобное. Там два RX TX и чето еще.

          1. Ага, спасибо! В статье сказано: «если будете делать на FT232 то рекомендую питание брать не от USB, а от целевого устройства». Я правильно понял что на схеме взято просто какое то внешнее питание, от которого запитано и целевое устройство? И если я все-таки захочу чтоб питание было от USB, и чтоб JTAG запитывался только при подключенном целевом устройстве (т.е. питание брать от целевого устройства), то можно с USB напрямую подать питание на целевое устр. через IDC-10, а потом вернуть через этот же IDC на JTAG (к тому же свободные контакты на IDC есть)? Возможно так сделать или это бред?

                  1. подскажите в чем может быть дело. собрал JTAG на FT232RL. запитал от отлаживаемой схемы, подключил к компу, в диспетчере устройств определился как USB Serial Port установил порт COM1, но при нажатии Ctrl+F7 выдает: Could not connect to JTAG ICE on USB or port C0M1 to COM4. Схему вроде проверил, контроллеры оба живые. Все светодиоды горят. В чем может быть ошибка?

                1. все заработало)) просто перепрошил контроллер, каряво как то его зашил)) спасибо за проект! Только вот подскажите что значит моргание светодиода, подключенного к PВ3. RXLED и TXLED это прием и передача как я понял, а вот PB3 я не пойму

  121. Вопрос об ошибке в разводке под юсб поднимался? она не соответствует схеме. я как не смотрел — у меня ресет подтянут на +питания просто через резистор, а электролит соединяет через другой резистор землю и +питания (т-е электрлит не имеет отношения к ресету). раюотать будет, но ошибка есть ошибка.

  122. Подскажите. Занимаюсь отладкой прошивки, которая задействует АЦП и USART, через данный программатор-отладчик. Сделал выводы: значения АЦП и значение регистра UDR данный отладчик показать не может, хотя показывает изменения битов в регистрах-настройках данных устройств. Использую mega16, посаженную в STK500, среда AVR Studio 4. Может я ошибаюсь?

  123. Привет, Ди.
    Собрал я этот прибор, с небольшим изменением — на ноги JTAG интерфейса поставил защитные резисторы по 270 ом (что при 5v кз даст 18мА)
    При подключении к таргету атмега в JTAGe начала греться, потребление 60мА. На 2 из 5 ногах(TDO и nRST) уровень 0.5v, надо думать, горелые.

    В чем причина подыхания? Уже второй контроллер сжигаю.
    Ноги прозвонил, нигде нет кз на землю или на +, везде сопротивление в районе килоома, полагаю, это сопротивление «паразитных» диодов, и они в порядке.

    Питаю таргет от JTAGа, таргет — мега16, плюс по светодиоду на все сигнальные ноги JTAGа. Резисторы светодиодов килоомные.

    ps Да, соплей по плате нет. Собранная, запитанная, но не подключенная плата не грелась.

    1. А она вообще как жтаг то определяется? Без таргета если запустить? Там некоторые ноги к земле засажены, это для выборки режима, там резисторы стоят?

      1. Определялась в студии (пока драйвер на ft232 не слетел, но это отдельная песня). Таргет, разумеется, не увидела.
        Резистор на есть только PD3 на землю, еще несколько ног подключены без резисторов.

        Накрылось все после подключения к целевой плате. Диод готовности до сих пор светится. Иногда, а иногда гаснет через полсекунды как питание подал.

        Что скажешь по поводу «жмурных» ног? Сдохли PB0 и PB6, функционал у них разный, одна выход(ресет таргета), вторая вход (данные). Я не ошибся? Почему же вход пытается подняться?

        Еще, если придавить ресет, потребение падает до 12 ма, и на всех ногах 0.

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