MinniTerminal

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

MinniTerminal

Post by Lavr »

Этот проект я раскопал где-то и пытался тестировать в Proteus уже довольно-таки давно. Так давно, что я уже даже
не помню оригинальный адрес, хотя я обычно имею привычку сохранять и авторскую страницу к проекту.
Но к этому проекту - не сохранил, видимо потому, что оригинал был на немецком.

Тем не менее, я сейчас уже прогуглил интернет, и нашел адресок, где этот проект лежит, так сказать, в оригинале:
Minniterminal mit Nokia 3310 LCD und 4x4 Tasten

У меня проект не пошел тогда по двум причинам: в то время мне хотелось такой же примерно мини-терминал, но на
микроконтроллере PIC16F84A, тогда как этот проект выполнен на PIC16F628, а у меня их в то время просто не было.
Проект мини-терминала на PIC16F84A и Nokia 3310 LCD в сети в то время попадался, но его автор считал свой проект
коммерческим, исходниками делиться не стремился. Так что этот проект я сохранил себе просто на всякий случай.

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

Второй причиной считать этот проект неудачным было то, что PIC16F628 никак не принимал никакие коды.
Я связывал это с настройкой RS-232: у автора она весьма необычна, и на мой даже сегодняшний взгляд, она совершенно
неправильна, поскольку такой настройки просто не может быть в принципе:
Baud: 9600 Bits: 8 Stop: 0 Parity: Even

Четность и отсутствие стоп-бита - это просто ересь! Хотя бы 1 стоп-бит должен быть, иначе старт-бит не подать никак! :roll:
Поэтому я использовал настройку:
Baud: 9600 Bits: 8 Parity: No Stop: 1 - с этой настройкой можно было хоть получить три кода при нажатии кнопки!

Вернулся я к этому проекту в связи с тем, что наконец поставил на компьютере
драйвер виртуального COM-порта и нуль-модемного виртуального кабеля!

Так же я почитал комментарии к проекту на немецком с помощью Гугл-транслятора. Как оказалось, автор не документировал
свой проект, считая, что его обильных комментариев в исходнике более чем достаточно!
В результате выяснилось, что собранная мной давным-давно модель работает правильно, как и задумывал автор!
MiniTerm.PNG
Автором была приложена специальная тестовая программа, воспользоваться которой я ранее просто не мог, но с драйвером виртуального COM-порта это оказалось вполне возможным!
MiniTerm2.PNG
Единственное, что пришлось сделать - это пропатчить файл Minni_Term_Demo.exe на повод номера COM-порта: автор жестко забил в неё рабочий порт COM4, а у меня для этих целей - COM7. Но всё просто - через WinHEX открываем EXE-шник и патчим там сигнатуру "COM7" на нужную - эта сигнатура в файле единственная.

Файлы проекта Minniterminal прилагаю:
MiniTerm.zip
На мой взгляд, не очень удобно, что автор придумал для своего терминала некий язык, то есть послать просто так букву
"А"(41Н) не получится. Как это делать правильно внутри, в архиве, написано.
Ну и исходники там присутствуют, в случае необходимости можно адаптировать их под свои пожелания...
В архиве также оригинальная схема, мой частичный перевод с немецкого и оригинальные исходники. Те, что с проектом,
я вроде бы немного правил при давней отладке этого проекта.
You do not have the required permissions to view the files attached to this post.
iLavr
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: MinniTerminal

Post by Konstantin18 »

Также давно хотел себе маленький терминал с графическим монохромным экраном.
В части экрана мне как-то ближе разрешение 128х64 (отсылка к POS-терминалам :ebiggrin: ).

Приведенный выше проект мне не очень нравится, согласен с мнением Лавра:
Lavr wrote:На мой взгляд, не очень удобно, что автор придумал для своего терминала некий язык, то есть послать просто так букву "А"(41Н) не получится.
Вот хотел спросить:
- Какой протокол (кодировку) выбрать для вывода на экран ?

Очевидно что символы с кодами 0х01 - 0x1F будут управляющим, а 0х20 - 0xFF - печатными.
А что нужно еще ?
Скорее всего понадобятся какие-то ESC-команды. При этом не хотелось бы копировать целиком, например VT100.
Я сторонник минимализма.

Нашел у себя древний каталог мелкосерийных адаптеров к существующим индикаторам с параллельным интерфейсом.
Эти адаптеры реализовывали последовательный интерфейс. То есть по сути являлись мини-терминалами.
Возможно удастся почерпнуть что-то полезное.

PS. Удивительно, но эта фирма существует до сих пор!
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: MinniTerminal

Post by Lavr »

Konstantin18 wrote:Вот хотел спросить:
- Какой протокол (кодировку) выбрать для вывода на экран ?
Очевидно что символы с кодами 0х01 - 0x1F будут управляющим, а 0х20 - 0xFF - печатными.
А что нужно еще ?
Скорее всего понадобятся какие-то ESC-команды. При этом не хотелось бы копировать целиком, например VT100.
Я тоже с этим вопросом не определился, потому как, если проект использовать действительно как Мини-терминал,
то надо поддержать какой-то известный протокол...

С другой стороны, хочется, чтобы был прямой доступ к графическими и др. командами LCD Nokia 3310 - я к ним
и привык уже, и 8 штук таких дисплеев имею в "закромах родины"... :wink:
iLavr