Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
 
kocmockocmoc
1 / 1 / 1
Регистрация: 07.12.2016
Сообщений: 31
#1

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

26.03.2017, 13:03. Просмотров 518. Ответов 27

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

Подскажите пожалуйста, в каком направлении вообще стоит смотреть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2017, 13:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Организация 8 параллельных SPI каналов приема данных (Микроконтроллер):

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

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

Подскажите алгоритм приема данных
У меня есть небольшой радиомодуль который цифрует эфир и выдает серию ноликов и...

SPI обновление данных
Всем доброго времени суток.. Помогите разобраться Есть два мк (мега8),...

ATmega128. Пересылка данных с USART в SPI
Доброго времени суток, мне требуется реализовать пересылку символов с USART в...

Помогите реализовать передачу данных по UART или SPI
Доброго времени суток, обращаюсь к вам форумчане за помощью. Требуется передать...

27
pyzhman
755 / 451 / 62
Регистрация: 15.05.2012
Сообщений: 2,541
26.03.2017, 20:26 #2
Лучший ответ Сообщение было отмечено kocmockocmoc как решение

Решение

Программный SPI. Хоть на 100 каналов при разумной частоте.
1
kocmockocmoc
1 / 1 / 1
Регистрация: 07.12.2016
Сообщений: 31
26.03.2017, 20:30  [ТС] #3
спасибо, изучу вопрос.
Можете порекомендовать какие-то особенно интересные ссылки или везде впринципе про одно и тоже?
0
pyzhman
755 / 451 / 62
Регистрация: 15.05.2012
Сообщений: 2,541
27.03.2017, 08:10 #4
По сути программно эмулировать железо.
0
Витальич
1253 / 1164 / 172
Регистрация: 02.12.2013
Сообщений: 4,843
27.03.2017, 08:18 #5
kocmockocmoc, привели бы имя гироскопа, а то очень смущает
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
падает с возможных 3600 Гц до 3 Гц
кривая реализация похоже.
0
kocmockocmoc
1 / 1 / 1
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 10:16  [ТС] #6
если бы она была прямая - я бы сюда не писал

Добавлено через 8 минут
пока смотрю материалы, но понять не могу как эмулировать его
0
Voland_
1475 / 985 / 93
Регистрация: 04.01.2010
Сообщений: 3,253
27.03.2017, 10:50 #7
ТС, я лично что-то совсем ничего не понял. Если у вас гироскопы висят на SPI, то причем тут вообще UART? UART - не SPI и никогда им не был.
Цитата Сообщение от pyzhman Посмотреть сообщение
Программный SPI. Хоть на 100 каналов при разумной частоте.
)) подозреваю, проблема ТС'а этим только усугубится.
Цитата Сообщение от Витальич Посмотреть сообщение
кривая реализация похоже.
Поддерживаю.
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
если бы она была прямая - я бы сюда не писал
покажите схему подключения, и код, который вы используете. Основное же - это как раз это. Аппаратным SPI и нормальным кодом, вы вполне достигнете обещанных 100Гц (или сколько там?) для каждого акселерометра. Даже без прерываний.
0
kocmockocmoc
1 / 1 / 1
Регистрация: 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
kocmockocmoc
1 / 1 / 1
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 11:03  [ТС] #9
Сейчас я использую этот скетч.
Ставить высокий уровень для CS я пробовал, чтобы закрыть прием данных для одного датчика и освободить шину для следующего, почему-то не работает.
0
Вложения
Тип файла: rar Gyro_parallel3.rar (1.4 Кб, 2 просмотров)
Витальич
1253 / 1164 / 172
Регистрация: 02.12.2013
Сообщений: 4,843
27.03.2017, 11:40 #10
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
Ставить высокий уровень для CS я пробовал, чтобы закрыть прием данных для одного датчика и освободить шину для следующего, почему-то не работает.
не верю!
1. Длинна проводов?
2. Согласование уровней как сделано?
0
kocmockocmoc
1 / 1 / 1
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 11:42  [ТС] #11
Цитата Сообщение от Витальич Посмотреть сообщение
Длинна проводов?
не более 10 см
Цитата Сообщение от Витальич Посмотреть сообщение
2. Согласование уровней как сделана?
не понимаю вопроса, уровней чего?
0
Витальич
1253 / 1164 / 172
Регистрация: 02.12.2013
Сообщений: 4,843
27.03.2017, 12:10 #12
У Вас гироскоп питается 3.3 вольта, а ардуина 5 вольт, уровни SPI должны быть согласованы.
CS(чип селект) и сделан для того что бы была возможность управлять несколькими устройствами на общей шине
1
Миниатюры
Организация 8 параллельных SPI каналов приема данных  
kocmockocmoc
1 / 1 / 1
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 12:20  [ТС] #13
получается на MISO, MOSI, SCK и CS тоже надо 3.3V?
и простым переключением CS можно скорость повысить? (а не открытием и закрытием канала для разных CS)

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

Добавлено через 1 минуту
может проще программный SPI реализовать?
Вы с этим сталкивались?
0
Витальич
1253 / 1164 / 172
Регистрация: 02.12.2013
Сообщений: 4,843
27.03.2017, 12:55 #17
Программный на такое количество можно, но я бы не стал, лучше разобраться почему у Вас не работает это подключение. Я в четырех проводах часто ошибаюсь, обычно MOSI MISO путаю.
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
не понял расчета Гц.
откуда Вы взяли цифру 3600, я плясал от неё
0
kocmockocmoc
1 / 1 / 1
Регистрация: 07.12.2016
Сообщений: 31
27.03.2017, 12:58  [ТС] #18
Цитата Сообщение от Витальич Посмотреть сообщение
Программный на такое количество можно, но я бы не стал, лучше разобраться почему у Вас не работает это подключение. Я в четырех проводах часто ошибаюсь, обычно MOSI MISO путаю.
у меня данные совсем не идут, если я путаю их
Цитата Сообщение от Витальич Посмотреть сообщение
откуда Вы взяли цифру 3600
это из документации. я не про это число, а про рассчет, почему такая именно логика?
0
Витальич
1253 / 1164 / 172
Регистрация: 02.12.2013
Сообщений: 4,843
27.03.2017, 13:05 #19
Мы опрашиваем гироскопы последовательно, значит что бы опросить 8 гироскопов у нас это займет в восемь раз больше времени вот и поделил.
Цитата Сообщение от kocmockocmoc Посмотреть сообщение
у меня данные совсем не идут, если я путаю их
начните с двух и что не идут данные? Тактирующий сигнал есть? Вы гироскоп данные идут?
0
kocmockocmoc
1 / 1 / 1
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2017, 13:21
Привет! Вот еще темы с решениями:

SPI -> 485->SPI
Есть необходимость переводить SPI на 485 интерфейс. Хотел бы уточнить, драйвер...

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru