ChipTerm пробная версия

При работе с разными проектами на МК, порой есть необходимость в организации отладочного вывода. Я не спорю, что есть компьютер, и можно подключиться к нему по COM-порту. Собственно я так и делаю. Плюсов тьма, и немаловажный - история, которую можно отмотать и увидеть почему так случилось.

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

Так и родилась идея описываемого здесь устройства.

Требования

Основу задачи составляет ТЗ и чем детальнее и точнее оно описывает задачу, тем лучше и качественнее будет результат. К сожалению, я до сих пор не определил полностью "что мне надо", соответственно и результат отсутствует. Но какие-то наработки всё же есть.

Изначально требовалось просто принимать данные по UART и выводить их на дисплей. Далее было решено что без обработки переносов строк и прокрутки по заполнении экрана "ну невозможно". После чего было решено встроить и обработку ESC-последовательностей терминалов. И главное - как можно дешевле и функциональнее.

Выбор средств

В качестве аппаратной основы было решено взять STM8S003F3P и дисплей от Nokia 1202, в первую очередь из-за их цены. Позже стало ясно что выбор вполне оправдан.

Для разработки програмной части был выбран язык C и среда разработки IAR. Но ввиду лицензионных соображений есть идея после "определения с ТЗ" написать проект полностью на ассемблере в среде STVD. Такое решение позволит всем использовать данное устройство не только в личных, но и в коммерческих целях. Замечу, что идею "повысить производительность" я не преследую. Я прекрасно укладываюсь в отведённые тайминги, просто оптимизировав C-код проекта.

Пробная схема

Для тестирования производилось подключение по следующей схеме:
Пробная схема подключения

Выбор пинов в целом "от фонаря", после разводки платы возможны изменения.

Небольшой промежуточный результат

Альфа версия умеет принимать данные на скорости до 115200 бод. Есть поддержка многих команд терминала VT52, но не всех. К сожалению VT100 реализовать не получается (его команды прокрутки областей достаточно ресурсоемки). Возможности настройки пока в зачаточном состоянии (опять же из-за неясности с дальнейшим развитием органов управления) и скорость меняется либо перекомпиляцией проекта, либо внесением в EEPROM значений делителя для UART.

Фото кликабельно на 2.7МБ.
ChipTerm alpha версия

Видео загрузки роутера с подключенным терминалом
<a href="http://www.youtube.com/watch?v=G1mhoQVngRY">Смотреть на YouTube: http://www.youtube.com/watch?v=G1mhoQVngRY</a>

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

Планы

Требуется решить несколько вопросов:

  1. Нужна ли возможность подключения полноразмерной PS/2 клавиатуры? - Подключения PS/2 клавиатуры планируется возможным, но не обязательным. Всё же терминал предполагает не только средства вывода, но и ввода.
  2. Предусмотрены "локальные" кнопки для настройки режима работы устройства, но какую функцию кнопкам выполнять в режиме терминала и как её задавать? - Скроллинг исключен, ввиду большой ресурсоемкост. Будет реализовыватся передача фиксированных строк btn[1|2|3]\n.
  3. Как организовать питание устройства? - Паразитное питание 3.3В. Для 5В схемы дополнительно стабилитрон на питание и резисторы на UART для защиты.
  4. Интересует ли проект на ASM? Для C необходимо найти бесплатный компилятор без ограничений на распространение.

Вопросы казалось бы пустяковые, но ответа на них не существует. Желающие высказать свое мнение/пожелания приветствуются. Пользуемся контактами или комментариями в сообществе.

Файлы: chipterm_alpha.zip, DSC03202.JPG