реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Адресация Si4705, Как правильно адресовать несколько чипов.
Elessar
сообщение Jan 14 2016, 07:39
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 14-01-16
Пользователь №: 90 023



На базе 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 установлен. А есть ли возможность устанавливать свои адреса на чипы, и желательно что бы они сохранялись там постоянно. Если нет то какие есть пути решения этой проблемы?
Go to the top of the page
 
+Quote Post
Jury093
сообщение Jan 14 2016, 08:46
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(Elessar @ Jan 14 2016, 10:39) *
На базе avr собираю многоканальный радиоприемник, в качестве радиомодулей использую SI4705. В устройстве их 8 штук и работать должны все одновременно.
Если нет то какие есть пути решения этой проблемы?

если в чипе нет регистра в котором хранится адрес слейва, но поменять его программно нельзя, только изменить через уровень на пине..
ищите 4-х канальный i2c мультиплексор (что-то типа pcaXX44) и на каждый канал повесьте по два чипа с разными адресами..
Go to the top of the page
 
+Quote Post
Elessar
сообщение Jan 14 2016, 09:45
Сообщение #3





Группа: Участник
Сообщений: 5
Регистрация: 14-01-16
Пользователь №: 90 023



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


А если поставить демультиплексор который будет выбирать один из чипов, на нем поднимать пин, обращаться по второму адресу к чипу а после передачи данных отпускать пин обратно? такой вариант может сработать?
Go to the top of the page
 
+Quote Post
Jury093
сообщение Jan 14 2016, 10:58
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



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

в теории можно все чипы повесить на одну шину, а сигналами SEN чипов коммутировать через GPIO expander или свободные контакты AVR адрес нужного чипа для обращения к нему.. но как поведет себя чип при смене адреса "на ходу" я сказать не могу (не знаю) и что там еще может быть не понятно.. тут только практика даст правильный ответ.. (на макетке прикрутить пару чипов и посмотреть на поведение)
более безопасный (и правильный вариант) - мультиплексор i2c..
Go to the top of the page
 
+Quote Post
Elessar
сообщение Jan 14 2016, 11:10
Сообщение #5





Группа: Участник
Сообщений: 5
Регистрация: 14-01-16
Пользователь №: 90 023



Спасибо за совет, буду эксперементировать.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 08:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016