реклама на сайте
подробности

 
 
> debug console over AVR-ISP, Поток отладки направляем на ISP порт
demiurg_spb
сообщение Feb 20 2010, 19:34
Сообщение #1


неотягощённый злом
******

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



Хочется решить раз и навсегда проблему отладочной консоли для семейства AVR.
Хочется получить обычную консоль на ПК, которая принимает DEBUG-поток от AVR через LPT или USB-FT2232 программатор,
подключенный к MCU на ISP разъём. Поток данных односторонний MCU->программатор->ПК.
Видится 2 режима работы:
1 - UART (для мега64, мега128 и остальных имеющих TXD на ISP разъёме)
2 - SPI для всех остальных.
Нужно также предусмотреть спец-преамбулы для режима SPI, чтоб консоль не ловила весь SPI трафик MCU с периферией.
Может кто уже делал что-то подобное?
Может ReAl поможет и выпустит в свет новую прогу AVREL-CONSOLE? :-)
Сам готов помочь. Так, глядишь, сделаем общеполезную тулзу.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Petka
сообщение Feb 21 2010, 10:42
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(ReAl @ Feb 21 2010, 13:12) *
Если можно сделат soft-spi, то можно сделать и soft-uart. Причём если устраивает полста байт в секунду, то ~50*10=~500 -> 480бод или около софт-уарт делается легко при любой загруженности контроллера где-то в дебрях таймер-тикового прерывания. При этом практически не нагружая контроллер не только "в среднем", но и "в пике".

soft uart плох по той причине что он асинхронный, медленный, требует доп периферии, таймера как минимум =(. а так тоже применимо.
Цитата
А хвостик с 74hc14 или max232 у меня есть и есть шлейф "для байт-бластера" с тремя колодками тоже - средняя ставится именно на такой хвостик и работает с выведенными на pin7,8 ногами. Это для тех плат, где SPI занят в системе, пара свободных ног осталась а единственный UART занят (или свободен - тогда выведен он).

как минус - лишние приблуды. одного программатора должно быть достаточно. потом всё это дело надо передёргивать...
Цитата
По SPI - на мой взгляд, если хочется использовать аппаратный SPI как отладочную консоль между обращениями к имеющимся в системе SPI-устройствами, то таки надо своодный выход chip select и имеет смысл подумать о spi-uart-мосте на отдельной платке. Хоть max-каком-то, хоть в программаторе, хоть на специально для этого выделенной mega8/48.

на SPI тоже свет колом не сошёлся.


Цитата(zltigo @ Feb 21 2010, 13:20) *
Если встречное устройство чужое, то тогда софтовые решения конечно не годятся, но аппаратные ввиде одногейтового логического элемента, ( которым, правда, нужно управлять sad.gif ) отключающего RX модема на время передачи отладочной информации, будут работать.

опять-таки лишние приблуды. всё-таки посмотрите "abd-протокол" - нужно всего 3 сигнальных линии. приактически "никакие" накладные расходы на стороне отлаживаемого контроллера. (не нужны ни таймеры ни прерывания) такой-же минимум на стороне отладчика. нет абсолютно никаких требований на времянки. можно использовать любые свободные GPIO.

P.S. немного Offtop: предложенный мной вариант годится не только для AVR но и любого другого котроллера (ARM т пр.) как минимум с тремя GPIO =)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 21 2010, 11:30
Сообщение #3


Гуру
******

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



Цитата(Petka @ Feb 21 2010, 13:42) *
приактически "никакие" накладные расходы на стороне отлаживаемого контроллера.

До тех пор, пока нужно делать "практически ничего" smile.gif. Как только мне потребуется положить несколько байт зараз, то у железного UART может спасать FIFO, а у ногомахательных интерфейсов появятся накладные расходы, причем уже не "никакие" sad.gif. Нет, я не утверждаю, что не надо использовать ногомахание никогда, просто это крайняя мера, а не штатное решение.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Petka
сообщение Feb 21 2010, 11:47
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(zltigo @ Feb 21 2010, 14:30) *
До тех пор, пока нужно делать "практически ничего" smile.gif. Как только мне потребуется положить несколько байт зараз, то у железного UART может спасать FIFO, а у ногомахательных интерфейсов появятся накладные расходы, причем уже не "никакие" sad.gif. Нет, я не утверждаю, что не надо использовать ногомахание никогда, просто это крайняя мера, а не штатное решение.

FIFO может быть как у железных решений, так и у софтверных, таких как abd-протокол. abd-протокол стоит воспринимать примерно как "uart+аппаратный контроль потока". только полностью синхронный и всего 3 линии.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 21 2010, 12:48
Сообщение #5


Гуру
******

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



Цитата(Petka @ Feb 21 2010, 14:47) *
так и у софтверных, таких как abd-протокол.

Могут. Я отрицал этот факт?
Я только сказал, повторяю "..а у ногомахательных интерфейсов появятся накладные расходы, причем уже не "никакие" "
P.S.
А у 'abd' второй клок лишний - раз линия данных одна, то и захват линии клоков можно реализовать. Будет интерфейс 'a/сb/d'


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Petka
сообщение Feb 21 2010, 21:10
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(zltigo @ Feb 21 2010, 15:48) *
А у 'abd' второй клок лишний - раз линия данных одна, то и захват линии клоков можно реализовать. Будет интерфейс 'a/сb/d'

вторая линия осуществляет квитирование. за счёт этого осуществляется flow control. попробуйте прочитать внимательно. на самом деле интересно ваше мнение.
P.S. abd - совсем НЕ SPI. Больше на abd похож I2C. но всё равно это другое.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 21 2010, 21:36
Сообщение #7


Гуру
******

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



Цитата(Petka @ Feb 22 2010, 00:10) *
вторая линия осуществляет квитирование. за счёт этого осуществляется flow control.

flow control при необходимости обеспечивается тем, что тактировку осуществяет приемная сторона. Или та-же приемная сторона давит управление клоком.
Цитата
Больше на abd похож I2C. но всё равно это другое.

Другое, отличающееся наличием аппаратной избыточности в виде дополнительного провода. При этом кроме I2C есть еще массовые решения на 2x сигнальных проводах - та-же PS/2 клавиатура. Впрочем, можно и об однопроводных поговорить smile.gif - тоже массовых прототипов хватает. Если рассматривать интерфейс заточенный под отладочный терминал (допустима ассиметрия в том числе и по скорости и flow control), то софтовая реализация однопроводного не представляется сложной.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Petka
сообщение Feb 22 2010, 09:08
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(zltigo @ Feb 22 2010, 00:36) *
flow control при необходимости обеспечивается тем, что тактировку осуществяет приемная сторона. Или та-же приемная сторона давит управление клоком.

abd - двунаправленный. приёмных сторон две!
Цитата
Другое, отличающееся наличием аппаратной избыточности в виде дополнительного провода. При этом кроме I2C есть еще массовые решения на 2x сигнальных проводах - та-же PS/2 клавиатура.

i2c - имет существенный минус для програмных реализаций - слэйв должен успевать за синхросигналом. т.е. передача не может быть приостановлена "посередине" транзакции. аналогично и с PS/2.
Цитата
Впрочем, можно и об однопроводных поговорить smile.gif - тоже массовых прототипов хватает.

однопроводные априори имеют треования к времянкам. т.е. нужен таймер или калиброваные циклы. если выскочило прерывание - прощай времянки...
Цитата
Если рассматривать интерфейс заточенный под отладочный терминал (допустима ассиметрия в том числе и по скорости и flow control), то софтовая реализация однопроводного не представляется сложной.

вот только зачем? какой профит от этого? один провод меньше трёх. Но тема топика "over ISP" т.е. 3 провода уже есть. Я преложил и реализовал своё видение этого протокола на 3х линиях. причём эта реализация бесплатна при использовании программатора "by Petka" и прочих микроконтроллерных COM программаторов. + программаторы на "bitbang". т.е. теоретически все поддерживаемые avreal.
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Feb 22 2010, 16:50
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(Petka @ Feb 22 2010, 12:08) *
abd - двунаправленный. приёмных сторон две!

I2C тоже две.
Цитата(Petka @ Feb 22 2010, 12:08) *
i2c - имет существенный минус для програмных реализаций - слэйв должен успевать за синхросигналом. т.е. передача не может быть приостановлена "посередине" транзакции.

Вы ошибаетесь. Приостановить слейв может - достаточно "придержать" SCL.
Go to the top of the page
 
+Quote Post
Petka
сообщение Feb 22 2010, 21:54
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Qwertty @ Feb 22 2010, 19:50) *
Вы ошибаетесь. Приостановить слейв может - достаточно "придержать" SCL.

Отнюдь! Слэйв может просто не успеть "придержать" SCL. именно по этой причине есть ограничения на скорость передачи в I2C. (10, 100, 400, 3400кбит/с). По этой-же причине софт-реализация Слэйва I2C сложнее Мастера.

Цитата(zltigo @ Feb 22 2010, 20:08) *
Я тоже про двунаправленный говорю.

видимо мы говорим о разном. я говорил про полный двунаправленный flow control. как я писал выше при софтовой реализации слэйв i2c если не успеет (а как раз тогда и имеет слысл), то не сможет приостановить передачу в удобном для него месте.
Цитата
Отнюдь. Простейший пример для затравки - '0' это импульс минимальной длительности соответствующий атомарной записи 0->1 - вещь вполне стабильная и конфигурируемая в терминале. '1' это импульс любой длительности, но гарантированно длиннее 'нулевого'.

передать импульс легко, согласен. а вот его софтово поймать - сложнее. разжевать почему?
Цитата
Повторяю, плата это эти три ноги НАВСЕГДА отданные программатору "by Petka" и прочим.

В общем случае ДА. Многие вообще через JTAG отлаживаются и ничего, живут как-то =) Альтернатив вообще нет. Разве что через RESET отлаживаться, но это тоже отнюдь не всегда можно.
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Feb 23 2010, 00:07
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(Petka @ Feb 23 2010, 00:54) *
Отнюдь! Слэйв может просто не успеть "придержать" SCL. именно по этой причине есть ограничения на скорость передачи в I2C. (10, 100, 400, 3400кбит/с). По этой-же причине софт-реализация Слэйва I2C сложнее Мастера.

Успеет. Он просто не сможет опоздать smile.gif - достаточно держать SCL в 0 все время, когда слейв занят чем то другим, а не мониторингом шины. Скорость конечно может получиться очень низкой, это зависит от загруженности слейва, но Ваш вариант с возвратом такта имеет точно такой же недостаток.
Go to the top of the page
 
+Quote Post
Petka
сообщение Feb 23 2010, 07:06
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Qwertty @ Feb 23 2010, 03:07) *
Успеет. Он просто не сможет опоздать smile.gif - достаточно держать SCL в 0 все время, когда слейв занят чем то другим, а не мониторингом шины.

1. Вы так сами пробовали? (при реализации софт слэйва)
2. Вот считал слэйв состояние линий, что дальше прикажете делать? сразу SCL опускать? Или на второе чтение сразу-же выходить? А если между этими двумя чтениями прерывание выскочит? Ну не ориентировался I2C на софтовую реализацию слэйва исключительно мастер.
Цитата
Ваш вариант с возвратом такта имеет точно такой же недостаток.

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

в протоколе abd квант времени, нужный для обработки протокола можно выделять абсолютно в любой удобный момент времени (как на мастере так и на слэйве), не надо на этот квант запрещать прерывания, его можно вызывать и в IDLE. И ни одного пропущенного бита не будет. И скорость получится максимально возможной без искусственных ограничений. может и 10Мбит получиться может и больше. Он разрабытывался для межмикроконтроллерного GPIO-обмена все другие протоколы не обладают такой особенностью.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- demiurg_spb   debug console over AVR-ISP   Feb 20 2010, 19:34
- - smac   Цитата(demiurg_spb @ Feb 20 2010, 22:34) ...   Feb 20 2010, 21:11
- - AHTOXA   Цитата(demiurg_spb @ Feb 21 2010, 00:34) ...   Feb 20 2010, 22:03
- - ReAl   Цитата(demiurg_spb @ Feb 20 2010, 21:34) ...   Feb 20 2010, 22:14
- - Petka   Цитата(demiurg_spb @ Feb 20 2010, 22:34) ...   Feb 20 2010, 22:18
|- - ReAl   Цитата(Petka @ Feb 21 2010, 00:18) уже ка...   Feb 20 2010, 23:01
|- - Petka   Цитата(ReAl @ Feb 21 2010, 02:01) Интерес...   Feb 21 2010, 08:19
- - zltigo   Цитата(demiurg_spb @ Feb 20 2010, 22:34) ...   Feb 20 2010, 22:22
|- - demiurg_spb   Цитата(zltigo @ Feb 21 2010, 01:22) Похва...   Feb 21 2010, 08:07
|- - zltigo   Цитата(demiurg_spb @ Feb 21 2010, 11:07) ...   Feb 21 2010, 08:20
|- - Petka   Цитата(zltigo @ Feb 21 2010, 11:20) Что? ...   Feb 21 2010, 08:49
|- - zltigo   Цитата(Petka @ Feb 21 2010, 11:49) Видимо...   Feb 21 2010, 09:15
|- - Petka   Цитата(zltigo @ Feb 21 2010, 12:15) А вот...   Feb 21 2010, 09:32
|- - ReAl   Цитата(Petka @ Feb 21 2010, 11:32) (знаю ...   Feb 21 2010, 10:12
|- - zltigo   Цитата(Petka @ Feb 21 2010, 12:32) Однако...   Feb 21 2010, 10:20
|- - zltigo   Цитата(Petka @ Feb 23 2010, 00:54) видимо...   Feb 23 2010, 13:05
|- - Petka   Цитата(zltigo @ Feb 23 2010, 16:05) Если ...   Feb 23 2010, 13:26
|- - zltigo   Цитата(Petka @ Feb 23 2010, 16:26) Сейчас...   Feb 23 2010, 13:38
|- - Petka   Цитата(zltigo @ Feb 23 2010, 16:38) Получ...   Feb 23 2010, 13:51
|- - zltigo   Цитата(Petka @ Feb 23 2010, 16:51) 1-wire...   Feb 23 2010, 14:21
|- - Petka   Цитата(zltigo @ Feb 23 2010, 17:21) ... С...   Feb 23 2010, 14:24
|- - zltigo   Цитата(Petka @ Feb 23 2010, 17:24) ПодЕли...   Feb 23 2010, 17:36
|- - Petka   Цитата(zltigo @ Feb 23 2010, 20:36) Одним...   Feb 23 2010, 18:29
|- - zltigo   Цитата(Petka @ Feb 23 2010, 21:29) сразу ...   Feb 23 2010, 18:41
|- - Petka   Цитата(zltigo @ Feb 23 2010, 21:41) Если ...   Feb 23 2010, 18:47
|- - zltigo   Цитата(Petka @ Feb 23 2010, 21:47) Так эт...   Feb 23 2010, 20:24
|- - Petka   Цитата(zltigo @ Feb 23 2010, 23:24) Мне к...   Feb 23 2010, 21:33
|- - zltigo   Цитата(Petka @ Feb 24 2010, 00:33) Возвра...   Feb 24 2010, 08:33
|- - Petka   Цитата(zltigo @ Feb 24 2010, 11:33) Он мо...   Feb 24 2010, 19:13
|- - zltigo   Цитата(Petka @ Feb 24 2010, 22:13) Дело з...   Feb 24 2010, 21:43
- - Laptop   Часто даже в меге128 оба уарта заняты, поэтому я п...   Feb 21 2010, 14:48
- - MDD   Цитата(demiurg_spb @ Feb 20 2010, 21:34) ...   Feb 22 2010, 07:50
|- - zltigo   Цитата(MDD @ Feb 22 2010, 10:50) бутлоаде...   Feb 22 2010, 17:08
|- - MDD   Цитата(zltigo @ Feb 22 2010, 19:08) Залит...   Feb 22 2010, 18:41
|- - zltigo   Цитата(MDD @ Feb 22 2010, 21:41) Я не зря...   Feb 22 2010, 19:02
- - vesago   В качестве инструмента предлагаю известный клон ав...   Feb 23 2010, 07:28
- - defunct   Цитата(demiurg_spb @ Feb 20 2010, 21:34) ...   Feb 24 2010, 20:11
|- - demiurg_spb   Цитата(defunct @ Feb 24 2010, 23:11) Для ...   Feb 25 2010, 07:48
- - manul78   Я может слегка не в тему, но спрашиваю потому как ...   Feb 24 2010, 23:06
- - zltigo   Цитата(manul78 @ Feb 25 2010, 02:06) По D...   Feb 24 2010, 23:12
- - ReAl   Цитата(manul78 @ Feb 25 2010, 01:06) По D...   Feb 25 2010, 00:37
- - manul78   Цитата(ReAl @ Feb 25 2010, 03:37) Смысла ...   Feb 25 2010, 03:50


Reply to this topicStart new topic
8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01575 секунд с 7
ELECTRONIX ©2004-2016