Отзыв о датчиках SPI с последовательным подключением

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

введите описание изображения здесь

я читал много блогов, сайтов, посвященных гирляндным цепочкам, но я редко вижу подробную информацию о получении данных из этих гирляндных цепочек (больше о главном выводе / широковещательной передаче данных на ведомые гирляндные цепи) или о получении данных от одного (1) ведомого SPI, ха-ха

Вот сайт, который я в последний раз читал, но все же дал мне модное представление об этом. (может быть, я слишком тупой, чтобы понять это без подробностей xD)

https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi

введите описание изображения здесь

1) Первый вопрос, я понимаю изображение выше, что означает, что пока я отправлял байт (8 бит; команда/инструкция) от uC к ведомому SPI через линию MOSI, этот ведомый SPI автоматически отправляет данные байта в линию MISO без отключения выбора чипа . Когда байтовые данные, отправленные SPI Slave, были получены uC, это время, когда я должен отключить выбор моего чипа. Это верно?

Я спрашиваю об этом, потому что когда дело доходит до гирляндной цепи, похоже, это не так. После того, как я прочитал учебник по spi от sparkfun, а также заметку в блоге maxim о SPI https://www.maximintegrated.com/en/app-notes/index.mvp/id/3947

вместо этого при последовательном соединении, даже если 1-й ведомый SPI получает байт команды, он не будет его выполнять и продолжит передавать байтовую команду другому ведомому SPI, когда он получит другой байт, НЕ ПОКА Я НЕ ОТКЛЮЧУ ВЫБОР ЧИПА, выполнит полученную команду (s) на подчиненных устройствах SPI . Это верно?

2) Второй вопрос: понимают ли ведомые устройства SPI в гирляндной цепочке автоматически или разделяют биты на инструкции, например, скажем, ведомое устройство SPI1 получает 2 байта команды. После получения 1-го байта команды и получения бита из 2-го байта команды по пути, это подчиненное устройство будет сбрасывать один раз 1-й байт команды на SPI-ведомое устройство 2, чтобы он имел только 1 бит из 2-го байта и будет принимать следующие биты для завершения команды 2-го байта? будет ли он среди двух в таблице ниже?

введите описание изображения здесь

3) Третий вопрос: если при настройке гирляндной цепи и операторе/процессе отключения отключения выбора микросхемы будут выполняться команды, удерживаемые ведомыми устройствами, то как тогда будет выглядеть обратная связь передачи данных по линии MISO на uC? У меня есть это устройство SPI, где после получения 1-байтовой команды оно будет возвращать 3-байтовые данные. Будет ли он среди двух в таблице ниже?

введите описание изображения здесь

Я надеюсь, что вы могли бы облегчить мой этот конфликт, как опухоль в моей голове: D спасибо.

Ответы (1)

SPI ничего не определяет на уровне канала передачи данных (т. е. как интерпретировать передаваемые данные), поэтому конкретный ответ возможен только для конкретного устройства. Каждое ведомое устройство должно указать, может ли оно быть подключено последовательно, и как должны выглядеть передачи на подключенные устройства. Как правило, устройства, поддерживающие последовательное соединение, либо вообще не отвечают (т. е. копируют MOSI в MISO через сдвиговый регистр), либо отвечают только на передачу с правильным адресом, передавая все остальное.

Что определяется SPI, так это поведение выбора микросхемы. Если вы отключите выбор микросхемы, все подчиненные устройства будут полностью игнорировать данные и часы.

поэтому я не могу последовательно подключить эту микросхему CS5480 mouser.com/ds/2/76/CS5480_F3-473044.pdf ?
@Mheruian Нет, не похоже, что ты мог бы. В техническом описании указано, что у вас есть выбор между обычным SPI (с одним CS на устройство) или конфигурацией UART с несколькими устройствами.
я вижу, я думал, что, хотя это и не указано в таблице данных, он может поддерживать последовательное подключение, поскольку все устройства SPI, с которыми я знаком (хотя это все драйверы светодиодов и т. д.), поддерживают это. Это был бы мой первый раз, когда я думаю о последовательном соединении устройств SPI для получения значений. Хотя похоже, что SPI и UART здесь ведут себя одинаково, поскольку UART также требует выбора микросхемы. Этим двоим был дан выбор: скорость или изоляция? Это также мой первый раз, когда я вижу, что UART имеет выбор микросхемы.
Спасибо Дмитрию Григорьеву, также я хотел бы спросить, знаете ли вы какие-либо датчики на основе SPI, поддерживающие последовательное подключение?