Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/58: Рейтинг темы: голосов - 58, средняя оценка - 4.67
Yriom
1

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

20.05.2012, 16:29. Показов 10807. Ответов 22
Метки нет (Все метки)

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

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

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

Заранее спасибо за ответы.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2012, 16:29
Ответы с готовыми решениями:

AVR I2C Slave
Доброго здоровья, Ott! Подскажите, где грабли, или как их найти? Надо сделать ведомое устройство...

attiny2313 i2c slave
Доброго времени суток! Мне необходимо связать по шине I2C ATMEGA328 в режиме mostir и ATTINY2313...

Неадкватное поведение I2C Slave
Здравствуйте, пытаюсь сделать систему запрос-ответ на mega644 и mega8 на mega8 будет некий...

Реализация Master/Slave SPI
Всем привет)) парни пмгите найти ошибку) уже голову сломал)) Вообщем есть мастер атмега16 и слэйв...

22
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 177
20.05.2012, 16:45 2
Смотря для каких задач. Трансляцию шины (нахуа?) на тиньках можно еще извратиться (еще раз нахуа?????). А вот что либо более умное. ну там промежуточная обработка данных и т.д. - тут уже ченить типа меги треба. Кста из того с чем работал из AVR имело лишь 1 аппаратный I2C модуль. второй софтовым делать.
0
Yriom
20.05.2012, 16:57 3
Не важно, будут ли они софтовыми или аппаратными. Требуется примерно так, как описал (две шины). Промежуточная обработка не исключена. Конкретнее, пожалуйста. Вопрос звучал о возможности реализации, а не о том, насколько сложно это будет.
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
20.05.2012, 16:58 4
Цитата Сообщение от Yriom
Работоспособны ли микроконтроллеры серии ATtiny25/V, ATtiny45/V, ATtiny85/V в данных условиях?
Ног хватает - значит работоспособны. Но

Цитата Сообщение от Yriom
т.к. я навичек.
Это первая (и самая большая) проблема.

А остальные - смотря что именно делать, на какой скорости и поддерживает ли МП clock stritshing, хватит ли памяти у данных тинек и ещё много-много всего.

Среди AVR есть и с более чем одним аппаратным I2C - ATxmega.
0
Yriom
20.05.2012, 17:14 5
Программируемых ног 6 у этой серии. Тогда вопрос, сколько потребуется памяти?
Я не программист, а занимаюсь железом (с недавнего времени).
Yriom
20.05.2012, 17:23 6
Прилагаю примерное схематичное представление того, о чем я говорил.

0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
20.05.2012, 17:26 7
Цитата Сообщение от Yriom
Тогда вопрос, сколько потребуется памяти?
Да.... (слов нет) Спрашивайте у программиста, который это сможет написать (не забудьте задачу описать подробнее, а то может там в обработке нужно график в 3D строить или бабочку Фурье по миллиону точек считать).
0
Yriom
20.05.2012, 17:30 8
Про объем памяти я интересовался с той точки зрения, сколько памяти потребуется для программной реализации интерфейса.
Никаких 3D и прочего. Лишь хранение информации с нескольких АЦП и отдача их по первому требованию центральному процессору.
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
20.05.2012, 17:31 9
Если контроллеры не должны на промежуточные вычисления тратить мощность (просто опросить по 1-й линии, ответить по 2-й), да скорость не большая, то и аппаратной программной реализации хватит, даже, например на тиньке 13-й.

Я вот тут http://asis-kbr.ru/forum/viewtopys.php?f=9&t=117 тоже аппаратно программно IIC замутил, на 26-й тиньке - элементарно. Правда там только мастер, но я думаю что и слейв не проблема.
0
Yriom
20.05.2012, 17:42 10
ShodS, спасибо за полезный ответ.
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
20.05.2012, 17:44 11
Слейв намного проблематичней мастера - нужно старт ловить. Для этого я б использовал USI, а вот мастеру можно и ногами помахать.

Проблему вижу в другом (выделено мной):

Цитата Сообщение от Yriom
отдача их по первому требованию центральному процессору.
Нужно очень грамотно распараллелить слейв и мастер. Готовых библиотек здесь нет и кода в примерах, что слейва, что мастера - тоже нет. Именно поэтому я спрашивал по clock stritshing.

То есть, если уже идёт опрос АЦПоЦАПов и пришла "весточка" от мастера....

ЗЫ. Вероятность нахождения нужного кода стремиться к нулю.
ЗЗЫ. Я бы, в 25 тиньку смог бы запихнуть (на асм). Но я таким не занимаюсь.
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
20.05.2012, 17:59 12
Цитата Сообщение от THI BIOST
Нужно очень грамотно распараллелить слейв и мастер. То есть, если уже идёт опрос АЦПоЦАПов и пришла "весточка" от мастера....
Обычно IIC Slave устройство позволяет тормозить обмен, вплоть до остановки. Например у DS1307 (мс часов), есть доп регистры, при появлении на линии условия старт, в эти регистры переписываются актуальные данные, и потом читай их хоть час, (правда, в итоге, у нас окажется информация, часовой давности :)).

Если в требуемых АЦП, реализован такой механизм, то все ОК.
В таком случае, работу со слэйв устройствами можно организовать в основном цикле, а работу с главным контроллером, можно повесить на внешние прерывания. При запросе от главного, работа со слэйвами просто притормозится.
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
20.05.2012, 18:07 13
Цитата Сообщение от ShodS
Обычно ...
Пока это всё гадание на кофейной гуще :) Про обычно я знаю, да вот многие АЦПоЦАПы тактируются клоками шины...
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
20.05.2012, 18:11 14
Цитата Сообщение от THI BIOST
многие АЦПоЦАПы тактируются клоками шины...
Тоди..... ОЙ.....
0
Yriom
20.05.2012, 18:16 15
Угу. Т.к. цапы и ацп сидят на шине, то тактируются ею же.
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
20.05.2012, 18:20 16
Цитата Сообщение от Yriom
Угу. Т.к. цапы и ацп сидят на шине, то тактируются ею же.
Вы не поняли... АЦП и ЦАП могут тактироваться от шины, а могут от некоего внутреннего генератора. Зависит от модели. Вам бы сначала теорию почитать про это. А могут не тактироваться вообще (параллельные, например).
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
20.05.2012, 18:21 17
Ну еще как вариант, на время чтения данных со слэйв, можно прижимать шину STROBE в сторону главного процессора, чтобы он в это время не отвлекал.....
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
20.05.2012, 18:23 18
Цитата Сообщение от ShodS
Ну еще как вариант, на время чтения данных со слэйв, можно прижимать шину STROBE в сторону главного процессора, чтобы он в это время не отвлекал.....
Это и есть - clock stritshing, только, похоже ТС об этом не знает, и не все реализации I2C (как аппаратные, а особенно, программные) это умеют.
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
20.05.2012, 18:32 19
Цитата Сообщение от THI BIOST
не все реализации I2C (как аппаратные, а особенно, программные) это умеют.
Ну в программной как раз, контроллер можно этому научить..... Я например в программном мастере учитывал это.
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
20.05.2012, 18:36 20
Цитата Сообщение от ShodS
контроллер можно этому научить..... Я например в программном мастере учитывал это.
Там типа мастер дан свыше :) Под названием микропроцессор :) И ТС об этом молчит.
0
20.05.2012, 18:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2012, 18:36
Помогаю со студенческими работами здесь

ATttiny45 I2C(TWI) slave CodeVisionAVR
Приветствую всех, коллеги, поделитесь пожалуйста если есть и не жалко своей реализацией I2C...

Не корректно работает передача Slave-to-Master по SPI
От мастера к слейву данные передаются правильно. В обратном направлении данньіе идут со сдвигом на...

Аппаратный I2C master
Имеется МК otmyko328, работающий на частоте 18.432 Мгц. Необходимо общаться с несколькими...

Не работает I2C (TWI) Master на Atmega644p
Соединил Atmega644p по I2C с Ардуиной Мега, на которой прошит стандартный код примера I2C Slave...

Master/Slave I2C для ARM на LUFA
Здравствуйте, в качестве лабы в универе задали реализацию общения Slayer и Master по i2p для arm...

I2C slave
Приветствую всех! Пытаюсь реализовать I2C Slave на плате stm32f429-disco (нужно эмулировать один...

stm32 и I2C Slave
Добрый день, не работает I2C slave использую STM32CubeMX и STM32CubeIDE. Пробовал через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru