Какие контакты можно использовать для выбора микросхемы (CS, CC) на Arduino Nano Every?
Я проверил технические характеристики нано, но не нашел никакой информации о нем. Попытался установить его на контакт 26 (цифровой выход)
@Ryan Dick, 👍1
Обсуждение1 ответ
В следующем ответе предполагается, что Arduino является ведущим устройством.
Для этого можно использовать любой вывод (по крайней мере, любой вывод GPIO).
Несколько устройств SPI могут быть подключены к периферийному устройству SPI на Arduino (в принципе).
Каждое устройство SPI должно иметь собственный вывод CS/CC, что является обязательным при использовании нескольких устройств SPI.
По этой причине нет единого вывода, который SPI может определить для использования в качестве вывода CS/CC. Однако он должен выдавать значение GND или VCC, поэтому вывод CS/CC обычно следует конфигурировать как вывод цифрового входа (как ведущий) для каждого подчиненного устройства. (См. также примечание КИЕВ); в качестве ведомого контакт CS/CC должен быть цифровым выходным контактом.
Для других контактов (MOSI, MISO, CLK) Arduino использует фиксированный набор контактов, поскольку все устройства SPI будут подключены к этим контактам.
Таким образом, вывод CS можно настраивать, а другие выводы spi фиксированы.
Я не знаком с чипом на этой плате, но если он похож на другие платы на основе AVR, «основной» вывод CS должен быть установлен на выход (вывод 10 на Uno - понятия не имею, что он будет на этой плате). В противном случае SPI не будет работать., @Majenko
Однако не забывайте о выводе SS (выбор ведомого) на Arduino на базе AVR. Он должен быть установлен как выход (или, по крайней мере, использоваться как выход). В противном случае низкий уровень на этом выводе приводит к переключению SPI в ведомый режим. Даже если он не подключен (в качестве входа), он может быть источником странных взаимоблокировок в шумной среде., @KIIV
@Majenko Я думал, что контакт 10 был основным только из-за того, что щиты используют этот контакт для упрощения макета. На самом деле его всегда можно установить на любой контакт (GPIO)., @Michel Keijzers
@KIIV Я упоминаю об этом: таким образом, контакт CS / CC обычно должен быть настроен как цифровой выходной контакт ... нетипичной ситуацией может быть подключение его к GND или VCC (забыл, что именно) в случае одного устройства SPI., @Michel Keijzers
Периферийный модуль SPI в микросхеме имеет два режима работы: один — ведущий, а другой — подчиненный. Выбор режима зависит от настройки DDR основного вывода CS. Это глупый способ сделать это, но это то, что решили сделать дизайнеры Atmel..., @Majenko
@MichelKeijzers Я думаю, что это общее название сигнала. В любом случае /SS активен на низком уровне, поэтому в качестве входа его следует удерживать на Vcc. SPI поддерживает режим с несколькими мастерами, и этот контакт используется для его архивирования (единственная возможность отключить его - использовать его в качестве выхода), @KIIV
@Majenko Спасибо, что упомянули об этом (до сих пор я всегда использовал Arduino в качестве мастера, я добавил его в свой вопрос)., @Michel Keijzers
@KIIV, вы правы, я должен адаптировать это в своем ответе., @Michel Keijzers
@Majenko, это не ATmega328 или 2560. Это 4809. У него есть флаг в регистре управления для режима ведущий / подчиненный, и этот флаг устанавливается библиотекой SPI. вывод SS можно использовать в качестве входа в ведущем режиме SPI. Периферийные устройства 4809 больше похожи на периферийные устройства SAMD, чем на классические периферийные устройства ATmega MCU., @Juraj
Вау, есть плата под названием Arduino Nano Every. (Я думал, что это просто означает «на каждом контакте?»). В любом случае, возможность входа /SS для изменения режима с ведущего на ведомый остается, но, по крайней мере, ее можно отключить, установив бит SSD в регистре SPIn.CTRLB. Это во многом зависит от библиотеки SPI., @KIIV
@KIIV, https://github.com/arduino/ArduinoCore-megaavr/blob/d2d1a2a7bc4654b907427cfb8d1003134fa6b340/libraries/SPI/src/SPI.cpp#L52, @Juraj
«Однако он должен давать значение GND или VCC, поэтому вывод CS/CC обычно должен быть сконфигурирован как вывод цифрового входа (как ведущий) для каждого ведомого. (См. также примечание KIIV); в качестве ведомого вывод CS/CC должен быть цифровым выходным контактом». Я этого не понимаю. Выводы CS являются выходами., @Juraj
- Аппаратный SPI Arduino NANO не работает
- проблема с записью SD
- Как увеличить скорость записи на SD-карту в Ардуино
- Сделать CS (chip select) для работаты в SPI (для и SD карты и OLED)
- Использование экрана SD-карты на Arduino Due
- Более 4 MCP23S17 на 1 шине SPI
- Загрузить сайт с SD-карты
- Проблема с NRF24L01
у Nano Every нет контакта 26, @Juraj