1 Отредактировано AlexBel (06-08-2019 12:47)

Тема: Плата разработчика для ПЭВМ "Агат"

Всем привет.
Решил написать о своём очередном прибамбасе для "Агата" - вдруг кого заинтересует. Искал подходящую тему для размещения этого сообщения - похоже, это самая подходящая :)

Для удобства разработки различных устройств существуют специальные платы, так называемые девборды (от Development Board). На них содержится набор электронных компонентов, которые можно с удобством использовать при разработке. Такие платы строятся, как правило, на базе какого-либо элемента высокой интеграции. Это может быть процессор, микроконтроллер, DSP, ПЛИС и т.п. Подобную плату я решил разработать для ПЭВМ "Агат" для облегчения разработки под него железа и ПО.
"Сердце" конструкции - FPGA FLEX6000 на 1300 LEs, работает от напряжения 5Вольт. Кроме FPGA, на плате предусмотрена установка:
- Статическая память 512к х 8
- Буфера линий адреса и данных
- Микроконтроллер STM32F103C8T6
- Слот для карты памяти microSD, подключённый к контроллеру
- Интерфейс RS232, подключённый к контроллеру
- Два светодиода, подключённые к контроллеру
- Ионистр для питания RTC контроллера
- Таймер КР580ВИ53
- Звуковой синтезатор SAA1099
- GPIO 24 линии расширения
- Светодиод, подключённый к FPGA

К сожалению, из-за ошибки при проектировании на настоящий момент нет возможности использовать микроконтроллер, что существенно ограничивает функционал. Этим вопросом буду заниматься в ближайшее время.
На настоящий момент все узлы, кроме связанных с микроконтроллером, протестированы с ручном режиме (через команды чтения/записи памяти программой МОНИТОР), работают нормально.

Кроме того, в расчётах расположения разъёма RS232/звука и microSD-карты я допустил ошибку и они расположены слишком высоко. Для корпуса "девятки" это не важно, там окна в задней части корпуса достаточно большие. А корпус "семёрки" немного перекрывает разъём карты, на фотографии это заметно. Я ещё не пробовал вставлять/извлекать карту, но, думаю, в семёрочном корпусе это, как минимум, неудобно...

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

Немного фото:

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=545&download=1
http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=546&download=1
http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=547&download=1

Post's attachments

Attachment icon S2500038.JPG 740.21 kb, 831 downloads since 2019-05-05 

Attachment icon S2500042.JPG 576.63 kb, 775 downloads since 2019-05-05 

Attachment icon S2500044.JPG 465.27 kb, 803 downloads since 2019-05-05 

2

Re: Плата разработчика для ПЭВМ "Агат"

Йо-хо-хо, супер! Несколько вопросов:
1. Почему такая совсем уж древняя ФПГА? Есть же пятивольтовые и повкуснее, та же ACEX, например.
2. Зачем этот анахронизм ВИ53? Ведь элементарно счетчик/делитель синтезируется в ФПГА.
3. Что, например, предполагается на этой платке разрабатывать?

Лично мне проект РЕАЛЬНО интересен, поэтому и вопросы. ;)

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

3 Отредактировано AlexBel (06-05-2019 11:42)

Re: Плата разработчика для ПЭВМ "Агат"

LeoN пишет:

Йо-хо-хо, супер! Несколько вопросов:
1. Почему такая совсем уж древняя ФПГА? Есть же пятивольтовые и повкуснее, та же ACEX, например.
2. Зачем этот анахронизм ВИ53? Ведь элементарно счетчик/делитель синтезируется в ФПГА.
3. Что, например, предполагается на этой платке разрабатывать?

Лично мне проект РЕАЛЬНО интересен, поэтому и вопросы. ;)

1. Так как устройство разрабатывалось, в первую очередь, для себя, я использовал те компоненты, которыми располагаю. Если у меня уже есть подходящие, зачем искать ещё что-то? Серийное производство я не предполагаю, а для одного-двух экземпляров комплектуха есть. Важно, что имеющиеся компоненты обеспечивают необходимый функционал.
2. Как я считаю, ВИ53 - довольно востребованный элемент, поэтому, поскольку место на плате позволило, я его ввёл в схему. Можно, конечно, засунуть его и в FPGA, но зачем, когда есть возможность поставить реальный чип? Впрочем, на плату его можно и не устанавливать.
3. Например, музыкальный синтезатор.

Я почему спросил про реальный интерес - есть две-три свободные чистые платы и, если интерес реален, могу поделиться. Правда, требуются три мелких исправления (одно, если не использовать SAA1099), но скальпелем и паяльником это решается за пару минут.

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

P.S. Есть проблема с вертикальным расположением разъёма карты, дополнил первое сообщение.

4

Re: Плата разработчика для ПЭВМ "Агат"

Не отказался бы от платы ;)

5

Re: Плата разработчика для ПЭВМ "Агат"

Заменил прожорливые 74F245 на более экономичные 74LVC245A - потребляемый ток сразу снизился с 450мА до 250мА. Оптимизация-с!

6

Re: Плата разработчика для ПЭВМ "Агат"

AlexBel пишет:

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

Так и предполагал.


AlexBel пишет:

3. Например, музыкальный синтезатор.

Ну, наличие SAAшки как бы само-собой говорит об этом. Далее, наличие слота microSD намекает о контроллере SD. Более того, наличие STM намекает о поддержке FAT16/32 (сугубо ИМХО, STM для этого избыточен и излишен). А что еще предполагалось разрабатывать? Ну просто интересно...


AlexBel пишет:

есть две-три свободные чистые платы и, если интерес реален, могу поделиться.

Полагаю, Владимир быть может заинтересуется, он на форуме изъявлял интерес и желание осваивания ПЛИС, и именно применительно к АГАТику.

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

7 Отредактировано AlexBel (06-05-2019 19:58)

Re: Плата разработчика для ПЭВМ "Агат"

Не понимаю, в чём излишество и избыточность контроллера.

Кроме синтезатора планирую разработать накопитель, "заточенный" под собственные нужды. Т.е. предполагается загрузка программы без использования DOS, все операции с накопителем в самой программе. Детали ещё прорабатываются и это, думаю, надолго. Впрочем, я не спешу :)
Собственно, синтезатор и накопитель - элементы одного проекта, первый будет использовать второй. Не знаю, пока что, какой вид будет иметь конечное устройство, но оно, предположительно, будет использовать свой накопитель.

Ещё в планах эмулятор контроллера дисковода и самого дисковода в одноплатном варианте и общим носителем и использованием образов. Есть и другие планы на разных этапах разработки, из которых не все имеют отношение к этой девборде :)

8 Отредактировано Voldemar0 (07-05-2019 05:52)

Re: Плата разработчика для ПЭВМ "Агат"

> Полагаю, Владимир быть может заинтересуется, он на форуме изъявлял интерес и желание осваивания ПЛИС, и именно применительно к АГАТику.

Не, я пасс :) У меня есть девборды с альтерой, но я пока не закончил большой огромный гиганский проект на галке. Железо работает, но без софта железо неинтересно делать, а софт - это процентов 90-95 работы и она ещё не закончена.

Игоря торопят по коллекциям, так что я на полгода вообще выпал из процесса.

9 Отредактировано LeoN (07-05-2019 06:16)

Re: Плата разработчика для ПЭВМ "Агат"

AlexBel пишет:

Кроме синтезатора планирую разработать накопитель, "заточенный" под собственные нужды. Т.е. предполагается загрузка программы без использования DOS, все операции с накопителем в самой программе.

AlexBel пишет:

Ещё в планах эмулятор контроллера дисковода и самого дисковода в одноплатном варианте и общим носителем и использованием образов.

Удивительно, у меня абсолютно такие же задумки! Наверное, мы с тобой подключены к одному и тому же ноду Вселенской информационной сети. ;)

Voldemar0 пишет:

У меня есть девборды с альтерой

На каком чипе?

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

10 Отредактировано AlexBel (07-05-2019 09:46)

Re: Плата разработчика для ПЭВМ "Агат"

LeoN пишет:

Удивительно, у меня абсолютно такие же задумки! Наверное, мы с тобой подключены к одному и тому же ноду Вселенской информационной сети. ;)

Наверное, это потому, что современный, быстрый и удобный накопитель - это первое, что нужно старым компьютерам. Ну, ещё улучшенная клавиатура, но это не всегда - часто вполне устраивает и старая. Всякие там подключённые модемы, вай-фай, пылесосы, видеопроцессоры и прочее, в большинстве случаев просто эксперимент без шансов практического применения. А накопитель - да, он всегда востребован. Как говорил владелец кооперативного туалета в фильме девяностых годов, "У меня клиент будет всегда!"

Немного по "избыточности" контроллера на борту платы:
- Загрузка FPGA из файла с карты
- Обмен данными между РС и "Агатом" в режиме DMA
- Перенос данных в памяти "Агата" в режиме DMA
- Использование RTC контроллера
- Работа с SD-картой в режиме прямого доступа и с FAT.

Это только то, что с ходу приходит в голову. Так что лично для меня контроллер на борту не только не избыточен, но и почти необходим. Конечно, можно сказать, что, например, с картой памяти можно работать прямо из "Агата". Но после подсчёта требуемых для поддержки FAT ресурсов становится немного грустно. И зачем это? Пусть каждый занимается своим делом - "Агат" - вычисляет, накопитель - накапливает, Швондер - чистит сараи...

11 Отредактировано Voldemar0 (07-05-2019 10:50)

Re: Плата разработчика для ПЭВМ "Агат"

> На каком чипе?
Не помню, они для меня все на одно лицо
Там три микрухи на двух платах. Мелкая (типа max- какая-то, что ли), на одной плате. На второй - вроде циклон и ещё какая-то, попроще.
Я так подбирал, чтобы было три разных по навороченности чипика.



> Но после подсчёта требуемых для поддержки FAT ресурсов становится немного грустно.

А, собственно, в чём проблема ? На FAT всего 3-4 условых отдельных региона данных:

1) Partition table - её можно один один раз прочитать, запомнить начало единственного раздел и всё. Если её нет - пропускаем шаг.
2) Boot record. Там тоже, даже на fat32 всего несколько секторов. И тоже модифицируемых данных нет - можно выуидить то, что нужно и не хранить всё целиком. Размер кластера, смещение кластера 2 и начало корневого каталога (для fat32).
3) Для fat32: битмап свободных кластеров. Ну вот с ним не работал, не знаю как с ним лучше быть.
4) Сама FAT. Всю её в озу читать нелогично - на больших накопителях с fat32 это совершенно дикий объём. ЛУчше сделать кеширование последних используемых блоков.
5) Текущий каталог. Тоже весь не нужен, но для скорости доступа можно держать в озу. Но это только если делать именно файловую систему для dos33, отраженную на FAT. Если же работать только с образами дисков - то и каталог деражть в памяти не нужно.
Тут даже близко и 10 кб не набегает.

12

Re: Плата разработчика для ПЭВМ "Агат"

Voldemar0 пишет:

Тут даже близко и 10 кб не набегает.

У меня выходило по подсчёту около 20 килобайт - код и данные. Конечно, я мог и ошибиться. Но, всё же, предпочитаю, чтобы DOS (или кто-то ещё, работающий с накопителем) только давал трек/сектор/данные, а контроллер уже их переваривал, подсовывая, что угодно - прямой доступ до карты, образ в виде файла, ОЗУ или что угодно ещё.

13 Отредактировано AlexBel (17-05-2019 08:19)

Re: Плата разработчика для ПЭВМ "Агат"

LeoN пишет:

Полагаю, Владимир быть может заинтересуется, он на форуме изъявлял интерес и желание осваивания ПЛИС, и именно применительно к АГАТику.

А сам не желаешь? Судя по сообщениям в теме https://zx-pk.ru/threads/26887-dopozu-d … -9-novodel есть желание заниматься разработками под "Агат". Вот неплохой вариант - плата вставляется прямо в слот "Агата", на борту приличный функционал (для начала, во всяком случае). Да, контроллер не работает, но! При помощи одного-двух порезов дорожек, тонких перемычек и нескольких резисторов можно подключить RS232 и SD-карту прямо к Флексу и они будут доступны. Конечно, немного неприятно то, что Флекс при каждом включении нужно заливать конфигурацией, но это, опять-таки, решается. Прямо на коннектор для USB Blaster можно повесить конфигурационную микросхему и она, при включении, будет заливать конфигурацию. Можно сделать простую схему на маленьком контроллере и EEPROM, которая будет делать то же самое (в моём картридже для MSX контроллер ATmega128 читает файл конфигурации с SD-карты и заливает во Флекс). Если же чего-то не хватает (скажем, часов или четырёхстрочного LCD), то можно воспользоваться коннектором расширения - 24 линии ввода-вывода и питание.

Кстати, я пробовал загонять контроллер SD-карты во Флекс - по кайфу из сисмона "Агата" рулить картой :)  Контроллер слопал половину объёма Флекса, но оно того стоит - контроллер весьма умный...

14

Re: Плата разработчика для ПЭВМ "Агат"

AlexBel пишет:

А сам не желаешь? Судя по сообщениям в теме https://zx-pk.ru/threads/26887-dopozu-d … -9-novodel есть желание заниматься разработками под "Агат". Вот неплохой вариант - плата вставляется прямо в слот "Агата", на борту приличный функционал (для начала, во всяком случае).

Мне такая карта избыточна... Я же все еще с турбой бодаюсь. Далее планирую SD-контроллер на EPM7064/128S сделать для чтения/записей образов SD<->FDD, чтобы всякие проги в турбе пощупать.

AlexBel пишет:

Кстати, я пробовал загонять контроллер SD-карты во Флекс - по кайфу из сисмона "Агата" рулить картой :)

А вот это что-то не совсем понятно...

AlexBel пишет:

Контроллер слопал половину объёма Флекса, но оно того стоит - контроллер весьма умный...

Что же это за шайтан-аппарат? ;)

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

15 Отредактировано AlexBel (17-05-2019 15:51)

Re: Плата разработчика для ПЭВМ "Агат"

LeoN пишет:
AlexBel пишет:

Кстати, я пробовал загонять контроллер SD-карты во Флекс - по кайфу из сисмона "Агата" рулить картой :)

А вот это что-то не совсем понятно...

AlexBel пишет:

Контроллер слопал половину объёма Флекса, но оно того стоит - контроллер весьма умный...

Что же это за шайтан-аппарат? ;)

Код интерфейса с сообщением. Его регистры я отобразил на адресное пространство "Агата" и работал с ними через функции записи-чтения "Монитора".

Post's attachments

Attachment icon sd_controller.vhd 11.7 kb, 287 downloads since 2019-05-17 

16 Отредактировано AlexBel (06-08-2019 12:48)

Re: Плата разработчика для ПЭВМ "Агат"

Вторая версия платы разработчика для "Агата". Возможно, кому-нибудь будет интересно.

Содержимое, по сравнению с первой версией, изменено почти полностью:
1. FPGA Cyclone III 3C5 (5000LEs) с конфигуратором
2. SDRAM до 16 мегабайт
3. SD-карта памяти (сигнал CD не используется)
4. DS1307Z (часы реального времени, ионистр заменён на батарейку)
5. FM-синтезатор OPL3 Yamaha YMF262 (ЦАП на отдельной плате)
6. преобразователь уровней для RS-232
7. I2C (обмен данными с часами, сигналы выведены на коннектор расширителя интерфейса)
8. MIDI-интерфейс (вход-выход) с гальванической развязкой по входу
9. Честное преобразование TTL<>LVTTL (использование преобразователей с двумя напряжениями питания)

К сожалению, из-за занятости всех доступных выводов FPGA не удалось сделать светодиодную индикацию (только индикатор питания). Но, если нужно, можно подключить через расширитель интерфейса на шине I2C.

На данный момент плата собрана полностью. Протестирована работа преобразователя RS-232 и FPGA (на "Агате" выполняется программа из внутренней памяти FPGA). Протестирован синтезатор YMF262 (к сожалению, я, пока что, не получил заказанные для него ЦАП, поэтому удалось протестировать, только читая регистр статуса). Обнаружен один огрех на плате (отсутствует дорожка, исправляется маленькой перемычкой, видно на фото возле коннектора JTAG). Также обнаружена проблема - при загрузке конфигурации через JTAG во время работы компьютера происходит его зависание.  Оказалось, при заливке конфигурации через JTAG на портах появляется напряжение, порядка двух вольт. И его хватает, чтобы управлять микросхемами и транзисторными ключами. И резистора 10кОм, тянущего на землю, недостаточно. Поставил резисторы 1к - всё нормально заработало. Может, кому-нибудь информация пригодится при разработке.

Фото:

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=579&amp;download=1
http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=580&amp;download=1

Post's attachments

Attachment icon S2500060.JPG 530.03 kb, 506 downloads since 2019-06-14 

Attachment icon S2500063.JPG 605.95 kb, 500 downloads since 2019-06-14