ChipBasic-16M

МиниКот-MK1

Программируемый, любительский микрокомпьютер

 

v1.01 (c) 2020-2022 Фаиль Айсулов

Лицензия    

 

Программа, распространяться на условиях лицензии GPL (GNU General Public Licence) версии 3  и более поздней. Компьютер МиниКот-MK1 основан на проектах AVR-ChipBasic-16 V0.72, AVR-ChipBasic-328 V1.00 и является измененной версией этих проектов. Программа модифицировалась исключительно для собственных нужд. Авторы не дают никаких гарантий на свои программы и не несут ответственности за проблемы, возникшие в результате их использования. Все товарные знаки, указанные в тексте, являются собственностью соответствующего владельца.

Предисловие

В детстве у меня был компьютер Liko BBG-1. Захлестнувшая ностальгическая волна, привела меня к компьютерам  AVR-ChipBASIC. Постепенно появилось русифицированное меню и новые ключевые слова. В дальнейшем мой 7 летний сын тоже заинтересовался.    С ним вместе мы придумали новую таблицу символов, название компьютера «МиниКот», игры "Spacecat","Keysim".

Обвязка контроллера и назначение выводов

Описание и особенности

 

-Устройство ввода -обычная клавиатура компьютера

-Устройства вывода — телевизор

-Меню на русском языке.

-Языка программирования -  MK-BASIC

-30x23 символов,анимация графического символа, 8 цветов

-1-канальный аудиовыход (ноты, шум) с огибающей

-Редактор программ с псевдоподсветкой синтаксиса.

-39 строк программы, 27 символов в строке.

-60 программ во внешнем модуле памяти (до 4 микросхем EEPROM 24c32-24c256)

-Выбор диска. Один диск — это одна микросхема EEPROM.

-Опционное EEPROM данных (24C32-24с256) для хранения «снимка экрана»

-Обмен программами и данными через последовательный порт (1200 Baud)

-i/o port порт ввода / вывода на 4 пина

 

К микро компьютеру подключается клавиатура PS/2. В связи с тем что гнездо PS/2 проблематично найти в закромах любителя электроники, используется USB разъем. Штекер PS/2 клавиатуры необходимо перепаять на USB штекер. Можно использовать USB клавиатуру, если контроллер клавиатуры поддерживает работу через интерфейс PS/2

 

Последовательный порт реализован программно и работает с битрейтом 1200 Baud. Служит для обмена программами с PC. В базовой схеме к последовательному порту подключен USB-UART переходник на микросхеме CH340G. Но, вы можете вместо USB-UART, подключить блютуз (HC-06) или вайфай (ESP8266) модуль, согласовав логические уровни.

 

Для хранения программ используется модуль памяти на микросхемах EEPROM 24c32-24с256. На 24с32 помещается 4 программы, на 24с64 - 8 программ и т.д. до 15 программ. В системе доступно для выбора 4 логических диска, один диск- это одна микросхема EEPROM. Для хранения дополнительных данных и переменных используется пятая микросхема EEPROM. Не обязательно устанавливать все 5 микросхем, для хранения программ достаточно одной, а дальше все зависит от вашего аппетита.

Сейчас в продаже есть множество плат с микроконтроллером ATmega328P, с обвязкой в виде кварцевого резонатора и кнопкой сброса. Эти платы по цене не сильно дороже голого контроллера.

В качестве контроллера можно использовать Arduino Pro Mini 16Mhz/5v,или один из многочисленных клонов Pro Mini, на микроконтроллере Atmega328P. На других ардуинках микрокомпьютер работать не будет, связано это с тем что ресурсы UART микроконтроллера использует клавиатура.

Видео выход

 

Кодер цветности PAL собран на микросхеме AD724JR (AD722JR,AD725). Цена такой микросхемы на на Ali 150р. за 5 шт. Не помешает заказать и резисторы на 75 Ом.  Кварцевый резонатор добываем из телевизора или видеомагнитофона, разъемы из старых видеокарт.

Для вывода цветного изображения, без PAL кодера, компьютер можно подключить к разъему SCART телевизора, перемычка на порту PD1 должна быть установлена. Если вы счастливый обладатель редкого монитор NEC MultiSync LCD1970NX, то вам повезло, компьютер можно подключить к VGA разъему монитора, перемычку на порту PD1 нужно убрать.

PB1 - HSYNC/CSYNC, PB2 - VSYNC, PD5 - BLUE, PD6 - RED, PD7 - GREEN, PD3 - AUDIO

Схема

Микрокомпьютер легче собирать отдельными модулями, постепенно докупая для него новые детали. Схема состоит из нескольких частей:

-Системная плата, нужен только микроконтроллер с обвязкой и разъемами.

-Плата видео выхода на старте состоит из 4 резисторов, добавив еще 4 резистора получаем SCART.Следующий этап, PAL кодер.

-Микросхема 24с32 есть в составе большинства модулей часов реального времени, сгодится для модуля памяти.

-USB-UART переходник подойдет любой, какой есть в наличии.

Модуль памяти

EEPROM - cамая распространенная микросхема, после lm358.Такую микросхему можно найти в компьютерном железе, теле, аудио, видео и прочих приборах... Продается везде, стоит не дорого. Ресурс огромный, в отличии от микроконтроллера, большое разнообразие: начиная от EEPROM at24cXX заканчивая  FRAM fm24cXX. Отличная микросхема для модуля памяти. Если в наличии нет 5 штук, можно поставить одну, а потом постепенно нарастить.

Последовательный порт

USB-UART преобразователь собран на микросхеме CH340G. Последовательный порт реализован программно PB0 - TXD, PD2 - RXD. Разъем USB служит одновременно и гнездом питания.

Сборка проекта из исходников

 

Для сборки нужен ассемблер AVRA и PERL.

Далее не руководство, а подсказка

-проще всего установить Linux Mint на отдельный жесткий диск.

-ставим необходимые программы 

 sudo apt update

 sudo apt install build-essential

 sudo apt install avra

 sudo apt install perl

 sudo apt install avrdude

-согласно лицензии, файлы inc не распространяются в составе проекта

 папка includes пустая, файл m328Pdef.inc есть в составе Atmel Studio. 

-сборка и прошивка программатором USBASP

 cd /путь/папка проекта/libmio/generator;perl gentab_1.pl

 cd /путь/папка проекта/libmio/generator;perl gentab_2.pl

 cd /путь/папка проекта;avra main.asm

 cd /путь/папка проекта;avrdude -c usbasp -p m328P -P usb -U flash:w:/путь/папка проекта/main.hex

Если нет необходимости вносить изменения, можно просто залить прошивку.

 

Принцип работы.

 

Таймер 1 отвечает за тайминг видео. Синхронно с таймером генерируется доступ к чтению EEPROM . Таймер 2 генерирует аудиосигнал. Ресурсы USART использует клавиатура. Последовательный порт реализован программно.

8 Bit ,1200 Baud ,no Parity,1 Stopp-Bit. Большинство функций реализовано через библиотеку libmio.

Программа на бейсике хранится во внутреннем EEPROM микроконтроллера. Программа остается в памяти даже после пере прошивки микроконтроллера, если выставить фьюз бит EESAVE.

Редактор

ВЛЕВО, ВПРАВО, ВВЕРХ, ВНИЗ - перемещают курсор в текстовом поле, при необходимости текст прокручивается
HOME - помещает курсор на первый символ текущей строки.
END - помещает курсор на последний символ текущей строки.
DEL - удаляет символ справа от курсора.
BACKSPACE - удаляет символ слева от курсора.
ENTER - переходит к началу следующей строки
ALT+INS - вставляет пустую строку в текущей позици. Все строки сдвигаются вниз.
ALT+DEL - удаляет строку , все строки сдвигаются вверх

F2 - сохранить
F3 - отменить все до состояния предыдущего сохранения
F8 - очистить всю программу
F9 - переименовать  программу
F10- выполнить программу

 

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

Главное меню микрокомпьютера

Выбранный в данный момент пункт меню отмечен указателем
Перемещение по пунктам производится клавишами ВВЕРХ, ВНИЗ.
Выбор осуществляется клавишей ENTER

РЕДАКТОР - запускается редактор текущей программы
ВЫПОЛНИТЬ - исполняется текущая программа, загруженная в память
ALT+CTRL+DEL - перезагрузка компьютера
CTRL + C - прерывает выполнение программы
ЗАГРУЗИТЬ, СОХРАНИТЬ - открывается дополнительное окно выбора диска.
ПРИНЯТЬ, ОТПРАВИТЬ - обмен листингом программы через последовательный порт
СПРАВКА - открывается окно справки.

Выбор диска

При выборе пунктов меню «ЗАГРУЗИТЬ», «СОХРАНИТЬ» открывается окно выбора диска. Выбор диска осуществляется нажатием на функциональные клавиши F1 ,F2 ,F3 ,F4.

Один диск — это одна микросхема EEPROM. В случае если микросхема не установлена, появляется сообщение «MEMORY CARD ERROR» . После выбора диска, открывается меню выбора программ.

Выбор программы

С помощью клавиш курсора выбирается программа, ENTER запускает действие. С помощью ESC вы вернетесь в главное меню.

Загрузка программ через последовательный порт.

С помощью программы «Terminal» для Windows, на микрокомпьютер «МиниКот-MK1» можно загружать программы. Для этого в меню микрокомпьютера выбрать пункт «ПРИНЯТЬ», а на компьютере с Windows, в программе «Terminal» нужно нажать кнопку «Send File» и выбрать программу.

Справка

Пункт меню «СПРАВКА» выводит таблицу символов с адресацией в шестнадцатеричной системе исчисления. Во время редактирования программы, можно выйти в меню и открыть справку, чтобы посмотреть адрес графического символа. В памяти компьютера две таблицы символов незначительно отличающихся друг от друга, имеющие одинаковую адресацию, что позволяет анимировать символ, переключаясь с одно таблицы на другую. В данном меню переключение производится клавишами «ВЛЕВО», «ВПРАВО».

Список изменений:

v1.01 (5.03.2021)

-Портирование части функционала ключевого слова  "PRINT" из AVR-ChipBasic-32

-Новые ключевые слова SCREEN, LED

Загрузки