Установите вывод SPI MOSI на низкий уровень холостого хода на Due?

У меня есть подчиненный SPI, подключенный к Due. Я отправляю подчиненный SPI в спящий режим. Во время сна мне нужно опустить все штифты, включая MOSI. Каков наилучший способ опустить штифт SPI-4 на должном уровне?

Вотаналогичный вопрос, но он касается чипа AVR, и ответ, очевидно, не относится к SAM3X8, который является ARM.

, 👍2

Обсуждение

Это единственный раб, который подключен к Должному?, @Sim Son

@SimSon Да, это единственный., @Dmitry Grigoryev

Затем вы можете отключить SPI и установить вывод МИСО как низкий выходной сигнал, @Sim Son

Отключите SPI, отключите периферийные часы для SPI, верните соответствующие контакты из альтернативных функций в обычные и установите правильные выходы. Но вы также должны отключить питание для ведомого устройства. В противном случае низкий уровень на его чипе select pin означает, что он будет активен, @KIIV

@KIIV Доступен ли SPI-4 в качестве цифрового вывода ввода-вывода? Который из них?, @Dmitry Grigoryev

@DmitryGrigoryev Есть только два SPI и еще четыре USART с режимом SPI. Однако это не имеет значения, штифты фиксированы и поэтому чередуют функции для этих штифтов. Вы должны использовать datasheet для MCU, чтобы понять все это., @KIIV

@KIIV Я говорю о SPI-4 **pin**, доступном на [Duo](https://www.arduino.cc/en/Reference/SPI#Connections), @Dmitry Grigoryev

@DmitryGrigoryev https://www.arduino.cc/en/uploads/Main/arduino-Due-schematic.pdf -> Контакт 4 заголовка SPI-PA26. Итак, вы должны заглянуть в таблицу данных и выяснить, как установить/сбросить ее альтернативную функцию, @KIIV


1 ответ


1

Мне удалось установить MOSI на низкий уровень, установив бит 26 в регистрах PIOA->PIO_PER>, PIOA->PIO_OER> и PIOA->PIO_CODR>. Чтобы снова использовать SPI, необходимо установить бит 26 в PIOA->PIO_PDR> (это отменяет эффект PIOA->PIO_PER>).

,