Измерения
Информация\Измерения\Цифровые осциллографы\Диагностика последовательных шин SPI
Диагностика последовательных шин SPI
Шина последнего интерфейса (SPI) изначально разработана компанией Motorola в конце 1980-x для микроконтроллеров серии 68000. Благодаря простоте и популярности шины, многие другие производители используют этот стандарт уже долгие годы. Сейчас в мире производится множество компонентов, которые используются в проектировании встроенных систем. Шина SPI вначале использовалась для обмена данными микроконтроллеров c периферийными устройствами. Обычно эта шина используется в мобильных телефонах, карманных компьютерах и других мобильных устройствах для связи между ЦПУ, клавиатурой, дисплеем и микросхемами памяти.
Шина SPI (последовательный интерфейс) представляет собой 4-проводную последовательную шину обмена данных c ведущим и ведомым устройством. Четыре сигнала представляют собой синхронизацию (SCLK), выход ведущего/вход ведомого (MOSI), вход ведущего/выход ведомого (МISO) и выбор ведомого устройства (SS). Когда два устройства обмениваются данными, одно из них является "ведущим", a другое "ведомым". Ведущие устройства генерируют последовательный синхросигнал. Данные одновременно передаются и принимаются, то есть протокол является полнодуплексным. Вместо использования уникальных адресов для каждого устройства, подключенного к шине, SPI использует линию SS для определения устройства, на которое передаются и c которого принимаются данные. B сущности, для каждого уникального устройства, подключенного к шине, требуется собственная линия SS от ведущего устройства. Если имеется 3 ведомых устройства, c ведущего устройства отходят 3 SS линии, по одной для каждого ведомого устройства (см. рис. 8).
На рис. 8 каждое ведомое устройство связано только c ведущим устройством. Ведомые устройства могут подключаться в шине SPI шлейфовым способом, каждое из них выполняет операции по очереди, затем отправляет результаты обратно на ведущее устройство (см. рис. 9).
Можно заметить, что "стандартной" реализации шины SPI не существует. B некоторых случаях, если обратная связь ведущего устройства c ведомым не требуется, сигнал MISO может вообще пропускаться.
![Общая конфигурация шины SPI](diagnostika_posledovatelnyh_shin_r8.jpg)
Рис. 8. Общая конфигурация шины SPI.
![Шлейфовая конфигурация шины SPI](diagnostika_posledovatelnyh_shin_r9.jpg)
Рис. 9. Шлейфовая конфигурация шины SPI.
![Меню настройки шины SPI](diagnostika_posledovatelnyh_shin_r10.jpg)
Рис. 10. Меню настройки шины SPI.
При передаче данных по шине SPI, 8-битное слово данных сдвигается сигналом MOSI, другое 8-битное слово данных сдвигается сигналом MISO. Это видно при просмотре 16-разрядного циклического регистра сдвига. Во время передачи 16-разрядный регистр сдвига смещается на 8 позиций, таким образом вы полняется обмен 8-разрядными данными между ведущим и ведомым устройствами. Пара регистров, синхронизации полярности (CPOL) и синхронизации фазы (СРНА), определяют фронты синхросигнала, по которому передаются данные. Каждый регистр имеет два состояния, которые предоставляют четыре различные комбинации. Для обмена данных пара ведущее/ведомое устройство должна иметь одинаковые параметры. Если используется несколько ведомых устройств в различных конфигурациях, ведущее устройство должно самостоятельно переконфигурироваться при необходимости связи c различными ведомыми устройствами.
Модуль последовательного запуска и анализа DPO4EMBD предоставляет подобные функции и для шины SPI. C помощью кнопок B1 и B2 на передней панели можно определить шину SPI простым вводом основных параметров шины, включая настройку включенных каналов SCLK, SS, MOSI и MISO, порогов и полярностей (см. рис. 10). B качестве примера рассмотрим встроенную систему, представленную на рис. 11.
![Синтезатор управляется по шине SPI](diagnostika_posledovatelnyh_shin_r11.jpg)
Рис. 11. Синтезатор управляется по шине SPI.
Шина SPI подключена к синтезатору, DAC (ЦАП) и некоторым входам/выходам. Синтезатор подключается к VCO (ГУН), выдающему синхросигнал 2,5 ГГц для остальной системы. Синтезатор программируется процессором при запуске. Однако вследствие какойто неисправности ГУН выдает синхросигнал частотой 3 ГГц. Первый шаг в отладке этой проблемы заключается в проверке сигналов между CPU (ЦПУ) и синтезатором, чтобы убедиться в их нормальном прохождении, и что проблема не связана c физическим соединением. Далее следует просмотреть фактически передаваемую по шине SPI информацию для программирования синтезатора. B целях регистрации информации следует настроить осциллограф для запуска по сигналу синтезатора Slave Select (Выбор ведомого устройства) и подачи питания испытуемого устройства для регистрации начала команд программирования. Зарегистрированная осциллограмма показана на рис. 12.
![Зарегистрированные ошибочные сообщения конфигурации синтезатора в шине SPI](diagnostika_posledovatelnyh_shin_r12.jpg)
Рис. 12. Зарегистрированные ошибочные сообщения конфигурации синтезатора в шине SPI.
Канал 1 (желтый) — SCLK, канал 2 (голубой) — MOSI и канал 3 (пурпурный) — SS. Для определения правильности программирования устройства следует посмотреть на таблицу синтезатора. Первые три сообщения в шине предназначены для инициализации синтезатора, загрузки коэффициента делителя и фиксации данных. B соответствии co спецификацией, последний полубайт (отдельный шестнадцатеричный символ) в первых трех сообщениях должен равняться 3, 0 и 1, соответственно, но в результатах измерений 0. 0 и 0. B этом случае становится ясно, что была сделана общая ошибка при программировании битов в каждом 24-разрядном слове, связанная c обратным порядком их следования. После быстрого исправления программы осциллограмма и ГУП зарегистрирована на частоте 2,5 ГГц (см. рис. 13).
![Правильные сообщения о конфигурации синтезатора](diagnostika_posledovatelnyh_shin_r13.jpg)
Рис. 13. Правильные сообщения о конфигурации синтезатора.
B примере выше использовался простой активный триггер SS. Функциональные возможности осциллографов серии DPO4000 по запуску в шине SPI включают следующие типы:
— SS Active - запуск, если ведомая линия выбора истинна для ведомого устройства.
— MOSI - запуск по заданным пользователем данным (до 16 байт), передаваемым от ведущего к ведомому устройству.
— MISO - запуск по заданным пользователем данным (до 16 байт), передаваемым от ведомого к ведущему устройству.
— MOSI/MISO - запуск по заданным пользователем данным (до 16 байт), передаваемым от ведущего к ведомому или от ведомого к ведущему устройству.
Такие триггеры позволяют выделить нужный трафик в шине, функция декодирования позволяет постоянно просматривать содержимое каждого передаваемого по шине сообщения.
Начало статьи - Отладка низкоскоростных последовательных шин при проектировании встроенных систем.
Комментарии