Технический форум по робототехнике.
neiro » 03 фев 2009, 01:24
Народ,
Почему для объединения нескольких серв используется зачастую I2C? Есть у когонить мнения на эту тему?
Я вот хочу использовать обычные rx и tx от uarta. Взять схематику опенсерво, но сервами рулить не по и2с, а через уарт..
Где грабли? поделитесь опытом..
Сергей » 03 фев 2009, 01:36
так, хорошо, давай с начала начнем - ты знаешь вообще что такое UART и I2C, и чем они различаюца?
neiro » 03 фев 2009, 01:44
Сергей писал(а):так, хорошо, давай с начала начнем - ты знаешь вообще что такое UART и I2C, и чем они различаюца?
Конеш
.и там и там два провода и земля. Мне так лично кажется что уарт удобнее как то..
Ну единственный минус это то что будет один мастер и куча подчиненных..Ну эт вроде как раз и надо когда делаешь робота. Т.е. один проц за отвечающий мозги, рулит всеми остальными.
=DeaD= » 03 фев 2009, 08:12
neiro писал(а):и там и там два провода и земля. Мне так лично кажется что уарт удобнее как то..
Идти вот сюда -
[[Протоколы взаимодействия модулей]] и там читать много буков!
Duhas » 03 фев 2009, 10:51
не, ну для серв мона и уарт использовать, ибо отвечать им на команды мастера не нужно ...
=DeaD= » 03 фев 2009, 10:58
Duhas писал(а):не, ну для серв мона и уарт использовать, ибо отвечать им на команды мастера не нужно ...
Уж если переделывать на UART, тогда надо делать чтобы еще и отвечали, хотя-бы положение вала и сигнал "заклинило"
Duhas » 03 фев 2009, 11:24
а оно нада? можно конечно приделать РС триггер на кучу входов и разруливать им работу серв.. но гемор все это ....
я вообще собираюсь на СПИ вешать свои "сервы"...
neiro » 03 фев 2009, 11:50
=DeaD= писал(а):Duhas писал(а):не, ну для серв мона и уарт использовать, ибо отвечать им на команды мастера не нужно ...
Уж если переделывать на UART, тогда надо делать чтобы еще и отвечали, хотя-бы положение вала и сигнал "заклинило"
Так а в чем проблема?? Я чет не догнал. Уарт это же не односторонний интерфейс
про ПС триггер ваще не понял к чему он. Я грю о простейшем уарте с RX/TX.
Мастер шлет команду по линии TX все слэйвы принимают эту команду. И тот кому эта команда адресована отвечает мастеру по линии RX. Вроде так.
Где затыка?? чет я не вижу
поэтому и спрашиваю.
Spi в принципе не катит для этого. Эт получается для каждого слэйва надо тащить отдельный чип селект. Следовательно на 10 серв вам понадобиться 13 проводов
=DeaD= » 03 фев 2009, 12:11
neiro писал(а):Так а в чем проблема?? Я чет не догнал. Уарт это же не односторонний интерфейс
Да ну?
neiro писал(а):Мастер шлет команду по линии TX все слэйвы принимают эту команду. И тот кому эта команда адресована отвечает мастеру по линии RX. Вроде так.
Где затыка?? чет я не вижу
Угу, все значит держат 0 на линии RX и один туда пытается ответить, угадаете сами какой там уровень будет? Это надо подтяжки и замыкание на землю делать и синхронность получим автоматом, как в I2C - а какой смысл тогда всё это городить, да еще и UART'ом называть?
EdGull » 03 фев 2009, 12:34
ну не всё так грустно...
я сам это i2c не долюбливаю, мне uart намного роднее...
поэтому в миниботе-2 и организовал 1-проводный uart интерфейс на три устройсва + разъем
поэтому расширять устройства можно будет до безобразия
и всё прекрасно работает в обе стороны на скорости 115200...
Добавлено спустя 40 секунд:при этом все всё всем могут передавать...
Duhas » 03 фев 2009, 12:41
neiro писал(а):Spi в принципе не катит для этого. Эт получается для каждого слэйва надо тащить отдельный чип селект. Следовательно на 10 серв вам понадобиться 13 проводов
мне понадобится 18 чип селектов )) ибо "серв" будет 18... при этом планируется еще и ресет общий и программирование любой сервы на шине ))
yak-40 » 03 фев 2009, 12:50
А ещё можно преобразователь интерфейса поставить, например max485 (DIP8). Закрывать передатчик и использовать многоточку. 256 устройств можно подключить.
Я так делел...
neiro » 03 фев 2009, 14:03
Не, давай те мухи отдельно котлеты отдельно
...
Че всё в одну кучу мешать...
C onewire на уарте согласен. Вполне рабочая шина. И возможно что и её вполне достаточно.
Но раз уж спросил об полноценном уарте то всё таки давайте закончим эту тему.
Я предложил сеть состоящую из одного мастера и кучи слэйвов. Мастер поочередно опрашивает все слэйвы и получает от их вразумительные ответы. Всё вроде красиво. Организация такой сети возможна если ток на шине будет только один активный передатчик - эт прально заметил =DeaD=.
Терь берем какуюнить аврку. Смотрим настройки уарта. Бит TransmitEnable. Всё что нужно это включать этот бит на момент передачи и отключать после передачи. Это вроде стандартное правило для многопроцессорных сетей...
Поэтому опять же встает вопрос..где затыка?
Сергей » 03 фев 2009, 14:11
затыка - это твои познания. Почитай лучше что такое UART и I2C и ЧЕМ ОНИ отличаюца. Ты ведь так и не ответил.
neiro » 03 фев 2009, 14:16
Сергей писал(а):затыка - это твои познания. Почитай лучше что такое UART и I2C и ЧЕМ ОНИ отличаюца. Ты ведь так и не ответил.
Так поэтому и спросил здесь. Почитал - подумал - расписал как планирую реализовать. Спросил на форуме. Вроде так
..
Причем тут отличие уарт от и2с ваще не догоняю. Мне же нужны не отличия, а понять почему нельзя реализовать на уарте управление сервами.