С чего начинается embedded-разработка? Debug UART на Repka Pi 3 — подключение к отладочному терминалу Репки через UART

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Для чего и для кого эта статья может оказаться полезной? Всё достаточно просто.

Для чего. Терминальный режим удобен для отладки, диагностики процессов работы и загрузки одноплатников. Ошибка в бут-загрузчике, ошибка при инициализации драйверов, ошибки в работе оборудования или просто нужно удобно что то настроить или быстро проверить на одноплатнике работая со своего рабочего компьютера - во всех этих ситуациях удобно подключаться в так называемом терминальном режиме работы, который является одновременно и полноценной консолью для выполнения команд и стандартным портом вывода всей информации о работе процессора. Конечно это удобно чтобы проверять корректность работы устройства, чтобы проверять как идёт процесс загрузки на всех его этапах и т.д. и т.п. Это не просто полезно, а практически жизненно необходимо и является обязательным инструментом для всех системных разработчиков так называемых embedded system или говоря по русски встраиваемых систем.

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

Содержание

  1. Введение.

  2. Коротко об UART.

  3. Распиновка Repka Pi 3.

  4. Схема подключения CH340G (USB->TTL) к Repka Pi 3.

  5. Подключаемся к Repka Pi 3 по UART.

  6. Отключение / включение консоли на UART0.

  7. Выводы, итоги и благодарности.


Введение

В этой статье рассмотрим как подключиться к консоли отладочного терминала 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.

Как устанавливать драйвера в данной статье рассматривать не будем. Этой информации на просторах Интернета достаточно.

Вот небольшой список статей

  1. Обзор преобразователя PL2303HX

  2. Установка драйвера PL-2303HX на Windows 8/10

  3. Драйвер чипа CH340 USB-Serial

Драйвера:

  1. PL2303HX

  2. 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 имеет две основных линии данных

  • RXD (RX) - принимающая линия

  • TXD (TX) - передающая линия

Устройство по UART подключаются перекрестно

GND - масса (минус или земля) общая, без подключение земли работать будет но не рекомендовано, а почему это тема другой статьи. 

Подробней про UART хорошо описано в статье “UART и с чем его едят”.


Распиновка Repka Pi 3

Теперь рассмотрим распиновку 40 pin разъёма, в котором среди прочего есть и необходимый нам для терминальной работы uart. Repka Pi на момент написания статьи имеет 5 вариантов распиновки (т.е. функционального назначения и режимов работы отдельных выводов или "пинов") этого разъёма, все варианты представлены на картинке ниже на рисунке.

Иллюстрация с вариантами распиновки Repka Pi 3
Иллюстрация с вариантами распиновки Repka Pi 3

Debug UART (UART0) во всех  вариантах распиновки находится на пине 8 и 10 которые выделены на картинке

  • UART0-TX - пин 8

  • UART0-RX - пин 10

Для GND можно использовать любой pin данного назначения, я же буду использовать 14 вывод разъёма (напомним, pin или вывод разъёма это одно и тоже).


Схема подключения CH340G (USB->TTL) к Repka Pi 3

Будьте внимательней и не перепутайте пины при подключение. На схеме цвета контактов выбраны такие же как на фото живого подключения ниже.

Схема подключения CH340G (USB->TTL) к Repka Pi 3
Схема подключения CH340G (USB->TTL) к Repka Pi 3

Для наглядности прикладываю реальное фото подключения

Схема подключения CH340G (USB->TTL) к Repka Pi 3, пример
Схема подключения CH340G (USB->TTL) к Repka Pi 3, пример

Подключаемся к Repka Pi 3 по UART

Подключение будем выполнять на примере комплектации Repka Pi 3 c 2ГБ ОЗУ и в корпусе, данный вариант комплектации является одним из наиболее "богатых" в линейке доступных сейчас в свободной продаже Репок и удобен не только тем, что на борту 2 Гб ОЗУ, но и тем что сразу идёт в симпатичном корпусе со встроенным вентилятором охлаждения, с качественным адаптером питания с достаточно длинным и удобным шнуром (1,5 метра) и даже с отдельно устанавливающимися "лапками", с помощью которых можно закрепить Репку или к монитору или к стене или другой поверхности, когда хочется избавиться от одноплатника непосредственно на рабочем столе. А ещё важно, что в комплекте сразу идёт достаточно качественная SD карта с уже прошитой прошивкой (масло масленное :-) ). Но версию прошивки мы всё равно перепрошили, так как пока устройство ехало и потом ждало своей очереди, то оказалось, что вышла новая версия где что то было вроде как улучшено. Но самое главное для одноплатников это источник питания, все одноплатники капризные в этом отношении - нужно чтобы и ток достаточный был на входе и стабильность напряжения и желательно чтобы отсутствовали помехи и пульсации, которые могут приводить к самым причудливым и разнообразным проблемам в работе одноплатника, вплоть до его выключения во время загрузки или в процессе работы или некорректного определения разрешения экрана на мониторе или даже странностей и не стабильности в работе подключаемых usb устройств.

Набора Repka Pi 3 в корпусе, с блоком питания и с SD картой и с 2Гб ОЗУ.
Набора Repka Pi 3 в корпусе, с блоком питания и с SD картой и с 2Гб ОЗУ.

И так, драйвер нашего USB->TTL конвертера установлен, программа консоли PuTTY установлена, конвертер подключен к UART0 нашей Repka Pi 3. Теперь у нас все готово и можно приступить к подключению. Вставляем USB->TTL в USB порт нашего компьютера, Repka Pi 3 пока к сети не подключаем

Отладочный терминал Репки подключен через USB адаптер к рабочему компьютеру. Но провода удобнее делать длиннее, но на суть работы это не влияет.
Отладочный терминал Репки подключен через 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.
Ярлык утилиты 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 на данный момент активно развивается и получает шанс встать на ноги, окрепнуть и набрать силу.

Проект Repka Pi очень признателен Дмитрию за проработку актуальных вопросов и подготовку полезных для многих статей, включая эту. Именно по его материалам ранее был подготовлен материал по использованию точных часов RTC (real time clock) в виде внешнего i2c модуля, а так же на данный момент Дмитрий подготовил целый ряд крайне интересных и полезных материалов, которые будут опубликованы в ближайшее время.

Раз Вы читаете эти строки, значит статья Вас заинтересовала и Вы дочитали её до конца. Спасибо Вам!

Ставьте Ваши оценки и пишите в комментариях о чём бы Вы хотели ещё прочитать в этом цикле статей о применении и работе с одноплатным компьютером Repka Pi Российской разработки и производства, о применении с ним разных видов датчиков, исполнительных устройств и устройств ввода и вывода информации, а может и о чём то ещё.

Удачи Вам и Вашим проектам - как рабочим или образовательным, так и просто любительским!

Источник: https://habr.com/ru/articles/737948/


Интересные статьи

Интересные статьи

Не так давно мы публиковали в своем блоге статью о том, что все большее количество вендоров электронных потребительских устройств присоединяются к движению сторонников «права на ремонт». Конечно, пр...
Гильгамеш достает растение вечной жизни с морского дна Поиск эликсира бессмертия — древнейшая сказка в мире. В прямом смысле. Самая старая письменная история, известная историкам, — «...
В начале декабря в Рунете прошла волна освещения общественно значимого события: блокировка Роскомнадзором на территории РФ сети Tor.Проект Tor в настоящее время является наиболее широко используемой с...
При моделировании данных методом наименьших квадратов, кривая обычно не проходит через точки измерений (рис. 1).Что, если нужно, чтобы эта кривая точно проходила через одну или несколько особо выделен...
Хочу рассказать о своем небольшом опыте работы с Home Assistant (далее – HA) на Raspberry pi и о подключении функционала видео регистрации, датчика движения и, соответственно, функции охраны дома...