roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 май 2025, 03:37

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Связь между МК Atmel Mega (16/32)
СообщениеДобавлено: 18 июл 2006, 19:04 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Как можно организовать связь? Напрашиваетьс несколько вариантов: USART, SPI ... Собственно что лучше?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 июл 2006, 19:21 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Cмотря что свободно. Апноут на эту тему есть у AVR. pic16f628.narod.ru/01.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 июл 2006, 22:04 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Проще всего UART. Если нужно организовывать шину (мастер и много слейвов) - I2C или SPI, но там все уже не так просто...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь между МК Atmel Mega (16/32)
СообщениеДобавлено: 19 июл 2006, 06:56 
Не в сети

Зарегистрирован: 05 июл 2006, 05:55
Сообщения: 47
Откуда: Томск
KiCom писал(а):
Как можно организовать связь? Напрашиваетьс несколько вариантов: USART, SPI ... Собственно что лучше?


Ты не полностью обрисовал проблему.
Тут может быть несколько вариантов:

1. Если тебе нужна большая скорость (до мегабит) - то SPI. НО! Только на коротких линиях (порядка не более десятков см).

2. Если тебе нужна дальность связи в метры, то UART. НО! Скорость получишь не более сотен килобит.

3. Если тебе пофиг на скорость, то лучше UART - прощеподключать (всего три провода - Rx, Tx и Общий), тогда как SPI - четыре провода (MOSI, MISO, SCK и Общий).

Опять же UART на дальние расстояния надо делать с преобразователем 5B<->+-12B, тогда как на коротких можно соединять и без преобразователя - сразу по 5Вольтам.

Так что выбирай :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2006, 06:58 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Да неверно остановлюсь на UART по крайней мере уже с ним работал. Я так понимаю это последоватьтельный интерфейс. Например есть три МК соеденить надо так: Rx_1-Tx_2  Rx_2-Tx-3 Rx_3-Tx_1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2006, 07:01 
Не в сети

Зарегистрирован: 05 июл 2006, 05:55
Сообщения: 47
Откуда: Томск
KiCom писал(а):
Да неверно остаовлюсь на UART по крайней мере уже с ним работал. Я так понимаю это последоватьтельный интерфейс Например есть три МК соеденить надо так: Rx_1-Tx_2  Rx_2-Tx-3 Rx_3-Tx_1


Последовательно чтоли ? Тода ты не сможешь передать напрямую от 3го к 1му данные.

У тебя система "мастер-слейв" или все равноправные ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2006, 07:05 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Нет все равноправные, тоесть нужно соединять все МК паралельно? Если я использую UART.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2006, 07:08 
Не в сети

Зарегистрирован: 05 июл 2006, 05:55
Сообщения: 47
Откуда: Томск
KiCom писал(а):
Нет все равноправные, тоесть нужно соединять все МК паралельно? Если я использую UART.


Если все равноправные, то UART не подойдет - он не для того предназначен (конечно можно и с ним извратится, могу схемку кинуть попозже).

Тебе нужна шина. Например I2C. Но тогда одновременно по шине могут общаться не более 2х контроллеров.

Я сейчас исчезну на часок-другой, потом тебе схемку кину как из UARTа шину сделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2006, 09:27 
Не в сети

Зарегистрирован: 05 июл 2006, 05:55
Сообщения: 47
Откуда: Томск
Вот схема шины на UART по 5вольтам. Как видим все входы Rx микроконтроллеров соединяются вместе, а выходы Tx - через транзисторы, чтобы исключить сквозные токи и выгорания UARTов.
Все слышат всех, в один момент может передавать только один.

Правда в этом случае возникает проблема коллизий (как быть если передаать хотят одновременно два устройства?).  Тут решений может бытиь тоже несколько, например таймауты, как  в ethernet или динамический мастер шины...


Вложения:
bus.png
bus.png [ 4.01 КиБ | Просмотров: 3597 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2006, 09:47 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Отлично, спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2006, 10:04 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
все RXD соединить а TXD подсоединить к RXD  через резистор. Их сопротивление должно быть более (колич. UART * 500) Ом.

Чем меньше скорость тем больше могут быть резисторы.

======

и все же:  почему не воспользоваться апноутом ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2006, 10:25 
Не в сети

Зарегистрирован: 05 июл 2006, 05:55
Сообщения: 47
Откуда: Томск
avr123.nm.ru писал(а):
и все же:  почему не воспользоваться апноутом ???


Потому что нету этого аппноута у меня. Логично ? Ну еще потому что этот вариант проверен и работает на куче устройств...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июл 2006, 09:32 
Не в сети
Аватара пользователя

Зарегистрирован: 01 мар 2005, 14:54
Сообщения: 70
Откуда: г. Томск
USART всё ж не для этого. Как раз для таких систем, где куча устройств общается друг с другом, умные люди и придумали специальные шины/протоколы. По-моему I2C здесь самый правильный вариант. Конечно по первости трудности с пониманием и программированием, но насколько проще аппаратно реализовавать. Всего два проводка - и цепляй столько устройств, сколько захочешь(ну, до 128-ми  :D )! А если ещё контроллер с аппаратным модулем I2C (TWI в AVR) - совсем праздник. Надо что-то передать всем сразу - на то есть общие вызовы в протоколе.

_________________
В электронике чудес не бывает! Бывают плохие контакты!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 июл 2006, 07:21 
Не в сети

Зарегистрирован: 05 июл 2006, 05:55
Сообщения: 47
Откуда: Томск
А воощето есть еще шинный интерфейс RS485.
Вешаешь преобразователь ADM485 на UART и одну ногу - на переключатель прием-передача...
И все работает.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO