- Родительская категория: Проекты
- Категория: Программирование
- Автор: Генератор статей
- Просмотров: 4713
С чего начинается 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.
Как устанавливать драйвера в данной статье рассматривать не будем. Этой информации на просторах Интернета достаточно.
Вот небольшой список статей
Драйвера:
Если все действия по установки драйвера выполнены верно, то в “Диспетчере устройств” после подключения конвертера к компьютеру (через 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 имеет две основных линии данных
-
RXD (RX) - принимающая линия
-
TXD (TX) - передающая линия
Устройство по UART подключаются перекрестно
GND - масса (минус или земля) общая, без подключение земли работать будет но не рекомендовано, а почему это тема другой статьи.
Подробней про UART хорошо описано в статье “UART и с чем его едят”.
Распиновка Repka Pi 3
Теперь рассмотрим распиновку 40 pin разъёма, в котором среди прочего есть и необходимый нам для терминальной работы uart. Repka Pi на момент написания статьи имеет 5 вариантов распиновки (т.е. функционального назначения и режимов работы отдельных выводов или "пинов") этого разъёма, все варианты представлены на картинке ниже на рисунке.
Debug UART (UART0) во всех вариантах распиновки находится на пине 8 и 10 которые выделены на картинке
-
UART0-TX - пин 8
-
UART0-RX - пин 10
Для GND можно использовать любой pin данного назначения, я же буду использовать 14 вывод разъёма (напомним, pin или вывод разъёма это одно и тоже).
Схема подключения CH340G (USB->TTL) к Repka Pi 3
Будьте внимательней и не перепутайте пины при подключение. На схеме цвета контактов выбраны такие же как на фото живого подключения ниже.
Для наглядности прикладываю реальное фото подключения
Подключаемся к Repka Pi 3 по UART
Подключение будем выполнять на примере комплектации Repka Pi 3 c 2ГБ ОЗУ и в корпусе, данный вариант комплектации является одним из наиболее "богатых" в линейке доступных сейчас в свободной продаже Репок и удобен не только тем, что на борту 2 Гб ОЗУ, но и тем что сразу идёт в симпатичном корпусе со встроенным вентилятором охлаждения, с качественным адаптером питания с достаточно длинным и удобным шнуром (1,5 метра) и даже с отдельно устанавливающимися "лапками", с помощью которых можно закрепить Репку или к монитору или к стене или другой поверхности, когда хочется избавиться от одноплатника непосредственно на рабочем столе. А ещё важно, что в комплекте сразу идёт достаточно качественная SD карта с уже прошитой прошивкой (масло масленное :-) ). Но версию прошивки мы всё равно перепрошили, так как пока устройство ехало и потом ждало своей очереди, то оказалось, что вышла новая версия где что то было вроде как улучшено. Но самое главное для одноплатников это источник питания, все одноплатники капризные в этом отношении - нужно чтобы и ток достаточный был на входе и стабильность напряжения и желательно чтобы отсутствовали помехи и пульсации, которые могут приводить к самым причудливым и разнообразным проблемам в работе одноплатника, вплоть до его выключения во время загрузки или в процессе работы или некорректного определения разрешения экрана на мониторе или даже странностей и не стабильности в работе подключаемых usb устройств.
И так, драйвер нашего USB->TTL конвертера установлен, программа консоли PuTTY установлена, конвертер подключен к UART0 нашей Repka Pi 3. Теперь у нас все готово и можно приступить к подключению. Вставляем USB->TTL в USB порт нашего компьютера, Repka Pi 3 пока к сети не подключаем
Заходим в “Диспетчер устройств” и определяем какой 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
Иконка на рабочем столе указана на скриншоте ниже
В начале утилита вам покажет какая у вас “Текущая максимальная частота”. Нажимаем “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 Российской разработки и производства, о применении с ним разных видов датчиков, исполнительных устройств и устройств ввода и вывода информации, а может и о чём то ещё.
Удачи Вам и Вашим проектам - как рабочим или образовательным, так и просто любительским!