6551 горАздее, а тем более 16550 нежели 8251...
Вид для печати
6551 горАздее, а тем более 16550 нежели 8251...
Всем форумчанам, расмотреть ЦПУ кролик как альтернатива ЦПУ Z80, который в бинарном коде совместим с Z80, Z180 на 99%. Кролик 2000 стоит 120 руб и работае до 30мГц, а 6000 имеит на борту USB 2.0, WiFi, и.т.д и работает до 200мГц, также кролики могут выступать как сопроцессор. В общем хотелосьбы услышать ваше мнение о Rabbit-2000 и стоит ли на нём что нибудь разработать, РК-86, Орион, CPC, подобную платформу совместимую с операционной системой CP/M
Что, простите? о_О
Краткий перевод: товарищ интересуется, стоит ли мутить что-либо из этого девайса, https://en.wikipedia.org/wiki/Rabbit_2000 ;)
Дока на девайс тут, ftp://ftp1.digi.com/support/documentation/0190069_p.pdf
ИМХО для чего-либо более свежего, нежели перечисленные выше компы, ещё пойдёт, но делать для старого..., всё равно более половины функций не будет поддержано.
На алике есть почти всё
https://ru.aliexpress.com/item/RABBI...279330045.html
- - - Добавлено - - -
Если интересно
https://www.ebay.com/p/Rabbit-2000-M...Kit/1324546530
http://datasheet.elcodis.com/pdf/8/4...0-101-0356.pdf
И родная поддержка https://www.digi.com/support#support-tools
Штука интересная, но она больше подходит для контроллеров или компов на базе uzix, т.к. есть менеджер памяти, с другой стороны 1МБ ОЗУ как-то маловато для такой ос...
Доброго времени суток, форумчане.
Заранее прошу прощения за ссылки на другой ресурс. Это никоим образом не для раскрутки, так как аудитория сильно разнится.
Я не хотел бы переписывать всё подряд, поэтому для похвастать просто дам ссылку https://www.drive2.ru/b/473069551848784746/, а для вопроса ссылку https://www.drive2.ru/b/511444706681422248/.
А вопрос в следующем:
Подключил я к системе на 186-ом модуль PATA AP-FM0128A40C5G на базе контроллера SST55LD019A объемом 128 МБ для хранения своих программ. Пока без файловой системы (как делал и на системе 8051). Проблема в том, что даже статус не могу получить. Даташит и юзер мануал гуглятся, все подключения перепроверены на 100 раз, в том числе осциллографом и логическим анализатором. Обращение есть, а у модуля ШД в Hi-Z. Модуль рабочий по крайней мере на чтение. Записать на него из-под винды не удалось. Думаю где-то защита стоит. Но я не могу даже прочитать. Может у кого-то есть опыт работы с такими или подобными контроллерами? Буду рад пинку в нужном направлении. Либо подскажите, пожалуйста, какими ROM-дисками пользуетесь сами. Мои программы пока не более 2-4 КБ, поэтому хотелось бы такое подобие ФС, где можно относительно быстро пролистать всю память на предмет сигнатур программ, как это сделано в PAULMON-2. Мне кажется это более подходящим хранилищем для таких самоделок.
Заранее спасибо.
Приветствую всех, дорогие друзья!
С момента запуска первой версии самодельного компа на Z80 прошло около 4 лет. Недавно, разбирая всякий хлам у себя в столе наткнулся на него). Всё-таки правильно говорят, что новое - это хорошо забытое старое... А почему бы не продолжить развитие проекта, и, наконец, закончить его, тем более, что некоторые результаты уже есть? Пока что есть две вещи, которые хотелось бы добавить в схему:
1) нормальный звуковой чип. Никак не могу выбрать между АУ-8913 и YM3812.
2) контроллер прерываний. Тут все немного сложнее, поскольку кроме ВН59 я ничего не знаю, да и то без танцев с бубном ее к Z80 не прикрутить. Может есть что-то, что напрямую к шине подключить можно, без дополнительной логики?
AM9519, наш аналог КР1818ВН19, обсуждали это в теме про "Аюшу-Z80", https://zx-pk.ru/threads/29372-ayush...=1#post1010664. ТОлько так никто и не подключил из-за невостребованности.
Схема подключения AY-шки там же, https://zx-pk.ru/threads/29372-ayush...=1#post1037428 . Тоже не думаю, что кому-нить понадобится.
О, спасибо за ссылку на интересную книжку!
Только мне кажется, что можно как-то ещё проще... Например, записывать флаги прерываний во внешний регистр и одновременно подавать сигнал int, а затем в обработчике прерываний читать данные с этого регистра? Обработчик прерываний, по сравнению с ВН59, не сильно в коде прибавит, зато реализовать можно на одной ИР35 и 8 диодах...
Да, можно и без контроллера, уже испытал на своём аппарате. По количеству диодов не считал, но по тройному элементу ИЛИ на прерывание нужно. Легенда такова:
- выделяется в ПЗУ некая область памяти для векторов переходов. Старший байт записывается жёстко (в моём случае) и объявляется процессору при инициализации, а младшие делаются диодными матрицами;
- при наступлении прерывания на элемент ИЛИ заводятся сигналы /М1, /IORQ и сигнал прерывания с вызывающего устройства. На моей схеме ( http://rw6hrm.qrz.ru/pics/z80new.gif ) это (без дополнительного сигнала прерывания) сделано на элементе D8.1. Он и выдаёт диодами младший адрес вектора прерывания на шину данных. В моём случае, для испытания, дополнительный сигнал прерывания брался с вывода 8 D18.2, а вместо двухвходовой ЛЛ1 использовалась ЛЕ4 с дополнительным инвертором на выходе (почему только для испытания думаю понятно, поскольку если аналогичное прерывание будет выдаваться не клавиатурой, а ВВ51, то оно не сработает, нужен ещё один блок ИЛИ с диодами).
Либо в качестве кучи диодов ставим ПЗУ. Но в обоих случаях придётся считаться с тем, что все прерывания будут равноправными, что иногда может привести к коллапсу системы. Поэтому делать несколько прерываний без отдельного "умного" контроллера, раскидывающего прерывания по ранжиру, можно только для очень простых компиков...
Вот так, немного взбалмошно.
У меня вот мыслишка сидит - сделать Z80 CP/M с ISA-8 шиной. Чтоб прям взял, вставил там видюху VGA, XT-IDE, или AdLib какой и в добрый путь. Ничего в приципе не мешает, кроме адресации памяти. Какие-то фейковые банки придется городить, что бы мапить 0xA0000-0xBFFFF, или еще как то. И не помню, Z80 порты больше 0xFF умеет? Тогда и порты тоже, но это проще. И софт.. Ну для инита VGA есть косые-кривые сорцы на Си для AVR в интернете, XT-IDE в принципе просто, то же самое что и в аюше можно, AdLib - плеер тоже можно какой-то портануть.
Да не, бред какой-то написал, никогда я такого не сделаю )
Приоретизации прерываний и одновременно формирование младших разрядов вектора для IM2 удобно делается на приоритетных шифраторах, например всего на одной 555ИВ1 можно реализовать такое и обслужить 8 устройств. Так например сделано на Орионе-ПРО, вроде нормуль работает.
Идея разработчикам - почему-то до сих пор не сделаны системы простых компов с двумя Z80 и общей памятью.
Второй Z80 можно было бы например приспособить для вывода видеосигнала, или реальная двухпроцессорная система (видео при этом реализуется отдельно, например терминальное)
Здравствуйте. Я сам хотел сделать программируемый калькулятор, но гораздо проще, чем тот, который на самой первой странице. Я однажды собирал спектрум "Ленинград", но успехом моя затея не увенчалась. И у меня остались 9 процессоров z80. Я не силен в ассемблере и в аппаратной части, но что-то смог спроектировать. Компьютер имеет следующие характеристики:
Процессор Zilog Z80, 3.5 МГц;
48 КБ статической ОЗУ на микросхемах 6264;
16 КБ ПЗУ;
Вывод также осуществляется на дисплей 12864A;
Прерывания не использовал для упрощения схемы;
В качестве ввода используется матричная клавиатура 8x5, с контроллером на 2764;
Вот схема:
Вложение 73218
Я не до конца уверен, будет ли она вообще работать. И есть еще один вопрос, зачем подтягивать шину данных через резистор к плюсу?
На схеме видно, что выводы процессора MREQ и RD для работы с памятью никак не задействованы, так быть не должно, иначе процессору будет не обратится к ПЗУ. Кроме того, это может послужить поводом для различных глюков, когда сразу несколько устройств попытаются выдать что-то на шину данных.
Шину данных подтягивают к плюсу питания потому, что некоторые микросхемы, подключаемые к ней, могут иметь вывод типа "открытый коллектор", т.е. выдать 0 на шину они смогут, а вот 1 не смогут, поскольку в этом случае шина останется "висеть" в воздухе. Чтобы такого не произошло, ставят подтягивающий резисторы.Надеюсь, понятно объяснил:D
То есть, на выводы CS дешифратора старших битов адреса нужно подключить MREQ, чтобы к памяти можно было обратиться только когда процессор об этом сообщит?
Еще нужно подключить ко второму CS дешифратора RD и WR, чтобы обратиться к памяти можно было только при записи/чтении.
Вывод MREQ процессора нужно подключить к выводам 4,5 дешифратора памяти, а выводы OE ОЗУ/ПЗУ к выводу RD процессора. Ножка WR подключена правильно.
Я думал, что нельзя записывать в ОЗУ, когда отключен вывод(OE=1). Ну, я все подключил. Еще убрал лишние инверторы на CE контроллера клавиатуры и буфера вывода на экран, и на CE подал RD.
И еще, вы не могли бы объяснить, как работает клавиатура в вашем первом проекте и в Ленинграде? У вас на выходах дешифратора стоят диоды в обратном направлении, это значит, что микросхема поочередно подает 0 на каждую строку? В схеме Ленинграда вообще столбцы подключены к плюсу через резистор, а матричная клавиатура вроде как работает, когда на каждую строку/столбец по порядку подается напряжение, и в момент нажатия клавиши считывается, на каком столбце и строке есть напряжение. И можно ли оптимизировать клавиатуру в моем проекте?
У меня сделано примерно по такому же принципу. Вся клавиатура представляет собой 4 строки по по 5 клавиш в каждой. Обращение к строкам осуществляется через порты ввода-вывода (cs0-cs3). А колонки подключены к шине данных через развязывание диоды. Допустим, мы хотим узнать какая из клавиш в нижней строке нажата. Для этого процессор выполняет команду in (00h), a. При этом на линии /CS0 появляется лог "0". Если не нажата ни одна клавиша, на шине данных будет '11111111'. Если нажата, например, клавиша "2", то через развязывающие диоды и замкнутые контакты клавиши на шину данных будет подан код '11111011'. Далее выполняем команды in (0Fh), a in (20h), a и т.д., пока не считаем состояние всех строк. Ну а дальше уже по считанным данным, зная что каждой клавише соответствует свой бит, определяем какие именно кнопки нажаты.
Диоды в схеме стоят для того, чтобы при одновременном нажатии на несколько кнопок в строке не происходило короткое замыкание на шине данных.
Здравствуйте. Я не знаю, на каком ассемблере писать программы для процессора z80, вы можете подсказать что-нибудь?
sjasm
А я вот этим пользуюсьhttps://yadi.sk/d/l8P6-ALjPi1A7A
Я не понимаю, как "скомпилировать" asm файл в bin, я не могу нажать "assemble file", напишите пожалуйста краткую инструкцию.
Если речь про Assembly Studio, то там напрямую .bin не получить. Можно сделать так: пишем код в окне программы, затем в меню Assembly выбираем пункт Hex listing. Если в коде нет ошибок в папке с исходным файлом создаётся текстовый файл с таким же названием. Открываем его, выделяем hex'ы, копируем в буфер обмена. Затем с помощью программы WinHex создаём бинарный файл, вставляем в него то, что мы скопировали в буфер обмена, жмём кнопку Save. Полученный файл загружаем в ПЗУ с помощью программатора. Мой программатор "понимает" текстовые файлы, поэтому бинарный файл я не делал, а открывал сразу .txt
Здравствуйте. Я решил добавить своему компьютеру FLASH-память на микросхеме AM29F010B(аналог SST39SF010A) поставил её на место 6-ой микросхемы ОЗУ. Чтобы получить больший объем памяти, я подал на вход микросхемы FLASH A13 сигнал IORQ(выводы A14-A16 к сожалению задействовать не получилось), а на её CS подал через ИЛИ сигналы CS8 и IORQ. Но я не хотел добавлять лишнюю микросхему и извращаться при написании прошивки, поэтому я сделал элемент ИЛИ на диодах и резисторе, а на дешифратор портов I/O подал не A5-A7, а A13-A15. То-есть теперь к flash можно обратиться как к памяти, так и к I/O устройству. Как вы думаете, будет ли это работать? Я думаю, что на одном диоде сильно напряжение падать не будет, по-моему вышло рационально.
Вложение 73310
(AM29F010B-DD14, 6264-DD4-DD8, 2764-DD2,DD3)
Ой, я ошибся и вместо элемента И поставил ИЛИ, там ведь сигналы инвертированные.
Я еще доработал схему, и говорю честно, я сам удивился, когда на какой-то странице(до этого я почти не смотрел тему), человек написал точь-в-точь те решения, которые я недавно добавил в свою схему(например, ОЗУ 62256 и FLASH SST39SF010). Также я добавил программное переключение между страницами flash-диска, у меня получилось 16 страниц по 8 КБ. Только каждый раз при включении нужно самому выбирать с какой страницей работать.
Последний нерешенный вопрос - как сделать звук, я просто не пойму - на схеме Ленинграда сигнал на динамик подается только при наличии сигнала /IOWR, то есть, чтобы генерировать частоту, нужно каждые несколько тактов подавать сигнал в порт вывода? Это вроде не очень удобно.
Вот конечный вариант схемы:Вложение 73351
FLASH теперь работает как память, а не как I/O, с помощью дешифратора 2:4 можно обратиться к первой и второй половине ОЗУ.
Отлично! Теперь можно попробовать запустить на устройстве демку decode. А что с интерфейсами?
Я быстро модифицирую схему. Поставил 2 микросхемы 628128, как на 1 схеме в теме, соединил выходы P0-P3 с адресными линиями ОЗУ A14-A16, поэтому теперь стало доступно аж 256 КБ. Не знаю, зачем мне столько, но если есть такая возможность, то почему бы и нет. Из интерфейсов выбрал параллельный, но я не хотел брать ВВ55, потому что мне нужен только 1 порт, и я пока не разобрался с 1 и 2 режимами работы. Поэтому я просто подключил к шине данных две ИР22, по одной на вход и на выход. То есть, уже можно связать 2 таких микрокомпьютера. С подключением к ПК пока не разобрался, может все-таки придется брать ВВ55. Последняя проблема - у меня нет исправного программатора, поэтому проверять компьютер буду не скоро.
Вторая версия схемы:Вложение 73358
Следующий вариант схемы, добавлен однонаправленный LPT порт, вроде должен работать. Это уже точно конечный вариант:Вложение 73371
А я ВВ55 поставил бы - один корпус, а возможностей гораздо больше, чем с простым регистром-защелкой, места займет не намного больше. Кстати, на схеме вывод OUT2 у ВИ53 не задействован. Можно добавить ВВ51+MAX232 и подключаться к "большому брату" через COM порт:D. OUT2 использовать для тактирования ВВ51.