МИНИТЕРМИНАЛ V.3.0

Нашёл этот проект  на AVRProject, может кому то из подписчиков сообщества будет полезным этот терминал

Тема такого устройства как минитерминал, поднималась на этом сайте уже пару раз: первая версия, вторая версия. И за время использования второй версии, устройство показало себя отличным помощником при отладке во многих проектах. Единственное чего иногда не хватало, это возможности отправлять в отлаживаемое устройство своих команд. Поэтому разобравшись с работой большого цветного дисплея на контроллере ILI9325, решил сделать новую версию минитерминала на нём. К тому-же на этом дисплее уже есть сенсорная панель, благодаря которой можно организовать все управление, а также набор текста, не прибегая к подключению внешней клавиатуры.


У меня уже лежала распаянная под дисплей плата с микроконтроллером ATMega128a, ее я и использовал в качестве основы для устройства. Так как дисплей соединен с контроллером напрямую, схема предусматривает питание не более 3,3 вольта, если выше - есть вероятность что дисплей выйдет из строя. Сначала я хотел применить в качестве источника питания связку из двух батареек R20, у них очень большая емкость и они долго держат нужное напряжение. Но когда стал примеряться, выходило слишком громоздко. Поэтому был откопан, купленный несколько лет назад, модуль преобразователя на LM2577. А источником послужила Li-Ion батарея емкостью 2500мА/ч. Получилась очень годная связка, способная отдавать стабильные 3,3 вольта во всём рабочем диапазоне напряжений аккумулятора. Для подзарядки использован модуль на микросхеме TP4056. Его я давно применяю и он хорошо зарекомендовал себя, плюс очень низкая цена такого решения.

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

Чтобы иметь возможность подключать минитерминал к пятивольтовым устройствам не боясь спалить дисплей, порты UART развязаны через модуль согласования уровней. Я применил готовый, как раз имелся в наличии на 4 канала. Его можно собрать самому, схема элементарная. Кстати, почему нужно 4 канала? Дело в том что у ATMega128 целых два аппаратных UART интерфейса, и я подумал что неплохо бы использовать оба и сделать двухканальный терминал.


На разъемы, помимо Rx / Tx выведено питание, на случай если нужно будет запитать отлаживаемое устройство напряжением 3,3 вольта. В разрыв цепи запаян диод Шоттки, если вдруг по ошибке от испытуемого устройства в схему пойдет напряжение выше 3,3 вольт.

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

На плату также добавлен пьезодинамик для озвучивания действий и двухцветные светодиоды с ОК (общим катодом) для индикации работы. У меня это все напаяно поверх, но в конце можно будет скачать доработанную печатную плату.


В конечном виде схема выглядит так

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
Вариант корпуса для устройства, напечатанный на 3d принтере. Все элементы схемы и крышка корпуса будут фиксироваться на термоклей. Это самый простой вариант, но не самый технологичный для сборки/разборки. Поэтому надо бы доработать и добавить крепежные узлы. 
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
А пока крепится все так: сначала фиксируется дисплей, затем кнопка включения и модуль зарядки, потом все остальное.
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

При программировании микроконтроллера необходимо запрограммировать фьюзы на работу от внешнего высокочастотного кварца, отключить совместимость с ATMega103 и отключить JTAG


В Khazama-AVR фьюзы выглядят так

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

После сборки и прошивки микроконтроллера особых настроек не требуется, нужно только с помощью подстроечного резистора R4 подогнать отображаемое на экране напряжение к реальному значению на аккумуляторе. Для этого рекомендую сперва выставить подстроечник в среднее положение и только после этого подавать питание, чтобы после включения на вход АЦП шло менее 3,3 вольта (опять же для того чтобы обезопасить дисплей).


Из настроек терминал имеет изменяемую частоту работы UART интерфейса, формат отображения принятых данных (ASCII и HEX) и их вид (DISP и LAST).

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

Чтобы было понятно, остановлюсь на последнем параметре: в обычном режиме DISP (Displacement) идет отображение всех последних принятых данных, и при заполнении экрана идет смещение, таким образом на экране помещается 22 строки. Очистка и перерисовка, при каждом новом приеме данных, занимает относительно много время и чтобы увеличить возможную скорость приема, введен режим LAST. В этом режиме на экране выводится только последний принятый пакет данных. В общем, что получили то и вывели.


При нажатии на кнопку CLEAR, происходит очистка дисплея. INFO - информация о версии прошивки и контактная информация. Кнопка STOP, как не трудно догадаться, останавливает прием данных (полезно когда данные идут сплошным потоком и нужно остановиться и разглядеть).


При первом включении скорость работы UART по умолчанию стоит 1200 бод. Её можно поменять на значения 2400, 4800, 9600, 19200, 38400, 57600 и 115200 бод. Скорость сохраняется в энергонезависимой памяти и при следующем включении терминал будет работать на последней выбранной скорости.


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

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

Как я уже писал, в схеме я предусмотрел одновременную работу двух UART интерфейсов. Но в прошивке пока реализован только один канал - на аппаратном UART0. Второй - UART1, оставил как задел на будущее. Поэтому набранный текст улетает в Tx0.


Было упомянуто, что в режиме DISP на экран помещается 22 строки принятых данных, ограничение по длине принимаемого и отправляемого пакета составляет 30 символов. А если перевести отображение данных в HEX формат, тогда ограничение по длине пакета составит 10 символов. Ограничение обусловлено оставшимся на экране местом. Для простых задач, которые возложены на это устройство, этого должно хватить.


Ну и для примера достал не задействованную плату с распаянным GSM-модулем SIM900D, которая давно уже у меня лежит. Два запроса о версии прошивки модуля, первый в ASCII формате, второй с отображением данных в HEX формате:

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
И еще немного общения с этим модулем, на другой скорости:
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

В общем, девайс получился удобным и очень полезным. Рекомендую к повторению. Если что-то упустил оставляйте свои вопросы в комментариях.


Печатная плата (DipTrace)

Схема (DipTrace)

Исходники и прошивка

Модель корпуса


Ссылки на детали использованные в проекте:
Дисплей

Преобразователь напряжения

Модуль конвертера уровней

Модуль заряда Li-Ion батареи

TECHNO BROTHER

1.6K поста12.4K подписчиков

Добавить пост

Правила сообщества

1-Мы А-политическое сообщество. 2-Запрещено оскорбление: Администрации Пикабу, сообщества, участников сообщества а также родных, близких выше указанных.

3-Категорически запрещается разжигание межнациональной розни или действий, направленных на возбуждение национальной, расовой вражды, унижение национального достоинства, а также высказывания о превосходстве либо неполноценности пользователей по признаку их отношения к национальной принадлежности или политических взглядов. Мат - Нежелателен. Учитесь выражать мысли без матерщины

7
Автор поста оценил этот комментарий

А для чего это вообще нужно?

раскрыть ветку
3
Автор поста оценил этот комментарий

тяжело когда не хватает усб для отладки))) Тоже хотел себе сделать подобное, но передумал

раскрыть ветку
3
Автор поста оценил этот комментарий

Ты на правильном пути, по жизни. Молодец.

Железка красивая, но Putty практичней.

1
Автор поста оценил этот комментарий
Большуший респект, буду обязательно повторять. Теперь не нужно будет бегать с нетбуком по всему дому/балкону/улице, чтобы что-то изменить в esp8266.
1
Автор поста оценил этот комментарий

Увидел картинки, подумал кодграббер, но нет.......