wiki.js/ru/configuration/Reset_Control.md

12 KiB
Raw Blame History

title description published date tags editor dateCreated
Контроль перегрузки Reset_Control true 2021-01-03T06:46:41.271Z undefined 2021-01-02T04:40:27.686Z

Зачем

Платформа Arduino Mega великолепна тем, что обеспечивает низкую стоимость, низкий барьер для входа на платформу для проектов. К сожалению, эти удобства имеют некоторые недостатки.

В частности, чтобы сделать процесс программирования максимально безболезненным, большинство (возможно, все) версий платы Arduino Mega 2560 будут перезагружены обнаружении нового последовательного соединения. Нет нужды говорить, что компьютеру, управляющему вашим двигателем, довольно неудобно перезагружаться, если вы управляете автомобилем и последовательное подключение к логгеру становится нестабильным и приходится подключаться заново (двигатель останавливается).

Эта функция позволяет предотвратить это.

Требования

Reset Control может использоваться так же просто, как установка некоторых опций connecting a wire. Однако некоторые варианты также требуют updating the usb-serial bootloader на микросхеме ATmega16U2 (если она установлена на плате).

(TODO more details)

Варианты

 21 11 05-Reset Control.png

Встроенное ПО Speeduino предоставляет три варианта предотвращения сброса Arduino (* указывает на bootloader update требуется):

  • Запретить при выполнении Prevent When Running
    • Выключено Disabled
      • Управление сбросом не включено
    • Когда двигатель работает When the engine is running*****
      • Пока двигатель работает, Arduino не будет автоматически сбрасывать себя.
      • Управляющий контакт будет удерживаться на высоком уровне, пока работает двигатель.
      • Обновление прошивки возможно только в том случае, если автомобиль не работает или управляющий штырь в противном случае удерживается на низком уровне.
    • Всегда предотвращать Prevent Always*****
      • Контакт управления всегда удерживается на высоком уровне.
      • Обновление прошивки Speeduino возможно только в том случае, если управляющий контакт удерживается на низком уровне перемычкой, переключателем или каким-либо другим способом.
    • Последовательная команда Serial Command
      • Аналогично "Запретить всегда", за исключением того, что не требуется пользовательский загрузчик.
      • Обычно управляющий контакт удерживается на высоком уровне.
      • Для обновления встроенного ПО Speeduino необходимо сначала отправить на него символ "U" по последовательному соединению. Это даст ему знать, что грядет обновление, и он сбросит себя после получения дополнительных данных.

Схема Wiring

Стандартная прошивка 16u2 или не 16u2

Это так же просто, как проложить провод от управляющего контакта к контакту сброса на вашем Arduino.

Пользовательская прошивка Custom 16u2 Firmware

Пользовательская прошивка 16u2 отличается от стандартного тем, что оно использует один из контактов GPIO 16u2 для распознавания того, когда плата должна/не должна иметь разрешения на сброс. Используемый штифт является PB7, как показано.

То, как вы подключаете управляющий контакт к PB7, зависит от вас, но если вы подключаетесь от контакта в области прото Speeduino, вы можете использовать правые коннекторы на Arduino, чтобы отделить щит Speeduino от MCU Arduino (также показан).

Обновление загрузчика Updating the Bootloader

Использование режимов управления "When the engine is running" и "Prevent Always" требует обновления USB-последовательного встроенного ПО на чипе Arduino 's ATmega16U2 (эти режимы недоступны, если ваша плата использует что-то другое для выполнения функций USB serial, таких как FTDI или CH340 чип).

Шестнадцатеричный файл для обновленного загрузчика можно найти в:

Для выполнения обновления потребуется копия dfu-programmer. Инструкции по установке dfu-programmer для Mac можно найти here. Возможно также использование программирования flip Atmel, но он не был протестирован.

Процедура следующая (для Windows, но очень похожие для Linux и Mac):

  1. Извлеките dfu-programmer и обновленный загрузчик в выбранный каталог.

  2. Подключите Arduino к USB-порту и дождитесь его распознавания компьютером.

  3. Кратко сократите контакты 16U2 RESET и GND. Это приведет к вводу 16U2 DFU mode.

  4. Если Windows предлагает установить драйвер, не разрешайте Windows устанавливать драйвер автоматически. Вместо этого перейдите к INF-файлу, поставляемому вместе с dfu-programmer.

  5. Используйте следующие команды для резервного копирования существующего встроенного ПО USB-serial и установки нового (prepend sudo на Mac и Linux):

    1. dfu-programmer atmega16u2 read > arduino-usbserial-backup.hex
    2. dfu-programmer atmega16u2 erase
    3. dfu-programmer atmega16u2 flash Speeduino-usbserial-atmega16u2-Mega2560-Rev3.hex
    4. dfu-programmer atmega16u2 reset
  6. Обновление загрузчика завершено. Теперь необходимо отключить и повторно подключить Arduino к компьютеру.

В Windows Arduino теперь будет отображаться как универсальное USB Serial Device в диспетчере устройств, поэтому вам, вероятно, потребуется перенастроить TunerStudio для использования нового порта. При необходимости можно проверить свойство "Bus reported device description" на вкладке "Details" устройства, чтобы убедиться, что отображается "Speeduino Mega 2560".

Обновление прошивки Speeduino с использованием команды Updating the Speeduino Firmware With "Serial Command" Selected

Выполнение обновленияпрошивки Speeduino с использованием Serial Command является многоэтапным процессом:

  1. Использование программы последовательного терминала по вашему выбору (это было протестировано с помощью PuTTY), откройте последовательное подключение к Speeduino. В настоящее время может потребоваться ввести "?" для проверки правильности работы последовательного соединения.
  2. Введите "U" на терминале. Если все идет хорошо, он должен ответить сообщением "Связь остановлена. Следующий байт сбросит Arduino ".
  3. Не вводя больше символов, закройте последовательный терминал.
  4. Наконец, запустите загрузку прошивки. Теперь Arduino должен выполнить сброс и принять загрузку встроенного ПО в обычном режиме.

(TODO: Screenshots)

Обновление прошивки с помощью установленного бутлоадера Speeduino Firmware With the Updated 16U2 Bootloader Installed

Если для параметра reset control установлено значение "When engine is running", для обновления встроенного ПО Speeduino не требуется специальная процедура. Пока двигатель не работает, Arduino будет вести себя так же, как любой другой, и вы можете обновить его так же, как в любое другое время.

Если для элемента управления установлено значение "Always", либо необходимо временно отключить его из TunerStudio, чтобы обновить встроенное ПО Speeduino.