Обновляем прошивку в модемах Quectel в приложениях с OpenCPU

Данная статья носит скорее справочный характер и фактически является продолжением моей старой статьи по быстрому старту с модулями GSM фирмы Quectel (прочитайте ее перед тем как читать эту, потому что некоторые вещи здесь не будут объясняться). Также некоторую информацию можно почерпнуть из апноута по обновлению от Quectel, в нем очень хорошо и подробно описаны ошибки, которые могут возникнуть в процессе обновления прошивки OpenCPU.

Здесь же я рассмотрю, а что нужно предусмотреть для более удобной прошивки модема в уже законченном устройстве в приложении с OpenCPU, т.е. если вы используете модем просто как периферию, которая отвечает на AT команды микроконтроллера, то эта статья вам не особо нужна, т.к. сам модем с завода уже имеет внутри себя прошивку, которая отвечает на AT команды и вам вряд ли придется ее обновлять или загружать в модем собственное приложение на базе OpenCPU SDK.

Для обновления прошивки любого модема Quectel используется главный UART порт модуля. Простейшая схема интерфейса программирования модема выглядит следующим образом:

Простейшая схема обновления прошивки модема Quectel.

Перед обновлением PWRKEY вывод модуля должен быть подтянут к земле (в данной схеме это делается переключателем), также вторым условием успешной прошивки является стабильное питание VBAT модуля.

Для обновления прошивки непосредственно в плате устройства рекомендуется зарезервировать 5 тестовых точек или, что более предпочтительно, небольшой разъем для внутрисхемного программирования. Выглядит это уже немного иначе:

quectel_firmware_upload
Фото из апноута Quectel, внешний разъем для внутрисхемного программирования модема.

В большинстве приложений модулем так или иначе управляет внешний микроконтроллер, который обменивается данными с приложением OpenCPU через основной UART модема. В этом случае, рекомендуется устанавливать последовательно резистор между TXD выводом микроконтроллера и RXD выводом модуля, как показано на рисунке выше. Этот резистор используется для блокирования сигнала TXD внешнего микроконтроллера в то время, когда производится обновление прошивки модуля через внешний коннектор или тестовые точки на плате. Во время обновления прошивки вывод PWRKEY должен быть притянут к земле. Если обновляемый модуль не питается от основного напряжения питания платы устройства, то необходимо питать его от вывода VBAT коннектора.

Основное сказано и я обычно ставлю для обновления прошивки модема 5-контактный разъем с любым шагом расположения выводов, который бы соответствовал габаритам печатной платы или использую 6-контактный Tag-Connect коннектор TC-2030:

kicad quectel firmware upgrade connector
Схема разъема для внутрисхемного программирования модулей Quectel.