Я прочитал в Интернете, что для запуска транзакции SPI на устройстве, поддерживаемом SPI, линия SS (выбор подчиненного устройства, или выбор микросхемы) должна быть установлена на низкий уровень для всей транзакции, а затем должна быть доведена до высокого уровня в конце и до конца транзакции. Если я создаю схему, содержащую только одно устройство SPI, нужно ли мне понижать команду отправки строки SS, затем каждый раз поднимать линию ss или я могу привязать линию ss к низкому уровню и отправлять неограниченное количество команд? Устройство, которое я использую, является звуковым чипом ISD1700 .
8
Ответы:
[@Kevin и @akohlsmith должны публиковать свои комментарии в качестве ответов.
Это чтобы расширить их комментарии. ]
SPI 1 не предписывает точное поведение SS (подчиненная строка выбора 2 ). Это поведение зависит от реализации каждого отдельного устройства. Я видел устройства, которые могут работать с постоянно установленным SS. Я также видел устройства, которые требуют падения и повышения краев на СС.
Хотя в явном виде не говорится, что SS должен быть переключен,
в руководстве по проектированию (стр. 31) говорится, что SS запускает и завершает транзакцию SPI. Было бы разумно предположить, что SS должен быть переключен для прохождения транзакции SPI.
1 SPI - это скорее обычай, нежели стандарт.
2 CS (выбор микросхемы) - другое название для выбора ведомого.
источник
Это полностью зависит от ведомого устройства.
Если протокол для подчиненного устройства включает в себя какое-то кадрирование, будь то с пакетами фиксированной длины, байтами запуска / остановки или заголовком, который задает длину пакета, тогда подчиненное устройство может работать без выбора микросхемы. В плате, над которой я сейчас работаю, есть чип флэш-памяти SPI, который, кажется, вполне доволен выбором микросхемы или без нее. Он может быть постоянно подключен к 0 В (включен) без проблем.
Это на самом деле вызвало у нас некоторые проблемы, потому что подрядчик настроил некоторые низкоуровневые операции ввода-вывода, включая SPI, и мы (и они!) Не поняли, что у них не работает выбранный чип. Это было до тех пор, пока мне не пришлось расширить работу SPI, чтобы добавить еще одно SPI-устройство на ту же шину, которая, как я обнаружил, у нас фактически не было выбора микросхем!
И наоборот, многим ведомым устройствам для выбора данных действительно требуется выбор чипов, и отправка большего количества бит / байтов, чем ожидаемый пакет, без освобождения выбора чипов в конце будет рассматриваться как недопустимая передача и отклонена. ЦАПы часто загружают новое значение на выходной сигнал на чипе выбора переднего фронта. Аналогичным образом, АЦП часто используют передачу SPI для начала (а иногда и времени) преобразования, поэтому в качестве триггера им нужно выбрать передний край чипа.
Ваша таблица данных на самом деле ничего не говорит о том, как управлять вашим конкретным чипом через SPI, и у меня недостаточно мотивации, чтобы гуглить его. Упражнение осталось для читателя ...;)
источник
Не зная ничего конкретного о ведомом устройстве SPI, нет, вы не можете просто привязать низкий уровень SS.
Многие устройства используют передний край SS для сброса своей внутренней логики до начала новой транзакции. Например, память может интерпретировать первые два байта как адрес, а затем последующие байты как данные. Некоторые воспоминания не выполняют физическую запись до тех пор, пока не будет снят SS.
Для некоторых устройств с правильным протоколом вам, возможно, удастся сойти с рук. Однако, это не будет работать с большинством устройств там.
источник