GreenCrab
-
Постов
3 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные GreenCrab
-
-
Спасибо за ответы, но подобные решения я уже пробовал.
Атмега является звеном между i2c master и i2c slave. Ее предназначение - расширение диапазона адресов. Т.е. я отправляю сигнал "открыть" на одну из таких атмег и она транслирует сигнал дальше.
Проще говоря, за атмегой1 есть устройство с адресом 0x33 и за атмега2 есть устройство с таким адресом (см. картинку). Нужно обратиться (и получить ответ!) к одному из них. Потому вариант PORTB = PINC не подходит. Ведь slave тоже изменяет sda.
К тому-же, если продублировать только scl, то slave не поймет команду. Видимо, атмега слишком долго выполняет инструкции и получается рассинхрон.Я хотел узнать, есть ли в атмегах какой-то магический регистр, который позволит замкнуть (буквально) две ножки между собой, чтоб сигнал проходил без задержек и в обе стороны. Вариант "проводок", разумеется, не подойдет. Разве что кто-то знает, как паять и отпаивать его средствами С
0 -
Здравствуйте!
Стоит задача использовать atmega8 в качестве повторителя/блокиратора сигнала. Т.е. атмега должна просто повторить сигналы полученные на i2c, выводя их на любые другие две ножи.
Можно просто написать программу, которая будет, в бесконечном цикле, снимать сигнал с пина и ставить такой-же на дублирующую ножку, но я не уверен, что такое решение оптимальное. Есть ли возможность как-то настроить атмегу, чтобы две ножки были соединены в одну цепь ?
REPEATER должен либо пропускать сигнал от i2c к RECEIVER, либо нет.0
Atmega8 в качестве повторителя сигнала
в AVR
Опубликовано
@Никитос В итоге я что-то похожее и сделал. Только без реле. Теперь меги-хабы просто дают 0 на линию со своими слейвами, чтобы те начали слушать i2c. Ну, и еще одна линия, чтоб отключать ненужные хабы в момент общения мастера и слейвов.
Проблема, можно сказать, решена. Раз уж нет способа "замкнуть" ноги, что было бы еще проще, чем сделано сейчас.