|
|
  |
debug console over AVR-ISP, Поток отладки направляем на ISP порт |
|
|
|
Feb 24 2010, 20:11
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(demiurg_spb @ Feb 20 2010, 21:34)  Хочется решить раз и навсегда проблему отладочной консоли для семейства AVR. Для себя решил этот вопрос с помощью I2C Slave на m8/48 - который представляет собой конвертер I2C <-> UART. Понятно, что это решение пойдет не для всех AVR, а только для тех у кого есть I2C (правда никто не мешает умельцам примостырить софтовый I2C, но мне оно было не нужно, да камней без аппаратного I2C - парочка мег, и тиньки... где консоль вроде как и лишняя). I2C шину на технологический разъем 4 пина Vcc/SCL/SDA/GND. Конвертер питается от таргета. Из плюсов: - не ограничен использованием только для AVR, применим и с МК других семейств; - не ограничен только отладкой, можно использовать просто как дополнительный UART; - двухсторонняя связь; - подключение непосредственно к КОМ порту компа; - работа через любой стандартный терминал; - масштабирование по самые немогу - хоть 10 "консолей" (понятно что это могут быть и не консоли, а напр доп. 485-й порт). из минусов: - еще 1 разъем на плате, - объем дебажного сопроводительного софта на таргет железе ~2.5kb Flash. Второй минус правда нивелируется если I2C шина используется для чего-то еще, т.к. из 2.5k - 2KB занимает драйвер i2c.
|
|
|
|
|
Feb 24 2010, 21:43
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Petka @ Feb 24 2010, 22:13)  Дело за малым... Да. Цитата Сделать соответствующий терминал. Видимо на программируемой логике. Или на более быстром контроллере, или с обвеской в несколько корпусов дискретной логики. Но и CPLD/FPGA+CPU не редкость для всяческих USB ->Нечто адаптеров. Цитата Ну и написать функции get/putchar для МК. Ну это вообще-то считанные строки. Цитата Будет-ли это когда-нибудь реализовао... Это, или не это, но однопроводные интерфейсы при малейшем желании реализуемы, даже если дополнительно выдвигать условия подобные Вашим. Не говоря уже о двухпроводных. Три провода, это уже замного.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 24 2010, 23:06
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Я может слегка не в тему, но спрашиваю потому как всех вас, господа застать в одном месте сложно...  По DebugWIRE есть какие нибудь наработки, или это "тайна за семью печатями" ? На AVRFreaks разговор такой, типа в Атмеле не такие дураки сидят чтобы DebugWIRE выкладывать на растерзание. Есть только протокол JTAGICE MKII в виде диалога "AVRStudio<-->JTAGICE MKII", а вот JTAGICE MKII <--> DebugWIRE MK что-то не встречал, хотя данным отладочным интерфейсом снабжены уже почти все AVR. Там-же AVRFraks была попытка объединиться в группу для попытки "расковырять" DebugWIRE методом: Хороший многоканальный цифровой осциллоскоп и изучение входных и выходных данных JTAGICE MKII и DRAGON-а... Но что-то заглохла тема, а недавно полез она вообще исчезла  Были так-же попытки раско- пать upgrade-прошивки, но так как они закриптованы, разумеется ничего не вышло...  Вот интересно, кроме китайцев кто-нибудь победил ATMEL ? Проще конечно даже дешевый DRAGON купить и забыть, но вот действительно любопытно, что из себя представляет DebugWIRE ? Скорость, возможности и пр. Спрашиваю т.к. китайские клоны JTAGICE MKII работают ГОРАЗДО быстрее оригиналов. P.S. Готов поучаствовать в коллективном "изучении" DebugWIRE, осциллоскоп цифровой имеется... JTAGICE MKII не имею, пользуюсь первым ICE-ом, но на DRAGON для такого дела разорюсь...
Сообщение отредактировал manul78 - Feb 24 2010, 23:11
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Feb 25 2010, 00:37
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(manul78 @ Feb 25 2010, 01:06)  По DebugWIRE есть какие нибудь наработки, или это "тайна за семью печатями" ? Я сделал только маленькую "разлочивалку" - временное блокирование фьюза dW - где-то тут тема бегает. Сделано на тини13. Оказалось, что дракон (по крайней мере той версии, что у меня) не может это сделать, если контроллер тактируется от внутреннего 128кГц с забытым CKDIV8=on, для него это слишком низкая частота. Но там просто одна байтовая команда подаётся, я её слизал простым осциллографом и просто по образцу выдал. По скорости - там явно есть команды от хоста в контроллер эту скорость изменить. Дракон для реальной работы такое посылает. Смысла ввязываться в раздалбывание полного протокола я не вижу.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 25 2010, 03:50
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Цитата(ReAl @ Feb 25 2010, 03:37)  Смысла ввязываться в раздалбывание полного протокола я не вижу. Понятно... Мне честно говоря сильно не горит, просто любопытно из познавательных соображений. Как там всё организованно... В режиме отладки через SPI перекачиваются целые дампы памяти, меняется программный счетчик, пошаговые дела. В МК что ? Организован аппаратный JTAG модуль+интерфейс ? Если так, то данный модуль считается по приоритету выше чем само ядро? Или JTAG модуль обеспечивает прямой доступ к конвейеру и "втюхивает" ему свои команды, иначе как можно организовать "многокомандные" отладочные процедуры не используя память программ ? AVRStudio (команда "верхнего" уровня) --> JTAGICE MKII (заголовок+пачка комманд AVR) --> JTAG модуль МК --> конвейер Возможно такое, или там всё проще(сложнее) ?
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
Feb 25 2010, 07:48
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(defunct @ Feb 24 2010, 23:11)  Для себя решил этот вопрос с помощью I2C Slave на m8/48 - который представляет собой конвертер I2C <-> UART. Спасибо за предложение, но что-то исторически сложилось, что предпочитаю более дубовые интерфейсы: SPI, UART. А I2C как-то не по душе мне - много чего софтом надо делать... Да и устанавливать ещё один технологический разъём поздновато, уже столько сделано без него. А из темы я, пожалуй, вынес для себя, что пока самым простым будет собрать программатор на COM лучше USB->COM и использовать его же как консоль. Остальные решения требуют бОльших трудозатрат. Для контроллеров без TXD на ISP разъёме реализовать soft-uart. Меня пока прельщает это решение.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|