С чего начинается embedded-разработка? Debug UART на Repka Pi 3 — подключение к отладочному терминалу Репки через UART
Для чего и для кого эта статья может оказаться полезной? Всё достаточно просто.
Для чего. Терминальный режим удобен для отладки, диагностики процессов работы и загрузки одноплатников. Ошибка в бут-загрузчике, ошибка при инициализации драйверов, ошибки в работе оборудования или просто нужно удобно что то настроить или быстро проверить на одноплатнике работая со своего рабочего компьютера — во всех этих ситуациях удобно подключаться в так называемом терминальном режиме работы, который является одновременно и полноценной консолью для выполнения команд и стандартным портом вывода всей информации о работе процессора. Конечно это удобно чтобы проверять корректность работы устройства, чтобы проверять как идёт процесс загрузки на всех его этапах и т.д. и т.п. Это не просто полезно, а практически жизненно необходимо и является обязательным инструментом для всех системных разработчиков так называемых embedded system или говоря по русски встраиваемых систем.
Для кого. Так что если Вы интересуетесь направлением встраиваемых систем и их разработки и собираетесь развиваться в данном направлении и стать embedded-разработчиком, то этот материал точно для Вас и поможет сделать один из первых и обязательных шагов.
Содержание
Введение.
Коротко об UART.
Распиновка Repka Pi 3.
Схема подключения CH340G (USB→TTL) к Repka Pi 3.
Подключаемся к Repka Pi 3 по UART.
Отключение / включение консоли на UART0.
Выводы, итоги и благодарности.
Введение
В этой статье рассмотрим как подключиться к консоли отладочного терминала Repka Pi через UART.
Repka Pi как и другие компьютеры аналогичного семейства имеет Debug UART выведенный на 40 pin разъем платы.
Для начала работы нам потребуется программа PuTTY и USB to TTL конвертер с кабелем.
Скачиваем и устанавливаем программу текущую версию PuTTY с официального сайта. На момент написание статьи версия PuTTY 0.78 .
Вот так выглядит PuTTY после установки
USB to TTL конвертер популярны на двух чипах CH340G и PL2303HX
Так же имеется конвертеры уже с проводами и в корпусе на чипе PL2303HX, рекомендую брать именно такой вариант. Сегодня в статье будет использоваться такой вариант
Приобрести конвертер можно на AliExpress или на ChipiDip.
Как устанавливать драйвера в данной статье рассматривать не будем. Этой информации на просторах Интернета достаточно.
Вот небольшой список статей
Обзор преобразователя PL2303HX
Установка драйвера PL-2303HX на Windows 8/10
Драйвер чипа CH340 USB-Serial
Драйвера:
PL2303HX
CH340G
Если все действия по установки драйвера выполнены верно, то в «Диспетчере устройств» после подключения конвертера к компьютеру (через USB порт) появится ваш конвертер в группе Порты (COM и LPT).
Я подключил сразу два конвертера для примера, у Вас же должно появиться одно устройство.
Очень важно !!!
Перед подключением Repka Pi необходимо убедиться что Ваш USB→TTL конвертер имеет уровень сигнала 3.3 В, так как Repka Pi имеет уровень сигнала 3.3 В и подача 5 В недопустима.
Конвертер на базе PL2303HX имеет логический уровень сигнала 3.3В, а на базе CH340G может работать как на 3.3В так и на 5В. Если у вас вариант на CH340G установите джампер на контакт 3V3 и VCC как показано на фото.
USB → UART (ttl) могут быть и другой формы и на других чипах. Вот одно из объявлений с AliExpress где имеется большой выбор
Коротко об UART
Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных.
UART имеет две основных линии данных
Устройство по UART подключаются перекрестно
GND — масса (минус или земля) общая, без подключение земли работать будет, но не рекомендовано, а почему это тема другой статьи.
Подробней про UART хорошо описано в статье «UART и с чем его едят».
Распиновка Repka Pi 3
Теперь рассмотрим распиновку 40 pin разъёма, в котором среди прочего есть и необходимый нам для терминальной работы uart. Repka Pi на момент написания статьи имеет 5 вариантов распиновки (т.е. функционального назначения и режимов работы отдельных выводов или «пинов») этого разъёма, все варианты представлены на картинке ниже на рисунке.
Иллюстрация с вариантами распиновки Repka Pi 3
Debug UART (UART0) во всех вариантах распиновки находится на пине 8 и 10 которые выделены на картинке
UART0-TX — пин 8
UART0-RX — пин 10
Для GND можно использовать любой pin данного назначения, я же буду использовать 14 вывод разъёма (напомним, pin или вывод разъёма это одно и тоже).
Схема подключения CH340G (USB→TTL) к Repka Pi 3
Будьте внимательней и не перепутайте пины при подключение. На схеме цвета контактов выбраны такие же как на фото живого подключения ниже.
Набора Repka Pi 3 в корпусе, с блоком питания и с SD картой и с 2Гб ОЗУ.
И так, драйвер нашего USB→TTL конвертера установлен, программа консоли PuTTY установлена, конвертер подключен к UART0 нашей Repka Pi 3. Теперь у нас все готово и можно приступить к подключению. Вставляем USB→TTL в USB порт нашего компьютера, Repka Pi 3 пока к сети не подключаем
Отладочный терминал Репки подключен через USB адаптер к рабочему компьютеру. Но провода удобнее делать длиннее, но на суть работы это не влияет.
Заходим в «Диспетчер устройств» и определяем какой COM порт имеет наш конвертер
У меня это COM3, обведен на фото красным, у вас может быть другой номер порта.
Запускаем программу PuTTY и в открывшемся окне выбираем «Serial» в поле «Serial line» вводим наш порт, в моем случае это «COM3», а в поле «Speed» вводим скорость соединения »115200» именно на такой скорости работает наш USB→TTL конвертер. Пример окна на картинке ниже.
Нажимаем кнопку «Open» и у нас откроется черное окно терминала, на данный момент оно будет пустое без сообщений и не должно выскакивать ошибке о подключение. Теперь можем подать питание на нашу Repka Pi 3, при загрузке мы сразу увидим сообщения в нашем терминале.
В самом начале мы видим разную информацию о прошивке и железе, как видно по картинке что CPU: Allwinner H5, Model: Repka-Pi3-H5, DRAM: 2 GiB и тд. Дальше пойдет процесс загрузки и в самом конце увидим приглашение в систему, можем авторизоваться и работать с Repka Pi
Отключение / включение отладочного терминала на UART0
Вывод консоли на UART0 управляется в утилите »rapka-config». Войти в данную утилиту можно нажав на иконку расположенную на рабочем столе или выполним одноимённую команду в Терминале или в консоле, называйте как Вам удобно
repka-config
Иконка на рабочем столе указана на скриншоте ниже
Ярлык утилиты repka-config на рабочем столе Repka OS.
В начале утилита вам покажет какая у вас »Текущая максимальная частота». Нажимаем »OK»
После вы попадаете в меню данной утилиты. Тут выбираем первый пункт »console-UART0-on/off»
В открывшемся окне мы видим два варианта. Выбираем что мы хотим сделать и нажимаем «Enter»
После нам предложат перезагрузить систему. Нажимаем »Да»
Теперь если подключиться по UART к консоли то увидим что что лог при загрузке доходит только до запуска ядра и дальше не идет
Что и как делать дальше Вы наверняка уже решите и поймёте сами, задачей же данного материала было помочь Вам справится с подключением отладочного терминала в первый раз и начать свой увлекательнейший Путь в обрасти embedded system как embedded-разработчика.
Выводы, итоги и благодарности
Надеемся, что эта статья поможет читателем в решении задачи подключения к отладочному терминалу на Repka Pi. Представленный подход может применяться на любых одноплатных компьютерах с возможностью подключения к отладочному терминалу Debug UART.
Также приводим ссылки на ресурсы проекта Repka Pi:
Официальный сайт проекта Repka Pi и там же куча дополнительной информации, прошивки, чертежи, исходники бинарники DT, блог и что важно — интернет магазин с ценами на все комплектации Репки ощутимо ниже, чем на плэйс маркетах.
Официальный Телеграм канал проекта Repka Pi.
Группа обсуждения и комментариев к постам официального канала в Телеграм проекта Repka Pi — там можно задать актуальные вопросы и пообщаться с единомышленниками, которые тоже увлекаются одноплатными компьютерами вообще и Репкой в частности.
Официальное сообщество в ВК компании разработчика, где периодически появляются новости проектов разработчика проекта, в том числе и Репки.
Предыдущая статья о проекте, где было подробнее рассказано об установке VNC сервера на Repka Pi для удаленного доступа и управления ее рабочим столом.
Эта статья целиком написана и свёрстана Дмитрием Шевцовым из Калининграда. Дмитрий является автором материалов, мы лишь незначительно выполнили редактуру материала. Связываться с целью благодарности или уточнения вопросов с Дмитрием можно в его Телеграм-аккаунте, который приводим с его согласия. Дмитрий является одним из самых активных участников сообщества Repka Pi.
Будет верным сказать, что именно благодаря такому участию, поддержке и помощи со стороны сообщества проект Repka Pi на данный момент активно развивается и получает шанс встать на ноги, окрепнуть и набрать силу.
Проект Repka Pi очень признателен Дмитрию за проработку актуальных вопросов и подготовку полезных для многих статей, включая эту. Именно по его материалам ранее был подготовлен материал по использованию точных часов RTC (real time clock) в виде внешнего i2c модуля, а так же на данный момент Дмитрий подготовил целый ряд крайне интересных и полезных материалов, которые будут опубликованы в ближайшее время.
Раз Вы читаете эти строки, значит статья Вас заинтересовала и Вы дочитали её до конца. Спасибо Вам!
Ставьте Ваши оценки и пишите в комментариях о чём бы Вы хотели ещё прочитать в этом цикле статей о применении и работе с одноплатным компьютером Repka Pi Российской разработки и производства, о применении с ним разных видов датчиков, исполнительных устройств и устройств ввода и вывода информации, а может и о чём то ещё.
Удачи Вам и Вашим проектам — как рабочим или образовательным, так и просто любительским!