Jump to content
    

I2C Master/Slave и микроконтроллеры

Возможна ли следующая реализация системы:

 

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

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

 

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

Работоспособны ли микроконтроллеры серии ATtiny25/V, ATtiny45/V, ATtiny85/V в данных условиях?

Ответы желательны с пояснениями, т.к. я новичек.

 

Заранее спасибо за ответы.

Share this post


Link to post
Share on other sites

Хорошо, сейчас что-нибудь накидаю в пейнте.

 

вот, прикрепил структурную схемку примерную

post-71643-1337601112_thumb.jpg

Share this post


Link to post
Share on other sites

Вообще такая схема жизнеспособна, но должны быть выполнены следующие условия:

Микроконтроллер должен иметь во-первых два I2C, а во-вторых иметь возможность работать как мастером, так и слейвом.

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

 

Могу ошибиться, но у ATtiny режим slave отсутствует. Только мастер.

Share this post


Link to post
Share on other sites

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

KykyryzzZ, спасибо за ответ. Буду пытаться разобраться.

 

=AK=, не являются ли Атмеловские TWI-линии полным аналогом SDA и SCL i2c? Насколько слышал - это полный аналог, только названный иначе, чтобы не платить за пользование патентов Филипсу. Тем самым, мы имеем в Тайни аппаратный i2c, как понимаю.

Share this post


Link to post
Share on other sites

не являются ли Атмеловские TWI-линии полным аналогом SDA и SCL i2c?

Вам лень самому посмотреть? Атмел прямым текстом пишет (из даташита на Atiny20)

17. TWI – Two Wire Slave Interface

• Phillips I2C compatible

• SMBus compatible (with reservations)

 

Share this post


Link to post
Share on other sites

Вообще такая схема жизнеспособна, но

избыточная. Все устройсва могут "висеть" сразу на одной шине и не мешать друг другу

Share this post


Link to post
Share on other sites

избыточная. Все устройсва могут "висеть" сразу на одной шине и не мешать друг другу

 

Вообще, такая идея родилась именно из-за наличия большого количества подчиненных устройств, которым просто не хватит адресов, если их все посадить на одну шину. Мастер будет называть адрес, а на него сразу будет откликаться несколько устройств. Будет конфликт.

Share this post


Link to post
Share on other sites

Недавно столкнулся с подобной проблемой. Схема жизнеспособна. Полностью соглашусь с постом #5 от =АК=.

OFFTOP: Из бюджетных вариантов предлагаю stm8s с аппаратным i2c.

Share this post


Link to post
Share on other sites

Недавно столкнулся с подобной проблемой. Схема жизнеспособна. Полностью соглашусь с постом #5 от =АК=.

OFFTOP: Из бюджетных вариантов предлагаю stm8s с аппаратным i2c.

 

 

Спасибо!

 

 

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

Edited by Iream

Share this post


Link to post
Share on other sites

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

 

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

При таком подходе все равно не получится скинуть ряд задач на "вспомогательных мастеров" и забыть до выполнения.

Share this post


Link to post
Share on other sites

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

А что делает ЦП во всём этом процессе? Если только "дёргает" MK с целью получения данных , то ему спокойно подошла бы роль SLAVE , что бы постоянно не "отвлекал" MK от работы .

Share this post


Link to post
Share on other sites

Родилась идея отказаться от промежуточных микроконтроллеров, а использовать для увеличения числа шин 4-х канальные i2c мультиплексоры с прерываниями.

У Вас родилась правильная идея. Например, PCA9545(A, B, C) от NXP (в их номенклатуре несколько подобныъ ИС). Ещё у TI видал подобное.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...