Допустимые параметры выходного порта на Mega 2560

Я хотел бы использовать эту библиотеку на Arduino Mega2560:

https://github.com/gueei/DShot-Arduino

Однако макрос DSHOT_PORT должен быть определен для Mega2560 здесь: https://github.com/gueei/DShot-Arduino/blob/master/src/DShot.h

Поэтому мне нужно добавить макрос #if defined(__AVR_ATmega2560__) к этому заголовку DShot.h, однако мне неясно, где искать отображение порта на 2560 mega. Здесь я смотрю прямо на саму схему: https://www.arduino.cc/en/uploads/Main/arduino-mega2560-schematic.pdf

И поймите, что "порты" - это группы ввода-вывода, где контакты описываются как P? #, ? - буква порта, а # - 0-7.

Итак, каковы мои действительные варианты? Похоже, что некоторые порты (A, C, L) вообще не закреплены, некоторые (D, J) - только несколько контактов, и почти ни один из них (кроме K / F) не использует все контакты порта. Кроме того, я вижу, что большинство этих контактов зарезервированы для некоторого типа функциональности (аналог, SPI и т. Д.). Я предполагаю, что ищу порт с доступными контактами, зарезервированными для ШИМ, например порт B (контакты 10-13 - это ШИМ). Будет ли это правильно?

, 👍0

Обсуждение

Согласно PDF-файлу, на который вы ссылаетесь, порт A сопоставляется с цифровыми контактами 22-29 на плате, порт C - с 30-37, порт C - с 42-49., @Mat

Вы не заботитесь о дополнительной функциональности вывода, если только вам не нужна эта дополнительная функциональность. Зачем вам нужен ШИМ?, @Edgar Bonet

Спасибо за разъяснение, я правильно прочитал рисунок. Я предположил, что линии, которые остановились рано, не были завершены на чертеже (функция поиска PDF подвела меня). Кроме того, что касается дополнительной функциональности, я предположил, что PWM, потому что DShot часто является заменой PWM (насколько ESC). Мешает ли мне использовать PIN другая функциональность (например, pin 22 - это сигнал SPI PB3 'MOSI')?, @DrTarr


1 ответ


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

1

Казалось бы, для связи этой библиотеке нужен один контакт. Таким образом, на самом деле не имеет значения, имеет ли выбранный вами порт только несколько доступных контактов. Кроме того, вам все равно, что некоторые контакты могут иметь дополнительную функциональность, такую как SPI, I2C и т. Д., Если вы не планируете использовать эту функциональность.

Есть одна вещь, о которой вы должны знать: библиотека использует инструкции по сборке in и out для доступа к порту. Эти инструкции могут обращаться только к тем портам, которые отображаются в обычном пространстве ввода -вывода микроконтроллера, а не к тем, которые находятся в пространстве “расширенный ввод-вывод”. В случае ATmega2560 это означает, что вы можете использовать любой из портов A -G, но вы не можете использовать H, J, K или L.

,

Спасибо за обратную связь! Похоже, я могу использовать почти любой контакт на плате., @DrTarr