Технический форум по робототехнике.
Ruslan » 03 ноя 2009, 23:38
Коллеги,
Подскажите, как лучше всего соединить две АТМеги (например 168). Хочу устроить между ними разделение труда на новом лайнтрейсере.
Первая: сенсоры линии, энкодеры и управление двигателями,
Вторая: сенсоры препятствий, дисплей и общая логика.
Соответственно первая регулярно посылает второй данные о позиции относительно линии, или данные о значениях на каждом сенсоре, а вторая думает что делать и говорит первой куда ехать.
Я так понимаю, есть варианты через I2C, SPI и через UART. Подскажите, что быстрее и что надёжнее. Прошу дать примеры, желательно с кодом.
Последний раз редактировалось
Ruslan 04 ноя 2009, 12:03, всего редактировалось 1 раз.
Сергей » 03 ноя 2009, 23:41
SPI наилучший вариант при небольшом расстоянии между микроконтроллерами
=DeaD= » 03 ноя 2009, 23:42
Еще конечно же SPI есть

Более масштабируемый i2c, проще для резкого старта наверное uart.
EdGull » 04 ноя 2009, 00:06
посмотри как я на миниботе по уарту соеденил
AndreiSk » 04 ноя 2009, 00:23
RiO писал(а):Коллеги,
Подскажите, как лучше всего соединить две АТМеги (например 168). Хочу устроить между ними разделение труда на новом лайнтрейсере.
А что за новый лайнтрейсер?
Еще больше, еще быстрее?
Там какие вообще ограничения на размер то?
А то мы волнуемся

galex1981 » 04 ноя 2009, 08:59
Проще через UART, если важна скорость обмна то SPI
Duhas » 04 ноя 2009, 17:12
проще ли с уарт - хз.. в спи байт отдал байт принял...
mandigit » 04 ноя 2009, 21:14
От типа информации зависит - может достаточно будет выставлять да/нет на ножках одного процессора и читать ножками другого

Если надо большими объемами цифровой информации обмениваться - зависит от типа процессора. Для mega8, имеющий модуль TWI оптимальным будет использование I2C. По сравнению с SPI это даст преимущество, если захочешь расширяться более 2-х процессоров (в SPI обмен точка-точка)
EdGull » 04 ноя 2009, 21:19
1. с чего бы это в SPI обмен точка-точка?
2. типа у mega8 софтовые uart и spi?
yak-40 » 04 ноя 2009, 21:24
По быстродействию SPI лучше остальных.
ALHIMIK » 04 ноя 2009, 21:36
SPI
простой как грабли и быстрый
mandigit » 04 ноя 2009, 21:48
EdGull писал(а):1. с чего бы это в SPI обмен точка-точка?
2. типа у mega8 софтовые uart и spi?
пп2
следует трактовать так: у mega8 есть модуль TWI, который упрощает построение I2C, у attiny2313 такого модуля, например, нет
пп1
достаточно ознакомиться с протоколом. вот выдержка "Интерфейс SPI - синхронный последовательный интерфейс - предназначен для организации обмена между двумя устройствами"
если посмотреть на линии обмена (MOSI, MISO) то становится ясно, что ДВА устройства обмениваются между собой информацией.
Такой тип обмена и есть точка-точка.
С помощью SS на физическом уровне выбирается slave точка обмена, но это - отдельная песня.
Duhas » 04 ноя 2009, 21:52
рои некоторых извращения используя спи мона кольцо сделать... и гнать пакет через всех ) долго.. но с адресацией )))
galex1981 » 04 ноя 2009, 22:10
По поводу SPI могу поспорить. У слейва есть пин SS - выбор кристалла, при установке 1 на этом пине, обмен происходит именно с этим устройством. Я сделал контроллер, управляющий 128ю слейв устройствами через SPI. Так что термин точка-точка тут не подходит

Duhas » 04 ноя 2009, 22:14
тут топология звезда )