Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
19.08.2011, 09:35
|
|
Временная регистрация
Регистрация: 06.12.2010
Сообщений: 76
Сказал спасибо: 30
Сказали Спасибо 15 раз(а) в 15 сообщении(ях)
|
Как лучше соединить TWI ?
Добрый день
подскажите пож. в каком месте шины TWI лучше расположить нагрузоные резисторы, для помехозащищенности, на схеме приведенной в приложении.
и прошу подсказать следующее - в каком режиме лучше использовать МК (AVR) , чтобы slave могли сообщать мастеру о своей готовности(МК обрабатывает прерывание)? чтобы не опрашивать все МК в сети постоянно ?
--
Спасибо
|
|
|
|
19.08.2011, 11:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: как лучше соединить TWI ?
1. В любом, т.к. частоты слишком маленькие, а длина шины не больше пары метров по стандарту. Обычно ставят возле мастера.
2. Если слэйвов мало - от каждого ведем по одному проводу на ногу мастера с прерыванием. У мега48...328 все 23 ноги умеют генерировать прерывание по пинчейнджу. Если много - мастер в паузах сидит в слэйве и нюхает шину, слэйвы по событию переключаются на мастер передают один и тот же для всех слэйвов старт-байт мастера и вторым байтом собственный номер (адрес) и дальше сами данные
|
|
|
Эти 2 пользователя(ей) сказали Спасибо niXto за это сообщение:
|
|
|
19.08.2011, 11:26
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Как лучше соединить TWI ?
Сообщение от igor-x
|
подскажите пож. в каком месте шины TWI лучше расположить нагрузоные резисторы, для помехозащищенности, на схеме приведенной в приложении.
|
Можно повесить у каждого контроллера,у верхнего по схеме побольше (~10-15k),у других-поменьше (~5-10k). В таком варианте - режим мультимастер. Все любой МК может запросить и получить данные.
Например включить на основном MK режим "ведомый передатчик",да мало-ли режимов TWI! Что-бы советовать конкректно,надо знать полный протокол работы вашего устройства по шине. Кто,чего и когда кому передает.
Последний раз редактировалось heady69; 19.08.2011 в 11:58.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо heady69 за это сообщение:
|
|
|
22.08.2011, 08:24
|
|
Временная регистрация
Регистрация: 06.12.2010
Сообщений: 76
Сказал спасибо: 30
Сказали Спасибо 15 раз(а) в 15 сообщении(ях)
|
Re: Как лучше соединить TWI ?
Сообщение от heady69
|
Можно повесить у каждого контроллера,у верхнего по схеме побольше (~10-15k),у других-поменьше (~5-10k). В таком варианте - режим мультимастер. Все любой МК может запросить и получить данные.
Например включить на основном MK режим "ведомый передатчик",да мало-ли режимов TWI! Что-бы советовать конкректно,надо знать полный протокол работы вашего устройства по шине. Кто,чего и когда кому передает.
|
да. хотелось бы услышать рекомендации по выбору режима.
работа устройства предполагается в следующем виде:
1. Центральный МК имеет некоторые данные -разбрасывает их по периферийным МК в начале работы. и ждет сигналов готовности с данными от них. периферийные МК данные передают на центральный МК редко - раз в минуту,но нужна максимальная реакция на них от центрального -принять, обработать и через некоторое время разослать назад всем новый блок данных. обьем данных, которыми происходит обмен небольшой 64 байта, периферийные МК данными между собой не обмениваются
2. поповоду нагрузочных резисторов непонятно - если МК будет много - десятки, то в итоге сопротивление будет Омы, что скорее всего недопустимо..
3 и по поводу длины соединений - максимальную длину в итоге можно выбрать только 1 метр на каждый МК до центрального? или возможно увеличть?
Последний раз редактировалось igor-x; 22.08.2011 в 08:27.
|
|
|
|
22.08.2011, 20:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Как лучше соединить TWI ?
Сообщение от igor-x
|
1. Центральный МК имеет некоторые данные -разбрасывает их по периферийным МК в начале работы. и ждет сигналов готовности с данными от них. периферийные МК данные передают на центральный МК редко - раз в минуту,но нужна максимальная реакция на них от центрального -принять, обработать и через некоторое время разослать назад всем новый блок данных. обьем данных, которыми происходит обмен небольшой 64 байта, периферийные МК данными между собой не обмениваются
|
тогда в паузе ВСЕ чипы сидят в слэйве. И у всех разные адреса. Если контроллер АВР - лучше включить мультимастер. Тогда и мастер может рассылать данные слэйвам, и слэйвы по событию будут отсылать данные мастеру, и возможные конфликты двух устройств будут аппаратно-программно предотвращены. Только с конфликтами будьте внимательней и обрабатывайте все коды ошибок - у АВР модуль ТВИ может довольно крепко зависнуть, до ресета всего чипа
Сообщение от igor-x
|
2. поповоду нагрузочных резисторов непонятно - если МК будет много - десятки, то в итоге сопротивление будет Омы, что скорее всего недопустимо
|
Я же написал - ставится ОДНА пара резисторов поближе к мастеру. Только надо учитывать емкости входов слэйвов и проводов - если их около десятка, резисторы лучше уменьшить до 470...1000 Ом. Если гораздо больше - понижайте частоту до 1...10 кГц, и побольше времени в последовательностях Старт и Стоп
Сообщение от igor-x
|
3 и по поводу длины соединений - максимальную длину в итоге можно выбрать только 1 метр на каждый МК до центрального? или возможно увеличть?
|
Можно и 10 м кинуть, но тут больше зависит от частоты и амплитуды внешних помех. По стандарту у и2с-микросхем на входах стоят триггеры Шмидта, но у АВР они слабоватые по гистерезису. В общем нужно пробовать и если будет нестабильно работать - использовать экранированные кабели и/или уменьшать длину
|
|
|
Эти 2 пользователя(ей) сказали Спасибо niXto за это сообщение:
|
|
|
23.08.2011, 09:32
|
|
Временная регистрация
Регистрация: 06.12.2010
Сообщений: 76
Сказал спасибо: 30
Сказали Спасибо 15 раз(а) в 15 сообщении(ях)
|
Re: Как лучше соединить TWI ?
Сообщение от niXto
|
у АВР модуль ТВИ может довольно крепко зависнуть, до ресета всего чипа
|
а WD его сбросит, или требуется наличие сигнала на reset ?
|
|
|
|
23.08.2011, 12:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Как лучше соединить TWI ?
Не знаю, но теоритически должен. Проявляется глюк в том, что если чип, когда работает слэйвом, услышит Старт (проскочит импульс на SDA из-за помехи или наводки), то пока он не услышит минимум 8 бит адреса и Стоп - ни в какой другой режим его переключить невозможно, даже как мастер он не работает. Давно это было, ещё на мега8 у которой ТВИ сам по себе глючный (у чипов до 07...08 годов), пришлось писать полностью программный и2с
|
|
|
|
24.08.2011, 09:22
|
|
Временная регистрация
Регистрация: 06.12.2010
Сообщений: 76
Сказал спасибо: 30
Сказали Спасибо 15 раз(а) в 15 сообщении(ях)
|
Re: Как лучше соединить TWI ?
Сообщение от niXto
|
Можно и 10 м кинуть, но тут больше зависит от частоты и амплитуды внешних помех.
|
то есть в случае моего варианта сборки TWI ,почти наверняка возникает ограничение по длине (slave подключаются к мастеру проводом 1..2 метра - суммарная длина при подключеннии даже 5 устройств будет около 10 м. -как звезда получается ). Будет ли эффективно использовать I2C преобразователи? вот нашел пример ( http://www.gaw.ru/html.cgi/txt/publ/interface/97055.htm) .
или же существуют другие решения этой проблемы
|
|
|
|
24.08.2011, 09:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Как лучше соединить TWI ?
При звезде 10 м для каждого провода, не сумма. Вообще что вы хотите сделать - может есть более простое решение
|
|
|
|
24.08.2011, 11:38
|
|
Временная регистрация
Регистрация: 06.12.2010
Сообщений: 76
Сказал спасибо: 30
Сказали Спасибо 15 раз(а) в 15 сообщении(ях)
|
Re: Как лучше соединить TWI ?
Сообщение от niXto
|
Вообще что вы хотите сделать - может есть более простое решение
|
постараюсь описать в общих чертах:
1. Мастер подключен к компу по rs232, мастер собирает данные со слейвов и передает в комп. режим работы - мультимастер, так как slave должны сообщать свои данные редко, но реакция на них должна быть максимально быстрой.
2. комп делает некие расчеты, результат отдает мастеру для рассылки для всех slave.
условия работы устройства - домашние, и поэтому не хотелось бы уссложнять обмен данными используя более помехозащищенные интерфесы например RS485.
и еще вспомнил еще одно ограничение TWI -емкость шины 400 пф. похоже придется
делить схему на 2 звезды , обьединенные двунаправленными преобразователями.
интересно , чтобы набрать 400 пф, сколько провода нужно испльзовать.? хотя это попробую на бухте витой пары для LAN поэкспериментировать..
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:54.
|
|