Страница 1 из 1
Нужна помощь с интерфейсом I2C
Добавлено: Пт июл 09, 2010 22:15:19
student770
Доброго времени суток!
Возникла необходимость соединить главный контроллер Atmega32 со вспомогательными Attiny85, коих должно быть штук 20. Они в случае ошибки (система контролирует целостность проводников, контакт при нажатии кнопки и т.д.) должны выдавать на главный контроллер тип ошибки. Оптимальным видится соединение по шине I2C. Но возникает ряд вопросов:
1. Сколько максимум вспомогательных контроллеров можно повесить на шину I2C?
2. Как осуществить обмен данными между вспомогательными (slave) и главным (master)?
Очень хотелось бы посмотреть пример на С, желательно под CVAVR.
Заранее благодарен!
Re: Нужна помощь с интерфейсом I2C
Добавлено: Пт июл 09, 2010 23:23:40
evgeniy66
student770 писал(а):Доброго времени суток!
Возникла необходимость соединить главный контроллер Atmega32 со вспомогательными Attiny85, коих должно быть штук 20. Они в случае ошибки (система контролирует целостность проводников, контакт при нажатии кнопки и т.д.) должны выдавать на главный контроллер тип ошибки. Оптимальным видится соединение по шине I2C. Но возникает ряд вопросов:
1. Сколько максимум вспомогательных контроллеров можно повесить на шину I2C?
2. Как осуществить обмен данными между вспомогательными (slave) и главным (master)?
Очень хотелось бы посмотреть пример на С, желательно под CVAVR.
Заранее благодарен!
Если Вас забанили в поисковиках, для начала почитайте про интерфейс:
http://www.gaw.ru/html.cgi/txt/interface/iic/start.htm
Re: Нужна помощь с интерфейсом I2C
Добавлено: Сб июл 10, 2010 00:42:13
Yftul
Посмотрел на датащит, похоже у tiny85, как и у tiny26 нет TWI модуля. В свое время сильно намучился с обеспечением связки mega8(master) + 2*tiny26(slave) по I2С. USI оказалось заставить работать в режиме I2C непросто по следующим причинам:
1. в аппноутах атмел по применению USI в режиме I2C содержится ошибка, по крайней мере содержалась полгода назад)
2. толковых примеров не было на тот же момент;
3. из-за кривости решения в slave не должно быть ресурсоемких вычислений, мне пришлось повышать частоту до максимума и ставить костыли для организации подобия двухуровневого прерывания, для того, чтобы шина заработала более-менее штатно.
Если есть возможность, то лучше выберите что-то с аппаратным I2C.
Re: Нужна помощь с интерфейсом I2C
Добавлено: Сб июл 10, 2010 10:15:31
student770
Yftul, большое спасибо за ответ!
Но проблема еще в том, что нужно нужно использовать дифференциальный вход АЦП вспомогательного контроллера, который есть далеко не у всех МК семейства tiny. Тогда вопрос такой:
Вообще реально это сделать? (мне в общем-то нужно только передавать от вспомогательных на главный инфу)
Можно пример посмотреть?
Re: Нужна помощь с интерфейсом I2C
Добавлено: Сб июл 10, 2010 16:52:47
Aheir
В "Поиск"! Дублируете темы
