roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 19:39

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




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 01 дек 2004, 00:41 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
setar писал(а):
Боюсь вас разочаровать но в ATtiny26 нет интерфейса TWI

В этом МК есть USI - он с минимальными вмешательствами со стороны человека работает в режиме TWI. Просто в моей задаче мегу совать - больно жирно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 дек 2004, 01:11 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Digit писал(а):
setar писал(а):
Боюсь вас разочаровать но в ATtiny26 нет интерфейса TWI

В этом МК есть USI - он с минимальными вмешательствами со стороны человека работает в режиме TWI. Просто в моей задаче мегу совать - больно жирно...


А можно пару примеров для поколений? =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 дек 2004, 23:54 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
Э-э-э-э С примерами, наверное, будет беда, потому что я сам еще ничего с использованием USI не делал...  :oops:
Где-то было описание USI... Еще на Атмеловском сайте видел. Если память не изменяет, то звалось это дело как-то так:
AVR310 - Using the USI module as a TWI master
Больше сказать ничего не могу. По крайней мере, сегодня...


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

Зарегистрирован: 07 фев 2005, 17:41
Сообщения: 367
Откуда: Санкт-Петербург
Я искренне считаю, что для Atmel лучшим решением будет интерфейс SPI который позволяет и довольно быстро общаться и выявлять свободна ли линия .... :wink:  :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 мар 2005, 07:33 
Не в сети
Аватара пользователя

Зарегистрирован: 01 мар 2005, 14:54
Сообщения: 70
Откуда: г. Томск
Mike_MA писал(а):
Я искренне считаю, что для Atmel лучшим решением будет интерфейс SPI который позволяет и довольно быстро общаться и выявлять свободна ли линия .... :wink:  :wink:


Поправь, если ошибаюсь, но разве можно по SPI несколько устройств соединить? Как их выбирать? Если дополнительно отдельную линию на каждое устройство тянуть, то это не прикольно  :cry:
А вот TWI (i2c) там всего две линии, не важно слолько ты устройств прицепишь к шине. Кстати здесь при добавлении нового устройства не придется менять схему. В AVR весь протокол обмена по этой шине на аппаратном уровне реализован. А если нет в младших моделях, то я видел примеры програмной его реализации.
У меня примерно та же задача, что и у автора темы, поэтому я всё-таки после размышлений долгих пришел к выводу использовать TWI для обмена данными между AVR контроллерами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 мар 2005, 12:02 
Не в сети

Зарегистрирован: 07 фев 2005, 17:41
Сообщения: 367
Откуда: Санкт-Петербург
Змей-Горыныч писал(а):
Поправь, если ошибаюсь, но разве можно по SPI несколько устройств соединить? Как их выбирать? Если дополнительно отдельную линию на каждое устройство тянуть, то это не прикольно  :cry:

Ты правильно заметил "... если ошибаюсь, ...".
Интерфейс SPI имеет сигнал SS который ведущий ставит в "1",а  ведомый при "1" пассивно принимает данные. После передачи ведущий сбрасывает сигнал SS в "0" и линия свободна...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 мар 2005, 22:49 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
т.е. между поднятием в "1" и бросанием в "0" по SS мастер может передать адрес всем ведомым шины, а ведомые проверят адрес сами и разберутся, для кого инфа?
А сколько на такую шину можно навешать девайсов? У TWI есть ограничения, накладываемые протоколом (8-и и 10-битная адресация) и шиной (тим емкость что ли должна быть какая-то - не помню уже). А тут как?


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

Зарегистрирован: 16 апр 2005, 19:49
Сообщения: 39
Откуда: Санкт-Петербург
Digit писал(а):
т.е. между поднятием в "1" и бросанием в "0" по SS мастер может передать адрес всем ведомым шины, а ведомые проверят адрес сами и разберутся, для кого инфа?
А сколько на такую шину можно навешать девайсов? У TWI есть ограничения, накладываемые протоколом (8-и и 10-битная адресация) и шиной (тим емкость что ли должна быть какая-то - не помню уже). А тут как?

Не совсем так. У каждого устройства есть своя отдельная линия CS (или SS как обозвали в Атмеле)- выставлением ее в 0 у конкретного устройства мастер обращается только к нему (у всех остальных ведомых CS=1) соответственно можно съэкономить на процедуре анализа к кому конкретно обратился мастер. С другой стороны -увеличивается количество проводов- на одно устройство 4- на 2 - 5 и так далее. Ещё из плюсов- лёгкая программная реализация этого интерфейса.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 апр 2005, 02:39 
Не в сети

Зарегистрирован: 21 апр 2005, 01:19
Сообщения: 111
Откуда: Екб
Есть идея, как избавить МК от анализа чужих пакетов.
На одной ЛА7, конденсаторе и резисторе можно собрать селектор начала кодовой посылки. В результате МК будут ловить только самое начало пакета, где содержится адрес приёмника. Поняв, что это не их адрес, быстренько отваливаются от шины и продолжают основную деятельность. Тот же МК, который признает адрес за свой, продолжит приём пакета до тех пор, пока сам не сочтёт, что пакет закончился.
Данное устройство представляет собой простой аналоговый интегратор + RS-триггер. Он устанавливается когда по линии синхронизации придёт удлиннёный синхроимпульс, означающий начало пакета. Далее идут короткие (нормальные) импульсы (скваженностью >3-4), тактирующие данные пакета. Сброс триггера выполняет сам МК, когда адрес будет идентифицирован как чужой. В случае обнаружения своего адреса, пакет принимается полностью, после чего так же происходит сброс триггера.

У меня есть теоритическая (частично проверенная в системах моделирования) разработка универсальной последовательной шины для обмена данными внутри робота. Шина 3-х проводная (для устройств "только на приём" нужны только 2), с логически исключёнными коллизиями. Т.е. пока ничего аппаратно не сломалось, коллизий быть не должно в принципе. Возможно построение мостов между макро-блоками с использованием дифференциальных каналов (RS-485).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 апр 2005, 11:35 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
2AlphA
классная идея!
как буду расширять уже имеющиеся платки и возникнет вопрос коммуникации - буду дёргать вас на предмет поделиться наработками ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 апр 2005, 12:36 
Не в сети
Аватара пользователя

Зарегистрирован: 21 янв 2005, 12:16
Сообщения: 977
Откуда: Germany
прог. языки: asm
Альфа, а это разве нельзя сделать на аппаратном уровне ? ... мне думается можно достаточно просто

и ещё плюс в пользу RS232 : можно неглядя сунуть его в комп и посмотреть, что твоится ...
для наладки оч полезно...

а с i2c ... это что то ковырять дополнительно надо, переходники, драйвераа ... не , некатолично это :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 апр 2005, 13:11 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
AlphA, если не сложно, то можно подробнее и с картинками?  8)


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

Зарегистрирован: 21 апр 2005, 01:19
Сообщения: 111
Откуда: Екб
2 nest:
Непоянл, что именно сделать на аппаратном уровне? Распознавание своего адреса? Да не так уж это и просто. На рассыпухе это 3-4 доролнительных корпуса.

2 Digit:
Можно и с картинками.


Вложения:
Комментарий к файлу: Принципиальная схема детектора начала пакета.
У МК импользуются 2 бита портов и вход внешнего прерывания.
Тактовый сигнал поступает на вход прерывания через "шлюз" ввиде элемента "И", управляемого RS-триггером. Как видно из осцилограм сигналов, первый т

Интегратор.GIF
Интегратор.GIF [ 4.17 КиБ | Просмотров: 4105 ]
Комментарий к файлу: На этой картинке мы можем лицезреть тот же детектор, но ввиде виртуальной модели на ElectronicsWorkBench.
В левом нижнем углу виднеется "экран" логического анализатора. Цвет сигнала соответствует цвету провода на схеме. Синий - это тактовый сигнал поступ

Модель интегратора.GIF
Модель интегратора.GIF [ 36.55 КиБ | Просмотров: 4160 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 апр 2005, 21:54 
Не в сети

Зарегистрирован: 21 апр 2005, 01:19
Сообщения: 111
Откуда: Екб
Sorry, подписи к картинкам оказывается, не могут быть такими длинными. Так, что продублирую их тут.

Принципиальная схема детектора начала пакета.
У МК импользуются 2 бита портов и вход внешнего прерывания.
Тактовый сигнал поступает на вход прерывания через "шлюз" ввиде элемента "И", управляемого RS-триггером. Как видно из осцилограм сигналов, первый тактовый импульс значительно длинее нормальных. За время его действия успевает зарядится конденсатор и триггер устанавливается, что позволяет тактовым импульсам проходить в МК, генерируя прерывание на обработку поступившего бита данных. Биты записываются в буфер. По накоплению полного адресного слова происходит сравнение его со "своим" адресом. Если совпало, то ничего не предпринимаем, продолжаем слушать пакет до конца (далее в заголовке пакета должна быть его длина). Если же адрес не признан за "свой", то выдаём короткий импульс на бит М порта Px, который вызвает сброс триггера и запрет поступления прерываний.
Бит N порта Px служит для приёма битов данных (как несложно догадаться).

На этой картинке мы можем лицезреть тот же детектор, но ввиде виртуальной модели на ElectronicsWorkBench.
В левом нижнем углу виднеется "экран" логического анализатора. Цвет сигнала соответствует цвету провода на схеме. Синий - это тактовый сигнал поступающий с управляющего (master) контроллера, в таком виде, какой он в проводе. Красным обозначен сигнал на входе S RS-триггера. Чёрный - это выход RS-триггера (инверсный). Пурпурный - выход slave-МК (бит M порта Px, на предыдущей картинке). Зелёному цвету соответствует тактовые сигналы, прошедшие через "шлюз", т.е. те, что попадут на вход INT slave-МК.
В правом нижнем углу картинки есть осциллограф. На нём хорошо видны процессы заряда-разряда интегрирующего конденсатора (красынй - напряжение на конденсаторе, синий - импульсы CLC от master-МК).
Буферный элемент (ввиде треугольника в разрыве красного провода перед триггером) нужен только на этапе моделирования и в реальной конструкции может быть исключён. Таким образом, мы получаем устройство из 4-х элементов "2И-НЕ", входящих в состав одной М/С К561(1561)ЛА7.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 апр 2005, 00:26 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
AlphA, спасибо!  8)

А подключение к шине такое же, как и I2C? И ограничения те же? Или как?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3  След.

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


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

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


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

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