Iream 0 May 21, 2012 Posted May 21, 2012 · Report post Возможна ли следующая реализация системы: Микропроцессор задает шину i2c, к шине подключаются микроконтроллеры, которые для МП являются Slave-устройствами. Микроконтроллер далее задает еще одну шину i2c, к которой подключены ЦАП и АЦП, работающие на этой шине. Относительно ЦАП и АЦП микроконтроллер должен быть Master-устройством. Т.е. цепочка такая. МП->микроконтроллер (на шине, исходящей от процессора)->Остальные устройства (на шине, исходящей от микроконтроллера). Еще раз повторюсь, что микроконтроллер должен являться слэйвом для процессора (а желательно, иногда и мастером в некоторых случаях), но быть мастером для остальных устройств системы, подключенных к шине, идущей от него. Общий вопрос: Способны ли микроконтроллеры к подобным манипуляциям, если да, то ка.кие (как можно меньшей сложности и количества выводов)? Работоспособны ли микроконтроллеры серии ATtiny25/V, ATtiny45/V, ATtiny85/V в данных условиях? Ответы желательны с пояснениями, т.к. я новичек. Заранее спасибо за ответы. Quote Share this post Link to post Share on other sites More sharing options...
KykyryzzZ 0 May 21, 2012 Posted May 21, 2012 · Report post Структурную схему набросай. На словах запутано как-то. Quote Share this post Link to post Share on other sites More sharing options...
Iream 0 May 21, 2012 Posted May 21, 2012 · Report post Хорошо, сейчас что-нибудь накидаю в пейнте. вот, прикрепил структурную схемку примерную Quote Share this post Link to post Share on other sites More sharing options...
KykyryzzZ 0 May 21, 2012 Posted May 21, 2012 · Report post Вообще такая схема жизнеспособна, но должны быть выполнены следующие условия: Микроконтроллер должен иметь во-первых два I2C, а во-вторых иметь возможность работать как мастером, так и слейвом. По поводу серии ATtiny не подскажу, т.к. их не использовал, хотя I2C (у них он называется TWI) в каком-то виде реализован, но нужно разбираться с его функциональными возможностями. Могу ошибиться, но у ATtiny режим slave отсутствует. Только мастер. Quote Share this post Link to post Share on other sites More sharing options...
=AK= 6 May 21, 2012 Posted May 21, 2012 · Report post Способны ли микроконтроллеры к подобным манипуляциям, если да, то ка.кие (как можно меньшей сложности и количества выводов)? Мастером шины I2C быть легко. Для этого не требуется аппаратная поддержка, достаточно простого программного управления (bit-bang) любыми двумя ножками порта. Ведь мастер имеет право быть сколь угодно медленным. Поэтому функцию мастера I2C может выполнять любой контроллер. Слэйвом шины I2C быть трудно. Для того, чтобы слэйв по-честному выполнял все требования и времянки шины, нужна аппаратная поддержка, т.к. там тормозить нельзя. Поэтому слэйва I2C в МК практически невозможно реализовать без аппаратной поддержки. Из этого следует, что для вторичного мастера вам надо выбрать такой МК, у которого на борту есть апаратный I2C, способный работать в режиме I2C слэйва. Quote Share this post Link to post Share on other sites More sharing options...
Iream 0 May 21, 2012 Posted May 21, 2012 · Report post KykyryzzZ, спасибо за ответ. Буду пытаться разобраться. =AK=, не являются ли Атмеловские TWI-линии полным аналогом SDA и SCL i2c? Насколько слышал - это полный аналог, только названный иначе, чтобы не платить за пользование патентов Филипсу. Тем самым, мы имеем в Тайни аппаратный i2c, как понимаю. Quote Share this post Link to post Share on other sites More sharing options...
=AK= 6 May 21, 2012 Posted May 21, 2012 · Report post не являются ли Атмеловские TWI-линии полным аналогом SDA и SCL i2c? Вам лень самому посмотреть? Атмел прямым текстом пишет (из даташита на Atiny20) 17. TWI – Two Wire Slave Interface • Phillips I2C compatible • SMBus compatible (with reservations) Quote Share this post Link to post Share on other sites More sharing options...
ILYAUL 0 May 21, 2012 Posted May 21, 2012 · Report post Вообще такая схема жизнеспособна, но избыточная. Все устройсва могут "висеть" сразу на одной шине и не мешать друг другу Quote Share this post Link to post Share on other sites More sharing options...
Iream 0 May 22, 2012 Posted May 22, 2012 · Report post избыточная. Все устройсва могут "висеть" сразу на одной шине и не мешать друг другу Вообще, такая идея родилась именно из-за наличия большого количества подчиненных устройств, которым просто не хватит адресов, если их все посадить на одну шину. Мастер будет называть адрес, а на него сразу будет откликаться несколько устройств. Будет конфликт. Quote Share this post Link to post Share on other sites More sharing options...
ibiza11 0 May 22, 2012 Posted May 22, 2012 · Report post Недавно столкнулся с подобной проблемой. Схема жизнеспособна. Полностью соглашусь с постом #5 от =АК=. OFFTOP: Из бюджетных вариантов предлагаю stm8s с аппаратным i2c. Quote Share this post Link to post Share on other sites More sharing options...
Iream 0 May 22, 2012 Posted May 22, 2012 (edited) · Report post Недавно столкнулся с подобной проблемой. Схема жизнеспособна. Полностью соглашусь с постом #5 от =АК=. OFFTOP: Из бюджетных вариантов предлагаю stm8s с аппаратным i2c. Спасибо! Родилась идея отказаться от промежуточных микроконтроллеров, а использовать для увеличения числа шин 4-х канальные i2c мультиплексоры с прерываниями. Мне кажется, что такая идея проще и надежнее. Надеюсь, я на правильном пути. Edited May 22, 2012 by Iream Quote Share this post Link to post Share on other sites More sharing options...
KykyryzzZ 0 May 22, 2012 Posted May 22, 2012 · Report post На самом деле в распараллеливании системы (как на рисунке) есть свои плюсы. Контроллер независимо работает с преобразователями не мешая обмену на общей шине. Быстродействие всей системы выше, чем с единой общей шиной. Родилась идея отказаться от промежуточных микроконтроллеров, а использовать для увеличения числа шин 4-х канальные i2c мультиплексоры с прерываниями. Мне кажется, что такая идея проще и надежнее. Надеюсь, я на правильном пути. При таком подходе все равно не получится скинуть ряд задач на "вспомогательных мастеров" и забыть до выполнения. Quote Share this post Link to post Share on other sites More sharing options...
ILYAUL 0 May 22, 2012 Posted May 22, 2012 · Report post Т.е. цепочка такая. МП->микроконтроллер (на шине, исходящей от процессора)->Остальные устройства (на шине, исходящей от микроконтроллера). Еще раз повторюсь, что микроконтроллер должен являться слэйвом для процессора (а желательно, иногда и мастером в некоторых случаях), но быть мастером для остальных устройств системы, подключенных к шине, идущей от него. А что делает ЦП во всём этом процессе? Если только "дёргает" MK с целью получения данных , то ему спокойно подошла бы роль SLAVE , что бы постоянно не "отвлекал" MK от работы . Quote Share this post Link to post Share on other sites More sharing options...
Sergey_Aleksandrovi4 0 May 31, 2012 Posted May 31, 2012 · Report post Родилась идея отказаться от промежуточных микроконтроллеров, а использовать для увеличения числа шин 4-х канальные i2c мультиплексоры с прерываниями. У Вас родилась правильная идея. Например, PCA9545(A, B, C) от NXP (в их номенклатуре несколько подобныъ ИС). Ещё у TI видал подобное. Quote Share this post Link to post Share on other sites More sharing options...