Обновление прошивки WiFi Shield

Узнайте, как обновить прошивку для вашего Arduino WiFi Shield.

WiFi Shield обеспечивает беспроводное подключение по стандарту IEEE 802.11 b/g через модуль HDG204 (или HDG104). Стек TCP/IP и API для библиотеки WiFi управляются микроконтроллером AT32UC3A1512 (или AT32UC3A1256), сокращённо AT32UC3, расположенным на плате. Ваш Arduino подключается к плате через SPI с помощью библиотеки WiFi.

Как модуль AT32UC3, так и модули HDG204/HDG104 имеют прошивку, обновляемую через разъём mini USB.

В этом руководстве показано, как обновить:

  • Прошивку WiFi-модуля HDG204/HDG104, когда производитель предоставляет новый бинарный файл прошивки для своего устройства.

  • Прошивку AT32UC3, когда от Arduino доступна новая версия. В качестве альтернативы, если вы опытный программист на C, вы можете настроить официальный исходный код для создания собственной прошивки. Исходный код доступен в репозитории библиотеки WiFi.

Предупреждение

При обновлении прошивки WiFi Shield не должен быть подключён к плате Arduino.

Обновление прошивки на устройствах — это двухэтапный процесс:

  • Прошивка HDG204/HDG104 называется wifi_dnld.elf. Модуль H&D не имеет статической памяти, поэтому вы загрузите его прошивку в контроллер AT32UC3, а затем AT32UC3 перенесёт прошивку в выделенную флэш-память модуля HDG204.

  • После загрузки прошивки для HDG204/HDG104 вы готовы загрузить прошивку WiFi Shield для AT32UC3. Файл wifiHD.elf содержит приложение для контроллера.

Загрузка DFU-программатора

Вам потребуется дополнительное программное обеспечение для обновления кода на 32UC3.

Windows: Скачайте программатор Atmel Flip.

Mac: Установите MacPorts, следуя инструкциям на этой странице. После установки MacPorts откройте Terminal и введите:

sudo port install dfu-programmer

Для обновления MacPorts:

sudo port selfupdate

Для обновления dfu-programmer и других портов до последней версии:

sudo port upgrade outdated

Убедитесь, что вы используете dfu-programmer версии 0.5.4 или новее.

Примечание

Если вы никогда раньше не использовали sudo, система запросит ваш пароль. Используйте пароль, с которым вы входите на Mac. sudo позволяет запускать команды от имени администратора компьютера.

Linux: В командной строке введите:

sudo apt-get install dfu-programmer

или

sudo aptitude install dfu-programmer

в зависимости от вашего дистрибутива.

Загрузка обновлённой прошивки для AT32UC3A1512/AT32UC3A1256

Последняя версия доступна здесь. Выберите прошивку WiFi Shield.

Прошивка также находится в папке Arduino IDE по пути /hardware/avr/arduino/firmwares/wifishield. На macOS щёлкните правой кнопкой мыши (или Command+клик) по приложению Arduino и выберите «Показать содержимое пакета», чтобы найти эту папку.

Процедура для Windows

На Windows необходимо установить драйверы AVR 32. В Windows используйте программу Flip, предоставляемую Atmel, для программирования устройства в режиме DFU (Device Firmware Update). Flip предоставляет утилиту batchisp, которую вы будете использовать для обновления. После установки Flip откройте командную строку (CMD) и перейдите к следующему пути внутри каталога установки Flip, обычно:

cd C:\Program Files (x86)\Atmel\Flip 3.4.5\bin

но это зависит от места установки программного обеспечения Atmel. Теперь вы готовы загрузить прошивку на плату.

Примечание

Flip требует 32-битную JRE. 64-битная JRE не работает.

Подключите перемычку J3, чтобы перевести плату в режим программирования, затем подключите её к компьютеру через разъём mini USB. В командной строке введите:

batchisp.exe -device AT32UC3A1512 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifi_dnld.elf program verify start reset 0

или

batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifi_dnld.elf program verify start reset 0

в зависимости от используемой микросхемы.

Для загрузки прошивки WiFi-модуля HDG204/HDG104 в dataflash:

batchisp.exe -device AT32UC3A1512 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifiHD.elf program verify start reset 0

или

batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifiHD.elf program verify start reset 0

в зависимости от используемой микросхемы.

Для загрузки прошивки WiFi Shield на AT32UC3A1512/AT32UC3A1256.

После завершения обновления вы можете снять перемычку J3 и перезапустить плату. Теперь она готова к использованию. Смотрите раздел «Дополнительно» внизу этой страницы для получения информации о проверке успешности обновления прошивки.

Процедура для Linux и Mac

На Linux и Mac мы написали скрипт, который автоматизирует процесс. Скрипт — это утилита командной строки, поэтому для его использования вам нужно открыть терминал в вашей системе.

Вы можете найти скрипт внутри вашей IDE по следующему пути: ~/arduino1.x.x/hardware/avr/arduino/firmwares/wifishield/scripts

Скрипт обновления WiFi Shield также использует dfu-programmer, который необходимо предварительно установить на вашу систему (убедитесь, что версия 0.5.4 или новее).

Подключите перемычку к разъёму J3, чтобы перевести плату в режим программирования. Затем подключите USB-кабель к разъёму mini USB на плате.

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

  • Mac: ./ArduinoWifiShield_upgrade.sh -h

  • Linux: sudo ./ArduinoWifiShield_upgrade.sh -h

Примечание

На Linux необходимо запускать скрипт с правами root для корректного доступа к USB DFU-периферии.

С параметром -a вы передаёте скрипту текущий путь установки Arduino, например: /home/user/Coding

С параметром -f вы выбираете, какую прошивку установить:

  • shield — обновить только прошивку платы

  • all — обновить обе прошивки

Совет

Для проверки успешности обновления WiFi Shield вы можете подключить адаптер USB-Serial к разъёму FTDI и проверить в терминале отладки, содержит ли стартовое сообщение обновлённую дату. Подробнее об опции отладки через Serial смотрите на соответствующей странице.