MPU6500 через SPI
Я пытаюсь связаться с датчиком MPU6500 через SPI, так как мне нужна максимально возможная скорость обновления. Мне сложно найти простой для понимания пример кода или, возможно, легкую библиотеку для настройки и инициализации датчика и чтения данных гироскопа/акселерометра через SPI.
На данный момент я начал адаптировать код и информацию, найденную по адресу https://playground.arduino.cc/Main/MPU- 6050 думал, что будет довольно легко использовать SPI вместо I2C «Wire» и адаптировать конфигурацию и регистры на основе таблицы данных, но я понял, что здесь слишком много возможных подводных камней.
Есть рекомендации?
@Z4-, 👍1
Обсуждение1 ответ
Для тех, кто еще не разобрался, это очень просто.
По сути, для связи SPI с датчиком MPU 6500 это немного отличается от того, что может предложить I2C.
В I2C пакет данных выглядит следующим образом:
(7-битный адрес подчиненного устройства + бит чтения/записи), но в SPI это выглядит следующим образом:
(бит чтения/записи + 7-битный адрес регистра), обратите внимание, что нам даже не нужен адрес подчиненного устройства в SPI, поскольку выбор микросхемы подключен от процессора (главного) к датчику (подчиненному).
Итак, для SPI, допустим, вы хотите записать значение 64 в регистр 0x6B, тогда: Передача_данных[2]; Данные_передачи[0] = 0x6B; Transmission_data[1] = 64;
Предположим, вы хотите прочитать значение из регистра 0x43, которое представляет собой значение GYRO_X_High Byte, тогда: Передача_данных[1]; Данные_передачи[0] = 0x43 | 0x80; // вам нужно или это с помощью 0x80(десятичное число = 128)
Спасибо... Надеюсь, это поможет кому-то, нуждающемуся в помощи по SPI, поскольку мне тоже было трудно найти эту информацию.
- Как подключить MPU9250 к NodeMCU с помощью SPI или I2C Slave?
- Получение стабильных измерений с помощью ИДУ BNO055
- Правильный способ получить значения крена, тангажа и перемещения
- Определение относительно точной скорости с помощью ИДУ
- Arduino Nano IOT LSM6DS3 получить угол гироскопа в градусах
- Использование software serial на Arduino Mega
- Самый точный способ измерения линейного расстояния, пройденного колесом
- Не удалось найти подходящую библиотеку для MPU9250.
Какую библиотеку вы уже нашли? А по поводу какой части примера кода у вас есть вопросы?, @Michel Keijzers
@MichelKeijzers добавил информацию., @Z4-
Я убрал флаг закрытия, я никогда не пробовал этот датчик, обычно компоненты предназначены либо для SPI, либо для I2C (или другого средства связи), но не поддерживают оба, поэтому я удивлен, что вы вообще можете перейти с I2C на SPI., @Michel Keijzers
Прочтите техническое описание, и протокол SPI довольно легко реализовать!, @MaNyYaCk
Спасибо, Мишель, да, он определенно поддерживает оба., @Z4-