1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
1

Организация 8 параллельных SPI каналов приема данных

26.03.2017, 13:03. Показов 2235. Ответов 27

Author24 — интернет-сервис помощи студентам
Добрый день.
У меня есть 8 гироскопов, подключаю их сейчас к Ардуино. Канал SPI там один. Из-за этого скорость опроса всех датчиков падает с возможных 3600 Гц до 3 Гц.
Хочу организовать 8 параллельных SPI каналов, возможно даже не на Ардуино, чтобы просто параллельно слушать все данные.
Заказал CAN контроллеры MCP2515-I/SO MCP2515 для Arduino MEGA 2560 пока, предполагаю, что раз там 4 канала UART, то с по помощью него число каналов можно увеличить до 4. Но где-то внутри понимаю, что это не совсем оптимально.

Подскажите пожалуйста, в каком направлении вообще стоит смотреть?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2017, 13:03
Ответы с готовыми решениями:

Организация приема байт на PortB (ASM, ATMega16)
Помогите пожалуйста с кодом. AVRStidio, Ассемблер. Задание Организовать прием семи байт данных...

Организация приема платежа Яндекс.денег в клиенте
Всем привет! При переносе своего сайта на систему клиент-сервер (С++Builder 6) столкнулся с такой...

Организация параллельных процессов
Мне нужно организовать 5 параллельных процессов, каждый длится от 1 до 5 секунд. И каждый процесс...

Организация параллельных процессов.
Подскажите, плиз, как организовать сабж... К примеру, запустить копирование файлов, а самому...

Организация ведения аудио и визуального протоколирования приема врача
не знаю как точно это обозвать,вообщем требуется организовать ведение аудио и визуального...

27
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,012
26.03.2017, 20:26 2
Лучший ответ Сообщение было отмечено kocmockocmoc как решение

Решение

Программный SPI. Хоть на 100 каналов при разумной частоте.
1
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
26.03.2017, 20:30  [ТС] 3
спасибо, изучу вопрос.
Можете порекомендовать какие-то особенно интересные ссылки или везде впринципе про одно и тоже?
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,012
27.03.2017, 08:10 4
По сути программно эмулировать железо.
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
27.03.2017, 08:18 5
kocmockocmoc, привели бы имя гироскопа, а то очень смущает
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
падает с возможных 3600 Гц до 3 Гц
кривая реализация похоже.
0
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 10:16  [ТС] 6
если бы она была прямая - я бы сюда не писал

Добавлено через 8 минут
пока смотрю материалы, но понять не могу как эмулировать его
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
27.03.2017, 10:50 7
ТС, я лично что-то совсем ничего не понял. Если у вас гироскопы висят на SPI, то причем тут вообще UART? UART - не SPI и никогда им не был.
Цитата Сообщение от pyzhman Посмотреть сообщение
Программный SPI. Хоть на 100 каналов при разумной частоте.
)) подозреваю, проблема ТС'а этим только усугубится.
Цитата Сообщение от Витальич Посмотреть сообщение
кривая реализация похоже.
Поддерживаю.
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
если бы она была прямая - я бы сюда не писал
покажите схему подключения, и код, который вы используете. Основное же - это как раз это. Аппаратным SPI и нормальным кодом, вы вполне достигнете обещанных 100Гц (или сколько там?) для каждого акселерометра. Даже без прерываний.
0
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 11:01  [ТС] 8
Цитата Сообщение от Voland_ Посмотреть сообщение
ТС, я лично что-то совсем ничего не понял. Если у вас гироскопы висят на SPI, то причем тут вообще UART? UART - не SPI и никогда им не был.
CAN контроллеры MCP2515-I/SO MCP2515 могут помочь добавить SPI
я в курсе, что это разные вещи.
Цитата Сообщение от Voland_ Посмотреть сообщение
Поддерживаю.
спасибо, это очень помогает
Цитата Сообщение от Voland_ Посмотреть сообщение
покажите схему подключения, и код, который вы используете. Основное же - это как раз это. Аппаратным SPI и нормальным аппаратным SPI, вы вполне достигнете обещанных 100Гц (или сколько там?) для каждого акселерометра. Даже без прерываний.
3 600Гц.

сейчас у меня 8 гироскопов, у них общие линии MISO, MOSI, SCK. CS разные. Они опрашиваются последовательно.
Включается один датчик, считываются данные, SPI.end(). Открывается для второго. и т.д.

Цитата Сообщение от Voland_ Посмотреть сообщение
)) подозреваю, проблема ТС'а этим только усугубится.
не факт
0
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 11:03  [ТС] 9
Сейчас я использую этот скетч.
Ставить высокий уровень для CS я пробовал, чтобы закрыть прием данных для одного датчика и освободить шину для следующего, почему-то не работает.
Вложения
Тип файла: rar Gyro_parallel3.rar (1.4 Кб, 4 просмотров)
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
27.03.2017, 11:40 10
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
Ставить высокий уровень для CS я пробовал, чтобы закрыть прием данных для одного датчика и освободить шину для следующего, почему-то не работает.
не верю!
1. Длинна проводов?
2. Согласование уровней как сделано?
0
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 11:42  [ТС] 11
Цитата Сообщение от Витальич Посмотреть сообщение
Длинна проводов?
не более 10 см
Цитата Сообщение от Витальич Посмотреть сообщение
2. Согласование уровней как сделана?
не понимаю вопроса, уровней чего?
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
27.03.2017, 12:10 12
У Вас гироскоп питается 3.3 вольта, а ардуина 5 вольт, уровни SPI должны быть согласованы.
CS(чип селект) и сделан для того что бы была возможность управлять несколькими устройствами на общей шине
Миниатюры
Организация 8 параллельных SPI каналов приема данных  
1
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 12:20  [ТС] 13
получается на MISO, MOSI, SCK и CS тоже надо 3.3V?
и простым переключением CS можно скорость повысить? (а не открытием и закрытием канала для разных CS)

Добавлено через 1 минуту
а как их лучше согласовать тогда?
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
27.03.2017, 12:24 14
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
получается на MISO, MOSI, SCK и CS тоже надо 3.3V?
Цитата Сообщение от Voland_ Посмотреть сообщение
покажите схему подключения
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
и простым переключением CS можно скорость повысить?
Максимальная частота SPI для Вашего гироскопа 7.5 мГц, правда я не смотрел время цикла измерения, но Вы пишите 3600 Гц, значит 3600/8 = 450 Гц
0
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 12:27  [ТС] 15
вот так, только их 8
Миниатюры
Организация 8 параллельных SPI каналов приема данных  
0
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 12:31  [ТС] 16
Цитата Сообщение от Витальич Посмотреть сообщение
правда я не смотрел время цикла измерения, но Вы пишите 3600 Гц, значит 3600/8 = 450 Гц
пока гироскоп не выбрать, он не работает получается? не понял расчета Гц.

Добавлено через 1 минуту
может проще программный SPI реализовать?
Вы с этим сталкивались?
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
27.03.2017, 12:55 17
Программный на такое количество можно, но я бы не стал, лучше разобраться почему у Вас не работает это подключение. Я в четырех проводах часто ошибаюсь, обычно MOSI MISO путаю.
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
не понял расчета Гц.
откуда Вы взяли цифру 3600, я плясал от неё
0
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 12:58  [ТС] 18
Цитата Сообщение от Витальич Посмотреть сообщение
Программный на такое количество можно, но я бы не стал, лучше разобраться почему у Вас не работает это подключение. Я в четырех проводах часто ошибаюсь, обычно MOSI MISO путаю.
у меня данные совсем не идут, если я путаю их
Цитата Сообщение от Витальич Посмотреть сообщение
откуда Вы взяли цифру 3600
это из документации. я не про это число, а про рассчет, почему такая именно логика?
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
27.03.2017, 13:05 19
Мы опрашиваем гироскопы последовательно, значит что бы опросить 8 гироскопов у нас это займет в восемь раз больше времени вот и поделил.
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
у меня данные совсем не идут, если я путаю их
начните с двух и что не идут данные? Тактирующий сигнал есть? Вы гироскоп данные идут?
0
1 / 1 / 0
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 13:21  [ТС] 20
Цитата Сообщение от Витальич Посмотреть сообщение
Мы опрашиваем гироскопы последовательно, значит что бы опросить 8 гироскопов у нас это займет в восемь раз больше времени вот и поделил.
Если не выключать канал SPI каждый раз, а переключать CS, то измерения гироскопы продолжат как я понял. просто не будут передавать данные. Или нет?

Цитата Сообщение от Витальич Посмотреть сообщение
Вы гироскоп данные идут?
данные идут корректно, меня скорость их получения не устраивает.
если я подключаю один гироскоп - все прекрасно.
если 2 и более - мне приходится сейчас включать-переподключать шину SPI под новый CS.
Это не правильно, но это сейчас работает лучше, чем иные идеи.

данные не идут, если перепутать MISO с MOSI и наоборот.
а так они прекрасно идут.

Добавлено через 3 минуты
расскажите про программный SPI пожалуйста
0
27.03.2017, 13:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2017, 13:21
Помогаю со студенческими работами здесь

Хранение данных об актах приёма-передачи в базе данных (учебная база)
Добрый вечер. Делаю учебный проект по созданию базы данных - реестра техники, возникло несколько...

База данных с возможностью приема данных из файлов Excel
Здравствуйте Уважаемые! В "Delphi для начинающих" по этому вопросу НИКТО не помог:( Может здесь я...

Фильтр приема данных
Добрый день, к МК по UART подключено устройство от которого по запросу приходят следующего вида...

Скрипт приема данных
Можно для примера,скрипт для приёма данных от программы. То есть залил например скрипт на хостинг...

Использование каналов передачи данных
Сервер вводит в режиме диалога некоторое сообщение строкового типа и печатает его. С помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru