Нужна помощь с интерфейсом I2C

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 4
Зарегистрирован: Вс янв 31, 2010 01:53:19

Сообщение student770 »

Доброго времени суток!
Возникла необходимость соединить главный контроллер Atmega32 со вспомогательными Attiny85, коих должно быть штук 20. Они в случае ошибки (система контролирует целостность проводников, контакт при нажатии кнопки и т.д.) должны выдавать на главный контроллер тип ошибки. Оптимальным видится соединение по шине I2C. Но возникает ряд вопросов:
1. Сколько максимум вспомогательных контроллеров можно повесить на шину I2C?
2. Как осуществить обмен данными между вспомогательными (slave) и главным (master)?
Очень хотелось бы посмотреть пример на С, желательно под CVAVR.
Заранее благодарен!
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 151
Зарегистрирован: Пт май 01, 2009 08:58:42
Откуда: г. Коломна

Сообщение evgeniy66 »

student770 писал(а):Доброго времени суток!
Возникла необходимость соединить главный контроллер Atmega32 со вспомогательными Attiny85, коих должно быть штук 20. Они в случае ошибки (система контролирует целостность проводников, контакт при нажатии кнопки и т.д.) должны выдавать на главный контроллер тип ошибки. Оптимальным видится соединение по шине I2C. Но возникает ряд вопросов:
1. Сколько максимум вспомогательных контроллеров можно повесить на шину I2C?
2. Как осуществить обмен данными между вспомогательными (slave) и главным (master)?
Очень хотелось бы посмотреть пример на С, желательно под CVAVR.
Заранее благодарен!
Если Вас забанили в поисковиках, для начала почитайте про интерфейс: http://www.gaw.ru/html.cgi/txt/interface/iic/start.htm
Контактная информация:
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Сообщение Yftul »

Посмотрел на датащит, похоже у tiny85, как и у tiny26 нет TWI модуля. В свое время сильно намучился с обеспечением связки mega8(master) + 2*tiny26(slave) по I2С. USI оказалось заставить работать в режиме I2C непросто по следующим причинам:

1. в аппноутах атмел по применению USI в режиме I2C содержится ошибка, по крайней мере содержалась полгода назад)
2. толковых примеров не было на тот же момент;
3. из-за кривости решения в slave не должно быть ресурсоемких вычислений, мне пришлось повышать частоту до максимума и ставить костыли для организации подобия двухуровневого прерывания, для того, чтобы шина заработала более-менее штатно.


Если есть возможность, то лучше выберите что-то с аппаратным I2C.
Родился
Сообщения: 4
Зарегистрирован: Вс янв 31, 2010 01:53:19

Сообщение student770 »

Yftul, большое спасибо за ответ!
Но проблема еще в том, что нужно нужно использовать дифференциальный вход АЦП вспомогательного контроллера, который есть далеко не у всех МК семейства tiny. Тогда вопрос такой:
Вообще реально это сделать? (мне в общем-то нужно только передавать от вспомогательных на главный инфу)
Можно пример посмотреть?
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

В "Поиск"! Дублируете темы :evil:
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»