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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Соединение по I2C, Проблема опознавания
призрак
сообщение May 20 2016, 09:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 12-12-06
Из: Москва
Пользователь №: 23 439



Есть плата Малинка, к ней по I2C надо подключить несколько стандартных платок датчиков.
При подключении по одной, плата всё опознаёт, нормально общается.
При подключении больше одной при сканировании шины выдаёт пустой ответ, при опросе конкретного дача выдаёт ошибку подключения.

В чём может быть проблема?
Go to the top of the page
 
+Quote Post
Jury093
сообщение May 20 2016, 10:18
Сообщение #2


Знающий
****

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



Цитата(призрак @ May 20 2016, 12:47) *
Есть плата Малинка, к ней по I2C надо подключить несколько стандартных платок датчиков.
При подключении по одной, плата всё опознаёт, нормально общается.
При подключении больше одной при сканировании шины выдаёт пустой ответ, при опросе конкретного дача выдаёт ошибку подключения.

датчики могут иметь один адрес и не допускать параллельное подключение
если подключаете датчики "на горячую", то шина может "повиснуть"
где стоят пуллапы шины? - если у каждого датчика свои, то несколько датчиков могут перегрузить шину по суммарному току
если датчики умеют режим "мастер", то возможно хост не умеет мультимастеринг..
Go to the top of the page
 
+Quote Post
Elresearch
сообщение May 20 2016, 11:00
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 29-12-04
Пользователь №: 1 730



если датчики одинаковые и не имеют пинов для расширения адресов то используйте TCA9544 или подобный мультиплексор http://www.digikey.com/product-detail/en/t...76-1-ND/5178453
Go to the top of the page
 
+Quote Post
призрак
сообщение May 23 2016, 07:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 12-12-06
Из: Москва
Пользователь №: 23 439



Все датчики разные, у каждого свой встроенный адрес, подтяжки на конце.
датчики пассивные, мастером малинка, обработка через МатЛаб
Go to the top of the page
 
+Quote Post
Jury093
сообщение May 23 2016, 08:21
Сообщение #5


Знающий
****

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



Цитата(призрак @ May 23 2016, 10:26) *
Все датчики разные, у каждого свой встроенный адрес, подтяжки на конце.

где стоят пуллапы шины? - если у каждого датчика свои, то несколько датчиков могут перегрузить шину по суммарному току

возьмите два датчика, у одного снимите пуллапы и оба на шину - должны опознаться

Цитата
обработка через МатЛаб

что есть "обработка через МатЛаб"?

ЗЫ по этикету, мастер занимает шину и транслирует адрес слейва, слейв выставляет подтверждение (существуют чипы не детектируемые, но вполне работающие)
еще есть вариант - чипы работают на разных скоростях i2c-fast i2c-normal..
Go to the top of the page
 
+Quote Post
призрак
сообщение May 23 2016, 09:26
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 12-12-06
Из: Москва
Пользователь №: 23 439



Цитата(Jury093 @ May 23 2016, 11:21) *
где стоят пуллапы шины? - если у каждого датчика свои, то несколько датчиков могут перегрузить шину по суммарному току

возьмите два датчика, у одного снимите пуллапы и оба на шину - должны опознаться

Это не совсем датчики -
это плата типа http://radio-kit.ru/catalog-pdc423405.html
и типа http://radio-kit.ru/catalog-pdc421785.html


что есть "обработка через МатЛаб"?
данные по езернету с малинки должны идти на комп и обрабатываться в матлабе.
по одному датчики опознаются и работают, два - уже нет

ЗЫ по этикету, мастер занимает шину и транслирует адрес слейва, слейв выставляет подтверждение (существуют чипы не детектируемые, но вполне работающие)
еще есть вариант - чипы работают на разных скоростях i2c-fast i2c-normal..

Go to the top of the page
 
+Quote Post
Jury093
сообщение May 23 2016, 10:09
Сообщение #7


Знающий
****

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



Цитата
Это не совсем датчики -
это плата типа http://radio-kit.ru/catalog-pdc423405.html
и типа http://radio-kit.ru/catalog-pdc421785.html

изначально вы написали "датчики", но на самом деле без разницы, датчики-чипы-микросхемы.. наружу схематика одна..

по вашим ссылкам на платах я вижу пары резисторов - 2к2 и 4к7 - вот он и них и веду речь
почитайте доку на вашу малину - там уже фигурируют пуллапы 1к8 на i2c
вы добавляете на шину датчики со своими пуллапами и все становится совсем плохо

Цитата
по одному датчики опознаются и работают, два - уже нет

еще раз, опознаются чем? что пишет i2cdetect? ошибка на шину, ошибка на адрес датчика?

update надеюсь у вас датчики не на метровых проводах подключены? есть ограничитель на емкость шины i2c.. и датчики питаются с одного напряжения?

Сообщение отредактировал Jury093 - May 23 2016, 10:13
Go to the top of the page
 
+Quote Post
призрак
сообщение May 23 2016, 13:17
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 12-12-06
Из: Москва
Пользователь №: 23 439



Да, датчики запитываются параллельно..
Подтяжки я выпаял, как-то модули задышали, хотя с MPU продолжаются траблы.. если она стоит третьей в цепи.

Скан шины выдаёт адреса трёх подключенных датчиков, включая MPU, но при чтении выдаёт нули
Может клок шины как-то влиять на это?
Go to the top of the page
 
+Quote Post
aiwa
сообщение May 23 2016, 14:00
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Похожая картина может быть если подключаемые устройства работают в различных режимах SPI (фронт/полярность).
Go to the top of the page
 
+Quote Post
призрак
сообщение May 23 2016, 14:38
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 12-12-06
Из: Москва
Пользователь №: 23 439



Цитата(aiwa @ May 23 2016, 17:00) *
Похожая картина может быть если подключаемые устройства работают в различных режимах SPI (фронт/полярность).

В одиночном режиме работает без проблем
Go to the top of the page
 
+Quote Post
Jury093
сообщение May 23 2016, 15:54
Сообщение #11


Знающий
****

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



Цитата(призрак @ May 23 2016, 16:17) *
Да, датчики запитываются параллельно..
Подтяжки я выпаял, как-то модули задышали, хотя с MPU продолжаются траблы.. если она стоит третьей в цепи.

положение в шине совершенно неважно..
речь об этом модуле:
http://radio-kit.ru/catalog-pdc423405.html
?
у него видны две пары контактов sda/sck и xda/xsl - это зачем? у вас есть схема?

Цитата
Скан шины выдаёт адреса трёх подключенных датчиков, включая MPU, но при чтении выдаёт нули
Может клок шины как-то влиять на это?

может, если мастер работает в fast-i2c (400kHz), а чип в модуле понимает не более 100кГц
Go to the top of the page
 
+Quote Post
aiwa
сообщение May 23 2016, 16:08
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(призрак @ May 23 2016, 17:38) *
В одиночном режиме работает без проблем

Может адресация подводит. Если пин задающий старший бит адреса плохо пропаян и получается два устройства с одинаковым адресом и они пытаются отвечать одновременно.


Сообщение отредактировал aiwa - May 23 2016, 16:09
Go to the top of the page
 
+Quote Post
призрак
сообщение May 25 2016, 07:12
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 12-12-06
Из: Москва
Пользователь №: 23 439



Цитата(aiwa @ May 23 2016, 19:08) *
Может адресация подводит. Если пин задающий старший бит адреса плохо пропаян и получается два устройства с одинаковым адресом и они пытаются отвечать одновременно.


Там нет пинов адресации, вся платки разные, адреса разные
Go to the top of the page
 
+Quote Post
aiwa
сообщение May 25 2016, 07:34
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



В даташите на MPU-6050:
Цитата
The slave address of the MPU-60X0 is b110100X which is 7 bits long. The LSB bit of the 7 bit address is determined by the logic level on pin AD0
. This allows two MPU-60X0s to be connected to the same I2C bus.
When used in this configuration, the address of the one of the devices should be b1101000 (pin AD0is logic low) and the address of the other should be b1101001 (pin AD0is logic high).

Получается на одной шине может быть не более двух изделий с MPU-6050
Go to the top of the page
 
+Quote Post
призрак
сообщение May 25 2016, 09:44
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 12-12-06
Из: Москва
Пользователь №: 23 439



Цитата(Jury093 @ May 23 2016, 18:54) *
положение в шине совершенно неважно..
речь об этом модуле:
http://radio-kit.ru/catalog-pdc423405.html
?
у него видны две пары контактов sda/sck и xda/xsl - это зачем? у вас есть схема?


может, если мастер работает в fast-i2c (400kHz), а чип в модуле понимает не более 100кГц



Go to the top of the page
 
+Quote Post

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

 


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


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