Главная » Статьи » Проекты

Минитерминал V.3.0

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

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

 

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

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

   

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

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

 

 

 

 Вариант корпуса для устройства, напечатанный на 3d принтере. Все элементы схемы и крышка корпуса будут фиксироваться на термоклей. Это самый простой вариант, но не самый технологичный для сборки/разборки. Поэтому надо бы доработать и добавить крепежные узлы. 

   

 

 А пока крепится все так: сначала фиксируется дисплей, затем кнопка включения и модуль зарядки, потом все остальное.

   

 

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

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

 

 

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

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

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

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

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

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

   

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

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

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

 

И еще немного общения с этим модулем, на другой скорости:

 

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

 

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

Схема (DipTrace)

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

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

 

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

Дисплей

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

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

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

 

 

Категория: Проекты | Добавлено: 18.07.2016
Просмотров: 26769 | Комментарии: 58 | Теги: uart, Miniterminal | Рейтинг: 5.0/12
Всего комментариев: 581 2 »
58 shimano   (01.05.2019 05:28) [Материал]
57 exersizze, спасибо, но почему нигде не сказано, что нужно вручную калибровать?И что именно менять в подпрограмме?

0  
57 exersizze   (30.04.2019 18:38) [Материал]
shimano, в файле terminal3_160722.bas нужно подправить подпрограмму опроса тачскрина Read_touch

56 shimano   (26.04.2019 18:12) [Материал]
подскажите ещё пожалуйста, как откалибровать тачскрин? у меня почему то смещение присутствует

55 forter   (03.04.2019 14:02) [Материал]
Shimano!
Вот ссылка http://mat.midlight.eu/index.php/ILI9341_Library.
Внизу страницы найдете библиотеку для iLi9341, можете сравнить с ili9325.

54 shimano   (01.04.2019 09:45) [Материал]
Пробовал ли кто прикрутить вместо ili9325, ili9341? Может кто знает разницу в инициализации этих дисплеев?

53 forter   (26.06.2018 14:10) [Материал]
Вниманию y_moroz!
По-моему, на форуме https://www.mcselec.com я нашел, что контроллеры iLi9325 выпускаются двух модификаций - D и С, по инициализации они несовместимы. Там же на форуме имеются коды для инициализации и той, и другой модификации, так что поищите. По памяти, автором этого кода являлся bzijlstra.

52 y_moroz   (08.06.2018 21:14) [Материал]
Купил по ссылке автора дисплей, По тесту инициализации ответ дает 9325. Но работать не хочет.

51 webrusik   (19.11.2017 23:57) [Материал]
DROZD01, не могли бы поделиться печатной платой?

+1   Спам
50 DROZD01   (01.05.2017 20:48) [Материал]
exersizze, Нет возможности... Это вторая версия платы. Была и предыдущая, которую мы пробовали вытравить (но ничего не вышло), а также заказывали на производство, но там оказалась куча ошибок... Если вам не сложно, проверьте эту версию :)

0  
49 exersizze   (01.05.2017 14:13) [Материал]
DROZD01, я могу только посоветовать сперва вручную одну плату изготовить прежде чем на производство закидывать.
twiker , если в устройство слать сообщения и оно их принимает, должен мигать светодиод LED1.

48 twiker   (30.04.2017 09:35) [Материал]
Добрый день.
exersizze, а не могли ли подсказать какие то контрольные точки, где можно проверить работоспособность платы без дисплея.

47 DROZD01   (30.04.2017 01:13) [Материал]
Я таки перерисовал плату в Sprint Layout...
https://hostingkartinok.com/show-image.php?id=0d61db38321dc52aaad561128cacbdb8
exersizze, вы не видите ошибок ? Эту версию на производство хотим послать...

+1  
46 exersizze   (29.04.2017 19:52) [Материал]
Нет, на плате все пучком

45 DROZD01   (28.04.2017 21:31) [Материал]
А почему у самого нижнего транзистора один из проводов подключен в G ножку, тогда как у всех остальных этот же кабель подключен в S ножку ? Это баг ? Я просто переделываю плату в Sprint Layout 6.0 и заодно оптимизирую размещение элементов. https://hostingkartinok.com/show-image.php?id=4f8123569578895912f26d3ead1d9459

+1  
44 exersizze   (22.04.2017 15:53) [Материал]
twiker ,  если в подключении уверены тогда вероятнее всего китаец прислал дисплей  с другим контроллером.

43 twiker   (04.04.2017 10:17) [Материал]
Привет всем!
Никак не запускается дисплей, только подсветка.
Установку фьюзов проверял тестовой прошивкой автора-диод моргает 1 раз в сек.
Дисплей на ардуино со скетчем в 8-ми битном подключении выводит на половину экрана тестовую картинку, ID-2525. Может быть не тот чип в дисплее? Покупал на али по ссылке автора. Что можно сделать?

42 Sevastopolets   (22.02.2017 19:21) [Материал]
selevo, ой ли?

41 selevo   (21.02.2017 12:08) [Материал]
хороший труд
Но для таких решений есть любой андроид с установленым блютух терминалом и Bluetooth модуль типа HC-06 и аналогов.
И возможностей миллион.

+1  
40 exersizze   (19.02.2017 16:08) [Материал]
пьезодинамик у меня подпаивается прямо к ножке микроконтроллера, на этой фотке видно желтый проводок
http://avrproject.ru/112/minitrminal30b/minter1111.jpg
если звук кнопок не нужен то и динамик подпаивать не обязательно.

39 y_moroz   (19.02.2017 14:16) [Материал]
На плате не нашел пьезодинамика. Он не нужен?

38 ya-zp   (27.01.2017 21:52) [Материал]
У меня - плюс-минус пару пикселей, это даже как-то и не заметно при работе. Гораздо больше раздражает порой (не кажлый раз) то что сенсор не с первого раза "отзывается" на нажатия, особенно правый верхний угол и левый нижний. Связываю это скорее с каким-то браком сенсора нежели с программной неточностью. Хотя, это только предположение.

0  
37 exersizze   (22.01.2017 22:00) [Материал]
Да, согласен. Многовато.

36 maksut11   (22.01.2017 21:35) [Материал]
Ну я не знаю,у меня 1-1.5мм от точки нажатия.

0  
35 exersizze   (22.01.2017 12:10) [Материал]
Ок, учту! Но уменя тоже в пределах 3-5 пикселей прыгает, работе не мешает. Это связано с огрублением при математическом расчете координат.

34 maksut11   (21.01.2017 12:15) [Материал]
Дисплей не совсем точный, калибровка бы не помешала.

0  
33 exersizze   (18.01.2017 00:35) [Материал]
Отлично!) вопрос такой к собравшим, как точно тачскрин отрабатывает  нажатия? На дисплее черным цветом закрашивается один пиксель, совпадает ли он с местом куда "тыкнули"?  Я поначалу хотел сделать функцию калибровки тача, на случай если будут сильные отклонения, но пока никто не жаловался.

+1   Спам
32 maksut11   (17.01.2017 22:55) [Материал]
Проблема решена, не пропай 2х контактов разьема на экран. Экран работает, и это радует, что сразу отразилось положительным отзывом в Ибэй.

+1  
31 exersizze   (17.01.2017 21:39) [Материал]
Тогда проверять внимательно все соединения, должно было заработать сразу, больше никак. Есть еще конечно вероятность что китайцы засунули экран с другим контроллером, они такое практикуют время от времени.

30 maksut11   (17.01.2017 17:17) [Материал]
Запустил , Бибика не подключена, осцилограмма показывает что бикает. Прошил снова прошивкой автора, все так же, скомпелировал сам, тоже 0. Ногами дергает контроллер. На кварце синусойда 11.0600 амплитудой до 1в. Как проверить Экран?

0  
29 exersizze   (17.01.2017 10:19) [Материал]
Прошивается только флэш. Попробуйте прошить вот этим, должен раз в секунду мигать светодиод TX0 (PortD.6) и пищать динамик. Если будет мигать чаще или медленней, значит неправильно  выставлена частота работы микроконтроллера
http://avrproject.ru/kcv/terminal3_160722_test.hex

1-30 31-58
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация