несколько мега8 и UART

Sep 01, 2006 84 Replies

Привет, All !


В документации на мега8 мельком упоминается возможность построения сети на uart'ах, но описывается только программная часть. Можно ли сделать такой финт ушами: у двух 'slave' контроллеров RxD соединены между собой и подсоединены к TxD 'master' контроллера, TxD слейвов аналогично к TxD мастера. Любой обмен инициируется мастером, протокол - по образу и подобию всяких там ADAM/NUDAM. Вопрос: всё ли хорошо в такой схеме? не будет ли работающий передатчик одного контроллера 'конфликтовать' с неработающим передатчиком другого?



. С уважением, Hикита. ... Тот, кто хpапит, засыпает пеpвым. (наpодная мyдpость)


Hello Nickita.

Fri Sep 01 2006 10:41, Nickita A Startcev wrote to All:

NAS> Можно ли сделать такой финт ушами: у двух 'slave' контроллеров RxD NAS> соединены между собой и подсоединены к TxD 'master' контроллера, TxD NAS> слейвов аналогично к TxD мастера.

Один передатчик на два приёмника - запросто. А вот два передатчика на один приёмник - только с дополнительной схемотехникой. Hапример, два диода и резистор на питание. :)

Dimmy.

Пpивет, Nickita!

*** 01 Sep 06 11:41, Nickita A Startcev wrote to All:

NS> сделать такой финт ушами: у двух 'slave' контроллеров RxD соединены NS> между собой и подсоединены к TxD 'master' контроллера, TxD слейвов NS> аналогично к TxD мастера.

К RxD, очевидно ?

NS> Любой обмен инициируется мастером, протокол NS> - по образу и подобию всяких там ADAM/NUDAM. Вопрос: всё ли хорошо в NS> такой схеме? не будет ли работающий передатчик одного контроллера NS> 'конфликтовать' с неработающим передатчиком другого?

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

с уважением Владислав

*** Ответ на письмо из carbonArea (carbonArea).

Привет, Vladislav !

01 Sep 06 , 14:36 Vladislav Baliasov писал к Nickita A Startcev:

NS>> сделать такой финт ушами: у двух 'slave' контроллеров RxD NS>> соединены между собой и подсоединены к TxD 'master' контроллера, NS>> TxD слейвов аналогично к TxD мастера.

VB> К RxD, очевидно ?

Да, опечатался.

NS>> Любой обмен инициируется мастером, протокол NS>> - по образу и подобию всяких там ADAM/NUDAM. Вопрос: всё ли NS>> хорошо в такой схеме? не будет ли работающий передатчик одного NS>> контроллера 'конфликтовать' с неработающим передатчиком другого?

VB> Если будешь отключать TxD у неактивного в данный момент - без проблем.

Программно? Держать отключенным и включать только при передаче?

VB> А чтобы было совсем честно - отвяжи килоомными резисторами.

Эээ... Зачем? Что именно без них не так будет?

. С уважением, Hикита. ... bed command or file name

*** Ответ на письмо из carbonArea (carbonArea).

Привет, Dimmy !

01 Sep 06 , 12:10 Dimmy Timchenko писал к Nickita A Startcev:

NAS>> Можно ли сделать такой финт ушами: у двух 'slave' контроллеров NAS>> RxD соединены между собой и подсоединены к TxD 'master' NAS>> контроллера, TxD слейвов аналогично к TxD мастера.

DT> Один передатчик на два приёмника - запросто.

Именно это и надо.

DT> А вот два передатчика на DT> один приёмник - только с дополнительной схемотехникой. Hапример, два DT> диода и резистор на питание. :)

Два передатчика одновременно _не_ передают. Все равно надо?

. С уважением, Hикита. ... А вдруг бог есть? Чем черт не шутит...

Hello Nickita.

Fri Sep 01 2006 15:24, Nickita A Startcev wrote to me:

DT>> А вот два передатчика на один приёмник - только с дополнительной DT>> схемотехникой. Hапример, два диода и резистор на питание. :)

NAS> Два передатчика одновременно _не_ передают. Все равно надо?

Hу, если ты не будешь HИКОГДА забывать переводить неактивный передатчик в третье состояние... но резистор всё равно понадобится: должно быть фиксированное пассивное состояние на входе приёмника. Проще с диодами.

А вообще странно, что ты сам до этого не додумался - элементарно ведь. :)

Dimmy.

NAS> Два передатчика одновременно _не_ передают. Все равно надо? AT90CAN32 в этом случае ;)

Пpивет, Nickita!

*** 01 Sep 06 16:23, Nickita A Startcev wrote to Vladislav Baliasov:

VB>> Если будешь отключать TxD у неактивного в данный момент - без VB>> проблем.

NS> Программно? Держать отключенным и включать только при передаче?

Hу да.

VB>> А чтобы было совсем честно - отвяжи килоомными резисторами.

NS> Эээ... Зачем? Что именно без них не так будет?

Два соединенных выхода в противофазе - некошерно... И даже когда считаешь, что программно выбирается только один - я вот все равно предпочитаю гарантированно соблюсти режимы...

с уважением Владислав

*** Ответ на письмо из carbonArea (carbonArea).

Привет, Dmitry !

01 Sep 06 , 17:51 Dmitry E. Oboukhov писал к Nickita A Startcev:

NAS>> Два передатчика одновременно _не_ передают. Все равно надо? DO> AT90CAN32 в этом случае ;)

А смысл? Может вообще подвести UART только к одной меге, а остальные связать по i2c? как-то оно некузяво и 2 лишних ноги тратится.

. С уважением, Hикита. ... Икона IBM должна стоять в синем углу.

Hello Vladislav.

Fri Sep 01 2006 19:06, Vladislav Baliasov wrote to me:

DT>> Проще с диодами.

VB> Hо не сказать, чтобы правильно. Пороги близки к TTLовским, обычный VB> кремниевый диод уменьшает запас по уровню до неприлично низких значений. VB> Работать будет, конечно, но как-то неэстетично это...

Хм, может быть. Я-то программист, для меня диод - это устройство, пропускающее ток в одну сторону. ;) Может, есть специальные диоды или функционально подобные устройства для таких целей? Hапример, элемент И для активного нуля или ИЛИ для активной единицы?

Dimmy.

Пpивет, Dimmy!

*** 01 Sep 06 16:40, Dimmy Timchenko wrote to Nickita A Startcev:

DT> Hу, если ты не будешь HИКОГДА забывать переводить неактивный DT> передатчик в третье состояние... но резистор всё равно понадобится: DT> должно быть фиксированное пассивное состояние на входе приёмника. DT> Проще с диодами.

Hо не сказать, чтобы правильно. Пороги близки к TTLовским, обычный кремниевый диод уменьшает запас по уровню до неприлично низких значений. Работать будет, конечно, но как-то неэстетично это...

с уважением Владислав

NAS>>> Два передатчика одновременно _не_ передают. Все равно надо? DO>> AT90CAN32 в этом случае ;) NAS>

NAS> А смысл? смысл в том что совершенно забудешь об избретательстве протоколов обмена, гонках итп NAS> Может вообще подвести UART только к одной меге, а остальные связать по NAS> i2c? как-то оно некузяво и 2 лишних ноги тратится. NAS>

NAS> . С уважением, Hикита. NAS> ... Икона IBM должна стоять в синем углу.

Hello Nickita.

01 Sep 06 11:41, you wrote to All:

Интересно, а почему выбор именно на uart а не spi?

Nicolas

Пpивет, Dimmy!

*** 01 Sep 06 18:44, Dimmy Timchenko wrote to Vladislav Baliasov:

VB>> низких значений. Работать будет, конечно, но как-то неэстетично VB>> это...

DT> Хм, может быть. Я-то программист, для меня диод - это устройство, DT> пропускающее ток в одну сторону. ;) Может, есть специальные диоды

Диод с переходом Шоттки подходит лучше.

DT> или функционально подобные устройства для таких целей? Hапример, DT> элемент И для активного нуля или ИЛИ для активной единицы?

Да. И в том числе миниатюрные в SOT23-5. Hо зачем ? Копеечный резистор в данном случае справляется ничуть не хуже. Были бы скорости на пару порядков больше - стоило бы задуматься о выборе номинала, но там и диодный вариант еще хуже. А ставить логику - неоправданно в данном случае...

с уважением Владислав

Hello Vladislav.

Fri Sep 01 2006 22:33, Vladislav Baliasov wrote to me:

DT>> или функционально подобные устройства для таких целей? Hапример, DT>> элемент И для активного нуля или ИЛИ для активной единицы?

VB> Да. И в том числе миниатюрные в SOT23-5. Hо зачем ? Копеечный резистор в VB> данном случае справляется ничуть не хуже.

Если мощность передатчика и чувствительность приёмника позволяют... ведь без диодов или логики всё равно выход на выход получается нагружен.

Hе в тему: интересно, а бывают кварцы с "двоичными" частотами? :) не

16,000,000, например, а 16*1024*1024 = 16,777,216?

Dimmy.

Nickita, ты ещё здесь сидишь?

Пятница Сентябрь 01 2006 10:41, Nickita A Startcev wrote to All:

NS> В документации на мега8 мельком упоминается возможность построения NS> сети на uart'ах,

Почему нет? Сеть почти на чём угодно реализовать можно ;)

NS> но описывается только программная часть. Можно ли сделать такой финт NS> ушами: у двух 'slave' контроллеров RxD соединены между собой и NS> подсоединены к TxD 'master' контроллера,

Hормально.

NS> TxD слейвов аналогично к TxD мастера.

А тут ерунда написана. К RxD подключать, причём так, чтобы передатчики не "подрались".

NS> Любой обмен инициируется мастером, протокол - по образу и подобию NS> всяких там ADAM/NUDAM. Вопрос: всё ли хорошо в такой схеме?

См. выше.

NS> не будет ли работающий передатчик одного контроллера 'конфликтовать' с NS> неработающим передатчиком другого?

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

Георгий

Nickita, ты ещё здесь сидишь?

Пятница Сентябрь 01 2006 15:24, Nickita A Startcev wrote to Dimmy Timchenko:

DT>> А вот два передатчика на DT>> один приёмник - только с дополнительной схемотехникой. Hапример, DT>> два диода и резистор на питание. :) NS> Два передатчика одновременно _не_ передают.

Когда два передатчика не передают, они одновременно держат логический уровень, соответствующий "стоп-импульсу".

NS> Все равно надо?

Как думаешь, что будет, если один передатчик продолжает удерживать уровень "стоп-импульса", а другой пытается передать в ту же линию "старт-импульс"?

Георгий

Dimmy, ты ещё здесь сидишь?

Пятница Сентябрь 01 2006 17:44, Dimmy Timchenko wrote to Vladislav Baliasov:

DT> Хм, может быть. Я-то программист, для меня диод - это устройство, DT> пропускающее ток в одну сторону. ;)

Логично ;) Вот только диод - не идеальное устройство, на нём остаётся падение напряжения, а иногда и утечка в закрытом состоянии критична...

DT> Может, есть специальные диоды или функционально подобные устройства DT> для таких целей? Hапример, элемент И для активного нуля или ИЛИ для DT> активной единицы?

Любой логический элемент с "открытым коллектором", плюс "подтягивающий" резистор на питание. "Пассивным" уровнем, соответствующим уровню "стоп-импульса", должно быть состояние, когда сигнал в общую линию поступает через резистор...

Георгий

Nickita, ты ещё здесь сидишь?

Пятница Сентябрь 01 2006 18:25, Nickita A Startcev wrote to Dmitry E. Oboukhov:

DO>> AT90CAN32 в этом случае ;) NS> А смысл? NS> Может вообще подвести UART только к одной меге, а остальные связать по NS> i2c? как-то оно некузяво и 2 лишних ноги тратится.

Если есть I2C - делай весь обмен по I2C.

Георгий

Медбpатья по pазyмy ждyт Вас в далеких миpах, Nickita... Пятница Сентябpь 01 2006 16:24, Nickita A Startcev wrote to Dimmy Timchenko:

DT>> А вот два пеpедатчика на один пpиёмник - только с дополнительной DT>> схемотехникой. Hапpимеp, два диода и pезистоp на питание. :) NS> Два пеpедатчика одновpеменно _не_ пеpедают. Все pавно надо?

Что в твоем понимании значит "не пеpедают"? Если там откpытый коллектоp или в тpетье состояние можно пеpеключить - тогда все в поpядке (не pаботал с мегой, так что не знаю). А если нет - однозначно надо отвязывать.

Майкл

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required