SPI читает во время записи?

spi

Я работаю над драйвером для устройства SPI, который возвращает некоторые данные (состояние устройства), в то время как командный байт все еще записывается. Есть ли способ прочитать эти данные о состоянии с помощью стандартных API Arduino или мне нужно бит-бэнг, чтобы получить к нему доступ?

Вот как выглядят сигналы SPI:

SPI timing diagram

6 бит красным цветом-это те, которые мне интересно читать.


Для контекста рассматриваемое устройство представляет собой микрочип MCP3561 ADC (серия MCP3X6X). В нем есть ошибка (erratum 2), из-за которой флаг new-data-ready (/DR_STATUS) не всегда установлен правильно. Часть работы включает в себя чтение битов состояния, упомянутых выше.

, 👍1


1 ответ


Лучший ответ:

2

Метод SPI.transfer() предназначен для отправки байта через порт SPI и в то же время приема входящего байта.

Шаблон использования:

uint8_t byte_to_send = ...;
uint8_t received_byte = SPI.transfer(byte_to_send);
,

Оказывается, ошибка была в другом месте моего кода. Это прекрасно работает. Спасибо!, @Alex Hajnal