|
I2C Master/Slave и микроконтроллеры, Реализация Master/Slave, несколько шин. |
|
|
|
May 21 2012, 09:31
|
Группа: Новичок
Сообщений: 7
Регистрация: 30-04-12
Пользователь №: 71 643

|
Возможна ли следующая реализация системы:
Микропроцессор задает шину i2c, к шине подключаются микроконтроллеры, которые для МП являются Slave-устройствами. Микроконтроллер далее задает еще одну шину i2c, к которой подключены ЦАП и АЦП, работающие на этой шине. Относительно ЦАП и АЦП микроконтроллер должен быть Master-устройством. Т.е. цепочка такая. МП->микроконтроллер (на шине, исходящей от процессора)->Остальные устройства (на шине, исходящей от микроконтроллера). Еще раз повторюсь, что микроконтроллер должен являться слэйвом для процессора (а желательно, иногда и мастером в некоторых случаях), но быть мастером для остальных устройств системы, подключенных к шине, идущей от него.
Общий вопрос: Способны ли микроконтроллеры к подобным манипуляциям, если да, то ка.кие (как можно меньшей сложности и количества выводов)? Работоспособны ли микроконтроллеры серии ATtiny25/V, ATtiny45/V, ATtiny85/V в данных условиях? Ответы желательны с пояснениями, т.к. я новичек.
Заранее спасибо за ответы.
|
|
|
|
|
 |
Ответов
(1 - 13)
|
May 21 2012, 11:52
|
Группа: Новичок
Сообщений: 7
Регистрация: 30-04-12
Пользователь №: 71 643

|
Хорошо, сейчас что-нибудь накидаю в пейнте. вот, прикрепил структурную схемку примерную
Эскизы прикрепленных изображений
|
|
|
|
|
May 21 2012, 12:49
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Iream @ May 21 2012, 19:01)  Способны ли микроконтроллеры к подобным манипуляциям, если да, то ка.кие (как можно меньшей сложности и количества выводов)? Мастером шины I2C быть легко. Для этого не требуется аппаратная поддержка, достаточно простого программного управления (bit-bang) любыми двумя ножками порта. Ведь мастер имеет право быть сколь угодно медленным. Поэтому функцию мастера I2C может выполнять любой контроллер. Слэйвом шины I2C быть трудно. Для того, чтобы слэйв по-честному выполнял все требования и времянки шины, нужна аппаратная поддержка, т.к. там тормозить нельзя. Поэтому слэйва I2C в МК практически невозможно реализовать без аппаратной поддержки. Из этого следует, что для вторичного мастера вам надо выбрать такой МК, у которого на борту есть апаратный I2C, способный работать в режиме I2C слэйва.
|
|
|
|
|
May 21 2012, 12:59
|
Группа: Новичок
Сообщений: 7
Регистрация: 30-04-12
Пользователь №: 71 643

|
KykyryzzZ, спасибо за ответ. Буду пытаться разобраться.
=AK=, не являются ли Атмеловские TWI-линии полным аналогом SDA и SCL i2c? Насколько слышал - это полный аналог, только названный иначе, чтобы не платить за пользование патентов Филипсу. Тем самым, мы имеем в Тайни аппаратный i2c, как понимаю.
|
|
|
|
|
May 21 2012, 13:22
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Iream @ May 21 2012, 22:29)  не являются ли Атмеловские TWI-линии полным аналогом SDA и SCL i2c? Вам лень самому посмотреть? Атмел прямым текстом пишет (из даташита на Atiny20) 17. TWI – Two Wire Slave Interface • Phillips I2C compatible • SMBus compatible (with reservations)
|
|
|
|
|
May 22 2012, 04:15
|
Группа: Новичок
Сообщений: 7
Регистрация: 30-04-12
Пользователь №: 71 643

|
Цитата(ILYAUL @ May 22 2012, 00:15)  избыточная. Все устройсва могут "висеть" сразу на одной шине и не мешать друг другу Вообще, такая идея родилась именно из-за наличия большого количества подчиненных устройств, которым просто не хватит адресов, если их все посадить на одну шину. Мастер будет называть адрес, а на него сразу будет откликаться несколько устройств. Будет конфликт.
|
|
|
|
|
May 22 2012, 05:40
|
Группа: Новичок
Сообщений: 7
Регистрация: 30-04-12
Пользователь №: 71 643

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

  
Группа: Свой
Сообщений: 404
Регистрация: 20-10-05
Пользователь №: 9 885

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

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(Iream @ May 21 2012, 13:31)  Т.е. цепочка такая. МП->микроконтроллер (на шине, исходящей от процессора)->Остальные устройства (на шине, исходящей от микроконтроллера). Еще раз повторюсь, что микроконтроллер должен являться слэйвом для процессора (а желательно, иногда и мастером в некоторых случаях), но быть мастером для остальных устройств системы, подключенных к шине, идущей от него. А что делает ЦП во всём этом процессе? Если только "дёргает" MK с целью получения данных , то ему спокойно подошла бы роль SLAVE , что бы постоянно не "отвлекал" MK от работы .
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
May 31 2012, 09:48
|
Частый гость
 
Группа: Свой
Сообщений: 168
Регистрация: 8-10-08
Из: РФ Смоленск
Пользователь №: 40 764

|
Цитата(Iream @ May 22 2012, 09:40)  Родилась идея отказаться от промежуточных микроконтроллеров, а использовать для увеличения числа шин 4-х канальные i2c мультиплексоры с прерываниями. У Вас родилась правильная идея. Например, PCA9545(A, B, C) от NXP (в их номенклатуре несколько подобныъ ИС). Ещё у TI видал подобное.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|