Почему Arduino MEGA 2560 имеет разные порты

В настоящее время я смотрю на свою плату Arduino MEGA 2560 и мне просто интересно, почему к ней есть разные порты, например, аналоговый, цифровой, коммуникационный? на самом деле я видел это только в некоторых микроконтроллерах. Не многие микроконтроллеры имеют порты, предназначенные для определенных вещей. Может ли кто-нибудь дать мне ответ о том, почему существуют разные порты для микроконтроллера? это облегчает чип для обработки и т. Д. Подробный, но не слишком подробный ответ был бы великолепен!

, 👍3

Обсуждение

- Не многие микроконтроллеры имеют порты, предназначенные для определенных вещей." [требуется цитирование], @Ignacio Vazquez-Abrams

Я помню, как использовал чип Attiny, не уверенный в точной модели,который в основном имел только порты A,B,C, D и не имел никаких меток, таких как ПОРТ A = Запись, ПОРТ B = Связь и т. Д. В основном, исходя из моего опыта, я думаю, что видел, что не многие микроконтроллеры, похоже, имеют выделенные порты для них, @Zer0

Большинство микроконтроллеров ATtiny имеют периферийные устройства, прикрепленные к определенным контактам. У ATtinyX41 есть переназначаемые контакты для OC, но они также довольно новые., @Ignacio Vazquez-Abrams

Почему у них есть специальные контакты для них? в чем причина этого? не могли бы вы дать мне объяснение, @Zer0

Вероятно, потому, что это означает меньше логики, что означает меньше первоначальных затрат на разработку, что означает более низкие затраты для системного интегратора., @Ignacio Vazquez-Abrams

Это меня очень смутило. Может быть, немного приглушить его?, @Zer0

На самом деле большинство контактов ATmega2560 имеют две или более функций. ATtiny втискивает множество функций в один контакт, потому что у него низкое количество пинов и чтобы сделать его универсальным, а значит, и продаваемым., @geometrikal

Большинство микроконтроллеров имеют множество выводов с различными функциями, но чрезвычайно сложные схемы того, что поддерживается и чего не поддерживается на каждом выводе, часто кажутся производными от внутренних деталей, известных только разработчикам. Короче говоря, вы внимательно изучаете технический паспорт, но не задаетесь (продуктивно) вопросом, почему. Отличный способ выстрелить себе в ногу (если вы пренебрегаете проверкой) - это сконструировать печатную плату, соединяющую сигнал с выводом "общего назначения", который однозначно не поддерживает тот специальный режим "один", для которого он вам действительно нужен..., @Chris Stratton


1 ответ


1

Это потому, что Arduino настроил Mega для этого. В микроконтроллерах вам нужно выбрать, какое использование будет иметь каждый пин, в зависимости от доступности. Чтобы упростить пользовательский интерфейс, arduino сделал это на основе того, что обычно используется всеми. Даже в этом случае некоторые функции все еще не отключены.

Например, 50,51,52,53-это контакты SPI на mega, которые используют прерывание смены контактов для работы. Таким образом, нет необходимости использовать их для SPI, мы также можем использовать их для прерывания смены контакта.

Аналогично обстоит дело с выводами 10,11,12,13. Эти ШИМ-контакты также можно использовать для прерывания смены контактов, но другие ШИМ-контакты не могут этого сделать.

,

Это неправильно! В большинстве atmega, attiny некоторые контакты могут служить определенной цели (например, usart, spi, i2c, аналоговый вход), и хотя вы можете использовать их для цифрового ввода или вывода, вы не можете выбрать другие контакты для этих конкретных целей. Следовательно, это не "Arduino, который настроил мега"., @jfpoilpret

Что ж, если вы посмотрите на технический паспорт atmega 2560, используемого на mega, вы увидите множество функций для одного контакта. а также есть некоторые контакты, на которых есть прерывания смены контактов, но они не работают на мега-плате. Я видел работу микроконтроллера ARM cortex-M4, на каждом выводе существует множество функций, и вам необходимо запрограммировать файл конфигурации платы, чтобы включить, отключить некоторые контакты регистров и, в конечном счете, функции. Аналогичная версия существует на контроллерах ATmega, если вы можете увидеть правильное программирование в CVAVR., @Karthik Satya Sai Korada