SPI читает во время записи?
Я работаю над драйвером для устройства SPI, который возвращает некоторые данные (состояние устройства), в то время как командный байт все еще записывается. Есть ли способ прочитать эти данные о состоянии с помощью стандартных API Arduino или мне нужно бит-бэнг, чтобы получить к нему доступ?
Вот как выглядят сигналы SPI:
6 бит красным цветом-это те, которые мне интересно читать.
Для контекста рассматриваемое устройство представляет собой микрочип MCP3561 ADC (серия MCP3X6X). В нем есть ошибка (erratum 2), из-за которой флаг new-data-ready (/DR_STATUS
) не всегда установлен правильно. Часть работы включает в себя чтение битов состояния, упомянутых выше.
@Alex Hajnal, 👍1
1 ответ
Лучший ответ:
Метод SPI.transfer()
предназначен для отправки байта через
порт SPI и в то же время приема входящего байта.
Шаблон использования:
uint8_t byte_to_send = ...;
uint8_t received_byte = SPI.transfer(byte_to_send);
- Как использовать SPI на Arduino?
- Как увеличить скорость записи на SD-карту в Ардуино
- Как считывать данные с помощью Arduino SPI
- Как передать более 1 байта сразу по шине SPI?
- OVF в последовательном мониторе вместо данных
- Как отправить строку с подчиненного устройства Arduino с помощью SPI?
- Проблема совместного использования MISO с несколькими RFID-считывателями RC522
- Путаница между SPI и I2C для SSD1306 OLED
Оказывается, ошибка была в другом месте моего кода. Это прекрасно работает. Спасибо!, @Alex Hajnal