Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: I2C Master/Slave и микроконтроллеры
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Iream
Возможна ли следующая реализация системы:

Микропроцессор задает шину i2c, к шине подключаются микроконтроллеры, которые для МП являются Slave-устройствами. Микроконтроллер далее задает еще одну шину i2c, к которой подключены ЦАП и АЦП, работающие на этой шине. Относительно ЦАП и АЦП микроконтроллер должен быть Master-устройством.
Т.е. цепочка такая. МП->микроконтроллер (на шине, исходящей от процессора)->Остальные устройства (на шине, исходящей от микроконтроллера). Еще раз повторюсь, что микроконтроллер должен являться слэйвом для процессора (а желательно, иногда и мастером в некоторых случаях), но быть мастером для остальных устройств системы, подключенных к шине, идущей от него.

Общий вопрос: Способны ли микроконтроллеры к подобным манипуляциям, если да, то ка.кие (как можно меньшей сложности и количества выводов)?
Работоспособны ли микроконтроллеры серии ATtiny25/V, ATtiny45/V, ATtiny85/V в данных условиях?
Ответы желательны с пояснениями, т.к. я новичек.

Заранее спасибо за ответы.
KykyryzzZ
Структурную схему набросай. На словах запутано как-то.
Iream
Хорошо, сейчас что-нибудь накидаю в пейнте.

вот, прикрепил структурную схемку примерную
KykyryzzZ
Вообще такая схема жизнеспособна, но должны быть выполнены следующие условия:
Микроконтроллер должен иметь во-первых два I2C, а во-вторых иметь возможность работать как мастером, так и слейвом.
По поводу серии ATtiny не подскажу, т.к. их не использовал, хотя I2C (у них он называется TWI) в каком-то виде реализован, но нужно разбираться с его функциональными возможностями.

Могу ошибиться, но у ATtiny режим slave отсутствует. Только мастер.
=AK=
Цитата(Iream @ May 21 2012, 19:01) *
Способны ли микроконтроллеры к подобным манипуляциям, если да, то ка.кие (как можно меньшей сложности и количества выводов)?

Мастером шины I2C быть легко. Для этого не требуется аппаратная поддержка, достаточно простого программного управления (bit-bang) любыми двумя ножками порта. Ведь мастер имеет право быть сколь угодно медленным. Поэтому функцию мастера I2C может выполнять любой контроллер.

Слэйвом шины I2C быть трудно. Для того, чтобы слэйв по-честному выполнял все требования и времянки шины, нужна аппаратная поддержка, т.к. там тормозить нельзя. Поэтому слэйва I2C в МК практически невозможно реализовать без аппаратной поддержки.

Из этого следует, что для вторичного мастера вам надо выбрать такой МК, у которого на борту есть апаратный I2C, способный работать в режиме I2C слэйва.
Iream
KykyryzzZ, спасибо за ответ. Буду пытаться разобраться.

=AK=, не являются ли Атмеловские TWI-линии полным аналогом SDA и SCL i2c? Насколько слышал - это полный аналог, только названный иначе, чтобы не платить за пользование патентов Филипсу. Тем самым, мы имеем в Тайни аппаратный i2c, как понимаю.
=AK=
Цитата(Iream @ May 21 2012, 22:29) *
не являются ли Атмеловские TWI-линии полным аналогом SDA и SCL i2c?

Вам лень самому посмотреть? Атмел прямым текстом пишет (из даташита на Atiny20)
17. TWI – Two Wire Slave Interface
• Phillips I2C compatible
• SMBus compatible (with reservations)
ILYAUL
Цитата(KykyryzzZ @ May 21 2012, 16:46) *
Вообще такая схема жизнеспособна, но

избыточная. Все устройсва могут "висеть" сразу на одной шине и не мешать друг другу
Iream
Цитата(ILYAUL @ May 22 2012, 00:15) *
избыточная. Все устройсва могут "висеть" сразу на одной шине и не мешать друг другу


Вообще, такая идея родилась именно из-за наличия большого количества подчиненных устройств, которым просто не хватит адресов, если их все посадить на одну шину. Мастер будет называть адрес, а на него сразу будет откликаться несколько устройств. Будет конфликт.
ibiza11
Недавно столкнулся с подобной проблемой. Схема жизнеспособна. Полностью соглашусь с постом #5 от =АК=.
OFFTOP: Из бюджетных вариантов предлагаю stm8s с аппаратным i2c.
Iream
Цитата(ibiza11 @ May 22 2012, 08:32) *
Недавно столкнулся с подобной проблемой. Схема жизнеспособна. Полностью соглашусь с постом #5 от =АК=.
OFFTOP: Из бюджетных вариантов предлагаю stm8s с аппаратным i2c.



Спасибо!


Родилась идея отказаться от промежуточных микроконтроллеров, а использовать для увеличения числа шин 4-х канальные i2c мультиплексоры с прерываниями. Мне кажется, что такая идея проще и надежнее. Надеюсь, я на правильном пути.
KykyryzzZ
На самом деле в распараллеливании системы (как на рисунке) есть свои плюсы. Контроллер независимо работает с преобразователями не мешая обмену на общей шине. Быстродействие всей системы выше, чем с единой общей шиной.

Цитата(Iream @ May 22 2012, 09:40) *
Родилась идея отказаться от промежуточных микроконтроллеров, а использовать для увеличения числа шин 4-х канальные i2c мультиплексоры с прерываниями. Мне кажется, что такая идея проще и надежнее. Надеюсь, я на правильном пути.

При таком подходе все равно не получится скинуть ряд задач на "вспомогательных мастеров" и забыть до выполнения.
ILYAUL
Цитата(Iream @ May 21 2012, 13:31) *
Т.е. цепочка такая. МП->микроконтроллер (на шине, исходящей от процессора)->Остальные устройства (на шине, исходящей от микроконтроллера). Еще раз повторюсь, что микроконтроллер должен являться слэйвом для процессора (а желательно, иногда и мастером в некоторых случаях), но быть мастером для остальных устройств системы, подключенных к шине, идущей от него.

А что делает ЦП во всём этом процессе? Если только "дёргает" MK с целью получения данных , то ему спокойно подошла бы роль SLAVE , что бы постоянно не "отвлекал" MK от работы .
Sergey_Aleksandrovi4
Цитата(Iream @ May 22 2012, 09:40) *
Родилась идея отказаться от промежуточных микроконтроллеров, а использовать для увеличения числа шин 4-х канальные i2c мультиплексоры с прерываниями.

У Вас родилась правильная идея. Например, PCA9545(A, B, C) от NXP (в их номенклатуре несколько подобныъ ИС). Ещё у TI видал подобное.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.