Подключение нескольких adxl345 к arduino nano

nnovofastovskiy
Offline
Зарегистрирован: 31.10.2016

Пытаюсь подключить много акселерометров к ардуино нано по spi. Сейчас подключено 4 датчика, данные собираются и отправляются в комп по serial для отображение в LabVIEW. Начал подключать больше датчиков, началась дичь. Данные от уже подключенных датчиков становятся неправильными, появляется дребезг на данных. Это происходит именно при подключении самого провода sdo от пятого датчика. С шестью еще хуже становится. Датчики подключены через экранированный провод длиной 1 метр. Подскажите как исправить. Может это что то вроде паразитной емкости линии передачи данных?
nnovofastovskiy

Сообщения: 1
Зарегистрирован: 34 минуты назад
programming: C, G

Волшебник
Offline
Зарегистрирован: 22.12.2016

Ёмкости, если паралельно, то складываются. 5 датчиков это как 5метров провода - ни одна шина не потянет, ну кроме сериал на 19200. 

Надо мультиплексор цифровой шины. Можно попробовать скорость SPI снизить, до минимума , но  датчики с перегрузкой тогда пахать будут 

nnovofastovskiy
Offline
Зарегистрирован: 31.10.2016

Купил микросхемы, называются шинный формирователь CD74AC245E. Как я понимаю это просто буфер усиливающий сигнал. Может помочь?

nnovofastovskiy
Offline
Зарегистрирован: 31.10.2016

Вобщем микросхема не помогла. А как такой мультиплексор можно сделать? На ПЛИСе?

nnovofastovskiy
Offline
Зарегистрирован: 31.10.2016

Определил, что даже при подключении пустого провода длиной 0,5 и более метра в sdo начинаются ошибки. Конкретнее ошибки в том, что на каждом датчике пропадает сташий бит, из-за этого данные некорректные приходят на ардуино

Волшебник
Offline
Зарегистрирован: 22.12.2016

Слабые они, The maximum SPI clock speed is 5 MHz with 100 pF maximum loading,

формирователь шины я думаю сойдёт на  клок и слэйв селект, т.е. от ардуино на акселерометры буферные драйверы, а вот обратно надо суммировать 4? линии в одну, и здесь понадобится что-то типа открытого коллектора, или какая-нить простая 4-х входовая логика И-НЕ/  ИЛИ-НЕ  К555ЛИ6 ?

nnovofastovskiy
Offline
Зарегистрирован: 31.10.2016

Я так понимаю spi на такие длины вообще не используют. Сначала я пробовал по i2c датчики подключать но уперся в 2 датчика так как больше адресов не было. Каким образом можно мультиплексор сделать для подключения 8 или хотя бы 6 датчиков по i2c? Будет ли он работать если каждый датчик на 2 метра проводе будет?

nnovofastovskiy
Offline
Зарегистрирован: 31.10.2016

Дело в том что частоту дискретизации как можно выше нужно выжать. По spi 4 датчика получилась максимально 2кГц. Хотелось бы не меньше 1кГц

nnovofastovskiy
Offline
Зарегистрирован: 31.10.2016

Короче дела такие. Понизил скорость шины с 4МГц до 1МГц и все заработало)) появились правда программные недочеты, но это уже совсем другая история)

Nikita_az
Offline
Зарегистрирован: 20.03.2017

Здравствуйте. Можете кинуть пример кода с подключенными 4 датчиками?

Дмитро
Offline
Зарегистрирован: 29.04.2020

Доброго вам, интересует как вы подключили несколько датчиков к контроллеру?