Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Адресация Si4705
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
Elessar
На базе avr собираю многоканальный радиоприемник, в качестве радиомодулей использую SI4705. В устройстве их 8 штук и работать должны все одновременно.
Для связи с МК использую шину I2C. Вопрос - как правильно их адресовывать? В руководстве по программированию сказано -Although the device responds to only a single device address, this address can be changed with the SEN pin (note that the SEN pin is not used for signaling in 2-wire mode). When SEN = 0, the seven-bit device address is 0010001b. When SEN = 1, the address is 1100011b. То есть есть 2 адреса 0010001b когда SEN сброшен и 1100011b когда SEN установлен. А есть ли возможность устанавливать свои адреса на чипы, и желательно что бы они сохранялись там постоянно. Если нет то какие есть пути решения этой проблемы?
Jury093
Цитата(Elessar @ Jan 14 2016, 10:39) *
На базе avr собираю многоканальный радиоприемник, в качестве радиомодулей использую SI4705. В устройстве их 8 штук и работать должны все одновременно.
Если нет то какие есть пути решения этой проблемы?

если в чипе нет регистра в котором хранится адрес слейва, но поменять его программно нельзя, только изменить через уровень на пине..
ищите 4-х канальный i2c мультиплексор (что-то типа pcaXX44) и на каждый канал повесьте по два чипа с разными адресами..
Elessar
Цитата(Jury093 @ Jan 14 2016, 15:46) *
если в чипе нет регистра в котором хранится адрес слейва, но поменять его программно нельзя, только изменить через уровень на пине..
ищите 4-х канальный i2c мультиплексор (что-то типа pcaXX44) и на каждый канал повесьте по два чипа с разными адресами..


А если поставить демультиплексор который будет выбирать один из чипов, на нем поднимать пин, обращаться по второму адресу к чипу а после передачи данных отпускать пин обратно? такой вариант может сработать?
Jury093
Цитата(Elessar @ Jan 14 2016, 12:45) *
А если поставить демультиплексор который будет выбирать один из чипов, на нем поднимать пин, обращаться по второму адресу к чипу а после передачи данных отпускать пин обратно? такой вариант может сработать?

в теории можно все чипы повесить на одну шину, а сигналами SEN чипов коммутировать через GPIO expander или свободные контакты AVR адрес нужного чипа для обращения к нему.. но как поведет себя чип при смене адреса "на ходу" я сказать не могу (не знаю) и что там еще может быть не понятно.. тут только практика даст правильный ответ.. (на макетке прикрутить пару чипов и посмотреть на поведение)
более безопасный (и правильный вариант) - мультиплексор i2c..
Elessar
Спасибо за совет, буду эксперементировать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.