Справочник по распиновке Arduino UNO R4 Minima

Arduino UNO R4 Minima представляет собой значительный шаг вперёд для сообщества мейкеров. Он знаменует окончательный переход от старой 8-битной архитектуры AVR (ATmega328P в Arduino UNO R3) к современной и гораздо более мощной 32-битной экосистеме Arm Cortex-M.

Благодаря интеграции мощного микроконтроллера Renesas RA4M1 при сохранении привычной формы платы UNO, UNO R4 Minima обеспечивает значительный прирост скорости, памяти и возможностей. Он предлагает такие расширенные функции, как шина CAN (Controller Area Network), встроенный операционный усилитель (OPAMP) и высокоразрешающий цифро-аналоговый преобразователь (DAC), при этом сохраняя совместимость с обширной библиотекой существующих шилдов и аксессуаров.

Однако эта новая мощность приходит с некоторыми новыми правилами. Есть значительные изменения в архитектуре питания, особенно в отношении линии питания 3,3V и ограничений тока GPIO. Если вы переходите с надёжного старого Arduino UNO R3, вам необходимо внимательно изучить распиновку, чтобы ваши проекты перешли плавно и без повреждения новой платы.

Распиновка Arduino UNO R4 Minima

UNO R4 Minima имеет 32 вывода. Распиновка выглядит следующим образом:

Arduino UNO R4 Minima Pinout Reference

Давайте подробнее рассмотрим выводы Arduino и их функции, начиная с цифровых выводов.

Цифровые выводы ввода/вывода Arduino UNO R4 Minima

UNO R4 Minima включает 14 цифровых выводов ввода/вывода с маркировкой от D0 до D13.

Arduino UNO R4 Minima Pinout Reference

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

Для использования цифрового вывода сначала нужно указать Arduino, как он должен работать, с помощью функции pinMode(). Если вы хотите установить вывод как вход, используйте pinMode(pin, INPUT), а затем считывайте состояние вывода функцией digitalRead(pin). Если вы хотите установить вывод как выход, используйте pinMode(pin, OUTPUT). Затем управляйте выводом, записывая digitalWrite(pin, HIGH) для включения или digitalWrite(pin, LOW) для выключения.

При использовании цифровых выводов ввода/вывода необходимо учитывать несколько важных электрических ограничений. Эти выводы работают на логическом уровне 5V. Каждый цифровой вывод может безопасно обрабатывать до 8 мА тока, а суммарный ток всех цифровых выводов не должен превышать 60 мА.

Это важное отличие от микроконтроллера ATmega328P, используемого в UNO R3, где каждый вывод мог обрабатывать от 20 до 40 мА. Если вы переходите с UNO R3, необходимо быть осторожным и не подключать высокотоковые нагрузки (такие как низкоомные оптопары или несколько светодиодов) напрямую без использования надлежащих токоограничивающих резисторов или транзисторных ключей. Превышение лимита 8 мА может привести к необратимому повреждению внутренних выходных драйверов микроконтроллера.

Внутренние подтягивающие резисторы

Каждый цифровой вывод UNO R4 Minima включает встроенный подтягивающий резистор. Эта функция особенно полезна, когда вывод используется как вход и к нему ничего не подключено. Без подтягивающего резистора входной вывод может «плавать», случайно переключаясь между HIGH и LOW из-за электрических помех. Это может вызывать непредсказуемые и сбивающие с толку результаты.

Внутренний подтягивающий резистор решает эту проблему, мягко подтягивая напряжение вывода к HIGH при отсутствии другого сигнала. Это обеспечивает стабильное и надёжное считывание. При подключении кнопки или переключателя нажатие подтягивает вывод к LOW, позволяя Arduino чётко обнаружить изменение.

Для включения внутреннего подтягивающего резистора используйте pinMode(pin, INPUT_PULLUP) вместо просто pinMode(pin, INPUT).

Обратите внимание, что значение этого внутреннего подтягивающего резистора не фиксировано, но обычно составляет около 20 кОм.

Выводы прерываний Arduino UNO R4 Minima

Выводы прерываний — это специальные цифровые входные выводы, которые могут запускать определённый блок кода (процедуру обработки прерывания, или ISR) при наступлении внешнего события, например, при изменении уровня напряжения (с HIGH на LOW или наоборот). Это позволяет Arduino мгновенно реагировать на события без постоянной проверки состояния вывода в основном цикле программы.

UNO R4 Minima имеет два основных вывода внешних прерываний на выводах 2 и 3:

Arduino UNO R4 Minima Pinout Reference

UNO R4 Minima поддерживает четыре режима срабатывания, определяющих, когда выполняется ваша ISR, как показано в таблице ниже:

Режим

Условие срабатывания

Типичные случаи применения

RISING

Вывод переходит из LOW в HIGH

Обнаружение нажатия кнопки (подтяжка к земле)

FALLING

Вывод переходит из HIGH в LOW

Обнаружение нажатия кнопки (подтяжка к питанию)

CHANGE

Вывод меняет состояние (в любом направлении)

Считывание энкодера, подсчёт импульсов

LOW

Вывод остаётся на уровне LOW

События по уровню сигнала

Для настройки прерывания Arduino использует функцию attachInterrupt(interrupt, ISR, mode). В этой функции значение interrupt указывает, какое прерывание использовать: interrupt 0 соответствует цифровому выводу 2, а interrupt 1 — цифровому выводу 3. ISR — это имя функции, которая должна выполняться при наступлении прерывания. Параметр mode определяет способ срабатывания: RISING, FALLING, CHANGE или LOW.

Также важно понимать, что UNO R4 Minima использует современный микроконтроллер на базе Cortex-M4, который включает систему, называемую контроллером вложенных векторных прерываний (NVIC). Эта система гораздо более совершенна и поддерживает прерывания практически на каждом цифровом и аналоговом выводе. Однако для простоты и привычности программное обеспечение Arduino в основном фокусируется на выводах D2 и D3 для внешних прерываний, соответствуя поведению классических плат UNO.

Выводы PWM Arduino UNO R4 Minima

Выводы PWM (широтно-импульсной модуляции) на UNO R4 Minima — это цифровые выводы, способные имитировать аналоговый выход. Они достигают этого путём чрезвычайно быстрого переключения вывода между HIGH и LOW — настолько быстрого, что это выглядит как стабильное напряжение где-то между ними. Ключевая идея PWM — коэффициент заполнения, который представляет процент времени, когда сигнал находится в состоянии HIGH в течение одного полного цикла. Изменяя коэффициент заполнения, вы можете управлять средним напряжением, подаваемым на подключённый компонент, что позволяет регулировать яркость светодиодов, скорость моторов и даже генерировать простые звуковые сигналы.

UNO R4 Minima предоставляет 6 выводов с поддержкой PWM: D3, D5, D6, D9, D10 и D11. Вы легко найдёте их на плате по символу тильды (~), напечатанному рядом с номером вывода.

Arduino UNO R4 Minima Pinout Reference

Для генерации сигнала PWM сначала нужно установить нужный вывод как выход с помощью функции pinMode(pin, OUTPUT) в части setup() вашего скетча. Затем используйте функцию analogWrite(pin, value) для установки выхода PWM. В этой функции pin — номер вывода с поддержкой PWM, а value управляет коэффициентом заполнения.

По умолчанию разрешение PWM на UNO R4 Minima установлено в 8 бит. Это означает, что значения PWM варьируются от 0 до 255. Это обеспечивает корректную работу кода, написанного для старых плат Arduino, без изменений.

Однако UNO R4 Minima более мощный и позволяет увеличить разрешение PWM. С помощью функции analogWriteResolution() можно увеличить разрешение до 12 бит, что позволяет использовать значения от 0 до 4096 и обеспечивает более тонкое управление выходом.

analogWriteResolution(12);  //Sets the PWM resolution to 12 bits
analogWriteResolution(8);   //Sets the PWM resolution to 8 bits (default)

Выводы АЦП Arduino UNO R4 Minima

Аналоговые входные выводы UNO R4 Minima используются для считывания непрерывных аналоговых сигналов. Эти сигналы обычно поступают от датчиков, измеряющих физические величины, такие как температура, интенсивность света, звук или давление. В отличие от цифровых сигналов, которые бывают только HIGH или LOW, аналоговые сигналы могут иметь множество различных уровней напряжения. Для понимания этих сигналов Arduino использует встроенный аналого-цифровой преобразователь (АЦП), который преобразует аналоговое напряжение в цифровое число для использования в программе.

UNO R4 Minima имеет шесть аналоговых входных выводов с маркировкой от A0 до A5.

Arduino UNO R4 Minima Pinout Reference

Для считывания аналогового значения с вывода используется функция analogRead(pin). Эта функция возвращает целое число, представляющее напряжение на выбранном выводе.

По умолчанию АЦП на UNO R4 Minima использует 10-битное разрешение для обратной совместимости. При 10-битном разрешении возвращаемое значение находится в диапазоне от 0 до 1023. Это означает, что входное напряжение от 0 до 5V разделяется на 1024 равных шага. При этой настройке Arduino может обнаруживать изменения напряжения всего в 4,9 мВ.

Однако R4 Minima значительно мощнее своих предшественников. Вы можете увеличить разрешение до 12 или даже 14 бит, что позволяет Arduino обнаруживать гораздо меньшие изменения напряжения. При 14-битном разрешении шаг напряжения составляет приблизительно 0,3 мВ при диапазоне 5V. Для изменения разрешения АЦП используется функция analogReadResolution() в части setup() вашего скетча.

analogReadResolution(10); //(default)
analogReadResolution(12);
analogReadResolution(14);

Также стоит помнить, что если у вас закончились стандартные цифровые выводы, выводы A0 — A5 могут работать и как обычные цифровые выводы ввода/вывода.

Изменение аналогового опорного напряжения

По умолчанию UNO R4 Minima измеряет аналоговые напряжения в диапазоне от 0 до 5V (питание платы 5V). Это опорное напряжение определяет максимальное напряжение, которое может измерить АЦП. В некоторых случаях, например при использовании датчика, работающего при пониженном напряжении (например, 3,3V), вы можете захотеть более точно измерять низкие напряжения.

Для этого можно изменить аналоговое опорное напряжение с помощью вывода AREF и функции analogReference(type).

analogReference(AR_DEFAULT);   //Uses the default analog reference of 5V.
analogReference(AR_INTERNAL);  //Uses an internal reference voltage of 1.5V.
analogReference(AR_EXTERNAL);  //Uses an external reference voltage applied to the AREF pin.

Вывод DAC Arduino UNO R4 Minima

UNO R4 Minima включает встроенный цифро-аналоговый преобразователь (DAC). DAC выполняет обратное действие АЦП: вместо считывания аналогового напряжения и преобразования его в число, он берёт цифровое значение и преобразует его в гладкое аналоговое напряжение. Это масштабное обновление для UNO R4 Minima, делающее его идеальным для аудиопроектов, таких как генерация синусоидальных волн, управление генераторами, управляемыми напряжением (VCO), в синтезаторах или предоставление переменного опорного напряжения.

На UNO R4 Minima DAC доступен на аналоговом выводе A0.

Arduino UNO R4 Minima Pinout Reference

Для использования DAC применяется та же функция analogWrite(pin, value), которая используется для генерации сигналов PWM.

analogWrite(pin, value);

По умолчанию вывод DAC работает с 8-битным разрешением, принимая значения от 0 до 255. Например, запись значения 0 выдаст напряжение близкое к 0V, а запись 255 — близкое к 5V. Значение около 127, приблизительно в середине диапазона, выдаст около 2,5V на выводе A0.

Для некоторых приложений, особенно аудиопроектов, 8-битного разрешения может быть недостаточно для гладкого выхода. В таких случаях UNO R4 Minima позволяет увеличить разрешение DAC до 12 бит. При 12-битном разрешении записываемые значения будут в диапазоне от 0 до 4095, обеспечивая невероятно тонкое управление выходным напряжением.

analogWriteResolution(12);

Просто имейте в виду, что если вы используете A0 как выход DAC, его нельзя одновременно использовать как аналоговый вход для считывания датчиков.

Выводы операционного усилителя Arduino UNO R4 Minima

Одна из самых мощных новых функций R4 Minima — наличие встроенного операционного усилителя (ОУ). Встроенный ОУ избавляет от необходимости использовать внешние микросхемы для таких задач, как буферизация сигналов, усиление слабых данных датчиков, фильтрация шума и выполнение множества других аналоговых операций.

Хотя микроконтроллер Renesas RA4M1, используемый в UNO R4 Minima, имеет четыре внутренних операционных усилителя, на аналоговом разъёме платы доступен один из них. Конкретно: A1 используется как положительный (неинвертирующий) вход, A2 — как отрицательный (инвертирующий) вход, а A3 — как выход.

Arduino UNO R4 Minima Pinout Reference

Для начала использования ОУ на UNO R4 Minima необходимо подключить библиотеку OPAMP.h в скетче и инициализировать его функцией OPAMP.begin(speed). Необязательный параметр speed позволяет выбрать между различными режимами работы. Можно выбрать OPAMP_SPEED_LOWSPEED для пониженного энергопотребления или OPAMP_SPEED_HIGHSPEED для более высокой производительности с повышенным энергопотреблением.

#include <OPAMP.h>

void setup () {
  OPAMP.begin(OPAMP_SPEED_HIGHSPEED);
}

void loop() {
}

Примеры применения

Простой способ использования ОУ — в качестве повторителя напряжения (также известного как буфер), физически соединив A2 (минусовой вход) напрямую с A3 (выходом). В такой конфигурации напряжение, подаваемое на A1 (плюсовой вход), будет повторяться на выходе A3, но с большей способностью нагрузки по току.

Также можно использовать его для построения усилителя напряжения для усиления слабого сигнала. Для этого подключите резистор 10 кОм между A2 и землёй, а второй резистор 10 кОм — между A3 и A2. При такой схеме сигнал, поданный на A1, будет появляться на A3 с удвоенной амплитудой. Однако при усилении сигналов следует быть осторожным. Выходное напряжение не должно превышать приблизительно 4,7V. При попытке превысить это значение сигнал будет обрезан, а в крайних случаях можно повредить плату.

Или можно использовать ОУ как компаратор для сравнения двух входных напряжений и выдачи цифрового результата HIGH или LOW, а также для более сложных схем, таких как интегрирование и дифференцирование сигналов.

Конечно, эти примеры — лишь начало того, что можно сделать со встроенным операционным усилителем.

Выводы I2C Arduino UNO R4 Minima

UNO R4 Minima поддерживает I2C (Inter-Integrated Circuit). I2C — это распространённый метод последовательной связи, позволяющий Arduino обмениваться данными со множеством датчиков и устройств, используя всего два провода: SDA и SCL. На UNO R4 Minima SDA подключён к аналоговому выводу A4, а SCL — к аналоговому выводу A5. SDA и SCL также доступны на отдельных выводах рядом с выводом AREF.

Arduino UNO R4 Minima Pinout Reference

Примечание:

Связь по I2C использует так называемые сигналы с открытым стоком. Это означает, что устройства I2C могут только подтягивать сигнальную линию к LOW; они никогда активно не переводят её в HIGH. Вместо этого линии должны подтягиваться к HIGH с помощью подтягивающих резисторов. На UNO R4 Minima эти подтягивающие резисторы не установлены по умолчанию, хотя на плате есть контактные площадки для пайки, если вы захотите добавить их самостоятельно.

Arduino UNO R4 Minima Pinout Reference

Отсутствие подтягивающих резисторов по умолчанию имеет ряд преимуществ. Во-первых, поскольку выводы I2C совмещены с A4 и A5, эти выводы можно также использовать как обычные цифровые выводы ввода/вывода или аналоговые входы. Если бы подтягивающие резисторы были постоянно установлены, эти выводы всегда стремились бы к HIGH, что ограничило бы их функциональность только I2C. Во-вторых, выбирая собственные значения подтягивающих резисторов, вы можете решить, будет ли шина I2C работать при 3,3V или 5V. Это упрощает безопасное подключение различных типов устройств I2C, которым могут требоваться разные уровни напряжения.

Для использования связи I2C в скетче Arduino сначала необходимо подключить библиотеку Wire в начале кода. В функции setup() инициализируйте систему I2C. После инициализации вы можете отправлять данные на подключённое устройство I2C. Каждое устройство I2C имеет свой адрес, по которому Arduino определяет, с каким устройством оно общается. Следующий пример показывает, как отправить данные на устройство с адресом 1 и как правильно завершить соединение:

#include <Wire.h>

void setup() {
  Wire.begin();

  Wire.beginTransmission(1);  //begin transmit to device 1
  Wire.write(byte(0x00));     //send instruction byte
  Wire.write(val);            //send a value
  Wire.endTransmission();     //stop transmit
}

void loop() {
}

Выводы SPI Arduino UNO R4 Minima

UNO R4 Minima также поддерживает SPI (Serial Peripheral Interface). SPI — это ещё один тип последовательной связи, который обычно быстрее I2C. SPI использует отдельные выводы для отправки данных, приёма данных и синхронизации обмена с помощью тактового сигнала.

Arduino UNO R4 Minima Pinout Reference

Примечание:

UNO R4 Minima использует современную терминологию Controller/Peripheral для выводов SPI вместо старой терминологии Master/Slave, хотя функциональность остаётся идентичной.

На UNO R4 Minima вывод 11 обозначен COPI (Controller Out, Peripheral In), ранее известный как MOSI. Этот вывод используется Arduino для отправки данных на другое устройство. Вывод 12 обозначен CIPO (Controller In, Peripheral Out), ранее известный как MISO, и используется периферийным устройством для отправки данных обратно на Arduino. Вывод 13 — это SCK (Serial Clock), который обеспечивает синхронизацию передачи данных. Вывод 10 обычно используется как CS (Chip Select). Этот вывод указывает Arduino, с каким SPI-устройством оно хочет обмениваться данными, что особенно важно при одновременном подключении нескольких SPI-устройств.

Помимо этих стандартных выводов SPI, UNO R4 Minima также включает разъём ICSP (In-Circuit Serial Programming). Этот разъём предоставляет доступ к тем же сигналам SPI. Вы можете использовать как стандартные цифровые выводы, так и разъём ICSP для связи по SPI.

Следующий пример показывает, как использовать SPI:

#include <SPI.h>

const int CS = 10;

void setup() {
  pinMode(CS, OUTPUT);     // Set CS pin as output
  SPI.begin();             // Initialize SPI bus
  digitalWrite(CS, LOW);   // Pull CS low to start communication with the device
  SPI.transfer(0x00);      // Send a single byte (0x00) over SPI
  digitalWrite(CS, HIGH);  // Pull CS high to end communication
}

void loop() {
}

В этом примере Arduino устанавливает вывод Chip Select как выход, запускает систему SPI, выбирает подключённое устройство, подтягивая CS к LOW, отправляет один байт данных, а затем завершает связь, подтягивая CS к HIGH.

Выводы UART Arduino UNO R4 Minima

UNO R4 Minima имеет значительное улучшение по сравнению с предшественником: два отдельных аппаратных интерфейса UART.

  1. Один порт доступен через USB-C, а

  2. Другой — через выводы RX/TX.

Arduino UNO R4 Minima Pinout Reference

На старом UNO R3 USB-порт и цифровые выводы 0/1 были подключены к одному последовательному интерфейсу. Это означало, что нельзя было одновременно использовать монитор последовательного порта на компьютере и внешний модуль (например, GPS или Bluetooth-приёмник) без взаимных помех.

R4 Minima решает эту проблему, разделив их. USB-C порт подключается к одному последовательному интерфейсу (доступному в коде как Serial), а выводы 0 (RX) и 1 (TX) — ко второму, полностью независимому интерфейсу (доступному как Serial1). Это позволяет отлаживать код на компьютере, одновременно обмениваясь данными с внешним устройством.

Если вам потребуется ещё больше последовательных портов, вы по-прежнему можете использовать библиотеку SoftwareSerial для создания виртуальных последовательных портов на других цифровых выводах. Однако имейте в виду, что эти программные порты медленнее и более ресурсоёмки, чем специализированные аппаратные порты.

Для использования UART, подключённого к выводам RX и TX, сначала установите скорость передачи данных в функции setup(). При работе с этими выводами на UNO R4 Minima используйте объект Serial1 вместо Serial.

Serial1.begin(9600);

Для чтения входящих данных можно проверить наличие данных и читать их по одному символу. Простой цикл может выглядеть так:

while (Serial1.available()) {
  delay(2);
  char c = Serial1.read();
  incoming += c;
}

Для отправки данных через UART-соединение используйте следующую команду:

Serial1.write("Hello world!");

Выводы CAN Arduino UNO R4 Minima

UNO R4 Minima также поддерживает связь по CAN (Controller Area Network). Это надёжный и помехоустойчивый протокол связи. CAN был изначально разработан компанией Bosch для использования в автомобилях, но сейчас широко применяется во многих промышленных системах и системах автоматизации. Одним из главных преимуществ CAN является возможность прямого обмена данными между устройствами по общей сети без необходимости центрального компьютера.

UNO R4 Minima включает встроенный CAN-контроллер, поддерживающий стандарты CAN 2.0A и CAN 2.0B. Сигналы CAN доступны на цифровом выводе D4 для CAN TX (передача) и цифровом выводе D5 для CAN RX (приём).

Arduino UNO R4 Minima Pinout Reference

Очень важно понимать, что UNO R4 Minima включает только CAN-контроллер, но не CAN-трансивер. Контроллер обрабатывает логику данных, но не генерирует фактические электрические сигналы, используемые на шине CAN. Для подключения Arduino к другим CAN-устройствам необходимо использовать внешний модуль CAN-трансивера (такой как MCP2551 или TJA1050). Эти трансиверы преобразуют логические сигналы 5V Arduino в дифференциальные сигналы CAN-H и CAN-L, требуемые сетью CAN.

Для обмена данными с CAN-устройствами сначала подключите библиотеку Arduino_CAN в начале скетча.

#include <Arduino_CAN.h>

Далее инициализируйте систему CAN, выбрав битовую скорость. Это делается с помощью функции CAN.begin(CanBitRate rate). Битовая скорость должна совпадать со скоростью, используемой другими устройствами на шине CAN. Распространённые варианты: 125 кбит/с, 250 кбит/с, 500 кбит/с и 1 Мбит/с.

CAN.begin(CanBitRate::BR_125k);   //sets the bit rate to 125 kbps
CAN.begin(CanBitRate::BR_250k);   //sets the bit rate to 250 kbps
CAN.begin(CanBitRate::BR_500k);   //sets the bit rate to 500 kbps
CAN.begin(CanBitRate::BR_1000k);  //sets the bit rate to 1 Mbps

Для отправки CAN-сообщения сначала создайте объект сообщения. Это сообщение включает идентификатор (CAN ID), размер данных и сами данные. После подготовки сообщения отправьте его с помощью функции CAN.write().

uint8_t const msg_data[] = {0xCA,0xFE,0,0,0,0,0,0};
memcpy((void *)(msg_data + 4), &msg_cnt, sizeof(msg_cnt));
CanMsg msg(CAN_ID, sizeof(msg_data), msg_data);
CAN.write(msg);

Для приёма CAN-сообщения сначала проверьте его доступность с помощью CAN.available(). Если сообщение доступно, прочитайте и обработайте его.

if (CAN.available()) {
  CanMsg const msg = CAN.read();
  Serial.println(msg);
}

Разъём ICSP Arduino UNO R4 Minima

Если вы использовали Arduino UNO R3 ранее, вы сразу узнаете 6-контактный разъём ICSP (In-Circuit Serial Programming). Однако его функция полностью изменилась на R4 Minima.

Arduino UNO R4 Minima Pinout Reference

На UNO R3 разъём ICSP обычно использовался для двух основных целей: прошивки загрузчика с помощью внешнего программатора (такого как AVR ISP или другой Arduino в качестве ISP) и связи с SPI-устройствами.

На UNO R4 Minima разъём ICSP больше не используется для прошивки загрузчика. Это связано с тем, что UNO R4 Minima использует совершенно другой микроконтроллер — Renesas RA4M1, который не поддерживает программирование по SPI. Согласно `руководству пользователя Renesas RA4M1 `_, в разделе «Режимы работы», этот микроконтроллер поддерживает два основных метода программирования флеш-памяти. Один метод — режим загрузки SCI, использующий интерфейс UART, а другой — режим загрузки USB, использующий встроенный интерфейс USB. Поэтому традиционный метод ISP через SPI не поддерживается.

Таким образом, разъём ICSP на UNO R4 Minima сохранён в основном для совместимости с SPI-шилдами и оборудованием, ожидающим наличия сигналов SPI на этом разъёме. Для задач низкоуровневого программирования и восстановления плата предоставляет отдельный разъём SWD/JTAG.

Разъём SWD / JTAG Arduino UNO R4 Minima

10-контактный разъём SWD / JTAG — это современный эквивалент разъёма ICSP для чипов на базе ARM. Именно его используют для глубокого программирования, восстановления «окирпиченной» платы или профессиональной отладки.

Arduino UNO R4 Minima Pinout Reference

Подключив внешний аппаратный отладчик, такой как Segger J-Link, ST-Link V3 или устройство, совместимое с DAPLink, вы можете:

  1. Выполнять пошаговую отладку: в отличие от традиционного метода использования операторов Serial.print() для предположений о работе кода, этот порт позволяет приостановить код посреди выполнения. Вы можете проверять значения всех переменных в реальном времени, наблюдать за изменениями памяти и устанавливать точки останова для остановки кода именно там, где вы подозреваете ошибку.

  2. Восстановить «окирпиченную» плату: если вы случайно повредили загрузчик настолько, что USB-порт перестал распознавать плату, этот порт полностью обходит стандартный интерфейс. Это единственный способ принудительно прошить новый загрузчик непосредственно на «голое железо» чипа и восстановить работоспособность платы.

Выводы питания Arduino UNO R4 Minima

UNO R4 Minima предоставляет несколько выводов питания, используемых для питания самой платы и подачи энергии на подключённые датчики, модули и другие внешние компоненты.

Arduino UNO R4 Minima Pinout Reference

Для понимания прохождения энергии через плату приведена упрощённая блок-схема дерева питания:

Arduino UNO R4 Minima Pinout Reference

VIN — вывод позволяет питать Arduino от внешнего источника, такого как сетевой адаптер или батарейный блок. Это идеально для автономных проектов, не подключённых к компьютеру через USB. Диапазон входного напряжения для VIN обычно составляет от 6V до 24V. Любое напряжение, подаваемое на этот вывод, стабилизируется до 5V понижающим DC-DC преобразователем ISL854102FRZ, который затем питает микроконтроллер и другие части платы. Вывод Vin также подключён к разъёму питания DC (бочкообразный разъём). Это означает, что при питании через разъём DC то же напряжение доступно на выводе VIN.

5V — вывод обеспечивает стабилизированный выход 5V (* смотрите примечание ниже), который можно использовать для питания внешних датчиков, модулей и шилдов, требующих стабильного напряжения 5V. Доступный ток зависит от способа питания платы.

  1. При питании через вывод VIN или разъём DC активен встроенный понижающий преобразователь, и вывод 5V может обеспечить до примерно 1,2 А тока для платы и подключённой периферии.

  2. При питании через порт USB-C понижающий преобразователь обходится. В этом случае максимальный доступный ток зависит от источника USB, такого как компьютер или сетевой адаптер, и может достигать около 2 А без повреждения платы.

Если ваш проект включает компоненты с большим потреблением тока, такие как сервоприводы, лучше питать эти компоненты от отдельного внешнего источника питания, а не от вывода 5V Arduino.

Примечание: также важно отметить, что при питании через USB напряжение на выводе 5V немного ниже, обычно около 4,7V, из-за падения напряжения на защитном диоде Шоттки.

3.3V — вывод обеспечивает стабилизированный выход 3,3V, но с критическим предупреждением. В отличие от Arduino UNO R3 с отдельным регулятором 3,3V, напряжение 3,3V на R4 Minima генерируется внутренне самим микроконтроллером Renesas RA4M1. Поскольку это питание поступает непосредственно от микроконтроллера, его токовая нагрузка очень ограничена — обычно от 50 до 100 мА. Этот вывод предназначен строго для предоставления опорных напряжений или питания датчиков с очень низким потреблением. Не пытайтесь питать высокотоковые устройства 3,3V, такие как большие OLED/TFT дисплеи, Wi-Fi модули или LoRa-радиомодули, непосредственно от этого вывода. Это может вызвать просадки напряжения (brownout), которые приведут к зависанию платы, или, что хуже, необратимо повредить микроконтроллер. Если вашему проекту требуется более 100 мА при 3,3V, необходимо использовать отдельный внешний регулятор напряжения.

Выводы специальных функций Arduino UNO R4 Minima

Помимо стандартных цифровых, аналоговых и коммуникационных выводов, UNO R4 Minima также включает несколько выводов специальных функций.

Arduino UNO R4 Minima Pinout Reference

D13 — если вы когда-либо запускали скетч Blink, вы уже знакомы с этим выводом. Вывод D13 подключён к встроенному светодиоду на плате. Когда вывод установлен в HIGH, светодиод загорается; при LOW — гаснет. Это невероятно удобный инструмент для быстрой отладки без необходимости подключения внешних компонентов. Просто помните, что если вы используете D13 как обычный цифровой вход или выход, встроенный светодиод всё равно будет мерцать вместе с вашими сигналами, что может сбивать с толку, если вы не ожидаете этого.

IOREF — означает Input/Output Reference Voltage (опорное напряжение ввода/вывода). Этот вывод, по сути, является транслятором для внешних шилдов. Он обеспечивает опорное напряжение, указывающее подключённым шилдам точное рабочее напряжение Arduino. На UNO R4 Minima этот вывод выдаёт 5V. Правильно спроектированные шилды считывают этот вывод для автоматической настройки своих логических уровней или включения трансляторов напряжения, обеспечивая совместимость без повреждений. Однако критически важно помнить, что IOREF — это опорный сигнал, а не источник питания. Никогда не пытайтесь питать внешние компоненты от этого вывода, так как это может необратимо повредить плату.

RESET — вывод является аппаратной кнопкой перезагрузки. Он активен при LOW, что означает, что микроконтроллер перезапустится в момент подключения этого вывода к земле (GND). По умолчанию внутренний подтягивающий резистор удерживает этот вывод в HIGH, обеспечивая нормальную работу платы. Вы можете подключить физическую кнопку между этим выводом и землёй для создания ручного переключателя сброса в вашем проекте.

BOOT — вывод управляет режимом работы микроконтроллера Renesas RA4M1 при запуске. В обычных условиях, когда вывод находится в HIGH или не подключён, чип загружается в «одночиповый режим», который просто запускает ваш скетч или стандартный загрузчик Arduino. Однако если подтянуть этот вывод к LOW при включении платы, чип переходит в «режим ROM-загрузчика». Этот режим полностью обходит ваш скетч и загружает загрузчик, прошитый в чип на заводе. Это единственный способ восстановить «окирпиченную» плату. Например, если вы загрузили скетч, который мгновенно роняет USB-порт и не позволяет загрузить что-либо новое. Войдя в этот режим, вы можете повторно прошить прошивку извне и вернуть плату к жизни.