Можно ли использовать специальные контакты Arduino Due для цифровой записи и чтения?

Здравствуйте, в документации для arduino указано расположение контактов. Я делаю собственную плату. используя схемы сборов, и у меня все еще немного мало контактов. Кроме того, некоторые из специальных булавок обеспечивают лучшее расположение следов.

Возможно ли digitalWrite()/digitalRead() специальные контакты, такие как:

  • Прием (0–3)
  • Передача (0–3)
  • ПДД (0–1)
  • Процент вероятности нежелательной почты (0–1)
  • CANRX
  • КАНТКС
  • Индикатор RX
  • Передача светодиодов
  • МИСО
  • МОСИ
  • СКЛК

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

У меня нет должного, поэтому, к сожалению, я не могу его проверить

, 👍0


2 ответа


Лучший ответ:

1

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

Каждая функция SAM3X8E является «мультиплексной». То есть он разделяет контакты с другими функциями. Например, CANTX0 — это альтернативная функция контакта PA0.

Вы можете найти все альтернативные сопоставления функций на странице 40 техническое описание.

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

Я включил сюда комментарии из файлов вариантов для быстрого ознакомления:

/*
 * DUE Board pin   |  PORT  | Label
 * ----------------+--------+-------
 *   0             |  PA8   | "RX0"
 *   1             |  PA9   | "TX0"
 *   2       TIOA0 |  PB25  |
 *   3       TIOA7 |  PC28  |
 *   4       NPCS1 |  PA29  |
 *           TIOB6 |  PC26  |
 *   5       TIOA6 |  PC25  |
 *   6       PWML7 |  PC24  |
 *   7       PWML6 |  PC23  |
 *   8       PWML5 |  PC22  |
 *   9       PWML4 |  PC21  |
 *  10       NPCS0 |  PA28  |
 *           TIOB7 |  PC29  |
 *  11       TIOA8 |  PD7   |
 *  12       TIOB8 |  PD8   |
 *  13       TIOB0 |  PB27  | LED AMBER "L"
 *  14       TXD3  |  PD4   | "TX3"
 *  15       RXD3  |  PD5   | "RX3"
 *  16       TXD1  |  PA13  | "TX2"
 *  17       RXD1  |  PA12  | "RX2"
 *  18       TXD0  |  PA11  | "TX1"
 *  19       RXD0  |  PA10  | "RX1"
 *  20             |  PB12  | "SDA"
 *  21             |  PB13  | "SCL"
 *  22             |  PB26  |
 *  23             |  PA14  |
 *  24             |  PA15  |
 *  25             |  PD0   |
 *  26             |  PD1   |
 *  27             |  PD2   |
 *  28             |  PD3   |
 *  29             |  PD6   |
 *  30             |  PD9   |
 *  31             |  PA7   |
 *  32             |  PD10  |
 *  33             |  PC1   |
 *  34             |  PC2   |
 *  35             |  PC3   |
 *  36             |  PC4   |
 *  37             |  PC5   |
 *  38             |  PC6   |
 *  39             |  PC7   |
 *  40             |  PC8   |
 *  41             |  PC9   |
 *  42             |  PA19  |
 *  43             |  PA20  |
 *  44             |  PC19  |
 *  45             |  PC18  |
 *  46             |  PC17  |
 *  47             |  PC16  |
 *  48             |  PC15  |
 *  49             |  PC14  |
 *  50             |  PC13  |
 *  51             |  PC12  |
 *  52       NPCS2 |  PB21  |
 *  53             |  PB14  |
 *  54             |  PA16  | "A0"
 *  55             |  PA24  | "A1"
 *  56             |  PA23  | "A2"
 *  57             |  PA22  | "A3"
 *  58       TIOB2 |  PA6   | "A4"
 *  69             |  PA4   | "A5"
 *  60       TIOB1 |  PA3   | "A6"
 *  61       TIOA1 |  PA2   | "A7"
 *  62             |  PB17  | "A8"
 *  63             |  PB18  | "A9"
 *  64             |  PB19  | "A10"
 *  65             |  PB20  | "A11"
 *  66             |  PB15  | "DAC0"
 *  67             |  PB16  | "DAC1"
 *  68             |  PA1   | "CANRX"
 *  69             |  PA0   | "CANTX"
 *  70             |  PA17  | "SDA1"
 *  71             |  PA18  | "SCL1"
 *  72             |  PC30  | LED AMBER "RX"
 *  73             |  PA21  | LED AMBER "TX"
 *  74       MISO  |  PA25  |
 *  75       MOSI  |  PA26  |
 *  76       SCLK  |  PA27  |
 *  77       NPCS0 |  PA28  |
 *  78       NPCS3 |  PB23  | unconnected!
,

Что ж, с PA0 все в порядке, поскольку он не используется совместно с другими выводами. Цифровые 10 и 4 имеют общие контакты (PA29), как это работает? если записать высокий уровень в D10 и низкий уровень в D4, как это будет работать? они оба не закоротит?, @Jack

Кроме того, если я получаю доступ к контактам с помощью манипуляций с регистрами, мне все еще нужно изменять файлы вариантов? У них есть номер Arduino (69 для CANTX), поэтому я подумал, что теоретически он должен работать, просто нужно подтверждение., @Jack

D10 - это PA28, не так ли? Если в файлах вариантов указан номер, вы можете просто использовать его, как и для любого другого цифрового контакта. Если вы используете манипулирование портами, то файлы вариантов вообще не вступают в игру., @Majenko

Если вы посмотрите на ссылку в вопросе, которая находится на официальной странице Arduino, «контакт 4 подключен к PA29 и PC26» и «контакт 10 подключен к PA28 и PC29»., @Jack

Я хотел бы принять ваш комментарий как ответ, сэр. особенно эта строка «Если в файлах вариантов назначен номер, вы можете просто использовать его, как и для любого другого цифрового пин-кода», если вы можете включить его в ответ. Также ссылка на [файл варианта](https://github.com/arduino/ArduinoCore-sam/blob/master/variants/arduino_due_x/variant.h) для ленивых людей, которые могут прочитать эту тему., @Jack

@Джек Сделано и сделано, @Majenko

Большое спасибо!, @Jack

@ Джек, вот как вы можете сделать свой собственный вариант платы, ссылаясь на официальный пакет плат SAM https://arduinoprosto.ru/q/54484/adding-a-custom-board-to-the-arduino-ide/60660 №60660, @Juraj


0

Насколько я знаю, вы можете использовать их и как GPIO (я точно знаю для Arduino Uno/Mega и т. д., я знаю для STM32, я был бы очень удивлен, если бы это было невозможно для Arduino Due.

Другие решения используют сдвиговые регистры, например:

  • 74HC595: для добавления до 32 выходов с использованием SPI.
  • 74HC565: для добавления до 32 входов с использованием SPI.

Или вы можете использовать удлинители GPIO с использованием SPI или I2C.

,

Да, в худшем случае я использую удлинитель GPIO MCP23S17., @Jack

Я могу себе представить, сдвиговые регистры проще (достаточно документации для Arduino Uno/Mega, вероятно, будет работать и на Due). Почему бы вам не попробовать написать напрямую на контакт, а то у вас нет под рукой Due?, @Michel Keijzers

К сожалению, у меня нет под рукой должного, я не могу найти ни одного магазина, который продает их, есть интернет-магазины, которые берут дорогую цену в 30 долларов за доставку., @Jack

Вы можете попробовать aliexpress, но тогда вам придется ждать очень долго., @Michel Keijzers