Есть ли окончательное руководство по Arduino DUE?

Я ищу справочный документ или систему документации, которая конкретно относится как минимум:

  • Трафаретная печать PIN имя/номер
  • SAM3X8E PIN
  • Регистрационный номер
  • Номер канала
  • Название порта

В моем случае я хочу изменить характеристики ШИМ контактов 2 и 3 (как указано на физической плате). Различные сообщения на форуме обсуждают настройку регистров, сопоставление выводов регистров, но, похоже, ничего не происходит.

На печатном Arduino контакты от 2 до 13 перечислены как ШИМ-контакты, всего 12. На этой странице контакты 2 и 3 сопоставляются с PB25 и PC28 соответственно на чипе SAM3X8E. Предположительно, это означает, что вывод 2 находится на порту "B", а 3-на порту "C". Ссылаясь на эту страницу, пример кода проходит через "все 8" ШИМ-портов и контактов, что в соответствии со схемой именования регистров PIO_ASBR_Pxxпредполагает, что контакты с номерами от 16 до 19 находятся на порту B, а от 21 до 24-на порту C. Позже порты PWM снова повторяются с помощью PWM->PWM_CH_NUM[i], где i работает от 0 до PWMCH_NUM_NUMBER - 1, что предлагается как 8 в общей сложности.

Затем "Вывод 2" на плате, по-видимому, сопоставляется с именованным выводом на чипе Atmel PB25, где-то между 21 и 24 именем регистра и между 0 и 7 индексом канала. Конечно, есть место, которое пытается гармонизировать все эти разрозненные соглашения об именах.

Дополнительная информация:

Например, ШИМ/цифровой вывод 2 отображается на PB25 на чипе в соответствии со схемой, предоставленной Majenko. PB25 не входит в состав ШИМ - контактов в соответствии с техническими данными микросхемы. Как мне это понять?

При ссылке на имя PIO_ASBR_19это 20-й бит в регистре PIO_ASBR, но как этот бит сопоставляется с отображением порта/pin? Затем, хотя в таблице данных обсуждается регистр "PIO_ASBR", поскольку он может относиться не более чем к 32 контактам, в таблице данных не раскрывается, как отобразить лишние контакты.

, 👍1

Обсуждение

Имя -> pin -> отображение порта/бита можно получить из [схемы](https://www.arduino.cc/en/uploads/Main/arduino-Due-schematic.pdf). ШИМ-отображения канала - > pin можно получить из таблицы данных SAM3X8E., @Majenko

в магазине Arduino: https://content.arduino.cc/assets/Pinout-Due_latest.pdf, @Juraj

Простите мою простоту, но похоже, что обе ссылки, схема и распиновка, просто связывают имена контактов, напечатанных на экране, с обозначением P[A|B|C|D][dd]. Когда я просматриваю (огромную) таблицу микросхем, я не могу найти большинство определений регистров, необходимых для сопоставления с обозначением контакта. Не могли бы вы помочь мне истолковать этот документ?, @J Collins

PC7-это порт C бит 7. Тут особо нечего толковать. Для специальных периферийных устройств, таких как PWM, вы просто смотрите их в таблице мультиплексирования портов (раздел 9.3)., @Majenko

@Juraj Я вижу, что есть много информации, но она все еще не может определить 1) Какой идентификатор ШИМ (i=0..7) Соответствует Pin 2, какой бит pin находится в любом регистре (16..19, 21..24)., @J Collins

@Majenko: Вывод 2 - это PB25, который не помогает идентифицировать его идентификатор ШИМ или позицию в регистре., @J Collins

Я вижу там контакты с надписями PWML1, PWMH0 . Это идентификатор ШИМ?, @Juraj

Вывод 2-PB25. Это бит 25 в регистрах порта B. В матричной таблице PB25 имеет альтернативную функцию TIOA0., @Majenko

@Juraj Возможно, это так, это определенно не соответствует 12 контактам, напечатанным на плате, и я вижу, что контакты 2 и 3 не являются членами этого набора., @J Collins

Я думаю, что ваша путаница может быть вызвана тем фактом, что существует два способа генерации ШИМ: использование модуля "Быстрый ШИМ" и использование таймера., @Majenko

@Majenko вы заметите из моей второй ссылки с примером кода, что PB25 не является одним из регистров, адресуемых при включении высокоскоростного ШИМ. Они 16..19 на порту B и 21..24 на порту C, которые по отображению контактов, которые я связал, являются D47..44 и D9..6 соответственно, опять же отличаются от данных, предоставленных Juraj., @J Collins

Кроме того, вы можете быть правы, Arduino кажется мне немного беспорядочным, когда дело доходит до чего-то слегка продвинутого. Тогда я мог бы задать более простой вопрос: как я могу получить более высокую частоту переключения ШИМ на контактах 2 и 3?, @J Collins

Я всегда придерживался мнения, что Due, в общем, является одной из худших плат Arduino, когда-либо созданных. Я бы никогда ни за что не рекомендовал его., @Majenko


1 ответ


1

Полная распиновка доступна на arduino.cc в магазине и в разделе "Начало работы".

Например, ШИМ/цифровой вывод 2 сопоставляется с PB25 на чипе. PB25 не входит в состав ШИМ - контактов в соответствии с техническими данными микросхемы. Как мне это понять?

Ядро Arduino использует таймеры для выполнения ШИМ на контактах без встроенной поддержки ШИМ.

В исходном коде analogWrite вы можете увидеть разделы для выводов DAC, PWM и TIMER PWM.

Информация о контактах для ядра Arduino находится в variant.cpp.

,