spi mode что это

Описание интерфейса SPI

Интерфейс SPI — это один из самых популярных на сегодняшний день последовательных интерфейсов. Он был придуман фирмой Motorola и очень быстро завоевал популярность благодаря своей исключительной простоте и высокой скорости. При этом, SPI, наверное, нельзя назвать в полной мере интерфейсом, скорее это просто принцип связи, поскольку всё, что подразумевается под SPI, — это логика передачи данных между двумя устройствами («Ведущий»-«Ведомый»), физике же уделяется гораздо меньшее внимание, она реализуется, можно сказать, «по обстоятельствам», а никакого протокола нижнего уровня вообще нет, тут каждый производитель придумывает что-то своё.

Ну что ж, — с главного и начнём. Итак, в чём же тут логика? Логика в том, что данные передаются последовательно, побитно, при этом считывание и установка данных разделены во времени с помощью специального синхросигнала на специальной шине. Эта шина называется шиной тактирования (или шиной синхронизации), а суть разделения заключается в том, что считывание и установка данных происходят по противоположным фронтам генерируемых на шине синхроимпульсов. Такое, чётко разделённое во времени, чередование установок и считываний даёт возможность использовать один и тот же регистр и для приёма, и для передачи данных. Ранее (когда память была маленькой и дорогой, операционки хранились на дискетах, а по полям бегали мамонты ) это было серьёзным преимуществом, более того, именно под это на самом деле изначально и затачивался SPI, однако сейчас никаких проблем с обьёмом памяти нет и большинство устройств спокойно могут позволить себе иметь отдельные входной и выходной регистры.

Устройство, управляющее шиной тактирования (то есть генерирующее на ней синхроимпульсы), является «Ведущим» или «Мастером». Собственно, «Master» управляет всем обменом данными, — он решает: когда начинать обмен, когда заканчивать, сколько бит передать и т.д. Второе устройство, участвующее в обмене, является «Ведомым» или «Slave». В SPI, в отличии от, например, того же I2C, «Slave» совсем бесправен, он вообще никак не может влиять на шину тактирования и никак не может сообщить мастеру, что не успевает или, наоборот, что уже готов к обмену. То есть «Мастер» сам должен знать: когда, что и на какой скорости спросить у «Слэйва», чтобы тот смог ему ответить.

Всего, для полнодуплексного обмена (в обе стороны одновременно), в интерфейсе SPI используются 4 линии (смотрим рисунок): SCLK, MOSI, MISO и SS.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

«1» и «0» кодируются уровнем напряжения на шинах данных (MOSI, MISO) в обычной положительной логике, то есть высокий уровень напряжения на шине соответствует «единице», а низкий уровень соответствует «нулю». При этом, то, каким образом организуется установка на шинах этих уровней, — нигде не оговаривается, то есть выходы передатчиков могут быть как «push-pull», так и «с открытым коллектором». Высокий уровень обычно соответствует напряжению питания микросхемы (то есть если мы имеем дело с пятивольтовыми микрухами, то высокий уровень — это напряжение, близкое к пяти вольтам, если речь идёт о микрухах, питающихся от 3,3В, то высокий уровень — это напряжение, близкое к 3,3В).

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Сигнал SS отмечает начало и конец сеанса обмена. Этот сигнал обычно инверсный, то есть во время сеанса обмена данными мастер должен устанавливать на линии SS низкий уровень, а при отсутствии обмена — высокий. Наличие сигнала SS позволяет мастеру организовать подключение к нескольким слэйвам, используя один и тот же синхросигнал и одни и те же шины данных, без каких-либо дополнительных протоколов (вариант такого подключения показан на рисунке слева). Правда тут есть один минус: в этом случае мастеру придётся к каждому слэйву подключаться по отдельной линии SS (чтобы управлять сеансами обмена с каждым слэйвом независимо друг от друга), что увеличивает общее количество используемых проводов.

Названия линий, в общем-то, не являются каким-то стандартом и могут отличаться в зависимости от производителя (например, вместо MOSI, MISO и SCLK линии могут называться DI, DO и SC, или SI, SO и CLK, линия SS может называться CS или RESET).

Более того, линий не обязательно должно быть четыре, — иногда их может быть только три, например, если данные передаются только в одном направлении или вместо двух однонаправленных шин данных используется одна двунаправленная. Очевидно, что в последнем случае возможен только полудуплексный обмен, то есть в один момент времени можно только передавать или только принимать данные (а передавать и принимать одновременно — нельзя).
То есть, ни по названию линий, ни по уровням напряжения на них, ни даже по их количеству, однозначно идентифицировать SPI нельзя, зато это отлично можно сделать по самому методу передачи данных, по тому как происходит их установка на шину и считывание.

Как я уже упоминал, — данные передаются побитно, а установка и чтение данных происходит по противоположным фронтам сигнала тактирования. Момент чтения данных в англоязычной литературе называется latch (фиксация, защёлкивание), а момент установки данных на шину — shift (сдвиг). Сдвигом момент установки называется в силу особенностей большинства последовательных интерфейсов. Обычно никто не передаёт данные по одному биту, как правило, их посылают пачками по 8 и более бит (размер пачки чаще всего всё же кратен восьми). В связи с этим, на выходе передатчика делают сдвиговый регистр, куда загружают сразу всю пачку передаваемых бит, при этом значение младшего или старшего бита этого сдвигового регистра устанавливается на шине данных (смотря как передаём — младшим или старшим битом вперёд), а для установки на шине следующего передаваемого бита — достаточно «сдвинуть» этот регистр. Так устроены передатчики и в SPI, и в I2C, и в привычном RS232, и много где ещё (так просто аппаратно удобнее). Ну, ладно, — вернёмся к нашему SPI.

Логический уровень сигнала на шине тактирования в неактивном состоянии (когда нет передачи данных) называют полярностью и обозначают CPOL (то есть, если при отсутствии передачи на шине SCLK низкий уровень, то CPOL=0, а если в это время на шине SCLK высокий уровень, то CPOL=1). Порядок чередования считываний и сдвигов называют фазой и обозначают CPHA (если по первому фронту на SCLK происходит считывание, то CPHA=0, а если по первому фронту на SCLK происходит сдвиг, то CPHA=1).

В зависимости от сочетания значений CPOL и CPHA различают 4 режима работы интерфейса SPI, которые так и обозначают Mode0, Mode1, Mode2 и Mode3. Ниже приведена картинка, иллюстрирующая как происходит установка и чтение данных, в зависимости от выбранного режима.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Хотелось бы подчеркнуть, что SS — это именно линия управления сеансом обмена, а не просто линия выбора слэйва. Разница тут в том, что если считать SS просто линией выбора слэйва, то при подключении мастера к одному единственному слэйву возникает соблазн этой линией не управлять, а жёстко закоротить её на общий провод (типа чтоб слэйв всегда был выбран). Однако, логика слэйва обычно такова, что начало сеанса сопровождается различными подготовительными процедурами, такими как загрузка данных в выходной сдвиговый регистр и сброс счётчика импульсов, а выполнять какие-то действия (в соответствии с принятыми по SPI командами от мастера) слэйв начинает только после завершения сеанса обмена. Кроме того, вам ведь вполне может понадобиться несколько сеансов общения (например, если в первом сеансе вы посылаете команды, а в следующем хотите получить отчёт о результате их выполнения). Думаю понятно, что если жёстко притянуть линию SS к общему проводу, то ни о каком распознавании начала и конца сеанса обмена (начало распознаётся по спаду на линии SS, а конец — по подъёму) не может быть и речи, соответственно весь обмен данными будет нарушен. Так что важность сигнала SS не стоит недооценивать.

Ну и напоследок скажу, что наиболее популярными являются режимы Mode0 и Mode3.

Более подробно о том, как происходит обмен, что должен уметь SPI-мастер и как это программно реализовать на микроконтроллере (на примере контроллеров PIC и AVR) можно почитать в статье «Программная реализация ведущего шины SPI»

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

SPI (Serial Peripheral Interface)

SPI

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это
РазработчикMotorola
ТипПередача данных
Дата выпуска1985 год
ЦПВ зависимости от конкретной модели
MemoryВ зависимости от конкретной модели

Содержание

Интерфейс

В SPI используются четыре цифровых сигнала:

Режим SPIВременная диаграмма
Режим SPI0

Активные уровень импульсов — высокий. Сначала защёлкивание, затем сдвиг.

Активные уровень импульсов — высокий. Сначала сдвиг, затем защёлкивание.

Активные уровень импульсов — низкий. Сначала защёлкивание, затем сдвиг.

Активные уровень импульсов — низкий. Сначала сдвиг, затем защёлкивание.

Мастеру приходится настраиваться на тот режим, который используется ведомым. При обмене данными по интерфейсу SPI микроконтроллер может работать как ведущий (режим Master) либо как ведомый (режим Slave). При этом пользователь может задавать следующие параметры:

Операции

Шина SPI может работать с одним ведущим устройством и с одним или несколькими ведомыми устройствами.
Если одно ведомое устройство используется, то SS может быть зафиксирован на низком логическом уровне, если позволяет ведомое устройство. Некоторые ведомые устройства требуют понижение сигнала чипа для начала действий. Примером может служить Maxim MAX1242 ADC, который запускает преобразование при переходе high→low. С множественными ведомыми устройствами, независимый сигнал SS необходим от ведущего для каждого ведомого устройства.
Большинство ведомых устройств имеют три состояния выходов, поэтому их сигнал MISO будет высокоимпедансным, когда устройство не выбрано.

Передача данных

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Протокол передачи по интерфейсу SPI предельно прост и, по сути, идентичен логике работы сдвигового регистра, которая заключается в выполнении операции сдвига и, соответственно, побитного ввода и вывода данных по определенным фронтам сигнала синхронизации. Установка данных при передаче и выборка при приеме всегда выполняются по противоположным фронтам синхронизации. Это необходимо для гарантирования выборки данных после надежного их установления. Если к этому учесть, что в качестве первого фронта в цикле передачи может выступать нарастающий или падающий фронт, то всего возможно четыре варианта логики работы интерфейса SPI. Эти варианты получили название режимов SPI и описываются двумя параметрами:\

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

Часы полярности и фазы

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Возможны четыре комбинации фазы (CPHA) и полярности (CPOL) сигнала SCLK по отношению к сигналам данных. Режимы работы определяются комбинацией бит CPHA и CPOL:

Для обозначения режимов работы интерфейса SPI принято следующее соглашение:

Топология систем связи на базе SPI

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Первый способ позволяет реализовать радиальную структуру связи (топология типа «звезда»), его принято считать основным способом подключения нескольких ведомых устройств. В данном случае для обмена более чем с одним ведомым устройством ведущее устройство должно формировать соответствующее количество сигналов выбора ведомого устройства (SS). При обмене данными с ведомым устройством, соответствующий ему сигнал SS переводится в активное (низкое) состояние, при этом все остальные сигналы SS находятся в неактивном (высоком) состоянии. Выводы данных MISO ведомых устройств соединены параллельно, при этом они находятся в неактивном состоянии, а перед началом обмена один из выходов (выбранного ведомого устройства) переходит в активный режим.

Второй способ позволяет реализовать структуру связи типа «кольцо». В данном случае для активации одновременно нескольких ведомых устройств используется один сигнал SS, а выводы данных всех устройств соединены последовательно и образуют замкнутую цепь. При передаче пакета от ведущего устройства этот пакет получает первое ведомое устройство, которое, в свою очередь, транслирует свой пакет следующему ведомому устройству и так далее. Для того, чтобы пакет от ведущего устройства достиг определенного ведомого устройства, ведущее устройство должно отправить еще несколько пакетов.

Синхронизация в SPI

Приложения

SPI используется с различными периферийными устройствами, такими как:

Преимущества и недостатки интерфейса SPI

Преимущества

Недостатки

Стандарты

Пример программной реализации

Ниже представлен пример программной реализации SPI мастера на языке Си. Линия CS (chip select, выбор микросхемы) должна быть активирована (в большинстве случаев — притянута к низкому уровню), перед тем, как начнётся обмен данными, и деактивирована после окончания обмена. Большинство устройств требуют несколько сеансов передачи с активной линией CS. Эта функция может быть вызвана несколько раз, пока линия активна.

Источник

SPI (перевод из книги Mastering STM32)

Предисловие

Данный перевод сделан мною для группы переводчиков, которые осуществляют перевод книги Mastering STM32 (v0.21). К сожалению, ребята завязли в рутине и мы вряд ли в скором времени увидим перевод полностью, поэтому буду выкладывать свои куски перевода.

Описание SPI

Serial Peripheral Interface (SPI) — это последовательный, синхронный, полнодуплексный протокол передачи данных между главным (master) контроллером (обычно микроконтроллером или другими устройством с программируемой функциональностью) и несколькими ведомыми (slave) устройствами. Как мы увидим далее, SPI позволяет передавать данные как в полнодуплексном, так и в полудуплексном режиме. Спецификация SPI стандарт в протоколах передачи данных и была разработана в конце 70-х компанией Motorola и на данный широко используется как протокол передачи данных для многих цифровых микросхем. В отличие от протокола I2C, SPI не задает жестких условий в протоколе передачи данных по шине, давая ведомым (slave) устройствам полную свободу в структуре сообщений обмена данными.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Рисунок 1: Архитектура типовой SPI шины.

Типовая шина SPI содержит 4 сигнала, как показано на рисунке 1, даже, если возможно управлять некоторыми SPI устройствами, используя лишь 3 сигнала (в таком случае мы говорим о 3-проводном SPI).

Имея две раздельные шины данных, MOSI и MISO, SPI по сути является полнодуплексным интерфейсом передачи данных, таким образом ведомое (slave) устройство может отдавать данные главному (master) пока одновременно принимает данные от него же. В одноранговых шинах (когда одно главное (master) и одно ведомое (slave) устройства), сигнал SS может не использоваться, лишь достаточно его подтянуть к «земле» резистором на несколько килоом, линии MISO/MOSI соединяются в одно общую линию Slave In/Slave Out (SISO). В таком случае мы говорим о двухпроводном SPI, хотя по существу он конечно же трехпроводной.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Рисунок 2: Как передаются данные по шине SPI в полнодуплексном режиме

Каждая транзакция в шине начинается с подачи тактирования в линию SCK в соответствии с допустимой тактовой частотой ведомого (slave) устройства. В то же время главное (master) устройство устанавливает LOW уровень на линии SS и передача данных начинается. Обычно обмен данными подразумевает использование двух регистров (в основном 8-битные, хотя некоторые slave устройства поддерживают 16-битный размер слова), одного в главном (master) устройстве и один в ведомом (slave). Данные побитно сдвигаются в сдвиговом регистре, начиная со старшего бита, пока младший бит сдвигается в этот же самый регистр. В это же самое время, данные от ведомого (slave) устройства сдвигаются в младший бит регистра данных. Когда все биты регистра будут сдвинуты в одну и другую сторону обмен данными будет осуществлен. Если необходимо передать более одного слова данных, сдвиговые регистры обнуляются и процесс повторяется. Обмен данными может продолжаться сколько угодно большое количество циклов тактового генератора. Когда обмен завершен master выключает тактовый сигнал и линия SS возвращается в исходное состояние высокого логического уровня.
Рисунок 2 показывает процесс обмена данными в полнодуплексном режиме, рисунок 3 же демонстрирует процесс в полудуплексном режиме.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Рисунок 3: Как передаются данные по шине SPI в полудуплексном режиме

Полярность и фаза тактового сигнала (Clock Polarity and Phase)

В дополнение к настройкам тактирования шины, master и slave должны «договориться» о полярности и фазе тактового сигнала. SPI спецификация подразумевает две настройки CPOL и CPHA соответственно и многие производители микросхем заимствовали данные названия настроек.
Комбинации полярности и фазы тактового сигнала часто ассоциируют с режимами работы SPI, в таблице 1 можно увидеть данные комбинации. Наиболее общие и часто используемые режимы это 0 и 3, большинство ведомых (slave) устройств поддерживают как минимум пару режимов.

Таблица 1: Режимы работы SPI, соответствующие конфигурации CPOL и CPHA

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Временная диаграмма показана на рисунке 4 и она дополнительно описана ниже:

Вот и все, CPHA=0 подразумевает, что выборка идет по первому фронту импульса тактовой частоты, CPHA=1 же подразумевает, что выборка осуществляется по второму фронту импульса тактовой частоты вне зависимости от того возрастающий ли фронт или спадающий. Необходимо помнить, что при CPHA=0 данные должны быть стабильны за пол цикла до начала первого импульса тактовой частоты.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Рисунок 4: Временная диаграмма для соответствующих настроек CPOL и CPHA

Управление сигналом Slave Select

Как говорилось ранее, ведомое устройство в SPI шине не имеет адреса, по которому его можно было бы идентифицировать, но оно начинает обмен данными и продолжает его пока сигнал Slave Select (SS) находится в низком логическом уровне LOW. STM32 микроконтроллеры предоставляют два режима управления сигналом SS или NSS, как он называется в документации ST. Давайте проанализируем их.

TI режим SPI

SPI интерфейс в микроконтроллерах STM32 поддерживает TI режим, когда микроконтроллер работает в режиме master и сигнал NSS настроен на аппаратный режим работы. В режиме TI полярность и фаза тактового сигнала SPI автоматически устанавливаются в соответствии с требованиями протокола Texas Instruments вне зависимости от того какие настройки были выбраны до этого. Управление сигналом NSS также специфично для протокола TI, NSS сигнал совершает серию импульсов в конце каждого передаваемого байта (с LOW уровня в HIGH в начале передачи младшего бита и с HIGH в LOW в начале передачи старшего бита). Для более подробной информации можете обратиться в референс мануалу соответствующего микроконтроллера.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Таблица 2: SPI периферия всех 16-ти плат Nucleo

Наличие SPI интерфейсов в микроконтроллерах STM32

В зависимости от семейства и корпуса, микронтроллеры STM32 могут иметь до шести независимых SPI интерфейсов. Таблица 2 демонстрирует наличие интерфейсов всех плат Nucleo, рассматриваемых в рамках этой книги.
Для каждого SPI интерфейса в таблице 2 показаны пины MOSI, MISO и SCK. Темными строками выделены альтернативные пины, которые могут быть использованы благодаря соответствующей разводке платы. Для примера, микроконтроллер STM32F401RE может использовать SPI1 с пинами PA7, PA6 и PA5, но возможно использовать также пины PB5, PB4 и PB3 как альтернативные с помощью ремаппинга. Стоит заметить также, что SPI1 использует одни и те же пины во всех микроконтроллерах STM32 в корпусах LQFP-64, что сделано для pin-to-pin совместимости различных семейств микроконтроллеров STM32.
Теперь мы готовы рассмотреть как использовать CubeHAL API для программирования данного интерфейса.

HAL_SPI модуль

Для программирования SPI HAL определяет С структуру SPI_HandleTypeDef:

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Давайте проанализируем наиболее важные поля данной структуры.

Настройка SPI производится с использованием объекта структуры SPI_InitTypeDef:

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Как обычно, для конфигурации SPI мы используем функцию:

которая принимает в качестве входного параметра указатель на объект структуры SPI_HandleTypeDef, рассмотренной выше.

Обмен сообщениями с использованием SPI

Как только SPI интерфейс сконфигурирован, мы можем начать обмен данными с ведомыми (slave) устройствами. Так как SPI спецификации не описывает конкретный протокол для передаваемых данных, то и нет особой разницы между master и slave при настройке через CubeHAL. Разница лишь в параметре режимов в структуре SPI_InitTypeDef.
Как обычно, CubeHAL предоставляет три режима настройки шины SPI: опрос, прерывание и режим DMA.

Для отправки нескольких байт в режиме опроса необходимо использовать функцию:

Параметры, принимаемые этой функцией не нуждаются в описании, т. к. они идентичны уже изученым ранее интерфейсам, например UART. Эта функция может быть использована, если SPI настроен как SPI_DIRECTION_1LINE или SPI_DIRECTION_2LINES. Для приема нескольких байт в режиме опроса мы используем функцию:

Эта функция может использоваться в любом из трех режимов Direction.
Если ведомое (slave) устройство поддерживает полнодуплексный режим, то соответственно можно использовать функцию:

которая отправляет несколько байт, одновременно принимая ответ. Функция может быть использована только, если параметр Direction настроен на SPI_DIRECTION_2LINES.
Для обмена данными с использованием прерываний CubeHAL предоставляет следующие три функции:

CubeHAL также позволяет передавать данные с DMA и функции похожи на три, представленные выше, лишь с префиксом _DMA в конце.

Используя прерывания или DMA, мы должны быть готовы к тому, что в конце передачи мы получим ассинхронный запрос об этом. Это значит, что мы должны принять этот запрос и обработать его, разрешив и настроив контроллер прерывания NVIC и определив функцию HAL_SPI_IRQHandler() обработчик прерывания. Возможно шесть различных вызовов перечисленных в таблице 3.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Когда SPI настроен на работу с DMA в циклическом режиме, можно использовать несколько функий для паузы, продолжения и отмены циклического режима отправки/приема DMA:

Также в данном режиме существуют следующие ограничения:

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

Максимальная частота тактирования при использовании CubeHAL

Частота SCK производна от PCLK путем деления на соответствующий предделитель. Этот предделитель принимает значения от 21 до 28. Тем не менее, как уже несколько раз ранее было замечено, CubeHAL добавляет неизбежный расход ресурсов на управление периферией. И это также применимо и к SPI. Фактически, использование CubeHAL не дает возможности получить все возможные частоты SPI с различными режимами работы.
Инженеры ST четко прописали это в документации на CubeHAL. Если вы откроете файл stm32XXxx_hal_-spi.c, то в районе 60 строки вы можете увидеть две таблицы, в которых прописаны максимально-допустимые скорости передачи данных в зависимости от параметра Direction и способа обмена данными по SPI (опрос, прерывание или DMA).
Для примера, в микроконтроллерах STM32F4 мы можем получить частоту SCK, равную fPCLK/8, если SPI интерфейс работает в режиме ведомого (slave) и мы программируем с использованием прерываний в CubeHAL.

Использование CubeMX для настройки SPI

Для использования CubeMX в первую очеред необходимо включить необходимый SPI интерфейс. Далее выбрать необходимый режим работы, как показано на рисунке 5. Далее, необходимо настроить поведение сигнала NSS. После настройки этих двух параметров можно продолжить конфигурацию во вкладке Configuration CubeMX.

spi mode что это. Смотреть фото spi mode что это. Смотреть картинку spi mode что это. Картинка про spi mode что это. Фото spi mode что это

Рисунок 5: Как выбрать режим работы SPI в CubeMX

Если статья показалась вам полезной подписывайтесь на мой канал в telegram, чтобы не пропустить анонсы новых статей и другую интересную информацию для разработчиков.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *