Chernobrovkin
1174 просмотров1 комментариев

С чего начинается 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.

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

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

  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 вариантов распиновки (т.е. функционального назначения и режимов работы отдельных выводов или "пинов") этого разъёма, все варианты представлены на картинке ниже на рисунке.

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, пример


Подключаемся к 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 пока к сети не подключаем.

У меня это 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”. Войти в данную утилиту можно нажав на иконку расположенную на рабочем столе или выполним одноимённую команду в Терминале или в консоле, называйте как Вам удобно6

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 очень признателен Дмитрию за проработку актуальных вопросов и подготовку полезных для многих статей, включая эту. Именно по его материалам ранее был подготовлен материал по использованию точных часов RTC (real time clock) в виде внешнего i2c модуля, а так же на данный момент Дмитрий подготовил целый ряд крайне интересных и полезных материалов, которые будут опубликованы в ближайшее время.

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

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

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


Содержание поста является копией статьи с другого ресурса.  Ссылка на оригинал


Комментарии (1)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Рустам Сералиев
Рустам Сералиев  

Интересная статья

Темы

Навигация

ВойтиРегистрация