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

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

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

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

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

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


  1. Mike_666
    27.05.2023 21:12
    +1

    Было бы интересно увидеть в следующих версиях репки чипы с npu, что-то вроде RK3588.


  1. Fox_exe
    27.05.2023 21:12
    +5

    А я бы наоборот крайне не рекомендовал брать Proliftic - их очень часто подделывают и эти подделки не работают с официальными (и новыми) драйверами PL. Вплоть до BSOD'а не работают.

    Забили ещё упомянуть не менее популярные, но дорогие FT232RL (FTDI) и более дешёвые, но не менее популярные CP2102 (Silicon Labs)


    1. RyabovA Автор
      27.05.2023 21:12

      Спасибо! Добавим по Вашим рекомендациям.


  1. Mike_666
    27.05.2023 21:12
    +1

    Было бы интересно увидеть в следующих версиях репки чипы с npu, что-то вроде RK3588.


  1. Areso
    27.05.2023 21:12
    +3

    Хорошая статья; жаль, что для репки, которая стоит конских денег и потому не популярна и не будет популярна.


  1. s-a-u-r-o-n
    27.05.2023 21:12
    +2

    На иллюстрации четвёртое устройство в первом ряду — это преобразователь USB—RS485, а не USB—UART.


    1. RyabovA Автор
      27.05.2023 21:12

      Спасибо! Исправим.


  1. kovserg
    27.05.2023 21:12
    +1

    Еще неплохой вариант для начала embedded:


    https://aliexpress.ru/item/1005001297401234.html
    https://www.youtube.com/watch?v=YEGKD6JQJyM — быстрый старт
    https://www.youtube.com/watch?v=_1u7IOnivnM — отладка


    1. Koyanisqatsi
      27.05.2023 21:12
      +1

      Может стоит прекратить мучить 103ю серию?) Есть же STMки поновей.


      1. kovserg
        27.05.2023 21:12

        Много чего есть. Вы напишите конкретнее.


  1. Andvari
    27.05.2023 21:12
    +1

    А в чем смысл подключения к линуксовой консоли из под Win? Со всей вот этой возней c поиском драйверов и программ-терминалов?

    Может сразу учить новичков пользоваться подходящими инструментами?


    1. sirmax123
      27.05.2023 21:12
      +1

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


      1. Andvari
        27.05.2023 21:12
        +2

        Я в курсе, для чего нужен UART.

        Я не в курсе, для чего здесь Windows.


        1. sirmax123
          27.05.2023 21:12

          Виноват, недопонял. Виндоуз здесь не нужен (почти везде не нужен)


    1. RyabovA Автор
      27.05.2023 21:12

      Можете делать это и под виндой и под линуксом, суть будет одна и та же и порядок действий примерно такой же, пока показан скорее принцип. А вот для электронщиков схемотехников пока ещё ситуация такая, что много пока ещё полноценно не заменённого САПРа работает под виндой и потому им приходится на рабочем компе работать на винде и подключать ведомые настраиваемые линукс устройства. Такова реальность на данный момент.

      И да, кстати говоря, в списке задач по расширению этой статьи есть несколько важных пунктов, один из которых это как раз добавить описание такой же настройки подключения отладочных терминалов но когда на родительской машине Linux. Но мы не стали затягивать публикацию и выложили статью пока как есть, так как в группе обсуждения канала Репки много вопросов таких задают и этот материал многим будет полезен людям уже и в таком виде.

      Спасибо что поблагодарили энтузиастов за проделанную совершенно бесплатно работу по написанию данной статьи. И конечно Вы можете тоже перейти от раздачи советов к практической помощи и прислать своё описание настройки подключения отладочного терминала для Linux - мы его обязательно добавим в это материал, так как написать его самим потребует времени и сил, которые придётся выкроить в ночное время или в выходные, а полно других более приоритетных задач. Но повторимся, задача такая в плане есть. Но если поможете, ту будет супер, можете написать тут в личку.


      1. ZekaVasch
        27.05.2023 21:12

        Т е вы не умеете в линукс или не пользуетесь им ?


      1. kspshnik
        27.05.2023 21:12

        И было бы очень круто обозначить отличия macOS/linux в этом контексте.