Интерфейс программирования и отладки MCU
MT3620 предоставляет два выделенных UART и два управляющих сигнала (сброс и восстановление) для использования во время подготовки и восстановления устройства. Кроме того, для отладки приложений RTApp доступен интерфейс SWD, а для microsoft диагностика зарезервирован дополнительный интерфейс UART.
Для программных средств для пк Azure Sphere требуется использовать микросхему интерфейса USB-UART, которая предоставляет эти интерфейсы компьютеру таким образом, чтобы средства распознали их и взаимодействовали с ними. Средства Azure Sphere поддерживают загрузку приложения через USB с помощью UART службы и восстановление ОС Azure Sphere с помощью UART для восстановления. Для использования этих интерфейсов требуется использовать микросхему интерфейса FTDI (FTDI) FT4232HQ UART-to-USB. В настоящее время средства не поддерживают другие микросхемы FTDI или микросхемы интерфейса от разных производителей.
Для плат разработки эта микросхема интерфейса обычно находится на той же плате, что и MT3620. Этот подход описан в проектировании эталонной платы разработки MT3620 (RDB). Для пользовательской платы или модуля, использующего MT3620, может быть целесообразно использовать микросхему интерфейса на отдельной плате, так как это оборудование требуется только во время производства или обслуживания, что позволяет сократить затраты на единицу. Этот подход описан в проектировании автономной платы интерфейсов программирования и отладки.
Обзор портов
MT3620 предоставляет три UART и интерфейс SWD, которые используются для программирования, диагностика Майкрософт и подготовки микросхемы. Четыре интерфейса имеют следующие функции:
Отладка UART. Отладка UART позволяет корпорации Майкрософт выполнять диагностика. Обратите внимание, что этот UART не подходит для отладки приложений или диагностика.
Под руководством корпорации Майкрософт этот интерфейс предоставляет средства сбора дополнительных диагностических сведений, которые могут быть полезны при отладке определенных проблем. Поэтому рекомендуется включить этот интерфейс для устройств, которые используются для разработки программного или аппаратного обеспечения, но его можно считать необязательным для устройств, которые достигли стадии производства.
Интерфейс SWD — интерфейс SWD используется при отладке приложений с поддержкой реального времени (RTApp), работающих на ядрах M4F; этот интерфейс является общим для двух ядер M4F.
Если требуется возможность отладки приложений RTApp (например, во время разработки устройства), устройство должно поддерживать этот интерфейс. После того как устройство достигнет стадии производства, этот интерфейс можно считать необязательным и опустить.
Service UART— служба UART предоставляет интерфейс программирования и отладки main между MT3620 и главным компьютером.
Этот интерфейс включает все операции Azure CLI, для которых требуется подключенное устройство, за исключением восстановления (как описано в следующем абзаце). Так как UART службы — это интерфейс main между MT3620 и главным компьютером, этот интерфейс должен быть доступен для устройств, поддерживающих разработку программного обеспечения, а также во время производства розничных устройств. Если этот интерфейс доступен для устройства в полевых условиях, он также может использоваться инженерами служб, например для загрузки новых версий программного обеспечения приложения, если устройство не получает облачные обновления, так как оно не подключено к Интернету.
UART для восстановления— порт восстановления позволяет восстановить устройство до последней версии операционной системы.
Этот интерфейс должен поддерживаться во время производства, так как восстановление устройства до последней версии операционной системы является обычной задачей во время изготовления устройства. Однако после того, как устройство было продано клиенту (и он подключил его к Интернету), облачные обновления гарантируют, что устройство будет обновлено до последней версии операционной системы.
Общие сведения о компонентах
На следующей схеме представлен обзор main компонентов 4-портового интерфейса FTDI и их соединений с MT3620:
Вы можете использовать микросхему и схему FTDI как часть одной и той же платы, что и MT3620 (например, если вы создаете плату разработки) или в отдельной интерфейсной плате, которая находится между устройством MT3620 и компьютером.
Назначения портов
Чтобы обеспечить совместимость с инструментами пк, важно убедиться, что все предоставляемые UART и интерфейс SWD, который будет использоваться в вашей конструкции, подключены к портам FTDI, как описано в следующей таблице.
Функции | FT4232HQ Pin Function (pin number) | Mt3620 Pin Function (pin number) | ||
---|---|---|---|---|
Восстановление UART, сброс и закрепление обвязки восстановления | Порт D | DDBUS0 (48) | RECOVERY_RXD (134) | |
DDBUS1 (52) | RECOVERY_TXD (135) | |||
DDBUS2 (53) | RECOVERY_CTS (137) | |||
DDBUS3 (54) | RECOVERY_RTS (136) | |||
DDBUS5 (57) | DEBUG_RTS (96)* | |||
DDBUS6 (58) | SYSRST_N (125) (и при необходимости WAKEUP (70) через канал, описанный ниже) | |||
UART службы | Порт C | CDBUS0 (38) | SERVICE_RXD (129) | |
CDBUS1 (39) | SERVICE_TXD (127) | |||
CDBUS2 (40) | SERVICE_CTS (130) | |||
CDBUS3 (41) | SERVICE_RTS (128) | |||
SWD и сброс |
Порт B | BDBUS0 (26) | SWCLK | Дополнительные сведения о каналах SWD см. в разделе Интерфейс SWD . |
BDBUS1 (27) | SWDIO out | |||
BDBUS2 (28) | SWDIO в | |||
BDBUS4 (30) | Направление SWDIO | |||
BDBUS5 (32) | Включение SWD | |||
BDBUS6 (33) | SYSRST_N (125) (и при необходимости WAKEUP (70) через канал, описанный ниже) | |||
Отладка UART |
Порт A | ADBUS0 (16) | DEBUG_RXD (94) | |
ADBUS1 (17) | DEBUG_TXD (95) | |||
ADBUS2 (18) | DEBUG_CTS (97) | |||
ADBUS3 (19) | DEBUG_RTS (96)* |
*DEBUG_RTS является одним из "штифтов" MT3620, который, если его высоко вытащить во время сброса микросхемы, приводит к переходу микросхемы в режим восстановления. Во всех остальных случаях этот контакт является контактом RTS UART отладки.
Схемы
В следующей схеме показаны main компоненты, необходимые для поддержки микросхемы FT4232HQ. Эталонная доска MT3620 предоставляет эталонную структуру, включающую эту схему.
Схема 1:
Примечания — схема 1:
- Резисторы 1K последовательно включаются с линией сброса, чтобы избежать короткого замыкания в том случае, если пользователь нажимает кнопку сброса (если он включен в конструкцию) в то же время, когда строка сброса управляется программным способом во время восстановления.
- При раскладке pcB убедитесь, что разностная пара, USB_P и USB_N, маршрутизируется параллельно друг другу, чтобы получить характерный разностный импеданс 90 Ом.
- Резисторы 33Ω последовательно с (необязательными) линиями SWD предназначены для уменьшения временных параметров и должны располагаться рядом с FT4232HQ.
Схема 2:
Примечания — схема 2:
- SYSRST_N вытягивается высоко с резистором 100K (R8). Это означает, что сброс микросхемы не утверждается по умолчанию.
Следующие два элемента являются необязательными. Если они имеются, они позволяют физической кнопке RESET и интерфейсу FTDI автоматически разбудить MT3620 при переключении RESET. Это рекомендуется для любой конструкции, в которой используется режим выключения питания, в котором кнопка сброса или интерфейс компьютера должны продолжать работать в режиме выключения питания.
- Пара диодов Schottky последовательно соединена между SYSRST_N и WAKEUP, а общее катодное соединение диодов подключается к кнопке сброса и сигналам сброса FTDI. Это предотвращает низкое переключение SYSRST_N при низком переключение WAKEUP.
- WAKEUP вытягивается высоко с резистором 100K, подключенным к 3V3_RTC источнику питания. Сопротивление 100K гарантирует, что WAKEUP переключается низко, когда SYSRST_N переключается низко; подключение к 3V3_RTC гарантирует, что функция WAKEUP будет по-прежнему находиться на высоком уровне, если источник питания MT3620 отключается в режиме выключения питания.
FTDI EEPROM
Микросхема интерфейса FTDI предоставляет набор контактов, которые должны быть подключены к небольшому EEPROM, который используется для хранения сведений производителя и серийного номера. После сборки платы эти сведения программируются в EEPROM через USB с помощью программного средства, предоставляемого FTDI, как описано далее в FTDI FT_PROG programming Tool.
Следующие компоненты EEPROM совместимы с микросхемой FTDI:
- 93LC46BT-I/OT
- 93LC56BT-I/OT
- 93LC66BT-I/OT
Обратите внимание на использование варианта LC, совместимого с источником питания 3,3 В. Для внутренней разработки корпорация Майкрософт всегда использовала часть 93LC56BT-I/OT.
Подключите EEPROM к микросхеме FTDI следующим образом:
Канал EEPROM | Подключение к микросхеме FTDI |
---|---|
Интерфейсы UART
Для подключений UART для восстановления, службы и отладки между MT3620 и FTDI не требуется специальная схема. Однако обратите внимание на перекрестное перекрестие TXD и RXD, а также CTS и RTS. В документации по FTDI описывается закрепление 0 каждого порта в виде TXD и закрепление 1 как RXD. Эти определения относятся к микросхеме FTDI; т. е. пин-код 0 является выходным, а пин-код 1 — входным. Следовательно, необходимо пересечь подключения RXD и TXD к MT3620 (и аналогично для CTS и RTS). На следующей схеме показано это для службы UART; используйте ту же схему для UART для восстановления и отладки:
Интерфейс SWD
Хотя микросхемы FTDI обычно используются для обеспечения моста между UART и USB, интерфейс программирования и отладки Azure Sphere использует дополнительную схему на основе буфера quad tristate, чтобы часть FTDI работала в качестве высокоскоростного интерфейса SWD.
Ниже показана необходимая цепь и подключение к микросхеме FTDI. Обратите внимание, что сигнал SWDIO подключается к контакту MT3620 98, а SWCLK подключается к контакту 99.
Расположение буфера трех состояний | Подключения FTDI Port-B |
---|---|
Индикатор активности USB (необязательно)
Индикатор активности USB может быть полезен для указания передачи данных через USB-подключение во время обычной работы. Светодиодный индикатор активности USB можно реализовать несколькими способами. Следующий канал является просто примером.
Канал AND объединяет часы и линии данных, которые соединяют FT4232HQ с EEPROM. Хотя эти две строки не очевидны, они переключаются при отправке и получении данных по USB и, следовательно, могут использоваться для указания активности USB. Однако время выхода из шлюза AND слишком коротко, чтобы освещать светодиодный индикатор; таким образом, этот сигнал используется для управления моностабильной цепью, которая, в свою очередь, приводит в движение светодиодный индикатор.
Время включения моностабильного канала установлено на 100 мс, поэтому даже короткие всплески USB-трафика вызовет свет светодиодных индикаторов.
Средство программирования FT_PROG FTDI
Чтобы помочь в программировании EEPROM, FTDI предоставляет бесплатное программное средство под названием FT_PROG. Это средство доступно как как приложение с графическим интерфейсом Windows, так и как средство командной строки; Оба параметра устанавливаются одновременно из одного пакета. Скачайте средство с веб-сайта FTDI и установите его в расположении по умолчанию.
программа командной строки FT_PROG
Версия FT_PROG из командной строки является предпочтительным методом программирования EEPROM, так как она принимает имя файла конфигурации в качестве параметра, а затем программируется несколько устройств с помощью одной команды.
Репозиторий Azure Sphere Hardware Designs на сайте GitHub содержит файл конфигурации EEPROM для использования со средством командной строки. Настоятельно рекомендуется использовать этот файл и средство командной строки в производственных сценариях. Файл конфигурации программирует EEPROM со следующими параметрами:
- Включает режим D2XX Direct и отключает виртуальный COM-порт.
- Автоматически создает серийный номер, начинающийся с "AS"
- Задает для описания продукта значение "MSFT MT3620 Std Interface"
Чтобы запрограммировать EEPROM, необходимо использовать этот файл без изменений, так как средства для пк Azure Sphere ищут строку Описания продукта и завершатся ошибкой, если это значение будет изменено.
Пошаговые инструкции по программированию EEPROM
Чтобы использовать версию FT_PROG командной строки для программирования EEPROM для четырехпортовой микросхемы FTDI:
Установите средства FTDI в расположение по умолчанию:
C:\Program Files(x86)\FTDI\FT_Prog
.Подключите к компьютеру одну или несколько плат MT3620.
Откройте командную строку (например, cmd.exe) и перейдите в папку, в которой сохранен файл конфигурации.
Введите следующую команду, чтобы получить список всех подключенных устройств:
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
Если подключено четыре устройства, выходные данные выглядят примерно так:
Device 0: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 1: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 2: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 3: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
Введите следующую команду, чтобы запрограммировать все подключенные устройства. Укажите индексы подключенных устройств (0, 1, 2 и т. д.) после
prog
параметров иcycl
:"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan prog 0,1,2,3 MT3620_Standard_Interface.xml cycl 0,1,2,3
Средство должно отобразить следующее:
Scanning for devices... Device 0: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 1: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 2: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 3: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 0 programmed successfully! Device 1 programmed successfully! Device 2 programmed successfully! Device 3 programmed successfully! Finished Re-enumerating Device 0.... Re-enumerating Device 1.... Re-enumerating Device 2.... Re-enumerating Device 3....
Чтобы убедиться, что программирование прошло успешно, проверьте еще раз:
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
Обратите внимание, что серийные номера имеют изменения в выходных данных и теперь начинаются с AS:
Scanning for devices... Device 0: FT4232H, MSFT MT3620 Std Interface, AS5AW7FD Device 1: FT4232H, MSFT MT3620 Std Interface, AS5AHG3C Device 2: FT4232H, MSFT MT3620 Std Interface, AS5DWM2I Device 3: FT4232H, MSFT MT3620 Std Interface, AS5JQ0LJ
FT_PROG приложение с графическим интерфейсом
Версия приложения с графическим интерфейсом Windows полезна для чтения и проверки состояния сведений EEPROM. Его также можно использовать для изменения сведений; однако для программирования устройства рекомендуется использовать версию средства из командной строки.
После запуска приложения нажмите кнопку Сканировать (со значком лупы), чтобы прочитать и отобразить текущее содержимое EEPROM.
Если появится диалоговое окно Неизвестное устройство, как показано в следующем примере, нажмите кнопку ОК , пока в окне приложения не отобразится информация правильно.
В следующем примере показано правильное отображение:
Дополнительные сведения об использовании программного обеспечения см. в документации по FT_PROG.