Переназначить функции SPI на контакты Arduino Zero по умолчанию с помощью программного обеспечения?

Я просматриваю документацию по Arduino Zero и немного запутался.

Это указывает на то, что контакты 13, 12 и 11 могут использоваться для CIPO, COPI и SCK, но использование SPI.begin() помещает сигналы на 6-контактную распиновку SPI заголовка, которая имеет смысл, поскольку он предназначен для SPI.

Есть ли способ переключиться на цифровые контакты с помощью кода C? Или мне нужно редактировать заголовочные файлы? Мы используем другую плату, которая может подключаться только к цифровым контактам.

, 👍2

Обсуждение

похоже, что SERCOM1 можно настроить как SPI на контактах 11, 12, 13, но как вы хотите его использовать?, @Juraj

Я отправляю 32-битное слово на другое устройство по протоколу SPI и хочу использовать все те же функции, что и 6-контактный заголовок на цифровых контактах по умолчанию. Я пробовал переназначать контакты с помощью SERCOM, но код, похоже, не работал., @eramirez2024

в руководстве не показано, как использовать SERCOM для SPI, но должен работать тот же подход, что и для Wire: https://docs.arduino.cc/tutorials/communication/SamdSercom, @Juraj

руководство по SPI от Adafruit https://learn.adafruit.com/using-atsamd21-sercom-to-add-more-spi-i2c-serial-ports/creating-a-new-spi, @Juraj


1 ответ


-1

РЕДАКТИРОВАТЬ: возможно неверный ответ ниже, см. комментарии.


К сожалению, насколько мне известно, Arduino Zero не поддерживает переназначение контактов SPI. Многие другие современные платы, такие как ESP8266/ESP32, но не Zero, по крайней мере, насколько я могу судить.

,

Очень жаль, если это так. Зачем им указывать параметры SPI на цифровых выводах в документации? Или он просто устарел? https://docs.arduino.cc/static/b1fbc77f1b73dcd9ac379af596e3472e/ABX00003-full-pinout.pdf, @eramirez2024

@ eramirez2024 eramirez2024 То, что его нельзя переназначить, не означает, что у него только один SERCOM, вы, вероятно, можете использовать другой. Например, SERCOM0 находится на контактах PA04..PA07., @KIIV

@KIIV Извинения, я не знал, что Zero работает на SAMD21, и я не очень хорошо разбираюсь в SERCOM, однако я нашел это чрезвычайно актуальное руководство, которое может помочь (особенно страницы 11-14) https://cdn-learn. adafruit.com/downloads/pdf/using-atsamd21-sercom-to-add-more-spi-i2c-serial-ports.pdf, @kylemohr