Перейти к содержанию
    

Сопряжение нескольких atmega

Вот настроил USART на двух Мегах все работет.. общаются отлично.. а вот как третий мк к линии подсоединю так сразу все молчат... подскажите в чем дело?
Прямое соединение USARTов возможно только в конфигурации точка-точка, т.е. ровно 2 штуки. Если нужно больше, то нужно делать либо шину (драйверами RS485 или буферами с 3мя состояниями) либо кольцо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прямое соединение USARTов возможно только в конфигурации точка-точка, т.е. ровно 2 штуки. Если нужно больше, то нужно делать либо шину (драйверами RS485 или буферами с 3мя состояниями) либо кольцо.

если в кольцо нужно делать последовательную пересылку от МК до МК?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если в кольцо нужно делать последовательную пересылку от МК до МК?
Да. TX первого соединяешь с RX 2го. TX 2го с RX 3го. TX 3го с RX 1го. (3 штуки в кольце). Топология крайне нестандартная и такая же ненадежная - выход из строя (или подвисание) одного МК блокирует все кольцо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читаете раздел Multi-processor Communication Mode для ATmega32. Соединял по USART 6 МК, один мастер 5 подчиненых. На линию TXD ставится резистор, выходы 5 передатчиков подчиненых в третьем состоянии, при передаче выход переключается на передачу. Все описано в DS, читайте и все у Вас получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читаете раздел Multi-processor Communication Mode для ATmega32. Соединял по USART 6 МК, один мастер 5 подчиненых. На линию TXD ставится резистор, выходы 5 передатчиков подчиненых в третьем состоянии, при передаче выход переключается на передачу. Все описано в DS, читайте и все у Вас получится.

 

А вы не поделитесь наработками в этом направлении?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что Вас интересует. Спрашивайте.

 

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

я вот понял что можно настроить это все в мастере кодвизиона.. толко не все понятно..

 

вроде как так? для мастера/слейва

post-53565-1271131367_thumb.png

post-53565-1271131372_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Режим наверное все таки асинхронный (Mode)

 

UCPOL - полярность синхронизации. используется только в синхронном режиме. В асинхронном UCPOL=0.

или я не правильно чтото понял?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UCPOL - полярность синхронизации. используется только в синхронном режиме. В асинхронном UCPOL=0.

или я не правильно чтото понял?

У меня нет CW, так что сказать не могу. А какие еще есть варианты в списке Mode?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня нет CW, так что сказать не могу. А какие еще есть варианты в списке Mode?

 

Asynchronous

Sync. master UCPOL=0

Sync. master UCPOL=1

Sync. slave UCPOL=0

Sync. slave UCPOL=1

 

Если поставить Asynchronous, то как тогда различить мастер и слэйв?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Asynchronous
Вот его

Если поставить Asynchronous, то как тогда различить мастер и слэйв?
Изнутри контролера они не отличаются. Все отличие в схеме включения выводов TX и RX и в протоколе обмена

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я хочу построить многопроцессорную систему.. но в ДШ не могу разобраться...

но там написано про бит UCPOL..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читайте описание на регистр UCSRB. Там есть бит 3 TXEN который фактически переключает вывод порта как линия передачи TX или бит порта.

Мастер всегда скоммутирован как линия TX. Подчиненый скомутирован как бит порта. При необходимости передачи данных бит TXEN устанавливается в 1 и после окончания передачи сбрасывается в 0. На линии TX подчиненых МК которые паралелятся устанавливается подтягивающий резистор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Решил использовать мегу2560 у него есть три USART... вот мне как раз и хватит.. и памяти графического меню предостаточно..

Всем спасибо за помошь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...