роботы робототехника микроконтроллеры


 Страниц (2): [1] 2 »   

> Без описания
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



хочется связать два атмела- что думаете?
Чтоб ни один не был главным,
Через прерывания?
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



cjA
Что Вы имеете в виду, говоря, что ни один из них не главный?
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



ну так же как полушария у Вас в голове.
Одна тини2313 управляет шаговиком и отвечает за усик. есть такаяже вторая половина. толкают тележку.
Как думаете, сколько бит от порта Д оставить на обмен данными между ними?
И как вообще это сделать?
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



Есть 1-wire, не знаю влезет ли он к вам в тиньку, но вроде народ как минимум слэйв запихивал в тиньку, даже на васике: http://bascom.at.ua/publ/1-1-0-1
а вот пример мастера: http://avrlab.com/node/129

Как бонус - научитесь работать с распространенной шиной и сэкономите ноги.
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



спасибо, обязательно завтра ознакомлюсь (но есть подозрение что мнеб чонить попроще)
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



1 провод, куда еще проще? Улыбка
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



cjA
Связать микроконтроллеры достаточно легко. В простейшем случае необходимо одно внешнее прерывание и один порт ввода-вывода каждого микроконтроллера (параллельная передача данных).
Микроконтроллер 1 для передачи байта данных/команд в микроконтроллер 2, выставляет байт на порт ввода-вывода и вызывает у микроконтроллера 2 прерывание. Второй микроконтроллер обрабатывает прерывание, получая байт с порта ввода-вывода и интерпретируя его. То же самое в обратном направлении.
Можно сократить количество выводов до 2-х, считывая за одно прерывание не байт, а бит информации. Тогда у Вас получится протокол передачи данных, подобный I2C (http://ru.wikipedia.org/wiki/I%C2%B2C ).

Однако в постановке Вашей задачи недоговорённость: зачем Вам требуется отсутствие master и slave?
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



Решил вставить сюда чтобы не забыть. Решение по моему довольно здравое.
mihail пишет:
Соедините как на картинке. Может, через резисторы на 200 Ом (на всякий случай). Настраивается как в datasheet (с 111 страницы).

Работает так. При возникновении некоего события один микроконтроллер передает данные соседнему, а тот другому. Последний МК возвращает данные передавшему их МК. В итоге имеем подтверждение безошибочного получения данных всеми МК.
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



картинка
(Добавление)
Примерно как щина выглядит - уже вырисовывается...
Пара обязательных строчек в обработчик URXCaddr - это же можно отнести к стандарту шины?
Прикреплено изображение
untitled.bmp

 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



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

повторяю концепцую- все могут связываться друг с другом. никого нет главных. Про циклическую концепцую мы еще поболтаем, есть пара идей...

(для эксперемента уже завязаны три бота- пока не разрываются- не работают)
 
 Top
СКАЗОЧНИК Post Id



Главнокомандующий


Сообщений всего: 377
Дата рег-ции: Нояб. 2009  



А можно подробнее, и специально для чайника, понятнее??? Зачем соединять на одном роботе два МК?
Я просто не могу понять, для чего это нужно и в чем преимущества такой работы?
Ламер

Может тоже задумаюсь... но пока я вообще не улавливаю суть идеи...
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



СКАЗОЧНИК пишет:
Зачем соединять на одном роботе два МК?
Я просто не могу понять, для чего это нужно и в чем преимущества такой работы?
вот не хватает места в одном. или ресурсы (прерывания/ноги) все под завязку уже.
Не говоря о том, что на одном может быть сделан уже какой то модуль обработки, и менять его не хочется/не можется - ставят второй МК.

В Компьютер загляните, там тоже не один процессор Улыбка
 
 Top
СКАЗОЧНИК Post Id



Главнокомандующий


Сообщений всего: 377
Дата рег-ции: Нояб. 2009  



Не, просто в одном роботе... Я не знаю, какой проект должен быть, чтобы ножек не хватило... =))) Да, и в ТИНИ2313, как я заметил, довольно много влазит в ее 2 кБайта.
nest пишет:
Не говоря о том, что на одном может быть сделан уже какой то модуль обработки, и менять его не хочется/не можется - ставят второй МК.

Вот в этом случае, да. Возможно. =)))
nest пишет:
В Компьютер загляните, там тоже не один процессор

Ага, у меня их целых 4 процессора, плюс еще куча устройств им в помощь. =))))
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



СКАЗОЧНИК пишет:
Я не знаю, какой проект должен быть, чтобы ножек не хватило


Ну вот например
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



nest пишет:
Ну вот например

Есть же ATmega1280/2560/6450 - у них на 36 ног больше Улыбка
А то в указанном проекте половина ног только на память ушла.

Кстати, для меня пока до сих пор загадка, зачем в Lego NXT стоит два МК - первый ARM, а второй ATMega. Не поверю, что у них ног не хватало, там портов всего штук 10.
 
 Top
Страниц (2): [1] 2 »
« Болталочка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru