roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 17 сен 2010, 17:15 
Не в сети

Зарегистрирован: 15 сен 2010, 14:26
Сообщения: 8
Всем здравствуйте.

Да, я знаю, что поднимаю тему, которой посвящено очень много информации в интернете, но, тем не менее, я уже 2 недели гуглю этот вопрос и так до конца и не нашёл решения.


Есть мастер МК, он связан с компьютером по USART. Есть 16 других МК, которые весят на одной линии (TWI, он же i2c) с главным, и которые считывают с датчиков некие параметры и отсылают на главный МК их, ПЛЮС(!!!) сами могут принимать от главного некие сведения и выводить их на светодиодную шкалу.


Посоветуйте, пожалуйста, реализацию i2c, которая в полной мере описывает данную ситуацию, плюс, если можно, банальный пример (можно псевдокодом) как осуществить двунаправленную передачу между главной МК и слэйвами.


Спасибо %)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 17 сен 2010, 18:51 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Нифига не понял в чем проблема. На www.gaw.ru есть переведенные атмеловские апликухи. И как работать мастером и как работать слэйвом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 17 сен 2010, 19:25 
Не в сети

Зарегистрирован: 15 сен 2010, 14:26
Сообщения: 8
Читал-с.

Возникает вопрос, а как работать одновременно и мастером и слэйвом?)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 17 сен 2010, 21:43 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Краем уха что-то слышал про мульмастеровый режим, про арбитраж. Но вам этого и не надо, насколько я понял. Все общение идет через мастера. Один мастер всегда мастер, остальные всегда слейвы. Они могут опрашивать свои датчики и зажигать светодиоды, но мастеру информацию будут пересылать только по запросу.

ЗЫ. А почему нужно именно и2ц? Он же по длине не очень длинный. Или все слейвы сидят рядышком? Может есть смысл поставить один мощный камень?

Добавлено спустя 1 минуту 57 секунд:
Или слейвы с датчиками тоже связаны по и2ц? Тогда нафиг они нужны? Проясните архитектуру системы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 17 сен 2010, 22:00 
Не в сети

Зарегистрирован: 15 сен 2010, 14:26
Сообщения: 8
Архитектура такова:

Есть общая шина, инфу с которой собирает мастер и посылает на комп. На эту шину повешены блоки (блок, к примеру, из 4 потенциометров и 2х кнопок, с которых считывается информация, и 10 светодиодов, на которые выводится информация).

Критерий - гибкость платформы (можно подключить 1 блок, 10 блоков, 16 (впринципе, максимум) блоков, каждый из которых взаимозаменяем)

девайс шириной примерно 600мм, расстояние не велико.


Сначала думал действительно поставить какую-нить 1280 и просто опрашивать последовательно каждый блок, но потом от идеи отказался в связи с условием гибкости и простоты системы (каждый блок должен быть легко вынимаемым)


Слейвы, по сути дела, представляют из себя некий i2c IO Expander с небольшой внутренней логикой



По ходу дела созрел вопрос. Когда устройство в режиме слейва - оно само послать ничего не может, может только ответить на запрос?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 17 сен 2010, 22:22 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Мастер тот, кто делает клоки. Посылать запросы может только мастер.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 17 сен 2010, 22:54 
Не в сети

Зарегистрирован: 15 сен 2010, 14:26
Сообщения: 8
Печально)

а нет аналогичных шин, только у которых нету такой замороченности на мастер\слэйв, а просто есть линия передачи информации между МК?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 18 сен 2010, 15:16 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Да почему печально? Все будет работать. Каждый блок - это слейв. Он работает по запросу. По шине приходит команда записи - это вывод на светодиоды. По шине приходит команда чтения - это чтение заранее полученной информации от датчиков. Я так и не получил ответа на вопрос: датчики опрашиваются по и2ц? Ну а если и2ц уже разонравился, то можно посмотреть в сторону RS485 и 1- Wire.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 18 сен 2010, 15:31 
Не в сети

Зарегистрирован: 15 сен 2010, 14:26
Сообщения: 8
Нет, атмега-слэйв и будет из себя представлять некий "датчик":) Шина и2с только для связи МК между собой

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 18 сен 2010, 15:47 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
А если два одновременно захотят? шина-то одна...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 18 сен 2010, 16:02 
Не в сети

Зарегистрирован: 15 сен 2010, 14:26
Сообщения: 8
Принцип "кто первый встал, того и тапки"

эх, ладно, для начала - сделаю опрос каждого слэйва в постоянном цикле, а там уже посмотрим


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1xAtmega(master) + 16xAtmega(slave) i2c
СообщениеДобавлено: 18 сен 2010, 21:36 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Я же уже писал про мультимастер и арбитраж. Это ключевые слова, пихаете их в гугль и просвещаетесь. Для затравки ссылка
http://www.support17.com/component/cont ... ?task=view


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

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


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

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


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

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