|
debug console over AVR-ISP, Поток отладки направляем на ISP порт |
|
|
|
 |
Ответов
|
Feb 21 2010, 10:42
|
Профессионал
    
Группа: Свой
Сообщений: 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)  Если встречное устройство чужое, то тогда софтовые решения конечно не годятся, но аппаратные ввиде одногейтового логического элемента, ( которым, правда, нужно управлять  ) отключающего RX модема на время передачи отладочной информации, будут работать. опять-таки лишние приблуды. всё-таки посмотрите "abd-протокол" - нужно всего 3 сигнальных линии. приактически "никакие" накладные расходы на стороне отлаживаемого контроллера. (не нужны ни таймеры ни прерывания) такой-же минимум на стороне отладчика. нет абсолютно никаких требований на времянки. можно использовать любые свободные GPIO. P.S. немного Offtop: предложенный мной вариант годится не только для AVR но и любого другого котроллера (ARM т пр.) как минимум с тремя GPIO =)
|
|
|
|
|
Feb 21 2010, 11:30
|

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

|
Цитата(Petka @ Feb 21 2010, 13:42)  приактически "никакие" накладные расходы на стороне отлаживаемого контроллера. До тех пор, пока нужно делать "практически ничего"  . Как только мне потребуется положить несколько байт зараз, то у железного UART может спасать FIFO, а у ногомахательных интерфейсов появятся накладные расходы, причем уже не "никакие"  . Нет, я не утверждаю, что не надо использовать ногомахание никогда, просто это крайняя мера, а не штатное решение.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 21 2010, 11:47
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

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

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
Feb 21 2010, 21:36
|

Гуру
     
Группа: Свой
Сообщений: 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 клавиатура. Впрочем, можно и об однопроводных поговорить  - тоже массовых прототипов хватает. Если рассматривать интерфейс заточенный под отладочный терминал (допустима ассиметрия в том числе и по скорости и flow control), то софтовая реализация однопроводного не представляется сложной.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 22 2010, 09:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(zltigo @ Feb 22 2010, 00:36)  flow control при необходимости обеспечивается тем, что тактировку осуществяет приемная сторона. Или та-же приемная сторона давит управление клоком. abd - двунаправленный. приёмных сторон две! Цитата Другое, отличающееся наличием аппаратной избыточности в виде дополнительного провода. При этом кроме I2C есть еще массовые решения на 2x сигнальных проводах - та-же PS/2 клавиатура. i2c - имет существенный минус для програмных реализаций - слэйв должен успевать за синхросигналом. т.е. передача не может быть приостановлена "посередине" транзакции. аналогично и с PS/2. Цитата Впрочем, можно и об однопроводных поговорить  - тоже массовых прототипов хватает. однопроводные априори имеют треования к времянкам. т.е. нужен таймер или калиброваные циклы. если выскочило прерывание - прощай времянки... Цитата Если рассматривать интерфейс заточенный под отладочный терминал (допустима ассиметрия в том числе и по скорости и flow control), то софтовая реализация однопроводного не представляется сложной. вот только зачем? какой профит от этого? один провод меньше трёх. Но тема топика "over ISP" т.е. 3 провода уже есть. Я преложил и реализовал своё видение этого протокола на 3х линиях. причём эта реализация бесплатна при использовании программатора "by Petka" и прочих микроконтроллерных COM программаторов. + программаторы на "bitbang". т.е. теоретически все поддерживаемые avreal.
|
|
|
|
|
Feb 22 2010, 16:50
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(Petka @ Feb 22 2010, 12:08)  abd - двунаправленный. приёмных сторон две! I2C тоже две. Цитата(Petka @ Feb 22 2010, 12:08)  i2c - имет существенный минус для програмных реализаций - слэйв должен успевать за синхросигналом. т.е. передача не может быть приостановлена "посередине" транзакции. Вы ошибаетесь. Приостановить слейв может - достаточно "придержать" SCL.
|
|
|
|
|
Feb 22 2010, 21:54
|
Профессионал
    
Группа: Свой
Сообщений: 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 отлаживаться, но это тоже отнюдь не всегда можно.
|
|
|
|
|
Feb 23 2010, 00:07
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(Petka @ Feb 23 2010, 00:54)  Отнюдь! Слэйв может просто не успеть "придержать" SCL. именно по этой причине есть ограничения на скорость передачи в I2C. (10, 100, 400, 3400кбит/с). По этой-же причине софт-реализация Слэйва I2C сложнее Мастера. Успеет. Он просто не сможет опоздать  - достаточно держать SCL в 0 все время, когда слейв занят чем то другим, а не мониторингом шины. Скорость конечно может получиться очень низкой, это зависит от загруженности слейва, но Ваш вариант с возвратом такта имеет точно такой же недостаток.
|
|
|
|
|
Feb 23 2010, 07:06
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(Qwertty @ Feb 23 2010, 03:07)  Успеет. Он просто не сможет опоздать  - достаточно держать SCL в 0 все время, когда слейв занят чем то другим, а не мониторингом шины. 1. Вы так сами пробовали? (при реализации софт слэйва) 2. Вот считал слэйв состояние линий, что дальше прикажете делать? сразу SCL опускать? Или на второе чтение сразу-же выходить? А если между этими двумя чтениями прерывание выскочит? Ну не ориентировался I2C на софтовую реализацию слэйва исключительно мастер. Цитата Ваш вариант с возвратом такта имеет точно такой же недостаток. Это не недостаток это достоинство, когда скорость получается максимально возможной из "возможностей" двух сторон. в протоколе abd квант времени, нужный для обработки протокола можно выделять абсолютно в любой удобный момент времени (как на мастере так и на слэйве), не надо на этот квант запрещать прерывания, его можно вызывать и в IDLE. И ни одного пропущенного бита не будет. И скорость получится максимально возможной без искусственных ограничений. может и 10Мбит получиться может и больше. Он разрабытывался для межмикроконтроллерного GPIO-обмена все другие протоколы не обладают такой особенностью.
|
|
|
|
Сообщений в этой теме
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
8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0
|
|
|