Просто так... Проект 117 ![]() Делаем совместно с другом (моя часть - в основном схемы-платы-ПЛИС-низкоуровневые драйверы, его часть - код верхнего уровня, написание инструментального и отладочного кода, финансовая поддержка. Общее - разработка идеологии и архитектуры). Хотелось сделать максимально удобную в программировании минималистическую олдскульную систему. И при этом - реконфигурируемую и построенную с использованием ПЛИСок. И заодно - поизучать Verilog. Практическое применение будет (секвенсор для электронной музыки с заточенностью под всякую кислоту и всё такое ![]() Конечно же, сначала хотелось сделать это на архитектуре PDP11. (1806вм2 или J11 или процессорное ядро в ПЛИС)... Но линейного адресного пространства в 64к, и скорости 4МГц -оказалось маловато (нам была нужна графика, таблицы в памяти и возможность расширения). Пришлось перейти на 68К (в каком-то смысле это расширение той же идеи PDP11 с более мощной системой команд, и тоже фетишный процессор - на нем были Amiga, SEGA, и еще много-много всего). Кроме того, его производили больше 30-ти лет (производство закрылось лишь недавно), и достать его сейчас попроще чем J11... Что тут есть: Центральный процессор 68000 (16/32 бит) 4..20МГц под защищенным режимом (режим супервизор+пользователь). Периферийный контроллер ATmega128. Системный чип - на ПЛИС Altera MAX2 (EPM1270). Видео чип - также на ПЛИС EPM1270. GPIO чип - на самой маленькой ПЛИС из серии MAX2 (EPM240). Память системная - статическая 256к*16 (впаяна) или 512к*16. Видеопамять выделенная - 256к*16 статическая 10нсек. Флэшка 256/512к*16 (не напаяна). RTC (часы) - не напаяна. 8-разрядная байтовая LED- линейка (показывать байтики в двоичном коде ![]() Интерфейсы: - Питание 10..20В (DC/DC 5V 2A и 3.3V 0.6A на LM2596+LM1117). - 16-разрядная системная шина (выведена на контакты расширения). Использована 3-вольтовая логика. - клавиатура PS/2 (на атмеге128). - мышка PS/2. - 18 линий GPIO на атмеге128 (в том числе на АЦП). - интерфейс энкодеров с кнопочками - двухканальный, на атмеге128. - microSD на атмеге128 (загрузка кода супервизора/софта системы). - отладочный прямой доступ (SPI) на системной ПЛИСке - для удобства быстрой заливки кода. - видео: VGA 512*400*72Hz (20MHz clk), 640*480*60Hz (25MHz clk) 16/256 цветов. Загружаемый RAMDAC (трансляция палитры 8 -> 18 bit RGB 6:6:6) (BT476/ADV476). Предусмотрено место под распайку кодера PAL и ПЦТВ/S-video выход. Не распаяно. Аппаратное ускорение 2D заливки (в ПЛИС). - PWM канал на speaker (на атмеге128). Просто чтобы было ![]() - RS232 порт, переключаемый на системную ПЛИСку или атмегу. - RS485 порт (на атмеге128). - 2 входа MIDI со стандартной опторазвязкой (на системную ПЛИС). - 2 выхода MIDI (с системной ПЛИС). - RS485 порт (на системной ПЛИС) - возможно пригодится для реализации DMX512. - 32 линии GPIO (GPIO ПЛИСка под шиной 68000). - интерфейс записи-чтения цифрового потока на магнитную ленту (как в ZX, БК и т.д) - генератор случайной шумовой последовательности на TL431+LM393. - системная micro-SD карточка на системной ПЛИС (под 68000). - юзерская SD (большая) - также на системной ПЛИС (под 68000). Мозги в ПЛИСках/процессорах: 1. Системная ПЛИС: Сейчас относительно готово и работает: -Шинный интерфейс, системный тактовый генератор, генератор исключений при сбоях цикла шины, DMA, прочие низовые функции обеспечения работы 68000. -Приоритетный векторный контроллер прерываний (20 линий). -Таймеры (3шт, из них 1шт 16-разрядный и 2шт 8-разрядных). -Отладочный интерфейс с микрокомандами чтения-записи слов и байтов в адресное пространство 68000, запуска-останова 68000. Интерфейс доступен с внешнего разъема (подключение к компу), и для атмеги128 (начальный запуск, загрузка ядра супервизора), для чего есть мультиплексирование доступа. -Менеджер обращения к памяти с разделением привилегии для юзерского и системного режима. -SPI интерфейсы для SD карточек с переключением скорости обмена и генерацией прерывания при смене карточки (только для юзерской "большой" карточки). Нужно доделать (должно влезть в остаток ПЛИСки): MIDI. прецизионный таймер событий (генерация bpm и ритма -для секвенсора) - будет скорее всего на основе дробного синтеза частоты с аккумулятором фазы. регистры RTC (но пока не нужны). 2. ПЛИС GPIO (на шине 68000). Пока пустая. 3. Видео ПЛИСка: Есть: - тактовый генератор (получение сетки сигналов из входного такта 100МГц) - VGA синхрогенератор (сейчас 640*480*60Гц, экспериментальный был на 512*400*72Гц) - менеджер обращения к VRAM, обеспечивающий "прозрачную" запись-чтение VRAM со стороны ЦПУ - сканирование VRAM и простенький конвейер загрузки RAMDAC - прерывание вертикального обратного хода - загрузка палитры Нужно: - аппаратный указатель мышки - аппаратный транслятор координат - переписать ускорялку заливки. Сделать заливку по маске. - возможно - сделать простенький GPU с загружаемым микрокодом, зеркальную 4-симметрию, морфинг палитры, bitplane-маски и наложение внешнего видео (genlock), но всё это понадобится, только если делать машину генерации психоделических визуалов, и скорее всего здесь уже будет нужна ПЛИСка побольше и подороже) 4. АТмега128 периферийный МК: Есть: Драйвер PS/2 клавиатуры. Драйвер SDшки. Очередь событий. Загрузка 68-го c SDшки. Нужно: Драйвер PS/2 мышки. И еще всякое - по необходимости... 5. Система 68000. В процессе, по мере построения блоков в ПЛИС, и по мере нахождения душевных сил, - написание ядра, системных функций и всего-всего... Использованный софт: Altium Designer, Quartus II web edition, gavrasm, avreal, asm68k, самописные программы загрузки-отладки. -------------------- Всё это создано в промежутках между психическими срывами, депрессиями и неврозами с навязчивой мысленной музыкой в голове, резанием и прижиганием себе кожи для развлечения, битья себя кабелем, втыканием игл и проволоки в тело, под дозами нелегальных гормонов c Гоа, примерно за полгода-год... ![]() ![]() Только... пожалуйста, не говорите мне, что уже есть RPi и прочие ардуины за 20 баксов и там уже всё готовое... хорошо? ![]() Что же взять с психбольных... ![]() Добавлено: Tue Mar 14, 2017 5:03 pm |
Охуенно! ![]() Добавлено: Tue Mar 14, 2017 5:14 pm |
Прочёл, ничего не понял, но вижу что что-то мощное из Гоа прислали. пошла жара... Добавлено: Tue Mar 14, 2017 6:03 pm |
Где ж вы платку такую модную заказали? ![]() Задвинуто мощно, Электрик долго курить будет, прежде чем даст адекватный ответ Добавлено: Tue Mar 14, 2017 6:25 pm |
Для контраста это надо запитать от совкового транса ТПП или ТН с диодами Д242 и эпическим совковым электролитом в фильтре Добавлено: Tue Mar 14, 2017 6:31 pm |
Платка - в Резоните (взяли на мелкосерийном производстве, - это подешевле чем на срочном штучном, но дольше- примерно месяц). 250*170 двухсторонняя с маской, без шелкографии (для экономии). Конечно, было бы лучше сделать 4-слойку с хорошей землей на внутреннем слое, это дало бы более чистые и красивые сигналы, но это было бы заметно дороже. А так получилось около 4т за 2шт. Собирала я вручную (ушло где-то два-три дня на обе сразу). Витёк, вещество - мощное, но действие у него немножко иное, чем у других известных веществ с Гоа (это женский половой гормон). Кстати, его уже сняли с производства с этого года... придется подбирать альтернативные схемы поддержки организма. Франкенштейн, оно у меня и работает примерно от такого питальника ![]() ![]() Добавлено: Tue Mar 14, 2017 6:43 pm
|
Да, раскурить как это работает и то уже сложно, а сделать вообще далеко от меня. Я вот платки никогда не заказывал, но что то постоянно попадается как люди заказывают в Китае, нет опыта ? Тем более месяц ждать ... Добавлено: Tue Mar 14, 2017 6:53 pm |
Да уж, эпично. Мне такое не раскурить, выше 8080 я не прыгну. Добавлено: Tue Mar 14, 2017 6:56 pm |
Евгений Светницкий писал(а): Я вот платки никогда не заказывал, но что то постоянно попадается как люди заказывают в Китае, нет опыта ? Тем более месяц ждать ... на соседнем форуме shodan писал: А с платами - раз на раз не приходится... Ю-Эс-Эй хорошо делает, качественные платы, слегка дороговато и очень долго ждать - OSH Park Рашшка, cлегка похуже но тоже "на уровне", очень дорого, зато очень быстро - Резонит Наши узкоглазые братья, делают "раз на раз не приходится", долго но не очень, и порой дешево - SEEEDSTUDIO Если при пайке начнет маска хлопьями отлетать, не удивляйся... это китай... такие косяки там тоже бывают, на ряду с многими-многими другими... какой сервис не выбири хоть сииид, хоть айтиидстудио... Такое ощущение что делает один и тот-же китаец в темной подсобке... Добавлено: Tue Mar 14, 2017 7:01 pm |
Опыта заказов в Китае у меня нет. Только в Резоните. Поэтому по Китаю подсказать не смогу. Electricman, вот не нужно себя так настраивать... ![]() Убери эти внутренние рамки. И всё получится! Ты же вроде бы хотел делать что-то на PDPшном (1801/1806) - а ведь он по замороченности очень сравним с 68К. Нет ничего страшного ни с тем, ни с этим... 68К в чем-то даже проще по причине наличия более доступной документации... Систему на 68К можно сделать даже на МГТФе ![]() Добавлено: Tue Mar 14, 2017 7:27 pm |
Ну да. У меня есть БК, который на 1801ВМ1, и отдельные 1806ВМ2 и 1801ВМ3. Но я покурил систему команд - люто. Я даж 8086 не освоил. Хотя вроде как если не вылезать за пределы 64кБ - как 8080 улучшенный работать могёт. Добавлено: Tue Mar 14, 2017 7:39 pm |
Наоборот же... у PDP-11 - наверное, самая прикольная, гибкая удобная и симметричная система команд среди старых CISC машин... Намного удобнее и мощнее чем у 80. Поэтому мне и нравится эта архитектура... На ней кодить - в кайф... А 68-й - это почти то же самое, но еще мощнее и с 32-разрядными регистрами, и еще с прямой адресацией 16 МБайт безо всяких сегментов ![]() А вот х86 становятся интересными только где-то начиная с 386. До этого - это просто развитие 80 с артефактами в виде сегментной модели памяти и прочим таким ![]() ------------- Кстати, - если будешь делать на 1801/1806 - используй только кристаллы 1801ВМ1 или 1806ВМ2 (лучше всего этот). Остальные из этих серий имеют немало кривизны микрокода и аппаратуры. ВМ2/ВМ3 лучше оставить просто как красивые музейные экспонаты из той эпохи. Всякие клоны J11 (1836/1818 или что там было - уже не помню) - тоже не без психических отклонений, - так что их тоже лучше в экспонаты... Нашего аналога 68000 вроде бы нет, к сожалению. Добавлено: Tue Mar 14, 2017 7:47 pm |
Ну не нашёл я нормального описалова опкодов. Поэтому - тёмный лес. Ну и восьмеричность. Нет, что бы С000, так 140000 адрес будет. Хотя, эквивалентны. А у меня есть ещё и сам J11. ![]() Добавлено: Tue Mar 14, 2017 8:14 pm |
Очень впечатлило. Про систему команд PDP-11 -- подпишусь под каждым словом. Реально удобная. Для пущей олдскульности камень должен быть в керамике ![]() Добавлено: Tue Mar 14, 2017 8:21 pm |
Тогда делай тоже на 68К ![]() Минимальная система - процессор, кварц, ПЛИСка, ОЗУ и флэшка - разве сложно... Купи какую-нибудь плату вроде https://www.aliexpress.com/item/Altera-MAX-II-CP.../32791196713.html и прошивалку к ней (USB blaster), поставь бесплатный Квартус, спаяй МГТФом это всё, нарисуй схемку (там можно и обойтись без Verilog/VHDL и по началу просто рисовать схему на стандартных элементах, хотя это и менее удобно и не универсально), залей ее в ПЛИСку и включай ![]() SilverRay, в керамике эти процы есть и они очень фетишные, но и очень недешевые... Добавлено: Tue Mar 14, 2017 8:23 pm
|
Да ему это уже раз двадцать говорилось ![]() Не, в ДИПе внушительнее. Добавлено: Tue Mar 14, 2017 8:28 pm |
На ПДП есть только различные ассемблеры. То есть - компиляторы. А я сам себе компилятор. Хотя было бы очень занятно бы освоить. Ну и 68к нет. Есть только модем на контроллере, сердце которого - кусок 68к. Добавлено: Tue Mar 14, 2017 8:33 pm |
Могу отдать модем на самом 68000 ![]() ![]() Добавлено: Tue Mar 14, 2017 8:36 pm |
Причем в DIP64-2.54, как та же PDP ![]() Они еще есть в PLCC68 (на плате разведена площадка и под такой корпус). ---------- Воз и ныне там только потому что есть внутренние рамки. Которые нужно просто выбросить. Когда потрогает программируемую логику - понравится ![]() Еще раз: 1. Плата (или - ПЛИСка и самодельная плата под нее - это еще лучше). 2. Программатор. 3. Софт (в Альтеровском софте можно просто рисовать схемы - есть графический редактор - удобно для освоения, до перехода на язык). Вот минимальный набор: https://www.aliexpress.com/item/ALTERA-MAX-II-EP.../32239076830.html И - вперед! Для сопряжения 3 и 5-вольтовой логики можно сразу приобрести 5В-толерантных буферов, чего-нибудь вроде 74LVC4245, LVC244, LVC125, и т.д. Но можно обойтись и классическим резистором + диодом ![]() ------------- В этой нашей плате использован процессор как раз от модема ![]() Просьба ко всем, у кого есть эти модемы, Сеги и прочее ненужное с 68К,- не выбрасывайте их пожалуйста ![]() Добавлено: Tue Mar 14, 2017 8:41 pm |
На БК-0010 я в восьмеричном виде мелкие программки писал и редактировал... Добавлено: Tue Mar 14, 2017 9:19 pm |
Я тоже ![]() Добавлено: Tue Mar 14, 2017 9:26 pm |
эпично выглядит... правда почти ничего не понял ![]() зато возник вопрос, есть же уже куча всяких систем на кристалле, малинок, апельсинок и т.п. зачем изобретать велосипед? или тут аппаратная реализация? Добавлено: Tue Mar 14, 2017 9:37 pm |
А что за прямоугольники-строчки (вырезы в маске) на обратной стороне платы? Писать там что-то маркером? Добавлено: Tue Mar 14, 2017 9:40 pm |
По опкодам PDP11: (там в ZIP есть доки на русском языке) Добавлено: Tue Mar 14, 2017 9:43 pm
1806vm2.pdf (1.59 Мб) pdp11-cpu.pdf (95.76 Кб) |
За Малинками, Апельсинками, Ардуинками, прочими готовыми SOCами на единственных и неповторимых ARM/AVR за 20 баксов где всё готово - это нужно обращаться в другой мир. В нашей палате другой диагноз... Добавлено: Tue Mar 14, 2017 9:50 pm |
Лицензионное соглашение (c)Flyback.org.ru Российское общество любителей высоких напряжений. Использование материалов с данного сайта и форума возможно только с разрешения администрации. |