Одно из ограничений компьютера БК-0010(-01) состоит в том, что для вывода звука в нем предусмотрен только встроенный бипер. Воспроизведение звука потребляет процессорное время, что ограничивает области применения бипера. В качестве решения существует аксессуар под названием Менестрель. В наши дни найти его крайне трудно, однако мне удалось сделать реплику.

Все началось с попавшей мне в руки платы от Менестреля:

Печатная плата от приставки Менестрель для БК-0010(-01)

Плату мне подарил Photon1984. Ему она досталась уже в таком виде.

Простейшим решением было бы запаять в плату недостающие компоненты, и вот он Менестрель. Но, повозившись с платой с полчаса, был сделан вывод, что проще развести новую плату. Также в этом случае проект смогут повторить все желающие.

Плата была разведена в KiCad . Схему Менестреля реверсить не пришлось. До меня ее зареверсил Андрей Тимофеев, a.k.a. Terra . Схема Андрея была перерисована практически один в один. Затем были подготовлены отсутствующие в KiCad футпринты и разведена плата. Плата не сложная и наверное может быть сделана ЛУТом или фоторезистом . Но в последние годы я обленился, поэтому плата была закана на заводе.

Пока я ждал плату, было решено заняться корпусом. Корпус можно напечатать на 3D-принтере или взять готовый, например, от блока МСТД. Это аксессуар, предназначенный для тестирования БК, а также решения некоторых других задач. МСТД расшифровывается как Мониторная Система Тестов и Диагностики. Блок МСТД шел в комплекте со всеми компьютерами БК. В связи с этим найти корпус от него, с начинкой или без, не составляет большого труда.

В данном проекте было решено воспользоваться готовым корпусом. Так реплика Менестреля будет больше похожа на оригинал. Да и чего скрывать, отлитый корпус в руках держать все же приятнее, чем напечатанный. Но раз уж на руках есть корпус, в OpenSCAD также была сделана и его модель, для повторяемости. Это не точная копия , а всего лишь адаптация для 3D-печати.

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

Реплика музыкальной приставки Менестрель

Надписи сделаны при помощи маркиратора . А вот что находится внутри:

Плата реплики Менестреля

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

Как ни странно, все используемые в Менестреле компоненты доступны и по сей день, не исключая отечественных электролитических конденсаторов К50-35, движкового переключателя ПД11-5 и кварца в корпусе HC6U на 1 МГц. Самая большая сложность состоит в запаивании розетки СНП58-64. Не бывает угловых розеток СНП58-64. Это значит, что нужно взять прямую розетку, вручную согнуть все 64 вывода, и попасть ими в отверстия на плате.

Первым делом нужно убедиться, что тактовый генератор стартует:

Осциллограмма тактового генератора в Менестреле

Здесь желтый трейс соответствует пину 8 (CLK_B) микросхемы К155ЛА3, а синий трейс — пинам 9 и 10 (CLK_A). Я заметил, что генератор иногда стартует сразу, а иногда с задержкой до 20 секунд. Возможно, стоит подбирать номинал C1, более подходящий для конкретного кварца. Готовность устройства можно определить по наличию характерного шума на аудиовыходе.

Обратите внимание на движковый переключатель. В положении «6» Менестрель имеет шесть независимых каналов, три на левое ухо и три на правое. Звук здесь стерео. В положении «5» один из каналов используется в качестве внешнего таймера для БК. Мне трудно представить, зачем в БК может потребоваться второй таймер. Возможно, разработчики Менестреля не знали о встроенном таймере БК, или не хотели полагаться на недокументированную возможность устройства. Руководство по эксплуатации на Менестрель, доступное онлайн, предупреждает, что в положении переключателя «5» БК может не стартовать при включении. В общем, если сомневаетесь, используйте положение «6».

Итак, плата есть, корпус есть, генератор стартует. Осталось только воспроизвести какой-нибудь звук. Но сделать это не так-то просто.

Официальное ПО для Менестреля называется БММ, Базовый Музыкальный Монитор. Оно шло на микросхеме ПЗУ, которой у меня нет. Со слов людей, которые видели БММ, он не отличается особым удобством. Таким образом, программу, работающую с Менестрелем, предстояло писать с нуля. Разумеется, это будет простая демонстрационная программа, а не музыкальный редактор.

Ассемблер для БК-0010(-01) мы уже проходили. Это упрощает задачу. Что мы не проходили, это работу с портом ввода-вывода (GPIO). Но тут все просто. Имеется 16 пинов на вход, DI00 .. DI15, а также 16 пинов на выход, DO00 .. DO15. Работа с ними осуществляется через 16-и битный регистр с адресом 0o177714 , при этом используется инверсный код. Ноль в соответствующем разряде регистра означает высокое напряжение, а единица — низкое напряжение.

Вот пример:

MOV #0x7A69, @#177714    ; 0x7A69     = 01111010 01101001
; DO00..DO15 = 01101001 10100001

Нулевой разряд регистра соответствует DO00, первый разряд — DO01, и так далее. Чтение из DI00 .. DI15 производится по тому же принципу, хотя в случае с Менестрелям нам это и не пригодится. Текущее состояние DO00 .. DO15 через данный регистр нам не доступно. Его можно хранить в специально отведенной для этого ячейке памяти с адресом 0o256.

Звук в Менестреле генерируется при помощи пары микросхем КР580ВИ53. Последняя является отечественным аналогом Intel 8253. Это программируемый таймер с тремя независимыми каналами. Он имеет разные режимы работы. В данном случае нам нужен режим генератора прямоугольных сигналов под номером 3. В этом режиме таймер делит частоту тактового генератора на заданное 16-и битное число.

Зная, как работать с портом ввода-вывода, и имея на руках даташит 8253, остальное — дело техники. Исходный код демонстрационной программы доступен здесь . Код довольно простой и снабжен комментариями, поэтому разбирать его построчно не вижу смысла.

Уровня выходного сигнала Менестреля достаточно для низкоомных наушников. Звук при этом идет средней громкости, комфортный для прослушивания. Если вы хотите использовать динамики, то понадобится внешний усилитель.

Ссылки по теме:

Насколько мне известно, на момент написания этих строк музыки для Менестреля эффективно не существует. Хочется надеяться, что проект реплики поможет исправить это досадное недоразумение.

EnglishRussianUkrainian