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

ac076616df9089c7e0e124b2602eea2e.png

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

Для чего. Терминальный режим удобен для отладки, диагностики процессов работы и загрузки одноплатников. Ошибка в бут-загрузчике, ошибка при инициализации драйверов, ошибки в работе оборудования или просто нужно удобно что то настроить или быстро проверить на одноплатнике работая со своего рабочего компьютера — во всех этих ситуациях удобно подключаться в так называемом терминальном режиме работы, который является одновременно и полноценной консолью для выполнения команд и стандартным портом вывода всей информации о работе процессора. Конечно это удобно чтобы проверять корректность работы устройства, чтобы проверять как идёт процесс загрузки на всех его этапах и т.д. и т.п. Это не просто полезно, а практически жизненно необходимо и является обязательным инструментом для всех системных разработчиков так называемых 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 после установки

4a8cd595c880657af29b1ea81d247f9f.png

USB to TTL конвертер популярны на двух чипах CH340G и PL2303HX

8295dc609cb7a74291c892ddc26cd362.jpg

Так же имеется конвертеры уже с проводами и в корпусе на чипе PL2303HX, рекомендую брать именно такой вариант. Сегодня в статье будет использоваться такой вариант

356791709fe7aa1464c8fd248d9f94e7.jpg

Приобрести конвертер можно на AliExpress или на ChipiDip.

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

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

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

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

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

Драйвера:

  1. PL2303HX

  2. CH340G

Если все действия по установки драйвера выполнены верно, то в «Диспетчере устройств» после подключения конвертера к компьютеру (через USB порт) появится ваш конвертер в группе Порты (COM и LPT).

906bd3e152ec467e20a3808b728cab83.png

Я подключил сразу два конвертера для примера, у Вас же должно появиться одно устройство.

Очень важно !!!

Перед подключением Repka Pi необходимо убедиться что Ваш USB→TTL конвертер имеет уровень сигнала 3.3 В, так как Repka Pi имеет уровень сигнала 3.3 В и подача 5 В недопустима.

Конвертер на базе PL2303HX имеет логический уровень сигнала 3.3В, а на базе CH340G может работать как на 3.3В так и на 5В. Если у вас вариант на CH340G установите джампер на контакт 3V3 и VCC как показано на фото.

31cd7d5bd873d56cf18b059f812472f3.png

USB → UART (ttl) могут быть и другой формы и на других чипах. Вот одно из объявлений с AliExpress где имеется большой выбор

669a1c385c4762b3394ddbdedcf08e5e.png

Коротко об UART

Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. 

UART имеет две основных линии данных

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

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

b5f03558080f9ea416fb8a9923405b3c.jpg

Подробней про 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» /></p>

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

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

<p><img src=

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

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

Отладочный терминал Репки подключен через USB адаптер к рабочему компьютеру. Но провода удобнее делать длиннее, но на суть работы это не влияет.

Отладочный терминал Репки подключен через USB адаптер к рабочему компьютеру. Но провода удобнее делать длиннее, но на суть работы это не влияет.

Заходим в «Диспетчер устройств» и определяем какой COM порт имеет наш конвертер

922faaa8741931b1f615c3ad3cdae37a.png

У меня это COM3, обведен на фото красным, у вас может быть другой номер порта.

Запускаем программу PuTTY и в открывшемся окне выбираем «Serial» в поле «Serial line» вводим наш порт, в моем случае это «COM3», а в поле «Speed» вводим скорость соединения »115200» именно на такой скорости работает наш USB→TTL конвертер. Пример окна на картинке ниже.

647a86288fba7853c6f81ed547b79d17.jpg

Нажимаем кнопку «Open» и у нас откроется черное окно терминала, на данный момент оно будет пустое без сообщений и не должно выскакивать ошибке о подключение. Теперь можем подать питание на нашу Repka Pi 3, при загрузке мы сразу увидим сообщения в нашем терминале.

4719366df81a0b66c8e8bebb598ede7f.png

В самом начале мы видим разную информацию о прошивке и железе, как видно по картинке что CPU: Allwinner H5, Model: Repka-Pi3-H5, DRAM: 2 GiB и тд. Дальше пойдет процесс загрузки и в самом конце увидим приглашение в систему, можем авторизоваться и работать с Repka Pi

b3631242f4a6627da9869428c5bc91ec.png

Отключение / включение отладочного терминала на UART0

Вывод консоли на UART0 управляется в утилите »rapka-config». Войти в данную утилиту можно нажав на иконку расположенную на рабочем столе или выполним одноимённую команду в Терминале или в консоле, называйте как Вам удобно

repka-config

Иконка на рабочем столе указана на скриншоте ниже

Ярлык утилиты repka-config на рабочем столе Repka OS.

Ярлык утилиты repka-config на рабочем столе Repka OS.

В начале утилита вам покажет какая у вас »Текущая максимальная частота». Нажимаем »OK»

33b00580cfdf4e38d8d2ad2686c8b640.png

После вы попадаете в меню данной утилиты. Тут выбираем первый пункт »console-UART0-on/off»

878be7ae5dcc4571477e17ab31200d3a.png

В открывшемся окне мы видим два варианта. Выбираем что мы хотим сделать и нажимаем «Enter»

6bc435c35d62975a04123dd8f4c2e311.png

После нам предложат перезагрузить систему. Нажимаем »Да»

d3ffcf61c9b01c0c42439119a60527ea.png

Теперь если подключиться по UART к консоли то увидим что что лог при загрузке доходит только до запуска ядра и дальше не идет

ce3ac8aa0884d95333f8819071f3f432.png

Что и как делать дальше Вы наверняка уже решите и поймёте сами, задачей же данного материала было помочь Вам справится с подключением отладочного терминала в первый раз и начать свой увлекательнейший Путь в обрасти 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 Российской разработки и производства, о применении с ним разных видов датчиков, исполнительных устройств и устройств ввода и вывода информации, а может и о чём то ещё.

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

© Habrahabr.ru