PDA

Просмотр полной версии : Самодельный компьютер на Z80 и не только



Страницы : [1] 2 3 4 5 6

KeKc
08.10.2015, 22:58
Всем доброго времени суток!

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

Что хочется видеть в этом устройстве:
1)Клавиатура для ввода команд и управления работой;
2)Небольшой ЖК дисплей для отображения информации о состоянии устройства и прочей полезной информации;
3)Простенький звуковой генератор;
4)Парочка портов для подключения внешних устройств;
5)Последовательный порт для связи с ПК и прочими приблудами.
6)И наконец последнее, самое главное - конструкция должна быть простой и компактной.

Что касается центрального процессора, то здесь проблем с выбором не возникло - старый добрый Z80. Если честно, 580вм80 мне нравится больше, но три питающих напряжения + обвязка из ГФ24, ИР82 и ВК38 с малыми размерами как-то не стыкуются. Также была мысль влипить 6502, но пришлось от него отказаться по причине геморойности его доставания. Добавим сюда статическое ОЗУ + одну микросхему ПЗУ, ВИ53, ВВ55, ВВ51 и пару микросхем мелкой логики и вуаля, компьютер готов.

Зачем весь этот "ононызм", да еще и в такой извращенной форме, ведь есть более изящные решения? Взять тот же PIC или AVR и будет счастье. Да, действительно, это простой выход, но это будет вещь "в себе", а тут открываются просторы для творчества, ну и последнее - просто хочется сделать так. Решиться на сборку этого девайса подтолкнула разработка rw6hrm контроллер "Аюша" (http://zx-pk.ru/showthread.php?t=23276&highlight=%E0%FE%F8%E0), за что ему огромное спасибо.

В итоге получилась такая схема:
https://img-fotki.yandex.ru/get/4914/22857638.5/0_12de0f_1aaa1091_L.png (https://img-fotki.yandex.ru/get/4914/22857638.5/0_12de0f_1aaa1091_orig)

В системе используется один тактовый генератор собранный на инверторе ЛН1. С помощью делителя на ИЕ5 получаем необходимые частоты для работы процессора, контроллера последовательного ввода/вывода и таймера. Дешифратор портов ввода/вывода собран на ИД3. Ввод информации производится с кнопочной клавиатуры, вывод - на монохромный ЖК дисплей с разрешением 128х64. "Хитрое включение" клавиатуры позволило отказаться от буфера и сэкономить одну микросхему. Питание от аккумулятора или блока питания. Для расширения возможностей компьютера предусмотрен системный разъем.

Примерный вид компьютера:
https://img-fotki.yandex.ru/get/9300/22857638.5/0_12de0e_b88203c9_L.png (https://fotki.yandex.ru/next/users/v-50m/album/482310/view/1236494)

Продолжение следует...



================================================== ======================================
Недопроекты от Ewgeny7, раскиданные внутри темы от уважаемого KeKc, за что приношу свои извинения.
ПыСы - везде были картинки по ссылкам. Были, Карл! Но savepic.ru считает, что никому ничего не обязан...
Находятся где-то примерно вокруг этих ссылок:

JMP Z80_Project (http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80-i-ne-tolko.html?p=868353&viewfull=1#post868353)
JMP Z180_Project (http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80-i-ne-tolko.html?p=873452&viewfull=1#post873452)
JMP 8085_Project (https://yadi.sk/d/wJ-UhMk_3MgYck)
JMP 8088_Project (http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80-i-ne-tolko.html?p=886238&viewfull=1#post886238)
JMP MC6800_Project (http://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=889917&viewfull=1#post889917)
JMP M68k_Project (http://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=892119&viewfull=1#post892119)
JMP 8080_Project (PMI-80) (http://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=893109&viewfull=1#post893109)
JMP 8008_Project (http://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=919319&viewfull=1#post919319)
JMP 6502_Project (http://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=924367&viewfull=1#post9243678)
JMP 6809_Project (http://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=950099&viewfull=1#post950099)

А вот здесь (http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80-i-ne-tolko.html?p=883114&viewfull=1#post883114) начало обсуждение сторонних проектов видеоадаптеров на микроконтроллерах. Вдруг пригодится.

================================================== ======================================

b2m
08.10.2015, 23:25
"Хитрое включение" клавиатуры позволило отказаться от буфера и сэкономить одну микросхему.
С другой стороны на шину данных тоже диоды поставь, чтобы конфликта не было при одновременном нажатии двух кнопок в одном ряду.

---------- Post added at 01:17 ---------- Previous post was at 01:06 ----------

Ещё, неизвестно, потянет ли периферия укороченные (вследствие повышенной частоты процессора) сигналы CS,RD,WR.

---------- Post added at 01:19 ---------- Previous post was at 01:17 ----------

Ой, пардон, не заметил, что частота процессора чуть меньше 2,5МГц

---------- Post added at 01:25 ---------- Previous post was at 01:19 ----------

На /CS1 дешифратора лучше инвертированный /M1 подать, чтобы в цикле прерывания никто из периферии не отвечал, и тогда будет считываться FF.

Alex_LG
08.10.2015, 23:37
Я б клавиатуру расширил до полной латиницы+цифры - раз микрокомпьютер, то как проги писать? В машкодах утомительно, а упрощенный Бейсик - самый раз! Так же еще бы, как минимум, по одной ВВ55 и ВИ53, раз на ту, что есть, звук и ВВ51 заведены. Ну и напоследок устройство хранения данных - проще всего FlashROM на примере РОМ-диска для РК86.

KeKc
09.10.2015, 00:06
С другой стороны на шину данных тоже диоды поставь, чтобы конфликта не было при одновременном нажатии двух кнопок в одном ряду.
Ай, точно, не заметил :v2_dizzy_facepalm:.


На /CS1 дешифратора лучше инвертированный /M1 подать, чтобы в цикле прерывания никто из периферии не отвечал, и тогда будет считываться FF.
Использовать прерывания не планирую, да и свободного инвертора не осталось. Пусть так будет, на первое время двух входов для прерываний хватит.


Я б клавиатуру расширил до полной латиницы+цифры - раз микрокомпьютер, то как проги писать? В машкодах утомительно, а упрощенный Бейсик - самый раз!
Расширенная клавиатура будет подключаться через порт на ВВ55 (или ВВ51) при необходимости, поскольку большую часть времени комп будет использоваться как контроллер + опять же экономия места получается. Два канала с ВИ53 выведены на гнездо MiniJack. При отключенном разъеме таймер используется для воспроизведения звука, при подключенном - встроенный динамик отключается, а сигнал с микросхемы можно подавать во "внешний" мир.

Alex_LG
09.10.2015, 10:51
Два канала с ВИ53 выведены на гнездо MiniJack. При отключенном разъеме таймер используется для воспроизведения звука, при подключенном - встроенный динамик отключается, а сигнал с микросхемы можно подавать во "внешний" мир.

А вот ситуация - я замеряю интервалы времени между событиями, вывожу промежуточные данные в терминал, а по окончанию задачи, чтобы не сидеть и не "пялится" в терминал, выдаю противный писк... Как быть? А задача вполне реальная, на днях аналогичной занимался, но на микроконтроллере. Если задумали комп "для домашней лаборатории", то не жалейте периферии.



Расширенная клавиатура будет подключаться через порт на ВВ55 (или ВВ51)

Тогда писать софт для периферии и сразу его тестировать не получится. Когда-то уже здесь пробегало, вот самая простая ASCII клавиатура на двух микросхемах и нескольких транзисторах, требует всего один порт
www.tinaja.com/glib/asciikbd.pdf
А можно поставить микроконтроллер+ PS/2.

Mick
09.10.2015, 11:12
А можно поставить микроконтроллер+ PS/2.

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

Error404
09.10.2015, 12:37
вот самая простая ASCII клавиатура на двух микросхемах и нескольких транзисторах, требует всего один порт
www.tinaja.com/glib/asciikbd.pdf


Какая клевая!
april 1974 :v2_thumb:

Alex_LG
09.10.2015, 16:22
А можно тупо взять от старой мамки контроллер клавы

Это не хотел предлагать, т.к. могут возникнуть трудности с доставаемостью.


Если очень хотца матричный клав, то есть ВВ79

Вот про нее совсем забыл! Одна микросхема, а сколько "плюшек"! :)


april 1974

Минимализм по необходимости, а не то что в современном мире - лампочкой управляет контроллер с объемом памяти и производительностью, о которых в 70-х только мечтали! :)

rw6hrm
09.10.2015, 18:28
6502 достаётся запросто, как в России (именно 6502, брал в Питере), так и почтой (65с02, что гораздо лучше). Версия С потребляет какие-то там миллиамперы, чего не скажешь о зетке, почему я и выбрал 6502...


вот самая простая ASCII клавиатура на двух микросхемах и нескольких транзисторах, требует всего один порт
http://www.qsl.net/rw6hrm/html/ascii_kbrd.htm , переделанная мною на более удобоваримые комплектующие. НО!, тут не порт как таковой, по сути внешняя ячейка памяти. К описанной клаве нужен регистр-защелка и управление прерыванием (нажали клавишу -> прерывание -> загрузили символ). Это гораздо лучше сканируемой матрицы ибо не тратятся ресурсы проца на тупое сканирование пустоты, если клавиша не нажата.

16 клавиш+одна функциональная вполне достаточно. Получится австралийский Dream6800 на иной элементной базе. А если ещё запустить на нём CHIP8, то будет вообще...

NovaStorm
09.10.2015, 21:39
Карманный компьютер

580вм80 мне нравится
http://www.leningrad.su/museum/show_calc.php?n=136
М? =)
Было бы здорово такое воспроизвести.

shurik-ua
09.10.2015, 21:46
удивляет надпись "BIOS" вместо "БСВВ"

NovaStorm
09.10.2015, 21:52
Готовились, видать, к тому, что на экспорт будут с руками отрывать =)

KeKc
09.10.2015, 22:22
http://www.leningrad.su/museum/show_calc.php?n=136
Прикольная штуковина, ничего подобного ранее не встречал.
З.Ы. Особенно порадовала надпись "уничт. книгу" :).


6502 достаётся запросто, как в России (именно 6502, брал в Питере)...
Ну х/з, может я плохо искал. В тех магазинах, которые я знаю в Питере, нет ни одной микросхемы из этого комплекта, а заказывать по почте как-то лень было.

rw6hrm
09.10.2015, 22:31
NovaStorm, KeKc, кажется только что кто-то натолкнул меня на вариант модификации моей поделки ;)...

Alex_LG
09.10.2015, 22:44
6502 достаётся запросто

Везет Вам, я на Украине нигде в продаже найти не могу...

rw6hrm
10.10.2015, 09:15
Могу 6502 (не С) выслать почтой из своих запасов, если что...

Mick
10.10.2015, 09:21
Везет Вам, я на Украине нигде в продаже найти не могу...

А что на ebay или алиэкспрессе нет их что ли. Там их просто до ж..., ой до грязи.

Например первый попавшийся: http://ru.aliexpress.com/item/10pcs-lot-R65C02P3-R65C02-DIP-100-new-original-IC-chips-electronics-kit/32374390223.html?spm=2114.03020208.3.2.E60mS2&ws_ab_test=201556_2,201527_1_71_72_73_74_61_75,201 560_3

Alex_LG
10.10.2015, 09:47
А что на ebay или алиэкспрессе нет их что ли.

На ebay не хожу, а на али как-то дешевле 5$ не попадались :(
Спасибо за ссылку.

Mick
10.10.2015, 13:20
На ebay не хожу, а на али как-то дешевле 5$ не попадались :(
Спасибо за ссылку.

Там надо у разных продавцов смотреть что и по чем. То что я тебе привел, это скорее всего обновленные б/у процы. Хотя для нас это мало что меняет, главное чтобы ноги целы и проц рабочий :)

KeKc
15.10.2015, 22:10
http://www.youtube.comМужик красавчик, нормальную штуку замутил.

В общем не выдержал, отдал плату в производство, на следующей неделе поэкспериментирую с реальными железками.

KeKc
20.10.2015, 20:50
А тем временем работа по сборке компьютера движется. Сегодня приехала печатная плата, буду паять потихоньку.

Возникла загвоздка с приобретением Т34ВМ1. В запасах нашел КР1858ВМ1 с меткой "ОП". Вроде как полный аналог, но читал отзывы, что в некоторых устройствах он не работает (в АОНах, например). У кого был опыт эксплуатации подобных процах поделитесь впечатлениями.

Mick
20.10.2015, 21:12
А тем временем работа по сборке компьютера движется. Сегодня приехала печатная плата, буду паять потихоньку.

Возникла загвоздка с приобретением Т34ВМ1. В запасах нашел КР1858ВМ1 с меткой "ОП". Вроде как полный аналог, но читал отзывы, что в некоторых устройствах он не работает (в АОНах, например). У кого был опыт эксплуатации подобных процах поделитесь впечатлениями.

Да ладно, его в спектрумах столько ставили. Работает без проблем. Правда , если ты сильно планируешь нагружать шину данных, адреса и управления (в смысле ноги процессора), то имеет смысл ставить CMOS буржуйский аналог. Но это надо очень сильно нагрузить его.

KeKc
20.10.2015, 21:56
Шины сильно грузить не собираюсь. Сейчас на нем висит 7 корпусов, по даташиту, вроде как, 9 можно, т.е. даже запас остается.

А про 1858 я почему спросил, потому что наткнулся на вот это:
КР1858ВМ1 - рабочая частота 3,5 МГц. Советский клон. Не полностью совместим с оригинальным Z80. Из личного опыта могу добавить то, что этот процессор плохо преносит турбирование в отличие от осталь ных, которые в некоторых случаях нормально функционируют на частотах до 6-8 МГц (Z80, Z80A, U880D). Для Z80B верхняя рабочая частота может достигать 14-16 МГц. Еще один любопытный факт из личного опыта: КР1858ВМ1 почему-то не хочет работать в схемах АОНов и миниАТС, но зато прекрасно работает как в классических СПЕКТРУМах так и в "наколенных" вариантах. Видимо, передирая процессор, клонмейкеры заботились о совместимости процессора только как составной части speccy. Я настоятельно рекомендую не использовать этот процессор (КР1858ВМ1) в своих разработках.
Вот и решил уточнить.

Mick
20.10.2015, 22:51
А про 1858 я почему спросил, потому что наткнулся на вот это:
Вот и решил уточнить.

Честно сказать, спорное утверждение. В АОНе микросхем с гулькин нос, а в спеке их сколько и работает на ура. Это скорее всего рукожопый специалист какой то, у которого наш проц не заработал. Или он пытался его турбировать на 10МГц. Вообще, турбирование процессоров, которые скажем технологически к этому не готовы - это заведомо введение процессора в ненормированные параметры и это совершенно не означает, что процессор плохой. Если нужна турба, то и бери проц на соответствующие частоты.

KeKc
25.10.2015, 12:52
Появилась свободная минутка, немножко пособирал контроллер. Запаял в плату все разъемы и блокировочные емкости. Хотел попробовать запустить тактовый генератор, да осциллограф как на зло накрылся. Не пользовался им пару месяцев, вчера включил - горит только подсветка экрана и все :(.

Появился вопрос: есть два устройства. У первого шина управления как у Z80 с сигналами /cs, /rw, /rd. Второе устройство использует сигналы как у 6502 /cs, r/w, e. Как преобразовать сигналы r/w, e в сигналы /rd, /rw понятно - нужна пара элементов и-не и однин инвертор, а возможен ли обратный переход?

KeKc
26.10.2015, 23:13
Запустил тактовый генератор, воткнул процессор. На шину данных с помощью перемычек подал код NOP и... вуаля на шине адреса идет последовательный перебор значений от 0х0000 до 0хFFFF, процессор оказался рабочий. С сигналами выборки ОЗУ/ПЗУ тоже все в порядке, а значит можно двигаться дальше - делать прошивку для ПЗУ. На первое время планирую использовать МОНИТОР-0 от ЮТ-88 с поправкой на порты ВВ, а дальше посмотрим. Продолжение следует...

KeKc
31.10.2015, 19:35
Итаак, комп подает первые признаки жизни. Написал простенькую программу для моргания светодиодом, подключенному к порту А ВВ55, прошил РФ6, вставил, подал питание - и о чудо! оно работает! В следующие 10 минут был дописан кусочек кода для теста клавиатуры - при нажатии на любую кнопку загорался светодиод, подключенный к порту С. Были сомнения на счет того, что на двух последовательно включенных диодах упадет слишком много - ан нет, все прекрасно работает. Дисплей не заработал. Взял осциллограф, посмотрел управляющие сигналы - все в норме. Стал внимательно рассматривать схему, вдруг там накосячил. Ну точно, так и есть - шину данных дисплея подключил зеркально. На разряд D7 приходит сигнал D0 с процессора, на D6 - D1 и т.д. Портить хорошую печатку не хочется, так что придется "отыгрываться" программно:v2_dizzy_facepalm:. Ну да ладно, все равно я доволен как слон :D, машинка работает.

ALS
01.11.2015, 00:11
Но не возникнет ли тормозня, если софтово зеркалить все 8 бит ?
Все-таки дисплей - графический...

И еще хотел бы глянуть на платку :)

HardWareMan
01.11.2015, 09:44
Ну точно, так и есть - шину данных дисплея подключил зеркально. На разряд D7 приходит сигнал D0 с процессора, на D6 - D1 и т.д. Портить хорошую печатку не хочется, так что придется "отыгрываться" программно:v2_dizzy_facepalm:. Ну да ладно, все равно я доволен как слон :D, машинка работает.
А я думал что это такая фишка.

Но не возникнет ли тормозня, если софтово зеркалить все 8 бит ?
Все-таки дисплей - графический...
Он символьный. В любом случае, константы настройки можно вывернуть сразу, а текст пропускать через преобразователь. Табличный на 8 бит будет занимать 256 байт таблицы + 3-4 команды обслуживания. Табличный на 4 бита будет занимать 16 байт таблицы и 2 раза по 5+ (и чутца медленнее) команд для понибловой работы.

PS Я забыл что это Z80, там можно сделать цикл/вереницу пары команд сдвига через С: RRA / RL C и данные перетекут из [A] в [C] с зеркалированием бит.

rw6hrm
01.11.2015, 09:49
KeKc, фотки хочу ... :)

ALS
01.11.2015, 10:36
... и он именно графический - FDCG12864

KeKc
01.11.2015, 11:27
По просьбам трудящихся выкладываю фото девайса. Качество фото так себе, под рукой кроме телефона ничего не оказалось.

https://img-fotki.yandex.ru/get/9316/22857638.5/0_12f88f_769d8235_L.jpg (https://img-fotki.yandex.ru/get/9316/22857638.5/0_12f88f_769d8235_orig.jpg)

https://img-fotki.yandex.ru/get/3800/22857638.5/0_12f891_890dae84_L.jpg (https://img-fotki.yandex.ru/get/3800/22857638.5/0_12f891_890dae84_orig.jpg)


Дисплей графический, данные в него вводятся столбцами по 8 точек, т.е. в данном случае не особо принципиально рисуется столбец сверху вниз или с низу вверх, просто придется поправить знакогенератор (который, кстати, будет хранится в ПЗУ DD4 вместе с МОНИТОРом).

https://img-fotki.yandex.ru/get/6818/22857638.5/0_12f89a_fead445a_L.png (https://fotki.yandex.ru/next/users/v-50m/album/482310/view/1243290)

А вот с командами чуть сложнее. Тут либо выставлять уже заранее зеркальный код, либо писать процедуру для переворачивания битов.
https://img-fotki.yandex.ru/get/15558/22857638.6/0_12f89b_f2b99106_L.png (https://fotki.yandex.ru/next/users/v-50m/album/482310/view/1243291)
Поэтому вот с этого момента

можно сделать цикл/вереницу пары команд сдвига через С: RRA / RL C и данные перетекут из [A] в [C] с зеркалированием бит. поподробнее, если можно.

HardWareMan
01.11.2015, 21:23
Поэтому вот с этого момента
поподробнее, если можно.
Допустим, у тебя в [A] исходные данные, а [C] свободен, то выполняем:

17 RLA // 4 такта
CB 19 RR C // 4+4 такта
17 RLA // 4 такта
CB 19 RR C // 4+4 такта
17 RLA // 4 такта
CB 19 RR C // 4+4 такта
17 RLA // 4 такта
CB 19 RR C // 4+4 такта
17 RLA // 4 такта
CB 19 RR C // 4+4 такта
17 RLA // 4 такта
CB 19 RR C // 4+4 такта
17 RLA // 4 такта
CB 19 RR C // 4+4 такта
17 RLA // 4 такта
CB 19 RR C // 4+4 такта
79 LD A,C // 4 такта
// Итого: 3*8+1=25 байт и 100 тактов
Если жалко памяти и хочется сделать цикл, то нужен еще [B]:

06 08 LD B,8 // 4+3 такта
17 RLA // 4 такта
CB 19 RR C // 4+4 такта
10 FB DJNZ $-5 // 13*7+8 тактов
79 LD A,C // 4 такта
// Итого: 8 байт и 7+12*8+13*7+8+4=206 тактов
По тактам могу ошибаться, но в общем отношение размер/время понятно. Механика процесса такова: RLA двигает старший бит [A] во флаг C, а RR C из флага C в старший бит [C]. В итоге, содержимое [A] плавно перетекает в [C], наполняя [A] мусором, частично из [C] (один бит потеряется, но его тоже можно выдернуть из флага C, но нужно ли?).

KeKc
07.11.2015, 11:40
Думал-думал что делать с зеркальной шиной и пришел к выводу, что ну нафиг эти программные извраты. Спаял переходник, который переворачивает биты как надо, его под дисплеем все равно не видно. Полет нормальный.

Sergei Frolov
07.11.2015, 14:26
Ну и правильно

KeKc
14.11.2015, 00:11
Работа потихоньку движется. Не хотел заводиться дисплей. Вроде инициализация происходит верно, а он все равно ничего не показывает. Думал, что это из-за моего упрощенного способа подключения к шине процессора. Потом случайно наткнулся на статью, где чел подключал такой же дисплей к микроконтроллеру, там была такая же проблема. Оказалось, что после деактивации сигнала /reset нужно было выдержать паузу, а у меня почти сразу же шли команды. Либо я плохо смотрел даташит, либо китайцы кое-что в нем не дописали.:) Добавил задержку в 100мс и дисплей включился! На экране вместо символов появились кракозябры. Полез разбираться в прошивку. Пока исправил все косяки, которые там были, раз 20 пришлось перепрошивать ПЗУшку. И вот наконец, после долгих стараний получилось :) Напоследок парочка фоток

https://img-fotki.yandex.ru/get/17848/22857638.6/0_131933_df98d76f_XL.jpg (https://fotki.yandex.ru/next/users/v-50m/album/482310/view/1251635)

https://img-fotki.yandex.ru/get/9303/22857638.6/0_131931_6d7414dd_XL.jpg (https://fotki.yandex.ru/next/users/v-50m/album/482310/view/1251633)

perestoronin
14.11.2015, 10:49
А как планируется загружать и выгружать программы на эту платку ?
Для чего разъём вверху платы ?

PS. Хороший дисплей, на нем 100 цифр числа Пи поместятся (http://zx-pk.ru/showthread.php?t=25783) ?

А в карман платка увы не поместится.

KeKc
14.11.2015, 14:27
А как планируется загружать и выгружать программы на эту платку ?
Для чего разъём вверху платы ?

PS. Хороший дисплей, на нем 100 цифр числа Пи поместятся (http://zx-pk.ru/showthread.php?t=25783) ?

А в карман платка увы не поместится.

Программы будут загружаться по последовательному интерфейсу, реализованному на ВВ51. Также есть возможность реализовать интерфейс CENTRONIX на ВВ55, ну это как запасной вариант. Справа вверху - это системный разъем для расширения возможностей компьютера, я его еще не запаял.

В карман, увы, не помещается (разве что в совсем большой), но все равно конструкция получилась компактной.

perestoronin
14.11.2015, 14:28
Программы будут загружаться
Желательно предусмотреть загрузку и выгрузку через SD-карточку и "магнитофонные" вход-выход.
Да, платки дисплейного модуля ЮТ-88 еще остались, если нужна, то как и обещал вышлю. Сообщите в личку куда прислать, могу положить детальки если какие нужны.


А вот карманный notebook

В карман, увы, не помещается

посчитай
Теперь осталось изобрести карманный суперкомпьютер на 6000 8 разрядных процессорах и непременно в DIP40 корпусах и я даже знаю кто с этим справится и даже побъёт рекорд (http://geektimes.ru/post/101210/).

KeKc
19.11.2015, 23:42
Почти дописал монитор для своей поделки. Вот так это выглядит после включения:
https://img-fotki.yandex.ru/get/65124/22857638.6/0_13266b_6b4f0aad_XL.jpg (https://fotki.yandex.ru/next/users/v-50m/album/482310/view/1255019)
Возможности пока весьма скромные: запись в ОЗУ, чтение памяти и вычисление контрольной суммы. Программирование в машинных кодах, как у ЮТ-88, но это уже хоть что-то. Работу с ВВ51 еще не осилил, но надеюсь в скором времени все получится. https://img-fotki.yandex.ru/get/3805/22857638.6/0_13266d_884db43_XL.jpg (https://fotki.yandex.ru/next/users/v-50m/album/482310/view/1255021)
При просмотре памяти можно нажать клавишу Del и ввести в текущую ячейку новое значение. Ввод значения заканчивается нажатием на клавишу Enter. Ошибочно набранные цифры можно удалять клавишей Back и затем вводить заново.https://img-fotki.yandex.ru/get/30/22857638.6/0_13266c_6218ee3d_XL.jpg (https://fotki.yandex.ru/next/users/v-50m/album/482310/view/1255020)
МОНИТОР занимает чуть больше килобайта +1,5к знакогенератор из 256 символов.
Продолжение следует...

fmulder007
27.02.2016, 15:07
Совершенно случайно наткнулся! Спасибо автору - зашевелилась давняя мечта покорить наконец Z80 и самому собрать компьютер!
Дано:
Дисплей WG12864A-TGH-V8N
Куча КР580ВВ55
Пара МС2701 (Схемы нет к сожалению, но блоки рабочие, на детали можно дергать. там АЦП есть и ру8)
Более менее прямые руки
Немного писал на асме х86 для самодельных ISA платок
Огромное желание сварганить что-то компактное "типа компьютер" что бы в голове прояснилось как все это работает (в книжках читать это одно, но я пока сам не спаяю, не пойму)

Что хочется в итоге:
1. Минимум рассыпухи и логики. Что бы логическая и принципиальная схемы были понятны и легки для изготовления и сборки.
2. Куча пареллельных портов для разных экспериментов. То есть пара КР580ВВ55 будет.
3. Никакой динамической RAM памяти. В идеале по максимуму что-нибудь в одном корпусе. Тут у меня затык так как не полностью понятно страничная память и как это видится програмно.
4. Хочется минимум по питанию. Что бы не грелось.
5. Клавиатура - совсем не хочется пленочные или готовые. В размер дисплея можно на СМД кнопках самому спаять.
6. Плата будет изготавливаться в домашних условиях методом ЛУТ. Ну тут и пункт 1 влияет.

Вопросы далее будут, пока ваше мнение все это реально?

- - - Добавлено - - -

Первый вопрос - кто чем симулирует такие схемы? Пользую мультисим, но может есть специализированные симуляторы для цифровых-логических устройств?

KeKc
27.02.2016, 16:31
fmulder007, ничего сложного в сборке такого устройства нет, так что пробуйте, если что подскажем. Схему я выкладывал в начале темы, можно взять ее как исходник и добавить к ней еще несколько портов ВВ, на дешивраторе ИД3 осталось 6 незадействованных выходов.

На счет симуляции работы схемы сам хотел узнать. Я обычно пользуюсь Proteus' ом, но для него нет рабочей модельки Z80,... поэтому пришлось все отлаживать в железе. Сейчас у меня две УФ ПЗУ одну прошил, поставил, в это время вторая лежит под УФ лампой стирается.

fmulder007
27.02.2016, 18:04
Схему я выкладывал в начале темы
Схему изучаю вдоль и поперек :) Распечатал!
Потихоньку в голове выкладываются хотелки в более строгий вид. Но и возникают вопросы. Жаль нет симулятора. Бредбоард покупать неохота. Буду делать макетку из сокеток и текстолита.
1. Клавиатура будет из пробегавшей тут публикации ascii_kbd.pdf Мне более понятно сейчас как с ней работать в програмном плане.
2. ROM возьму с одной из десятков старых Pentium2 материнок. Там бесплатно и доступно. В наших магазинах в продаже только I2C флешки. И что бы не мучиться с УФ - буду разбираться с программированием прям "in system".
3. Хочется последовательный порт. Вроде есть в наличие вв51. Но я так понимаю что там строго с частотой тактов иначе в боды не попадаю. Следовательно я не могу использовать кварцы на 4 или 5 или 10 мегагерц? Или как-то можно отвязать вв51 от частоты процессора? Или это будет уже сложно?Если не ставить вв51 то и ви53 тоже без надобности?
4. Есть в наличие пара вв79. Пока читаю что они могут...

KeKc
27.02.2016, 22:44
1. Клавиатуру можно собрать как угодно, преимущество ascii клавиатуры о которой идет речь в том, что одной командой ввода мы сразу получаем код нажатой клавиши. Я наоборот упростил аппаратную часть, но зато пришлось писать код, который поочереди сканирует каждую линию, определяет номер нажатой в строке клавиши и лишь затем получается код нажатой клавиши.

2. Какую ПЗУшку ставить не принципиально, лишь бы было где ее программировать.

3. С ВВ51 я ещё до конца не разобрался, поэтому если написал чушь, пусть знающие поправят. Для ВВ51 нужно два тактовых сигнала: первый для синхронизации работы внутренней логики, второй для сдвигового регистра. Меняя частоту второго генератора можно получать различные скорости работы последовательного порта. Внутри микросхемы есть программируемый делитель с коэффициентами 1, 16 и 64. В моей схеме микросхема тактируется от частоты 2,4576 (4,9152/2). На этой же частоте работает процессор, чтобы не усложнять схему. Можно было собрать два тактовых генератора: один для проца, второй для последовательного порта. Чтобы получить скорость передачи, скажем, 9600 бит/с нужно 2,4576 разделить на 256 (2457760 Гц/256=9600). А вот как мы получим нужную частоту не важно. У меня эта частота снимается со второго канала ВИ53, но никто не запрещает поставить обычный делитель и получить тот же результат. Коэффициент деления ВВ51 при этом установлен равный 1.

MakSer
28.02.2016, 08:50
Эмулятор Z80 для PROTEUS существует, и даже работает, но насколько точно не копал.
https://cloud.mail.ru/public/4awUFa6szE1V/Z80-Proteus.zip

fmulder007
28.02.2016, 08:54
Какую ПЗУшку ставить не принципиально
Нашел W29EE011. У нее я так понял 128 килобайт внутри. Подглядел схемку http://piters.tripod.com/zxfl_sch.htm как ее подключить что бы можно было шить прям в системе. Ну эт на будущее. Но вот вопрос - как получить доступ ко всей возможной памяти на этой флешке. Я так понимаю что делим пополам и память выше 64 кб это будет вторая страничка. То есть подаем на А16 на флешке плюс тогда когда нужно. Но не хочется лепить тумблер. Может воспользоваться каким-либо портом ввода-вывода для переключения страниц ПЗУ? Наверное надо почитать как делают страничную память в спектрумах разных :)


KeKc, В вашей схеме на ИД3 сделан дешифратор адресов ВВ. Почему с А4 по А7? Это так положено или я могу для портов Ввода-Вывода использовать любые адреса? А как быть с линиями адреса до А4? Ну например у вас /СS0 выпирается по порту 10H. В таком случает на А4 будет "1". А если я запрошу порт 11H - то на линии А4 все еще будет "1" и обращение пойдет к /CS0? Получается не обязательно дешифровать ВСЕ линии адреса если портов используется мало? А если я хочу безумно много устройств я могу поставить дешифратор на все А0-А15 адреса и все эти устройства будут доступны?

При работе с памятью используется /mreq а при работе с портами /ioreq - это я правильно понял? Адреса же ячеек памяти и устройств пересекаются?

У вас на DD3 собран дешифратор памяти, и от 0000H до 3fffH находится ПЗУ а 4000H это уже начало ОЗУ. Я правильно понял?

KeKc
28.02.2016, 12:16
Страничная память делается просто. Возьмем например, как в моем случае объем ПЗУ 16 кб. При использовании флеш на 128 кб незадействованными останутся выводы А14, А15 и А16. Эти выводы можно использовать для переключения страниц. Поскольку выводов у нас 3, то это позволяет получить аж 8 страниц. В самом простом случае выводы А14-А16 подключаются к джамперам. Переключение страниц осуществляется вручную. Если хочется менять страницы программно, то потребуется, как минимум, добавить регистр-защелку (ир35, например). Вход регистра на шину данных, выход к А14-А16. Сигнал выбора порта объединяется с сигналом /WR через элемент ИЛИ и подается на тактовый вход регистра. Вход R регистра через конденсатор емкостью 0,1-0,47мкф на землю и через резистор 10к к шине питания. Это нужно, чтобы при подаче питания на схему регистр автоматически сбросился в 0 и включилась бы нулевая страница ПЗУ. Теперь программным способом можно выбрать любую из 8 страниц.

Что касается дешифратора, то мне не нужны были все 65356 портов, и я его упростил. Почему используются именно А4-А7? Да потому, что в простых командах в/в на А8-А15 выдается значение аккумулятора и по большому счету нафиг не нужно. А вот разряды А0-А7 наоборот нужны, поскольку на них выставляется адрес порта, к которому идет обращение. У меня дешифрируется только старшая тетрада (А4-А7), что позволяет производить адресацию 16 портов в/в. Базовыми адресами портов в/в получаются 00, 10, 20... F0. При такой реализации обращение, например к портам 71, 72...7F в итоге будет равносильно обращению к порту 70. Путем усложнения схемы дешифратора можно производить доступ к любому из 65536 в отдельности, но ИМХО так делать нет смысла. Мне ни разу не приходилось видеть схемы где использовались бы все 65536 портов.


При работе с памятью используется /mreq а при работе с портами /ioreq - это я правильно понял? Адреса же ячеек памяти и устройств пересекаются?

У вас на DD3 собран дешифратор памяти, и от 0000H до 3fffH находится ПЗУ а 4000H это уже начало ОЗУ. Я правильно понял?Да, все верно.

Ewgeny7
28.02.2016, 13:36
Эмулятор Z80 для PROTEUS существует, и даже работает, но насколько точно не копал.
В протеусе 8.4 есть всё семейство Z80, включая SIO и прочее.
Жаль, что 8080 нету. Правда, есть 8086, но это не торт.

MakSer
28.02.2016, 14:27
Z80 есть еще с древних времен, но без симуляции...

Ewgeny7
28.02.2016, 14:29
Извините, погорячился, что-то там не так...

ALS
28.02.2016, 15:59
... а в качестве макетки можно использовать плату от АОН-а ("Русь", например).
Там уже есть Z80, ВВ55, ВИ53, статич. память и ПЗУ.

fmulder007
29.02.2016, 07:51
Проехался по нашим двум магазинам, покопался в гараже... Не могу найти ни Z80 ни его аналогов. Заказывать не очень охота. Есть еще один ларек с детальками, заеду к вечеру туда, если там нет то засада. Совсем не хочется делать поделку на 580ВМ80. Три питания не радуют совсем. Хоть и есть в наличии и ГФ24 для нее. Правда была у меня плата от какого-то кассового аппарата, если не выкинул... Надо поискать еще...

- - - Добавлено - - -


Если хочется менять страницы программно, то потребуется, как минимум, добавить регистр-защелку
Наверное можно поставить три триггера по количеству "лишних" адресов ПЗУ. Выводы D подцепить к шине данных, выводы R завязать на схему общего сброса-запуска - что бы стартовало все это всегда с первой страницы, А выводы С триггеров запараллелить и повесить на какой-нить порт Ввода-Вывода, например 55Н. Выходы триггеров присоеденить к А13-А15 Таким образом отправив на 55Н число мы активируем "лишние" линии адреса на ПЗУ и пока снова не отправим на 55Н новый запрос работать будет одна из выбранных страничек в ПЗУ.

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

Что-то в голове начинает складываться. Еще вопрос - как получить часть ПЗУ что бы была всегда доступна - ну например пара килобайт от 0000Н, а все что выше - переключалось?

Totem
29.02.2016, 10:13
Кто то из наших форумчан делал модель для протеус.
там не хватало вроде INT
Robus делал.
http://zx-pk.ru/showthread.php?t=22200

Ewgeny7
29.02.2016, 10:54
Totem, я как раз вчера Робусовскую модель и нашел. Работает, окаянная. Прерывания я не использую, как и было завещано.
Сегодня начал отрисовку LAY для ЛУТа, прилепил Z80 к UM61256 и 28C64. Посидел довольный, увидел что разводку проца сделал зеркально (он в QFP)... Мля........... Аааааа!!! :)

fmulder007
29.02.2016, 11:36
разводку проца сделал зеркально
Запаяйте его пузом кверху! Раз так тоже ошибался :)

Totem
29.02.2016, 11:36
Totem, я как раз вчера Робусовскую модель и нашел. Работает, окаянная. Прерывания я не использую, как и было завещано.
Сегодня начал отрисовку LAY для ЛУТа, прилепил Z80 к UM61256 и 28C64. Посидел довольный, увидел что разводку проца сделал зеркально (он в QFP)... Мля........... Аааааа!!! :)
Так вот где он будет жить:) 44 ногий таракашка :v2_dizzy_punk:

Ewgeny7
29.02.2016, 12:57
Так вот где он будет жить 44 ногий таракашка
Да, он для этого и ожидался :)
Сейчас переразвожу плату. Но блин, как неудобно у него лапки расположены в расчете на односторонний ЛУТ.


Запаяйте его пузом кверху! Раз так тоже ошибался
И почесывать ему пузико? :)
Нет, жалко надписи на нем скрывать. Лучше еще голову поломать.

Totem
29.02.2016, 14:34
Да, он для этого и ожидался :)
Сейчас переразвожу плату. Но блин, как неудобно у него лапки расположены в расчете на односторонний ЛУТ.


И почесывать ему пузико? :)
Нет, жалко надписи на нем скрывать. Лучше еще голову поломать.

Ага, получается "паук"

http://s015.radikal.ru/i333/1411/51/cffbc890c5aa.jpg

fmulder007
29.02.2016, 16:03
В чем вы схемы так "по цифровому" чертите? В сплане мало того что нету библиотек СБИС так и еще шины ручками писать приходится...

Totem
29.02.2016, 16:18
В чем вы схемы так "по цифровому" чертите? В сплане мало того что нету библиотек СБИС так и еще шины ручками писать приходится...

Eagle CAD, схема и плата синхронизируется автоматически, куча библиотек, корпусов и тд. свою сделать очень просто если надо.
На ютубиках есть обучающие уроки.
народ еще любит Dip Trace.

Довольно не плохой сейчас в нем (Eagle) авто трассировщик

fmulder007
29.02.2016, 16:49
Спасибо погляжу!

А процессор так и не нашел - ни где не продают. Даже в прайсах только отечественный аналог и то в наличие нет. Завтра закажу в инете.

Еще беспокоит вопрос как ascii клавиатуру подключить. Там есть выход сигнализирующий о нажатии клавиши. В процессоре есть вход /int. Я так понимаю по идее должен быть контроллер прерываний что бы передать процессору данные куда пойти за обработкой того или иного прерывания. А если без него? Ну типа нажал кнопку, проц прервался, посмотрел на ШД а там код клавиши. Например 20H. Он и пойдет в память по этому адресу, а там положить подпрограмму что бы на экране курсор сдвинулся на одну позицию вправо... Ну то есть если у меня есть клавиатура и других прерываний я использовать не планирую, я могу таким образом обойтись без дополнительных микросхем? Можно конечно опрашивать порт, но если программа с ошибкой и застрянет, то придется ресетить. А хочется нажать контрол брек или какуюнить "HOME" и ты в меню монитора!

Totem
29.02.2016, 21:12
Спасибо погляжу!

А процессор так и не нашел - ни где не продают. Даже в прайсах только отечественный аналог и то в наличие нет. Завтра закажу в инете.

Еще беспокоит вопрос как ascii клавиатуру подключить. Там есть выход сигнализирующий о нажатии клавиши. В процессоре есть вход /int. Я так понимаю по идее должен быть контроллер прерываний что бы передать процессору данные куда пойти за обработкой того или иного прерывания. А если без него? Ну типа нажал кнопку, проц прервался, посмотрел на ШД а там код клавиши. Например 20H. Он и пойдет в память по этому адресу, а там положить подпрограмму что бы на экране курсор сдвинулся на одну позицию вправо... Ну то есть если у меня есть клавиатура и других прерываний я использовать не планирую, я могу таким образом обойтись без дополнительных микросхем? Можно конечно опрашивать порт, но если программа с ошибкой и застрянет, то придется ресетить. А хочется нажать контрол брек или какуюнить "HOME" и ты в меню монитора!

Чиркни в личку пришлю z80.

fmulder007
01.03.2016, 16:55
Чиркни в личку пришлю z80.
Спасибо, не заморачивайтесь. Заказал десяток в инете уже. :) Пока надо разобраться со схемой и все обдумать

Ewgeny7
01.03.2016, 19:09
"Клуб любителей неведомых компьютеров на Z80" :)

MakSer
07.03.2016, 11:05
Навеяно http://zx-pk.ru/showthread.php?t=25682
вспомнил, как в середине 90х, начитавшись книги М.Тули "Справочное пособие по цифровой электронике" решил сделать самый простой контроллер на z80, способный что то делать полезное, опыт изготовления спектрумов и специалиста был.
Получилось 5 корпусов микросхем, Z80, память ОЗУ и ПЗУ по 8кб, (помню РУ17 раздобыл) и 580ВВ55 и 155ЛА3, кварц был 2Мгц с чем-то.
Сделал без печатки проводами на текстолите с панельками, устройство работало и даже писал простые программы, самое сложное - звонок с мелодией. Так как собственного программатора не было, приходилось бегать прошивать, что быстро надоело.
Сама плата без микросхем со временем была выброшена, хотя планы были подключить 7-сегментный на 9 разрядов и клавиатуру от калькулятора и магнитофон, этакой современный ЮТ-88.
Планировал еще взять коды игры в шахматы от специалиста...
Вот сейчас вспомнил и набросал по памяти схему в протеусе. благо он может моделировать Z80.
Проект прилагаю с простой демо программой (моргание портом).

56305

В принципе к вв55 можно подсоединить экран 2х16, клавиатуру и SDcard.
Интересно можно еще проще?

MM
07.03.2016, 16:03
Из промышленных контроллеров - АОН на Z80.
*
Если надо серьезно и быстро отладить софт в такой конструкции - вместо ППЗУ ставилась СОЗУ ( с косметическими перемычками на выводочки ) и по механизму ПДП от внешней ЭВМ софт подгонялся чуть ли не в прямом эфире. По результатам отладки прошивалось ППЗУ.
Особенно такой фокус был актуален на DEC - совместимых контроллерах во времена царствования 573РФ3 ( 1982-1987 г. ), т.к. РФка практически не прошивалась более 2-5 раз.

MM
17.03.2016, 23:19
...плата АОНа на Z80 :
http://storage7.static.itmages.ru/i/16/0317/s_1458231407_7218037_25c8b82043.jpg (http://itmages.ru/image/view/4014530/25c8b820)http://storage3.static.itmages.ru/i/16/0317/s_1458231534_5941852_fc67a9e536.jpg (http://itmages.ru/image/view/4014555/fc67a9e5)

Кстати, это большой вариант по геометрии, маленький был существенно меньше. ДПП проиводства Экситон, ~1991 г.

krotan
18.03.2016, 01:54
Турки на Z80 выпускают программируемый логический контроллер E-PLC-100 для промышленного применения...

MM
18.03.2016, 15:04
Турки на Z80 выпускают программируемый логический контроллер E-PLC-100 для промышленного применения...
Думается, что кроме турков контроллеры на Z80 выпускают ( выпускали ) еще десяток-другой стран.
Самый ближайший из промышленных - контроллер принтера Роботрон 6329 ( U880 ГДР ), выпускался с ~1986 г. до 1992 г.
А так - ИМХО - АОН на Z80 - это и есть самый экстремально простой контроллер, выпускавшийся промышленно на ряде предприятий СССР в период с ~1990 г. приблизительно до 2000 г. Предположительно, таких телефонов было сделано не менее 5 млн. шт. , включая самодельные из "не известно где раздобытых" заводских плат ( с металлизацией переходных отверстий ).
Кстати, первый вариант АОНа разрабатывали в качестве инициативы в ОКБ Э. в 1987 г, на 1801ВМ1, но в серию не пошел по причине бюрократических заморочек, а так же немаленького к-ва ИС на ДПП ( 2хКР537РУ10, 2х555ИР23 ). Потом энтузиасты переработали текст ПЗУ под Z80, первая рабочая прошивка была уже в 1988 г, потом её апдейтили до Оригинальной "07" версии - 1990 г.
Если для статистики - маленьких чистых ДПП АОНа на Z80 на Э. было сделано никак не меньше 1 т. шт. ( по др. данным - на порядок больше, типа подпольно ).

krotan
18.03.2016, 22:25
PLC - это не бытовка, не телефоны, принтеры и факсы. Это контроллер для управления промышленным оборудованием, это совсем другой уровень качества и надёжности (и цены)...

Alex_LG
18.03.2016, 23:06
А еще NECовский Z80 в планаре использовался в старых винчестерах Seagate...

Ewgeny7
25.03.2016, 23:41
Позвольте и мне вступить в "ядерный клуб" :)

http://savepic.net/7884540m.jpg (http://savepic.net/7884540.htm)

http://savepic.net/7869180m.jpg (http://savepic.net/7869180.htm)

ТТХ:
Z80 1,82МГц (не спрашивайте, так захотелось)
ПЗУ - до 32кб (монитор + очень хочется Бейсик, надежда и сорцы есть)
ОЗУ - 32кб
Селектор портов - 555ИД7, 8 портов.
КР580ВВ55А - три порта I/O, 24 двунаправленных лапы.
Порт дисплея на 555ИР23.
Порты для клавиатуры, 580ВИ53 и 580ВВ51А - есть, зарезервированы но не установлены пока. Место - под дисплеем.
Несколько корпусов мелкологики - под большими микросхемами. Генератор - под дисплеем скрыт.

Пишу простенький Монитор. Ассемблер - это музыка... :)

Totem
26.03.2016, 01:37
вот кому нельзя давать мгтф, в руки :v2_dizzy_punk:

rw6hrm
26.03.2016, 10:20
Да ладно, просто МГТФ нужен зело потоньше, чтоб укладывался, а тут что было (ну прям как у меня xD).
Ждём схемку.

И кстати, вопрос к Ewgeny7 как к модератору: раз у нас на форуме уже есть как минимум четыре упоминания о "простых контроллерах", причём на разных процессорах, то может создать в разделе небольшой топик со ссылками на "ядрёный клуб", чтобы интересующимся было проще ссылки искать? Назвать, разумеется, его как-нить понятней для других... Готов поспособствовать сбору и обработке информации

Ewgeny7
26.03.2016, 11:34
rw6hrm, согласен. Пошуршу. Две темы вижу, по крайней мере.

- - - Добавлено - - -

Вот так будет получше.
Тему с 6502 лучше оставить отдельной, ИМХО.

- - - Добавлено - - -


Ждём схемку.
Схема из протеуса, где я обкатываю работу.

http://savepic.net/7883276m.jpg (http://savepic.net/7883276.htm)

- - - Добавлено - - -


вот кому нельзя давать мгтф, в руки
Еще со времен "ЮТ для умелых рук" запомнил, что "провода укладываются по кратчайшему пути между выводами". С тех пор идет внутренняя борьба между кратчайшей укладкой и шинной :)

HardWareMan
26.03.2016, 15:33
Я совсем забыл, что у меня тоже есть Zputer. Вот его ЛУТ:
http://savepic.ru/9109603m.jpg (http://savepic.ru/9109603.jpg)
А вот его заводской вариант:
http://savepic.ru/9113699m.jpg (http://savepic.ru/9113699.jpg)
И в боевом комплекте (32 картриджа с Cyclone V):
http://savepic.ru/9170018m.jpg (http://savepic.ru/9170018.jpg)
У него окно флэша в 8КБ (постраничный доступ ко всему объему), остальное ОЗУ. Поддерживает загрузку приложений по сети в ОЗУ. Обмен по сети через NMI (попытка полного удаленного контроля). Реализовано удаленное обновление прошивки. Как-то так.

piroxilin
26.03.2016, 16:00
HardWareMan, Биткойны считает ? :)

ALS
26.03.2016, 16:20
Ну а я продублирую свой "посыл" к АОН-ам :

http://savepic.su/7133849m.jpg (http://savepic.su/7133849.jpg)

Когда-то хотел переделать под свои задачи, но лень было выпаивать РУ10 (надо было больше оперативки), нашел другую плату, с панелькой.

HardWareMan
26.03.2016, 17:44
HardWareMan, Биткойны считает ? :)
И почему все сразу про биткоины говорят? Разве нет других, более деньгоприносящих задач, которые можно успешно решать с помощью FPGA? У меня - есть.

PS Правда оффтоп получился, ибо он нифига не карманный... Но в стоечке пыхтит не напрягаясь. ;)

Ewgeny7
26.03.2016, 22:50
HardWareMan, премия на "самый несложный комп на Z80" безусловно достается тебе, ибо гора пятых циклонов не в счет :)
Вечерок посидел, написал полкило машинного кода на ассемблере для Монитора. Трудно начать, зато потом все летит.

Totem
27.03.2016, 10:04
rw6hrm, согласен. Пошуршу. Две темы вижу, по крайней мере.

- - - Добавлено - - -

Вот так будет получше.
Тему с 6502 лучше оставить отдельной, ИМХО.

- - - Добавлено - - -


Схема из протеуса, где я обкатываю работу.



Еще со времен "ЮТ для умелых рук" запомнил, что "провода укладываются по кратчайшему пути между выводами". С тех пор идет внутренняя борьба между кратчайшей укладкой и шинной :)

Во мне победил перфекционист :) смотрю буржуины пользуют эмаль провод, для монтажа, кто сталкивался ? его как зачищают паялом? что к портам подключать планируется ?

заразное это дело. Не лызе в крынку все хотелки батько!
HardWareMan Снимаю шляпу.

https://youtu.be/74hA6Q7vPI4
http://i10.pixs.ru/thumbs/8/7/6/cce2862213_3528657_21286876.jpg (http://pixs.ru/showimage/cce2862213_3528657_21286876.jpg)

1Ж24Б
27.03.2016, 12:49
смотрю буржуины пользуют эмаль провод, для монтажа, кто сталкивался ? его как зачищают паялом?
Советский аналог облуживается после выдержки в капле расплавленного припоя. Импортный, с бесцветным лаком, должен быть только таким. Изоляция, естественно, не терпит острых кромок и трения.

HardWareMan
27.03.2016, 16:18
Я же свой МХ2 в прототипе ПЭЛом паял на макетке. Фотки в имиджшаке протухли, в фотике не сохранились, увы.

Totem
27.03.2016, 18:22
Я же свой МХ2 в прототипе ПЭЛом паял на макетке. Фотки в имиджшаке протухли, в фотике не сохранились, увы.
не довелось, мотали да, но мгтф было море, нашел не давно в отцовской коробке, в голубой изоляции 0,5, этикетку не сохранил жаль, одножильный, РКашки им на картонках собирали. Увы на балконе лет 20 лежал, в морозе, можно ногтем снимать изоляцию,удобно заклепки делать, под qfp.

поможите если можете, обнищали совсем
http://zx-pk.ru/market/viewtopic.php?f=6&t=4720

CodeMaster
27.03.2016, 20:24
Я совсем забыл, что у меня тоже есть Zputer

Однако, у HardWareMan и карман О_о

Вассерман отдыхает...

Ewgeny7
27.03.2016, 23:28
Totem, куда столько ZIFок? :)
А я начал вкошачивать 580ВВ51А на платку микрокомпа.
Схему после раздумий взял вот эту (http://zx-pk.ru/showthread.php?t=25670&p=856393&viewfull=1#post856393). ИЕ4 прекрасно уместилась внутри панельки ВВ51.
И кварцевый генератор на платке у меня "случайно" оказался 1,8432МГц... :)
Помогать ВВшке будет буржуинская Тини2313, интерфейсом на USB.

Totem
28.03.2016, 00:16
Totem, куда столько ZIFок? :)
А я начал вкошачивать 580ВВ51А на платку микрокомпа.
Схему после раздумий взял вот эту (http://zx-pk.ru/showthread.php?t=25670&p=856393&viewfull=1#post856393). ИЕ4 прекрасно уместилась внутри панельки ВВ51.
И кварцевый генератор на платке у меня "случайно" оказался 1,8432МГц... :)
Помогать ВВшке будет буржуинская Тини2313, интерфейсом на USB.
Евгений, что за вопросы, их есть, есть горка процов, пзущек, надоть , проверить что живое, удобно.
буду ставить 2 генератора на уарт, хочется с порта рулить скоростью,а не джамперами.
убил весь вечер помогая товарищу с фоторезистом,

http://i11.pixs.ru/thumbs/3/5/4/rezistjpg_2670852_21296354.jpg (http://pixs.ru/showimage/rezistjpg_2670852_21296354.jpg)

хоть тресни куска нормального не найти , ламинатор не спасает. извел пол метра этой гадости.

Ewgeny7
28.03.2016, 15:18
убил весь вечер помогая товарищу с фоторезистом
Вот тут уж - пардон муа... Я этой бякой еще не пробовал пользоваться. ЛУТ - решает. Но размеры плат ,конечно, сильно большими по такой технологии не сделаешь.

- - - Добавлено - - -

Вброшу немножко для оживления темы.
Установил 580ВВ51А, код буду уже дома карябать для нее. КМ155ИЕ4 - под ВВ51 сидит.


http://savepic.ru/9150987.jpg

А вот пара экранных картинок :)

http://savepic.ru/9139723.jpg

http://savepic.ru/9125387.jpg


Занятие - мегаувлекательное, присоединяйтесь! :)

Ewgeny7
01.04.2016, 22:31
После небольшого перерыва сделал и присобачил клавиатуру 5х4.
Долго ковырялся, но написал приятный в работе драйвер кнопок.

http://savepic.net/7983347m.jpg (http://savepic.net/7983347.htm)

Микрокомп сейчас умеет редактировать дамп памяти, запускать на исполнение с произвольного адреса, тестировать клавиатуру.
Хотел привинтить EEPROM типа 24С16(512), но пока нет идей, как его прицепить к процессору. Но очень планирую это сделать :)
Также уже прилеплена 580ВВ51А, надо и ею заняться.

Ewgeny7
03.04.2016, 22:29
Последовательный порт на 580ВВ51А отлажен, две директивы микрокомпика занимаются передачей/приемом данных.
Насчет EEPROM 24С16... Вроде как должно получиться подключение WP, SCK и SDI через регистр типа ТМ9. А читать с SDO можно уже через любой порт.
И тогда останется самое сложное. Придумать применение этому зверьку :)

rw6hrm
03.04.2016, 22:36
...ну раз есть ВВ55, то зохватывать мир уже можно ;), юзая датчики от Ардуиноподобностей - температура, влажность, движение живности.., а к СОМ-порту прицепляем конвертер в ETH и смотрим за всем действом из сети.
А вообще применение уже есть - получение кайфа от проделанной (и планируемой) работы.

Ewgeny7
03.04.2016, 22:40
Главное, чтобы игиловцы не начали интересоваться девайсом в своих целях :)

Ewgeny7
04.04.2016, 22:32
Народ, а может кто-нибудь поделиться за денежку керамической 580ВВ55?

http://savepic.net/7944156.jpg

Ну ведь напрашивается.... :)

- - - Добавлено - - -

Эта цена в Удмуртии как-то напрягает маленько :)

http://savepic.net/7977950.jpg

rw6hrm
05.04.2016, 12:37
Скрин, случайно, не 1 апреля был сделан? ;)
А если по делу, то красота - это преходящее, спросите у женщин. Наступивши на жабу, приобрёл 82С55, который жрёт в 10 раз меньше ВВшки, а вот работает до 5 МГц. Получилось гораздо практичнее. ВВшка - только для тестов.

ALS
06.04.2016, 01:35
А у меня (возможно, глупый) вопрос.
Есть контроллер дисплея 580ВГ75. Во всех схемах он работает в связке с 580ВТ57 (контроллер ПДП).
А можно ли ВГ75 подключить к Z80 без ВТ57, переложив управление им на сам Z80 ?
Понятное дело, будет отжирать машинное время. Но нам-то особых скоростей и не надо.
Зато появится возможность подключить "теплый ламповый" дисплей :)

kox
06.04.2016, 09:36
А у меня (возможно, глупый) вопрос.
Есть контроллер дисплея 580ВГ75. Во всех схемах он работает в связке с 580ВТ57 (контроллер ПДП).
А можно ли ВГ75 подключить к Z80 без ВТ57, переложив управление им на сам Z80 ?
Понятное дело, будет отжирать машинное время. Но нам-то особых скоростей и не надо.
Зато появится возможность подключить "теплый ламповый" дисплей :)

Ага, в какой комбинации не собирай, а все равно спектрум или РК86 получается.:)

ALS
06.04.2016, 11:01
Ну, они все чем-то похожи...
Как бы, у меня есть вариант - собрать видео-терминал на микронтроллере, как это сделано в "Аюше". Но хотелось бы получить ответ от матерых железячников именно про ВГ75.

Ewgeny7
06.04.2016, 15:43
Скрин, случайно, не 1 апреля был сделан?
Не :)
А я тут уже биллигейцевый бейсик запустил на микрокомпе. Вывод на терминалку, ибо так. Приедет дисплейчик побольше - перенесу вывод на LCD.

http://savepic.ru/9280483m.jpg (http://savepic.ru/9280483.htm)

rw6hrm
06.04.2016, 15:59
Про ВГшку думал, однако, прочитавши кучку старой литературы типа журнала "Byte", понял, что она работает только с общей памятью и только через ПДП. Т.е. без управляющего процессора никак... Остальные типы м/с (6845, 6538 и аналогичные) работают со "своей" памятью.
Позволю себе маленький спойлер - я решил отойти от варианта терминала с СОМ-портом и делаю попытку сбора всё в кучу внутри одного корпуса. Однако видеочасть будет построена как устройство ввода/вывода (в варианте 6502 с отображением всего двух регистров на память процессора). Основа - разработка Дарила Риктора, http://sbc.rictor.org/vid3.html , его недостатки: 40х25 (в принципе, как на Аюше сейчас), но нестандартное управление курсором. Вторая схема базируется на переработанной первой, от Гранта Сирла, http://searle.hostei.com/grant/MonitorKeyboard/index.html , имеет различное разрешение, в том числе и графику, поддерживает стандарт VT100 управления курсором, но нестандартно загружается по внешнему интерфейсу. Счас только заменим 74HCT166 на 155ИР9 и попробуем...
...хотел использовать 6538 от Дендика, у меня-то эта м/с есть, но надо и о других подумать ;) А Атмегу32 как-нить найдём.


Вывод на терминалку, ибо так

Вот кстати.., а в коде есть процедура проверки флагов наличия в буфере принятого символа и флага занятости буфера на передачу? Чтот не нашёл...

Ewgeny7
06.04.2016, 16:13
Вот кстати.., а в коде есть процедура проверки флагов наличия в буфере принятого символа и флага занятости буфера на передачу? Чтот не нашёл...
В коде чего?
Впрочем, я везде использую проверки флагов. Оно даже из Бейсика доступно, там порты платы доступны.

- - - Добавлено - - -

У меня тут была эпопея с прерываниями от 580ВВ51А...
У этого порта есть выход RxRDY, взлетающий в единицу при поступлении очередного байта. Так оно и есть, взводится.
Я через инвертов прикошачил этот сигнал на INT_n процессора. Всё нормуль, байт прилетел, лапа ИНТ процессора вниз просела, пошла обработка прерывания. В обработчике читаем принятый байт, выходим по RETI и...


INTERR: IN A,(#80)
RETI

И тут косячина страшная! Выход ВВ51, несмотря на произведенное чтение, так и остается в "1", вопреки даташиту. Читаю регистр данных "вручную" - сбрасывается. Из обработчика прерывания читаю - хрен там! Мистика... Порядок сигналов-то не отличается! Или ВВ51 надо много времени, чтобы она осилила сброс путем чтения?
Пробовал и "пустышку" вперед ставить:


INTERR: IN A,(#81)
AND 1
JR Z,INTERR
IN A,(#80)
RETI

Один фиг...
В общем, убрал прерывания, можно и без них обойтись. Но загадка осталась.

KeKc
06.04.2016, 19:37
А если попробовать завести RxRDY через RС цепочку, по типу как сделано в "Ленинграде", может поможет.

Ух, прям руки чешутся, глядя на вас. Пошёл свою железку допиливать... :v2_dizzy_step:

Ewgeny7
06.04.2016, 19:39
А если попробовать завести RxRDY через RС цепочку, по типу как сделано в "Ленинграде", может поможет
Прерывание-то останется однократным, а нужно террабайты принимать с ПЦ на компик :)

Ewgeny7
07.04.2016, 13:42
В общем, убрал прерывания, можно и без них обойтись. Но загадка осталась.
Нельзя обойтись. Вывод на LCD медленный, нужно в прерываниях ловить данные с USART.
Еще немножко поковырялся с ВВ51, но пока не победил его RxRDY...

ALS
07.04.2016, 13:53
А не логичней было бы все принятые данные сначала загонять в какой-то буфер (сколько там ? 20х2=40 байт), и только по окончанию посылки передавать данные из буфера в дисплей ?

Ewgeny7
07.04.2016, 14:02
А не логичней было бы все принятые данные сначала загонять в какой-то буфер (сколько там ? 20х2=40 байт), и только по окончанию посылки передавать данные из буфера в дисплей ?
Логичней, это и Ёжику понятно.
Но вот только код Бейсика писал пресловутый Билли Гей-тс, а ему хотелось всё делать через символ. Можно залезть в дебри Васика, но можно и просто решить задачу с прерываниями, и принимать байты в буфер, неспеша рисуя символы. Воть...

rw6hrm
07.04.2016, 14:32
Немного вспомню, как это делал на 6850...
1. Передача слова на внешнее устройство:
- Проверяем регистр статуса передачи. Если не пустой, значит передача предыдущего слова ещё не окончена - ждём в цикле. Если пустой, то записываем в регистр данных слово на передачу. По идее передача начинается сразу, как только слово помещено в регистр данных.
2. Приём слова с внешнего устройства:
- проверяем регистр статуса приёма. Если пуст, то нам ничего не поступило, можем заняться основной программой. Если полон, то считываем слово из регистра данных. Обнуляем регистр статуса приёма.
- проверяем полученный байт. Если это комбинация ctrl+C, то передаём управление прерыванию исполнения текущей программы, иначе просто принимаем байт (по крайней мере у меня для работы с Бейсиком это нужно).
Т.е. без проверки флагов никак. А вот для остановки внешнего устройства, если оно торопливое, а мы не успеваем обрабатывать, RxRDY как раз и нужен, в комп заводить его не надо кмк, а вывести сигналом RTS наружу

Почти та же фигня и с ЛСД, у многих есть сигнал BUSY, который показывает, что дисплей ещё не обработал символ. Вот и приходится метаться между этими двумя "неуспевающими"...

Ewgeny7
07.04.2016, 17:45
rw6hrm, я до кучи и про 6850 документы читал. Была мысль ее использовать (там есть выход INT), но у нас их нету в питерах.
А вот выход RxRDY у ВВ51А даже в документации заводится на проц для инициации прерывания. Но рабочего примера с прерыванием я не нашел :(
А насчет флагов - все подобно 6850.
Бит 0 регистра статуса - 1- передатчик занят, 0 - можно засылать байт на отправку.
Бит 1 - 1 - новый байт в приемник не прилетел, 0 - есть новый поступивший байт.
Т.е., когда порт статуса читается как 0, то делай вообще что хочешь :)

ALS
07.04.2016, 18:25
А сколько времени уходит на запись символа в ЖКИ ?
Может, на небольших скоростях (скажем, 9600bps) интервала между отдельными байтами посылки будет достаточно, чтобы, не озираясь ни на что, вывести символ на индикатор и не спеша вернуться в тело программы.
Конкретно на 9600 это ок. 120uS :

http://savepic.su/7158261m.png (http://savepic.su/7158261.png)

rw6hrm
07.04.2016, 18:46
В хабровских статьях о применении ЖКИ не парятся относительно сигнала занятости ЖКИ, там просто играются программными задержками. Но ведь не всегда это возможно, если проц под сотню МГц и выше, тогда фиксим задержками ибо не жалко, а если, как в нашем случае, максимум 2-3 МГц (тактовой, реально рабочая скорость ещё ниже раза в три-пять), то задержки уже жирно как по временным затратам, так и по коду в ПЗУ...


Ewgeny7, я вот посматриваю на Вашу реализацию, учусь, поскольку с 6850 уходить придётся, если надеяться, чтобы конструкцию хоть кто-то повторил...

ALS
07.04.2016, 19:26
Сейчас глянул даташит на AC162D : Set RAM address - 39uS и Write DATA to RAM - 43uS
Это даже меньше, чем пауза между байтами при 9600bps.
Кроме того, пока мы принимаем следующий байт (а это вообще ок. 950uS), это тоже своего рода задержка для ЖКИ.
Т.е. - да, при 9600 никакие доп. задержки для ЖКИ точно не нужны (ну, разве что, во время инициализации и очистке дисплея, там от 1,5mS до 30). И тут главное, чтоб проц успел.

Ewgeny7
07.04.2016, 21:17
А сколько времени уходит на запись символа в ЖКИ ?
Немножко некорректный вопрос.
Скорость процессора тоже не последнее значение имеет, а он на 1,84МГц работает.
Все равно не взлетит, даже на 9600. А у меня скорости или 19200 (1:16), или 4800 (1:64). Выбор очевиден.
Далее, LCD подключено по 4-битному интерфейсу. ВременнЫе расходы вдвое практически вырастают.
Твои выкладки хороши в спортивном смысле разработки, но лучше делать гарантированно надежно, а это только прерывания.
Буду долго долбить этот вопрос, экспериментировать, чтобы найти ответ.

- - - Добавлено - - -


на Вашу
Миль пардон, мусье! Можно на ты? :)

- - - Добавлено - - -

как думаете, что лучше привинтить на последнее оставшееся место на плате, 580ВИ53 или Dallas DS1387 (часы)?

KeKc
07.04.2016, 21:40
Далее, LCD подключено по 4-битному интерфейсу. ВременнЫе расходы вдвое практически вырастают.
Так почему бы не задействовать младшие 4 разряда? 4 битый вариант актуален для МК с малым числом пинов, а здесь такой проблемы нету.

Ewgeny7
07.04.2016, 22:14
Так почему бы не задействовать младшие 4 разряда?
Чтобы обойтись одним портом. Одна 555ИР23 рулит всем дисплеем, 4 разряда - данные, три - управление.

- - - Добавлено - - -

Размышлял насчет более православной 580ИР82, но жрет она.....

KeKc
08.04.2016, 07:31
А зачем? В своей схеме я предлагал вариант включения прямо к шине данных и не надо никаких ИРок ставить. Да, при таком варианте теряется возможность чтения данных с дисплея, но так ли это важно?

Ewgeny7
08.04.2016, 13:02
А зачем? В своей схеме я предлагал вариант включения прямо к шине данных и не надо никаких ИРок ставить.
Ну ты и озадачил....
Как это без регистра?
Чтобы что-то записать в дисплей, нужно подать комбинацию управляющих сигналов, при этом на шине данных должы быть данные (во как завернул!).
Как это можно сделать безрегистрово?

- - - Добавлено - - -

Ага, вижу на схеме. Интересно. Линия адреса как выборка команда/данные :)
Можно попробовать...

- - - Добавлено - - -

На моем дисплее входа CS нету. Соответственно надо цеплять логику типа NOT(wr_n OR cs_port) и пускать это на вход Е дисплея.
Но у меня не осталось свободного элемента ЛЛ1. Лепить монтажное ИЛИ на диодах? И еще надо выкапывать свободный инвертор из-под слоя МГТФ.
Не... Оставлю пока как есть.

Кстати, прилепил 580ВИ53. Уже пищит :)
Хорошая получилась машинка для изучения 580-го комплекта.

Totem
08.04.2016, 14:33
КР1810ВК56
такого зверя кто встречал живую?

caro
08.04.2016, 16:05
КР1810ВК56
такого зверя кто встречал живую?У меня есть несколько штук:
предназначен для создания на ее базе малогабаритных, гибких и производительных микрокпроцессорных систем путем обьединения функций пяти контроллеров:
1) последовательный асинхронный приемо-передатчик:
2) парралельный порт ввода-вывода;
3) таймер;
4) счетчик событий;
5) контроллер прерываний.
Аналог INTEL 8256AH
Описание: http://radio-hobby.org/uploads/datasheet/155/8256/8256ah.pdf

56754

Totem
08.04.2016, 18:18
У меня есть несколько штук:
предназначен для создания на ее базе малогабаритных, гибких и производительных микрокпроцессорных систем путем обьединения функций пяти контроллеров:
1) последовательный асинхронный приемо-передатчик:
2) парралельный порт ввода-вывода;
3) таймер;
4) счетчик событий;
5) контроллер прерываний.
Аналог INTEL 8256AH
Описание: http://radio-hobby.org/uploads/datasheet/155/8256/8256ah.pdf

56754
Махнемся не глядя в личке ? :v2_dizzy_botan:

Я к тому и веду
"на ее базе малогабаритных"

У меня пока бзик все на зилоге, много корпусов,есть все кроме контроллера прерываний, у зилога есть конечно аналог ВК56 , но стоит конских денег.
вот еще проект интересный, Евгению скидывал,
http://d-fence.sytes.net/z80sbc/

Ewgeny7
09.04.2016, 20:05
вот еще проект интересный, Евгению скидывал,
Угу. Я этот проект перекопал.
На его базе проапгрейдил свою машинку.
Вот ее шайтан-клавиатура :)

http://savepic.net/7978592m.jpg (http://savepic.net/7978592.htm)

Я объединяю свой Монитор самописный с этим Васиком, будет зверь-машина :)

HardWareMan
09.04.2016, 21:45
Ты еще Т9 туда прикрути. Хотя бы по токенам Барсика.

Ewgeny7
09.04.2016, 22:36
И GSM до кучи к Т9? :)
Программы можно писать как на самом компике, так и на ПЦ. И скидывать оттуда по USART. Поэтому с комфортным написаннием программ проблем нету.
Вот двустрочный дисплей по 16 символов в Бейсике - это жесть! Но ничего, работать можно, если сильно хочется :)

HardWareMan
10.04.2016, 08:49
Как это жесть? Калькуляторы были же. Хотя я не помню, сколько там было строк и символов в строке. Зато получается довольно таки мощный калькулятор + программируемый контроллер, который не требует обязательного использования ПК.

PS: МЭЛТ MT-20S4A (http://www.melt.com.ru/docs/MT-20S4A.pdf), 4 строки по 20 знакомест. Хватит всем. (с)
http://savepic.ru/9369743.jpg
http://savepic.ru/9343119.png

KeKc
10.04.2016, 09:13
Про подключение жк к z80 http://www.melt.com.ru/index.php?option=com_fireboard&Itemid=16&catid=3&do=quote&func=post&replyto=73

HardWareMan
10.04.2016, 11:08
Я на своей ферме (фотки которой на предыдущих страницах) сделал так:

// LCD дисплей
output LCD_E, // Строб данных LCD
output LCD_RW, // Выбор направления данных LCD
output LCD_RS, // Выбор регистра управления и данных LCD

***

assign LCD_RW = !nRD; // Направление данных LCD
assign LCD_RS = A[0]; // Выбор регистра управления или данных LCD
assign LCD_E = !(nRD & nWR) & !nIORQ & !A[7] & !A[6] & !A[5]; // Строб записи в LCD

И все отлично работает на командах IN/OUT. На скорости 4МГц.

- - - Добавлено - - -

А вот примеры:

; LCD экран (00-1F)
LCD_CMD .equ 00H ; Порт команд LCD
LCD_DT .equ 01H ; Порт данных LCD



; Инит экранчика (проходной инклуд)
Boot_LCD_Wt0:in (LCD_CMD) ; Считываем статус LCD
ani 80h ; Выделяем бит готовности
jnz Boot_LCD_Wt0 ; Не готов - крутимся
mvi a,3Ch ; Настройка LCD
out (LCD_CMD) ;
Boot_LCD_Wt1:in (LCD_CMD) ; Считываем статус LCD
ani 80h ; Выделяем бит готовности
jnz Boot_LCD_Wt1 ; Не готов - крутимся
mvi a,0Ch ; Настройка LCD
out (LCD_CMD) ;
Boot_LCD_Wt2:in (LCD_CMD) ; Считываем статус LCD
ani 80h ; Выделяем бит готовности
jnz Boot_LCD_Wt2 ; Не готов - крутимся
mvi a,01h ; Настройка LCD
out (LCD_CMD) ;
Boot_LCD_Wt3:in (LCD_CMD) ; Считываем статус LCD
ani 80h ; Выделяем бит готовности
jnz Boot_LCD_Wt3 ; Не готов - крутимся
mvi a,06h ; Настройка LCD
out (LCD_CMD) ;
; Печать приветствия
Boot_LCD_Wt4:in (LCD_CMD) ; Считываем статус LCD
ani 80h ; Выделяем бит готовности
jnz Boot_LCD_Wt4 ; Не готов - крутимся
mvi a,80h ; Адрес первой строки
out (LCD_CMD) ;
lxi h,Title_Text ; Адрес приветствия
mvi b,10h ; 16 символов
Boot_LCD_Lp0:in (LCD_CMD) ; Считываем статус LCD
ani 80h ; Выделяем бит готовности
jnz Boot_LCD_Lp0 ; Не готов - крутимся
mov a,m ; Берем символ
out (LCD_DT) ; Толкаем на экран
inx h ; Следующтий символ
dcr b ; Минус счетчика
jnz Boot_LCD_Lp0 ; Крутимся
Boot_LCD_Wt5:in (LCD_CMD) ; Считываем статус LCD
ani 80h ; Выделяем бит готовности
jnz Boot_LCD_Wt5 ; Не готов - крутимся



Ну и атомарный вывод символа:

; Вывод символа из [A]
Print_LCD_Sym:push psw ; Сохраним [A]
Print_LCD_Wt: in (LCD_CMD) ; Считываем статус LCD
ani 80h ; Выделяем бит готовности
jnz Print_LCD_Wt ; Не готов - крутимся
pop psw ; Восстановим [A]
cpi 80h ; Это команда?
jc Print_LCD_Sp ; Нет - идем на вывод буквы
out (LCD_CMD) ; Посылаем команду в LCD
ret ; Выходим
Print_LCD_Sp: cpi 20h ; Это управляющие символы?
jc Print_LCD_Ctr ; Да - идем на управление
out (LCD_DT) ; Посылаем символ в LCD
ret ; Выходим
Print_LCD_Ctr:cpi 08h ; Влево?
jz Print_LCD_Lf ; Да - исполняем
cpi 18h ; Вправо?
jz Print_LCD_Rg ; Да - исполняем
cpi 19h ; Вверх?
jz Print_LCD_Up ; Да - исполняем
cpi 1Ah ; Вниз?
jz Print_LCD_Dn ; Да - исполняем
cpi 0Dh ; В начало строки?
jz Print_LCD_Cr ; Да - исполняем
cpi 0Ah ; Следующая строка?
jz Print_LCD_Dn ; Да - исполняем
cpi 1Fh ; Стирание экрана?
jz Print_LCD_Cl ; Да - исполняем
ret ; Выходим
Print_LCD_Lf: in (LCD_CMD) ; Считываем позицию
dcr a ; Уменьшаем ее
ori 80h ; Добавляем команду
jmp Print_LCD_Ex ; Выходим
Print_LCD_Rg: in (LCD_CMD) ; Считываем позицию
inr a ; Увеличиваем ее
ori 80h ; Добавляем команду
jmp Print_LCD_Ex ; Выходим
Print_LCD_Up: in (LCD_CMD) ; Считываем позицию
sui 40h ; Вычитаем размер строки
ori 80h ; Добавляем команду
jmp Print_LCD_Ex ; Выходим
Print_LCD_Dn: in (LCD_CMD) ; Считываем позицию
adi 40h ; Прибавляем размер строки
ori 80h ; Добавляем команду
jmp Print_LCD_Ex ; Выходим
Print_LCD_Cr: in (LCD_CMD) ; Считываем позицию
ani 0C0h ; Сбрасываем на начало строки
ori 80h ; Добавляем команду
jmp Print_LCD_Ex ; Выходим
Print_LCD_Cl: mvi a,01h ; Команда очистки экрана
Print_LCD_Ex: out (LCD_CMD) ; Пошлем команду в LCD
ret ; Выход

Ewgeny7
10.04.2016, 11:23
Как это жесть? Калькуляторы были же.
Электроника МК85. У нее вообще одна строка для бейсика.
И это жесть не менее, чем две строки :)
Не надо думать, что это удобно.
Из четырехстрочников у меня есть графический 128*64 G1213N00, но он без подсветки.
И жду из китаев некий LCD12864, он похож на дисплей из первого поста темы от Кекса.

ALS
10.04.2016, 14:13
Еще есть интересный дисплей тех годов - LM234 (HLM-9301).
Построен, как графический, правда, каждый 6-й столбец у него не работает.
Но для текстового режима - вполне.

http://viktor.com.ua/doc/LM234.jpg

rw6hrm
10.04.2016, 22:33
http://www.nostalcomp.cz/savia.php вот вам ещё одноплатка класса ЮТа, но на Z80. Опять же, со свободным знакогенератором на семисегментниках...

http://www.nostalcomp.cz/fotecky/amater1.jpg
А это как пример корпуса ;) нет, не Савии, а "карманного компьютера на Z80"

Ewgeny7
14.04.2016, 13:25
Поросла паутиной тема.
Чуть протру тряпочкой - запилил I2C на порту С 580ВВ55А.
Микросхема EEPROM 24LC16 пишется/читается.
Но - мелковата она. Поищу пожирнее, дабы было с чего загружаться после включения.
Простыню *****кода оставлю здесь, дабы было хоть каким-то примером.





;PortC - #E2
;SCL - PortC.6 out
;SDAI - PortC.7 out
;SDAO - PORTC.0 in
;resistor 1.0k between SDAO & SDAI

I2C_INIT: LD A,#93
OUT (#E3),A
RET

I2C_START: LD A,#C0
OUT (#E2),A
NOP
LD A,#40
OUT (#E2),A
NOP
XOR A
OUT (#E2),A
RET

I2C_STOP: LD A,#40
OUT (#E2),A
NOP
LD A,#C0
OUT (#E2),A
NOP
RET

I2C_ADDR: PUSH AF
CALL I2C_START
POP AF
CALL I2C_SEND8
CP 1
RET Z
SCF
RET

I2C_SEND8: PUSH BC
LD B,8
SND1: RLC A
LD C,A
JR C,SND2
LD A,0
OUT (#E2),A
LD A,#40
OUT (#E2),A
LD A,0
OUT (#E2),A
JR SND3
SND2: LD A,#80
OUT (#E2),A
LD A,#C0
OUT (#E2),A
LD A,#80
OUT (#E2),A
SND3: LD A,C
DJNZ SND1
LD A,#C0
OUT (#E2),A
IN A,(#E2)
LD C,A
LD A,#80
OUT (#E2),A
XOR A
OUT (#E2),A
LD A,C
AND 1
POP BC
RET

I2C_READ8: PUSH BC
LD B,8
LD A,#80
OUT (#E2),A
XOR A
RED1: RLA
LD C,A
LD A,#C0
OUT (#E2),A
IN A,(#E2)
PUSH AF
LD A,#80
OUT (#E2),A
POP AF
AND 1
OR C
DJNZ RED1
POP BC
RET

I2C_ACK: XOR A
OUT (#E2),A
LD A,#40
OUT (#E2),A
XOR A
OUT (#E2),A
RET

I2C_NACK: LD A,#80
OUT (#E2),A
LD A,#C0
OUT (#E2),A
XOR A
OUT (#E2),A
RET

Totem
15.04.2016, 18:19
Поросла паутиной тема.
Чуть протру тряпочкой - запилил I2C на порту С 580ВВ55А.
Микросхема EEPROM 24LC16 пишется/читается.
Но - мелковата она. Поищу пожирнее, дабы было с чего загружаться после включения.
Простыню *****кода оставлю здесь, дабы было хоть каким-то примером.





;PortC - #E2
;SCL - PortC.6 out
;SDAI - PortC.7 out
;SDAO - PORTC.0 in
;resistor 1.0k between SDAO & SDAI

I2C_INIT: LD A,#93
OUT (#E3),A
RET

I2C_START: LD A,#C0
OUT (#E2),A
NOP
LD A,#40
OUT (#E2),A
NOP
XOR A
OUT (#E2),A
RET

I2C_STOP: LD A,#40
OUT (#E2),A
NOP
LD A,#C0
OUT (#E2),A
NOP
RET

I2C_ADDR: PUSH AF
CALL I2C_START
POP AF
CALL I2C_SEND8
CP 1
RET Z
SCF
RET

I2C_SEND8: PUSH BC
LD B,8
SND1: RLC A
LD C,A
JR C,SND2
LD A,0
OUT (#E2),A
LD A,#40
OUT (#E2),A
LD A,0
OUT (#E2),A
JR SND3
SND2: LD A,#80
OUT (#E2),A
LD A,#C0
OUT (#E2),A
LD A,#80
OUT (#E2),A
SND3: LD A,C
DJNZ SND1
LD A,#C0
OUT (#E2),A
IN A,(#E2)
LD C,A
LD A,#80
OUT (#E2),A
XOR A
OUT (#E2),A
LD A,C
AND 1
POP BC
RET

I2C_READ8: PUSH BC
LD B,8
LD A,#80
OUT (#E2),A
XOR A
RED1: RLA
LD C,A
LD A,#C0
OUT (#E2),A
IN A,(#E2)
PUSH AF
LD A,#80
OUT (#E2),A
POP AF
AND 1
OR C
DJNZ RED1
POP BC
RET

I2C_ACK: XOR A
OUT (#E2),A
LD A,#40
OUT (#E2),A
XOR A
OUT (#E2),A
RET

I2C_NACK: LD A,#80
OUT (#E2),A
LD A,#C0
OUT (#E2),A
XOR A
OUT (#E2),A
RET


Они говорят, что мы извращенцы.
http://www.fizyka.umk.pl/~daras/mtm/multimedia/01%2014%20Z80%20Minimal.mp4

Ewgeny7
15.04.2016, 18:59
Они говорят, что мы извращенцы.
Корпус - классный.
Но на этом и хватит :)
А я уже автозагрузку и старт с EEPROM 24С16 прилепил. Теперь Скайнет не боится пропадания напряжения :)
Осталось часики на DS1307 прилепить, и будет вообще всё.
Сейчас Монитор занимает уже 2 килобайта, 10 директив.

Totem
15.04.2016, 19:23
Корпус - классный.
Но на этом и хватит :)
А я уже автозагрузку и старт с EEPROM 24С16 прилепил. Теперь Скайнет не боится пропадания напряжения :)
Осталось часики на DS1307 прилепить, и будет вообще всё.
Сейчас Монитор занимает уже 2 килобайта, 10 директив.
Ты документируй хоть от руки схему, нашел у себя odin'а12с887а. Ставить таймер, как думаешь? чет сложно получается, логика уже не лызе, платка маленькая. DMA c CPU, на одну плату и галка. уже 2 этажа :)
Часы тоже здоровые, вот дилема. поможииите от хотелок избавиться! :)

Ewgeny7
15.04.2016, 20:36
Часы тоже здоровые, вот дилема. поможииите от хотелок избавиться!
У мну тоже долго лежали на столе DS1387. Это не только часы, но 4 килобайта энергонебоящейся памяти.
Но отказался от нее.
Огромная, состояние батарейки - неизвестно. Заливать программу в ее ОЗУ с ПЦ - нереально, если только свой девайс изобретать.
Да и зацепила идея I2C.
Теперь не жалею, что отказался. Крошечный восьмилап - лучше "майского жука" :) А 24С512 прекрасно читается и программится хоть утюгом.
Насчет таймера - дело личное, но я хочу "озвучить" компик. И еще - есть плееры музык для ВИ53. Это будет прикольно музыку слушать с такого мегакомпа :)

- - - Добавлено - - -


DMA c CPU, на одну плату и галка
Про галки тоже думал. Но - это уже почти ПЛИС, немножко не та концепция :)

- - - Добавлено - - -

Осиленные директивы Монитора -
0. Запуск программы с адреса
1. Просмотр/редактирование дампа памяти в хексе
2. Просмотр/редактирование памяти в символьном представлении
3. Заполнение памяти константой
4. Загрузка кода через 580ВВ51 (USART).
5. Выгрузка кода через USART
6. Копирование блоков памяти вверх/вниз, алгоритм изменяется сам.
7. Работа с портами I/O. Запись/чтение выбранного порта.
8. Загрузка кода с EEPROM 24С512.
9. Запись кода в EEPROM.
Дополнительно - установка джампера на автоматическую загрузку программы из EEPROM в ОЗУ и передача управления загруженной программе.
Если разомкнуто - обычный мониторный режим.

Блин, сейчас у каждой кнопки пять (!!!) значений. Четыре возможных символа и команда монитора. Я уже не знаю, как их маркировать... :)

Totem
15.04.2016, 21:56
У мну тоже долго лежали на столе DS1387. Это не только часы, но 4 килобайта энергонебоящейся памяти.
Но отказался от нее.
Огромная, состояние батарейки - неизвестно. Заливать программу в ее ОЗУ с ПЦ - нереально, если только свой девайс изобретать.
Да и зацепила идея I2C.
Теперь не жалею, что отказался. Крошечный восьмилап - лучше "майского жука" :) А 24С16 прекрасно читается и программится хоть утюгом.
Насчет таймера - дело личное, но я хочу "озвучить" компик. И еще - есть плееры музык для ВИ53. Это будет прикольно музыку слушать с такого мегакомпа :)

- - - Добавлено - - -


Про галки тоже думал. Но - это уже почти ПЛИС, немножко не та концепция :)

- - - Добавлено - - -

Осиленные директивы Монитора -
0. Запуск программы с адреса
1. Просмотр/редактирование дампа памяти в хексе
2. Просмотр/редактирование памяти в символьном представлении
3. Заполнение памяти константой
4. Загрузка кода через 580ВВ51 (USART).
5. Выгрузка кода через USART
6. Копирование блоков памяти вверх/вниз, алгоритм изменяется сам.
7. Работа с портами I/O. Запись/чтение выбранного порта.
8. Загрузка кода с EEPROM 24LC16B.
9. Запись кода в EEPROM.
Дополнительно - установка джампера на автоматическую загрузку программы из EEPROM в ОЗУ и передача управления загруженной программе.
Если разомкнуто - обычный мониторный режим.

Блин, сейчас у каждой кнопки пять (!!!) значений. Четыре возможных символа и команда монитора. Я уже не знаю, как их маркировать... :)
Нормально так разошелся :) да болезнь это- достаешь коробку и давай придумывать как все впихнуть, уменьшим аппетиты. Иначе конкурс надо объявлять, "на компоновку не впихeумого", что у темя сейчас по железякам?
озвучь список.

rw6hrm
15.04.2016, 22:04
...так и до заливки СР/М дойдём неспешно ;)

Totem
15.04.2016, 23:02
...так и до заливки СР/М дойдём неспешно ;)
лютая ненависть, к данной ос, прежде всего она мертвая для любительских вещей, но все кто не попадь делают совместимые "одноплатки", хохма в том, что большинство просто ведет блог, выкладывает видео- и все, это не жизнь :)
ну это вообще к всяким относится, просто человечески не понятно, зачем? собрать комп совместимый ? нового там 1%.

Ewgeny7
15.04.2016, 23:18
озвучь список.
гм... :)
Платка размером 150х55мм.
На ней сидят:
Z80 6МГц
КР580ВВ55А
КР580ВВ51А
КР580ВИ53
КР555ИР23
К555ЛН1
К555ЛЛ1
К555ИД7
К155ИЕ4
UM61256
AT28C64
AT24C512
PCF8583+батарейка (пока в процессе монтажа)
Кварцевый генератор 1,8432МГц в ДИПе
Двустрочный индикатор типа WH1602
Кнопочка сброса...

- - - Добавлено - - -


...так и до заливки СР/М дойдём неспешно
ф топку этот СР/М
Сейчас я уже отладил версию Nascom Basic для этой платки. Работает нормально, несмотря на двустрочность дисплея. Только там надо запись/чтение на EEPROM еще прикрутить.

Totem
16.04.2016, 01:17
Скромно, батарейку в фольгу заверни, скайнет рядом :) ид7 проблема, вообщем ладно, может 4 строки тебе прислать ? или гарфику, будет интересней.

KeKc
16.04.2016, 08:49
ВВ55 и ей подобные нормально работают при частоте процессора 6МГц?

Ewgeny7
16.04.2016, 09:23
ВВ55 и ей подобные нормально работают при частоте процессора 6МГц
Выборочно.
На частоте 5МГц (Орион-128) работают практически все ВВ55.
В данном случае частота генератора - 1,8432МГц.

- - - Добавлено - - -

Totem, я ожидаю графический 128х64 из китаев, всё дело в почте.
А почему ИД7 проблема? Как грязи их.

goodboy
16.04.2016, 12:12
Корпус - классный.
погугли - "лазерная резка фанеры"

http://krkon.ru/assets/images/laser/lazernaya-rezka-fanery9.jpg

HardWareMan
16.04.2016, 13:06
Я бы такое обычным выжигателем сделал. Сколько всякого по дереву я делал на трудах в школе... И запах нравился. Что-то даже осталось у мамы (шкатулки). Может не так красиво и ровно, но зато хэндмэйд, а не бездушная нарезка. ;)

ALS
16.04.2016, 14:27
Но у поляка получилась какая-то жуткая помесь гламурной шкатулочки и брутального управления.
Думаю, в корпусе от старой Цешки это смотрелось бы гораздо лучше.

HardWareMan
16.04.2016, 15:06
Чтобы эбонитовая такая была?

rw6hrm
16.04.2016, 15:47
лютая ненависть, к данной ос
Ну ладно, ладно, уж и подкусить нельзя... Не пойдёт она просто на этом маленьком экране.
Хорошо, вопрос на засыпку: ну сделали мы 80-совместимую конструкцию, прицепили к ней диск (флоп, хард, флеш - не важно). И что дальше? Расширения load/save от Барсика? Нафига тогда диск...

мертвая для любительских вещей
Я вообще не помню, чтоб под неё любители писали. Проблема не в совместимости компов, а в том, как этой поделкой управлять, не более того, вне зависимости от "новизны"...

Ewgeny7
16.04.2016, 16:07
прицепили к ней диск (флоп, хард, флеш - не важно). И что дальше? Расширения load/save от Барсика? Нафига тогда диск...
Диск для такой конструкции - избыточно. Но вот слотовая сохранялка - самое то! Я с такими мыслями и прицеплял EEPROM. Это удобно и для кода, и для Барсика. При желании микросхема памяти снимается с панельки и читается в ПЦ.


а в том, как этой поделкой управлять, не более того, вне зависимости от "новизны"...
Такого рода поделки, ИМХО, сродни классическим контроллерам, или даже микроконтроллерам. Играть на них - странно (хоть и можно), а рулить какими-либо процессами - на здоровье! Хоть гаражными воротами. У меня есть желание приспособить свою "игрушку" на руление вентиляцией и воздухоподготовкой на работе. Подобные контроллеры я через год леплю, но всё на контроллерах (AVR, STM8, STM32...). А тут - на Z80 (ИК80, ВМ80А)!!! Круто же для сердца ретрокомпьютерщика :)

Totem
16.04.2016, 16:56
Ну ладно, ладно, уж и подкусить нельзя... Не пойдёт она просто на этом маленьком экране.
Хорошо, вопрос на засыпку: ну сделали мы 80-совместимую конструкцию, прицепили к ней диск (флоп, хард, флеш - не важно). И что дальше? Расширения load/save от Барсика? Нафига тогда диск...

Я вообще не помню, чтоб под неё любители писали. Проблема не в совместимости компов, а в том, как этой поделкой управлять, не более того, вне зависимости от "новизны"...
Зачем управлять, каждый год рождается " хомебрева" -"я изменил 48, строк кода", теперь спм, может работать? ну и ? запустил посмотрел ивсе куча лайков

rw6hrm
16.04.2016, 18:17
Уговорили. Не буду я свою вторую поделку показывать ;)

А на раздумья подкину следующее. Чтот в последнее время, в связи с ротацией домашнего оборудования, компа с СОМ-портом найти стало затруднительно. Вышел из ситуации просто: попался переходник на УСБ к сотовому телефону БЕЗ встроенной МАХ232, выкинул последнюю из контроллера, подключил переходник напрямую (ну, почти напрямую, там же 3,3 Вольта) к 6850 и поставил гнездо УСБ тип Б вместо DB-9 на задней панели.
Да, можно было совместимость с СОМ-портом оставить, тем более что теперь не подключить переходник к езернету, можно было купить более комплектный переходник, но... пошел по пути Интеля - зачем куча преобразований интерфейса напряжений? Теперь для подключения контроллера к компу требуется обычный принтерный УСБ-шнур, затрат на МАХ232 больше нет.

Totem
16.04.2016, 20:32
Уговорили. Не буду я свою вторую поделку показывать ;)

А на раздумья подкину следующее. Чтот в последнее время, в связи с ротацией домашнего оборудования, компа с СОМ-портом найти стало затруднительно. Вышел из ситуации просто: попался переходник на УСБ к сотовому телефону БЕЗ встроенной МАХ232, выкинул последнюю из контроллера, подключил переходник напрямую (ну, почти напрямую, там же 3,3 Вольта) к 6850 и поставил гнездо УСБ тип Б вместо DB-9 на задней панели.
Да, можно было совместимость с СОМ-портом оставить, тем более что теперь не подключить переходник к езернету, можно было купить более комплектный переходник, но... пошел по пути Интеля - зачем куча преобразований интерфейса напряжений? Теперь для подключения контроллера к компу требуется обычный принтерный УСБ-шнур, затрат на МАХ232 больше нет.

у, ветка становится почти аналогом, с недопц, но жизнь в ней есть :v2_dizzy_roll:

Ewgeny7
16.04.2016, 23:26
Подключил PCF8583, читается/пишется, надо придумать как окультурить вывод даты времени на экранчик.
Пока разбирал компик чтобы всобачить кварц 32768, сделал ему фотосессию потрохов (со снятым дисплеем) :)

http://savepic.net/8051811.jpg

http://savepic.net/8036451.jpg

http://savepic.net/8034403.jpg

Ghost
18.04.2016, 22:48
Нашел красивое оформление подобного девайса.
http://zonadepruebas.org/backup/uploads/img44101c44a6ced.jpg
http://www.zonadepruebas.com/viewtopic.php?t=1664

fmulder007
19.04.2016, 03:33
Вот странно - в теме подписывался а уведомлений не было долго - думал тема стухла. Захожу а тут люди руками работают, а я все процессоры жду - их ЗАБЫЛИ ПОЛОЖИТЬ и выслали отдельно!!! :( Но запал не ушел и пока идет посыл собираю комплектуху и продумываю какие хотелки мне нужны а какие и не очень. Нашел в закромах 10 DS1307 - Это часики реального времени, но они по I2C шине общаются. Не работал с этим, сложно будет подцепить их? Или не париться и выдрать RTC с какой либо материночки старой?

CodeMaster
19.04.2016, 08:06
но они по I2C шине общаются. Не работал с этим, сложно будет подцепить их?

Евгений, на прошлой странице, подключил PCF8583 - спроси у него как? © Herbolife

Ewgeny7
19.04.2016, 12:45
DS1307 - Это часики реального времени, но они по I2C шине общаются. Не работал с этим, сложно будет подцепить их?
http://savepic.ru/9385542.jpg
Я тоже сначала хотел DS1307 привинтить, но их в нале не оказалось. Поэтому выдрал с пыльного Феникса аналогичные часики - PCF8583, тоже на I2C. На фото - вверху справа, рядом с батарейкой 1220.
Уже "прописал" их, при включении платы они служат заставкой :)
Теперь вот подумываю, не прилепить ли и термодатчик LM75, он тоже на I2C работает, а у меня уже два устройства на ней сидят хорошо и не кашляют. Внизу слева видна 24C512, мелкий восьмилапый EEPROM на I2C. Оно у меня служит "дискетой" :)

http://savepic.ru/9409117m.jpg (http://savepic.ru/9409117.htm)

"Озвучил" клавиатуру.
Применил пищалку-баззер на канал 0 таймера 580ВИ53.
Не уверен, что сделал правильно (тему особо не курил), но инит таймера и остановку звука делаю
OUT (порт_команд),#26 (нулевой канал, генерация меандра)
а запуск генерации звука -
OUT (порт_данных_0),#02 (частота "тона")
Все работает, по крайней мере.

fmulder007
19.04.2016, 15:59
Ewgeny7, Не могли бы вы замерить ток потребляемый вашим устройством?

Ewgeny7
19.04.2016, 16:20
Не могли бы вы замерить ток потребляемый вашим устройством?
370мА, при включенной подсветке дисплея.

Ewgeny7
21.04.2016, 11:53
Собственно, я кончил в проект.
Сделано всё, даже звук клавишь и доступ к ячейкам RTC.
Исходник с моим быдлокодом Монитора лежит здесь (https://yadi.sk/d/nOtJ_pYOrAsdU).
Можете пользоваться фрагментами или целиком.
В начале даны описания векторов перехода на подпрограммы.
Как видно, можно не напрягаясь писать свои программы для этого компика, просто вызывая необходимые функции, а их - предостаточно.
Ну конечно, ведь размер Монитора приблизился к 3 килобайтам :)
Фотка в "золотом исполнении", и я ушел на "Орион-Про".

http://savepic.ru/9500875.jpg

rw6hrm
21.04.2016, 15:00
Это только начало :) "Прибор должен работать не в принципе, а в корпусе", не?:v2_laugh: Ну и оформить всё кучей в виде единой ПДФки можно, в "прозападном" стиле.

Totem
21.04.2016, 16:19
Что делать с батарейками/аккумуляторами?

Error404
21.04.2016, 17:03
Можете пользоваться


наблюдал с интересом



Фотка в "золотом исполнении", и я ушел на "Орион-Про".


Приятно слышать. Приходи в темы по ПРО, тут офтопить не буду.

Totem
21.04.2016, 18:52
Caro прислал гостинцы КР1810ВК56, за что огромное спасибо, кому интересен 56, поделюсь.

Ewgeny7
21.04.2016, 20:06
Totem, а шо за зверюка этот 56?
Я тут уже задним числом раскурил присланный тобою Z80SIO... А там и порт есть последовательный... ладно, что сделано, то сделано :)

Totem
21.04.2016, 20:59
Totem, а шо за зверюка этот 56?
Я тут уже задним числом раскурил присланный тобою Z80SIO... А там и порт есть последовательный... ладно, что сделано, то сделано :)
Дык.

http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80.html?p=866847&viewfull=1#post866847

Ewgeny7
21.04.2016, 21:27
Интересный мультипорт. Легким движением паяльника получаем на одном чипе сразу несколько портов плюс контроллер прерываний (нафиг нужен, честно говоря). А вот порты - ага...

- - - Добавлено - - -


Я тут уже задним числом раскурил присланный тобою Z80SIO...
Ага, разогнался. Там DMA лежит в коробочке... :)

Totem
21.04.2016, 21:47
Интересный мультипорт. Легким движением паяльника получаем на одном чипе сразу несколько портов плюс контроллер прерываний (нафиг нужен, честно говоря). А вот порты - ага...

- - - Добавлено - - -


Ага, разогнался. Там DMA лежит в коробочке... :)
какая проблема, нужно sio приедет sio, dma ты сам просил. :)
вот аналог 56 от zilоga
http://www.zilog.com/index.php?option=com_product&Itemid=26&task=parts&BL=1&familyId=20&productId=Z84C90&puqs=b3B0aW9uPWNvbV9wcm9kdWN0JnRhc2s9cHJvZHVjdCZid XNpbmVzc0xpbmU9MSZpZD0xMzkmcGFyZW50X2lkPTEzOSZJdGV taWQ9NTk=

fmulder007
25.04.2016, 11:49
56996
Свершилось! Почта сработала и я получил все заказанное. Самое главное процессоры Z8400a от фирмы goldstar. Вот фото того что есть в наличие и что я хочу совместить в одной схеме карманного Z80 компьютера.

Дисплей помимо полноценных 8 бит данных требует еще 4 управляющих сигнала. Это помимо того что он сам логически разделен на 2 половины которые адресуются разными cs. Думаю что ИР22 мне для дисплея не хватит абсолютно. Повесить дисплей на ВВ55? С другой стороны - расточительно пару портов тратить.

Вот тут у кого забыл, скомуниздил схему - тут на LCD заведено только 4 старших линии данных. Как это работает?
56995

ALS
25.04.2016, 12:26
Он цифробуквенный и умеет работать в режиме 4bit.
Ваш так не сможет.
Может, просто включить две ИР22 впараллель, там всего-то разница в одном выводе будет.

fmulder007
25.04.2016, 12:49
Может, просто включить две ИР22 впараллель
Вот смотрю на скудный даташит своего дисплея и думаю... Есть два сигнала CS1 и CS2. Есть линия DI поднимая/опуская которую мы говорим дисплею что будут либо команды либо данные. Есть еще строб Е, по спаду которого происходит чтени-запись в/из дисплей. Есть /RST.
А если вообще отказаться от отдельного регистра для дисплея? У него есть там своя память, без CS1/CS2 что гуляет по шине данных дисплей игнорит. Вот и завести эти линии управления на какие-нить порты и работать с дисплеем напрямую. Попытаюсь набросать схемку...

Типа такого..
56997

Только вот сигнал Е на дисплей надо подумать где взять. На запись там просто по спаду, а на чтение надо два раза подергать. И еще не разобрался пока - дергать Е надо когда уже все сигналы на других линиях установлены. Если Е подцепить к 0 выходу дешифратора то когда он будет выбран - еще нету CS1|CS2 - NAND`ы сработают не сразу.

Вопрос - а /IOREQ от процессора падает когда на шине адреса и данных уже все установлено?

Ewgeny7
25.04.2016, 15:26
IORQ_N падает практически вместе с RD_N или WR_N.
Соответственно, когда он падает, данных на шине еще нету, ибо RD_N тоже только что сработал.

- - - Добавлено - - -

Остается вопрос, а зачем тебе что-то читать с дисплея? Нафиг оно нужно. Выплюнул в него данные и - забыл. Если сильно надо образ экрана рабочий иметь - в ОЗУ создай "дисплейную область".

fmulder007
25.04.2016, 16:19
Выплюнул в него данные и - забыл. Если сильно надо образ экрана рабочий иметь - в ОЗУ создай "дисплейную область".
Об этом уже думал. ОЗУ не резиновое. Заморачиваться с переключением страниц памяти - опыта мало. А тут уже 64x128 ячеек готовых и сразу отображаются. Не, так разбрасываться не буду. Попробую использовать для сигнала Е частоту CLK процессора. Сначала попробую подрубить напрямую. Если дисплею не понравится, то уже буду считать такты и пихать в E третий или первый после /WAIT.
Судя по описанию Z80 Т2 и T3 в цикле ввода-вывода для этого подходят как мне кажется. Вместе с спадом T3 пропадает /IORQ без которого не будет сигналов CS1|CS2 на дисплей, а соответственно пофигу что там на остальных линиях шин или еще где творится. Дисплей уже записал в себя все и показывает. Пока остановлюсь на таком варианте подключения дисплея, а дойду до макета - на кошках оно виднее :)
56998
Кажется контакт R/W дисплея надо подклчить не к /WR а к /RD. Там же инвертированные сигналы а на дисплее вход прямой...

Жаль пока не нашлось готового конструктива - типа плата с разъемами а в нее отдельно платки с памятью, видеоадаптером, еще каким барахлом. Нету в магазинах под боком ISA макеток и разъемов. Так было бы удобно. Сначала собрал проц, помигал лампочками, потом добавил видеоадаптер, вывел шахматку на дисплей. Потом можно памяти платку сделать на пару-тройку мегабайт. РОМДИСК с CF или SD карточкой.

Было бы хорошо если например стоит LCD дисплей - работает, картинку кажет. Воткнул рядом платку с RAM и регистром и вот на телевизор композитный сигнал зеркально повторяет картинку. И что бы программно не нужно было софт менять при этом.

Завтра попробую макетки купить - их тоже не всегда бывают...

HardWareMan
25.04.2016, 17:02
http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80.html?p=867093&viewfull=1#post867093

fmulder007
25.04.2016, 17:22
Пролистал тему с начала. Пока ждал почту - все вылетело из головы! В самом начале уже подключали дисплей и решали проблемы, а я и забыл.. Спасибо за пинок в нужном направлении!

ALS
26.04.2016, 18:16
Достал с балкона старый АОН, который лежал лет 20, чудище еще то. Он слева на фото :

http://zx-pk.ru/images/ext/2016/03/20/01/04.jpg

Отпаял дисплей (он битый) и выпаял всю аналоговую часть. Выглядеть стало гораздо лучше.
Из микросхем памяти в хозяйстве есть только 27C256 и 29EE011. Для первых даже стиралка имеется, но программатор не хочет их шить, хотя читает нормально.
Поэтому панельку под ПЗУ увеличил до DIP32 и сделал нормальную адресацию (раньше она была какая-то хитровычурная, от производителя).

http://savepic.su/7149343m.jpg (http://savepic.su/7149343.jpg) http://savepic.su/7201566m.jpg (http://savepic.su/7201566.jpg)

Хочется побыстрее запустить плату и убедиться в том, что она работает, поэтому РУ10 пока оставлю на месте.
Но в дальнейшем хочу заменить ее на 62256.

ALS
28.04.2016, 01:12
Помогите помигать светодиодом http://forumpinkpages.ru/style_emoticons/shy/ah.gif
Подключен к выходу ИР23. Сама ИР23 включена стандартно : тыц (http://igorkov.org/images/z80_aon01.gif)


ADDR equ 01111111b ;A7 - IR23


org #0000

DI
JP LOOP:

DELAY:
LD B,#FF
DELAY_LOOP:
LD D,#FF
DELAY_LOOP_1:
DEC D
JP NZ,DELAY_LOOP_1:
DEC B
JP NZ,DELAY_LOOP:
RET

LOOP:
LD A,#00
OUT (ADDR),A
CALL DELAY:

LD A,#FF
OUT (ADDR),A
CALL DELAY:

JP LOOP:

HardWareMan
28.04.2016, 06:37
И где финики то, ась? (с)

https://www.youtube.com/watch?v=hE2sinyZU6M

Ewgeny7
28.04.2016, 09:32
Помогите помигать светодиодом
Раньше писал для 8080, судя по стилю? :)
Вроде должно работать. Не хочет?
Ты пробовал просто записывать в порт значения?

artyr_n
28.04.2016, 10:45
Помогите помигать светодиодом
не вижу назначение стека а подпрограммы есть

Totem
28.04.2016, 11:03
Может кому сгодится. Старенькие видеопроцы.
для
http://bitsavers.trailing-edge.com/pdf/stMicroelectronics/_dataBooks/Graphic_Processors_Data_Book_Mar89.pdf
http://www.ebay.com/itm/1PCS-GRAPHIC-DISPLAY-PROCESSOR-IC-ST-SGS-DIP-40-EF9366P-/361426643899?hash=item5426b4ebbb

artyr_n
28.04.2016, 11:10
Сама ИР23 включена стандартно : тыц
не увидел кто формирует сигнал CS1

ALS
28.04.2016, 11:46
Сигнал выборки приходит с ЛЛ1, выделил на схеме : http://savepic.su/7151438.gif
Полный код :

device zxspectrum48

IOUT equ 01111111b ;A7 - IR23

org #0000

DI
JP LOOP:

DELAY:
LD B,#FF
DELAY_LOOP:
LD D,#FF
DELAY_LOOP_1:
DEC D
JP NZ,DELAY_LOOP_1:
DEC B
JP NZ,DELAY_LOOP:
RET

LOOP:
LD A,#00
OUT (IOUT),A
CALL DELAY:

LD A,#FF
OUT (IOUT),A
CALL DELAY:


JP LOOP:


SAVEBIN "blink.bin",$0,$100

На выходе получаю бинарник размером 256 байт, при дизассемблировании выдает то же самое.
ПЗУ шьется/читается нормально, саму схему перепроверил.
На выходах ИР23 постоянно висит лог.1
Если же схему включать вообще без ПЗУ, на выходах ИР23 везде нули.

Ewgeny7
пишу на асме для младших PIC-ов, 8080 не застал, а для Z80 у меня только одна осмысленная программа была, лет 20 назад.

HardWareMan
28.04.2016, 11:57
Повторю за Артуром: ГДЕ LXI SP,#RAMTOP?

А CS1 тут:
http://savepic.ru/9529312.png

ALS
28.04.2016, 12:46
а, сорри, понял
адресация ОЗУ начинается с 32768

HardWareMan
28.04.2016, 13:56
Там же оно подперто батарейкой, поэтому и такой изврат.

Ewgeny7
28.04.2016, 14:36
адресация ОЗУ начинается с 32768
Угу, а ORG #0000 :)

- - - Добавлено - - -

Начало программы в твоем случае -


.ORG #8000
DI
LD SP,#FFFF

HardWareMan
28.04.2016, 15:19
Дык, он же из ПЗУ работать хочет, а не ОЗУ. Да и ОЗУ работает только когда A13 в 1 (а ПЗУ когда A13 в 0), а не A15. Внимательнее надо быть.

Ewgeny7
28.04.2016, 17:20
Да, поторопился, звиняйте...

ALS
28.04.2016, 17:55
Не-не, адресацию я переделал.
Кроме того, ведь в этом тесте оперативка вообще не используется, только регистры самого Z80 и константы.
Следовательно все должно стартовать с нуля, переходить на LOOP и крутиться там по кругу, не выходя за пределя ПЗУ. Нет ?

http://savepic.su/7151449m.png (http://savepic.su/7151449.png)

Ewgeny7
28.04.2016, 18:07
Кроме того, ведь в этом тесте оперативка вообще не используется, только регистры самого Z80 и константы.
Стэк находится в ОЗУ.

ALS
28.04.2016, 18:16
ааа, Семен Семеныч :)
Т.е. программа должна начинаться с .

ORG #0000
DI
LD SP,#FFFF
так ?

Ewgeny7
28.04.2016, 18:35
Да :)

rw6hrm
28.04.2016, 19:20
ALS, как же мне нравится диодно-транзисторная логика ^^

artyr_n
28.04.2016, 21:50
Кроме того, ведь в этом тесте оперативка вообще не используется
При вызове подпрограммы (CALL) в стеке, который должен указывать на ОЗУ сохраняется адрес возврата из подпрограммы, поэтому если адрес стека не указывает на ОЗУ при возврате из подпрограммы (RET), программа улетает неизвестно куда. Перепишете программу без использования подпрограмм и тогда можно не устанавливать стек и ОЗУ будет не использоваться.

- - - Добавлено - - -


JP LOOP:
проверьте еще листинг после компиляции есть ли в этом месте правильный адрес, обычно двоеточие нужно в метках а вот при ссылке на метку двоеточие уже не нужно.

LOOP:
...
...
...
...
JMP LOOP

Totem
28.04.2016, 21:55
это все замечательно, но что делать с батарейным питанием? 500 мА часа 4? ради интереса заглянул в магазин, много всего. Увидел такую штуку
http://robiton.ru/product/09810
весит конечно много и габариты, что подобное есть на полимерах?
скромнее конечно можно, по Ач

artyr_n
28.04.2016, 22:02
попробовал скомпилировать http://clrhome.org/asm/

Creating folder
Storing file hello_z80
Storing file new_1_z80
Pass one
Unknown instruction or directive device (" device zxspectrum48" on line 1 in hello_z80)
Error parsing line ("IOUT equ 01111111b" on line 3 in hello_z80)
Unknown instruction or directive org (" org #0000" on line 5 in hello_z80)
Pass two
Total size: 34 bytes
Math syntax error (" JP LOOP:" on line 7 in hello_z80)
Math syntax error (" LD B,#FF" on line 10 in hello_z80)
Math syntax error (" LD D,#FF" on line 12 in hello_z80)
Math syntax error (" JP NZ,DELAY_LOOP_1:" on line 15 in hello_z80)
Math syntax error (" JP NZ,DELAY_LOOP:" on line 17 in hello_z80)
Math syntax error (" LD A,#00" on line 21 in hello_z80)
Reference to undefined equate IOUT (" OUT (IOUT),A" on line 22 in hello_z80)
Math syntax error (" CALL DELAY:" on line 23 in hello_z80)
Math syntax error (" LD A,#FF" on line 25 in hello_z80)
Reference to undefined equate IOUT (" OUT (IOUT),A" on line 26 in hello_z80)
Math syntax error (" CALL DELAY:" on line 27 in hello_z80)
Math syntax error (" JP LOOP:" on line 30 in hello_z80)
Program assembled with 15 errors (download)

Totem
28.04.2016, 22:28
device zxspectrum48
это для sjasm
заточного для zx
онлайн аsm об этом не знает.

ALS
28.04.2016, 23:03
Да, это SjASMPlus. Двоеточия он нормально переваривает.
Убрал их, на выходе - тот же самый бинарник, байт-в-байт.
Задержку убрал вообще, по идее светодиод должен молотить с высокой скоростью, но он все равно горит постоянно.
Буду перепроверять плату, возможно, дело в железе.

artyr_n
29.04.2016, 00:00
по идее светодиод должен молотить с высокой скоростью
Вы осциллографом смотрели? Если нет то он и должен гореть, просто глаз не успевает увидеть как он мигает.

- - - Добавлено - - -


Убрал их, на выходе - тот же самый бинарник, байт-в-байт.
я сталкивался когда ассемблер не понимает метки он просто вместо правильного адреса подставляет 0000 и тогда длина бинаркика будет такой же, а вот переходы будут не правильные

ALS
29.04.2016, 00:11
Я еще отличаю светодиод, горящий вполнакала и в полную яркость )
А если серьезно, то смотрю лог. анализатором.
На ША/ШД есть какая-то активность, на IORQ вообще ничего.
Обращения к ОЗУ нет (CS1 постоянно в "1"), только к ПЗУ.
Всё, что надо (INT, NMI и проч.), подтянуто к плюсу.
В общем, я пока в растерянности...

HardWareMan
29.04.2016, 00:40
Нет обращения к ОЗУ = не работают подпрограммы. Попробуй начать с работы без ОЗУ (вместо CALL использовать копипасту).

ALS
29.04.2016, 01:07
Я уже написал, что вообще выбросил задержку, все симптомы, что были написаны в предыдущем сообщении, относятся именно к этому коду.


device zxspectrum48

IOUT equ 01111111b ;A7 - IR23

ORG #0000
DI
LOOP:
LD A,#00
OUT (IOUT),A
LD A,#FF
OUT (IOUT),A
JP LOOP

SAVEBIN "blink.bin",$0,$100
END

artyr_n
29.04.2016, 01:29
а сравните с моим бинарником

org 0x0000

DI
LOOP:
LD A,00
OUT (127),a

LD a,255
OUT (127),a

JP LOOP

ALS
29.04.2016, 01:54
да, одинаковы

artyr_n
29.04.2016, 02:08
Тогда наверное пошаговик и смотреть что считывается с ПЗУ

Totem
29.04.2016, 02:34
http://www.z80.info/z80test0.htm

ALS
29.04.2016, 03:31
Сделал почти то же самое - залил нулями всё ПЗУ.
По идее, проц, читая nop-ы, должен просто перебирать адреса, выдавая меандры на ША.
Вместо этого там какая-то хрень, вот, напр., на А15 :

http://savepic.su/7198546m.png (http://savepic.su/7198546.png)

На ШД примерно то же самое. Кто-то явно срет в ШД. Но там всего-то три калеки и у всех них на входе выборки кристалла висит единица (проверил 3 раза).

Хоть какая-то активность на IORQ появилась только после

ORG #0000
DI
JP LOOP
ORG #0038
LOOP:
LD A,#00
OUT (IOUT),A
LD A,#FF
OUT (IOUT),A
JP LOOP
но на выходах ИР23 по-прежнему тихо. Также тихо и на выходах 555ЛЛ1.


это все замечательно, но что делать с батарейным питанием? 500 мА часа 4? ради интереса заглянул в магазин, много всего. Увидел такую штуку
http://robiton.ru/product/09810
весит конечно много и габариты, что подобное есть на полимерах?
скромнее конечно можно, по АчЛюбые литиевые подходящего веса/размеров (link (http://www.aliexpress.com/store/group/Li-Polymer-Batteires/1559034_501561020.html)) и step-up на 5 вольт (тыщщи их (http://www.aliexpress.com/af/step%25252dup-5v.html?ltype=wholesale&d=y&origin=n&isViewCP=y&catId=0&initiative_id=AS_20160428171143&SearchText=step-up+5v))

artyr_n
29.04.2016, 05:39
Сделал почти то же самое - залил нулями всё ПЗУ.
прозвоните шину адреса и данных между ПЗУ и процессором

HardWareMan
29.04.2016, 07:30
Сделал почти то же самое - залил нулями всё ПЗУ.
По идее, проц, читая nop-ы, должен просто перебирать адреса, выдавая меандры на ША.
Никто ничего не должен, пока на ШД есть кто-то еще кроме ПЗУ. У тебя там ОЗУ, забыл? А в нем все, что угодно. Посмотри, дергается ли оно если ПЗУ с 0. Ну и прозвонку уже советовали - мало ли, нарушена адресация. Ты ж вроде писал за это.

ALS
29.04.2016, 11:55
Обе шины прозванивал, все нормально, разве что адресация была нарушена, ее переделал.
Вход /CE (CS1) у ОЗУ сейчас вообще отключен от всей остальной схемы и просто притянут к плюсу.

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

fmulder007
30.04.2016, 11:12
Товарищи, может было уже, ткните пальцем или просветите новичка - вот у меня есть ВВ51А и ВИ53. Хочу последовательный порт. Обложился мануалами всякими. Какая должна быть частота процессора что бы у меня Боды совпадали с ПК и стандартным COM портом? Что бы ошибок не было и все соответствовало стандарту? Вроде как ровно 4 или 2 МГц не получается?

И в довесок связанный вопрос - от частоты тактовой Z80 зависит его потребление? У меня проц goldstar Z8400A ps.

Заранее спасибо...

Alex_LG
30.04.2016, 12:42
ALS, немного пропустил тему, но в догонку...
У вас на схеме из поста http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80.html?p=869180&viewfull=1#post869180 инверсия идет не А15, а сигнала /MREQ следовательно при обращении к памяти при А15=0 будет выбрано ПЗУ, а ОЗУ - во всех остальных случаях при А15=0, вот и мусор на ШД и неактивность ОЗУ при обращении к ней.

HardWareMan
30.04.2016, 13:38
Любой 0 на диодной логике заставляет транзистор закрыться. Это значит выход будет в 1. И только когда 2 лог.1 (А15=1 и MREQ=0) транзистор откроется и будет 0. Все верно там.

fmulder007
30.04.2016, 19:39
Исходя из имеющихся чипов памяти намыслил адресацию-выбор памяти. Пока в протеусе разбираюсь еще поэтому извиняйте, кривовато изобразил в сплане. Прошу критиковать...
57035

Totem
30.04.2016, 20:09
Исходя из имеющихся чипов памяти намыслил адресацию-выбор памяти. Пока в протеусе разбираюсь еще поэтому извиняйте, кривовато изобразил в сплане. Прошу критиковать...
57035

надо понимать, сделано из учета наличия нужных микросхем?

fmulder007
01.05.2016, 02:03
сделано из учета наличия нужных микросхем?
Да, но это первый мой самодельный "компьютер" и хотелось бы не подложить себе грабли таким решением. В наличие чипы SRAM из кэш памяти старых 486 материнок, по з2 килобайта на чип. EEPROM`ы от пней первых мегабитные. Планирую в первых 16кб ПЗУ расположить типа загрузчик-монитор с "драйвером" клавиатуры и дисплея, а в переключаемых страничках уже чего-нить полезное можно хранить. Думаю попробовать реализовать перепрошивку прям "из себя"

Только ИР22 тут совсем не пойдут. Они не "защелкиваются". Надо или ТМ8 или ИР23 или ИР13. ТМ8 у меня есть но только 155 серии. ИР13 тоже 155 да они еще и здоровые. А ИР23 в наличие нет. А сейчас праздники :(

В качестве тактового генератора поставил ЛН1 и ИЕ7. Кварц пока взял на 14318КГц. Потом ИЕ7. Позже буду разбираться с таймером - возможно пригодится подбирать кварцы, менять тактовую.

HardWareMan
01.05.2016, 06:02
Если проинвертировать 3FH то подойдет. Но лучше просто стробировать его сигналом WR, использовав 1 элемент от ЛЕ1.

fmulder007
01.05.2016, 13:48
Но лучше просто стробировать его сигналом WR
Тут я не очень догнал, Если вы про возможность применения ИР22 то судя по ее описанию она держит данные на выходах неизменными пока LE (11 нога) находится на уровне 0. Если LE равно 1 то ИР22 работает "насквозь". То есть выходы равны входам. В моей схеме соответственно инфа с трех линий шины данных все время будет гонять странички ПЗУ пока не дерну порт. Мало того - ИР22 не фиксирует это дело, то есть подняли LE и регистр забыл что за ПЗУ я выбрал.

....ААА Точно! Если LE все время будет 0 и IL не пройдет на ПЗУ а когда мне надо я его в 1 - данные попали на нужные адреса, потом он снова в 0 а адреса-то застряли!!! Спасибо!

А зачем стробировать его WR? Я же хочу писать в ПЗУ! Хотя надо сделать так что бы я не мог писать в ПЗУ если адрес меньше 4000H что бы не "отрезать себе ноги"

Totem
01.05.2016, 15:32
Ноги отрезаны когда ты делишь 64K на 32к, сжирая озу , z80 там и живет.

fmulder007
01.05.2016, 16:14
Ноги отрезаны когда ты делишь 64K на 32к, сжирая озу , z80 там и живет.
ну наверное в любом случае память нужно делить на ОЗУ и ПЗУ. И лучше если ПЗУ с 0000H начинается, так грузится проще. Или как? Посоветуйте как сделать лучше?

Totem
02.05.2016, 11:32
ну наверное в любом случае память нужно делить на ОЗУ и ПЗУ. И лучше если ПЗУ с 0000H начинается, так грузится проще. Или как? Посоветуйте как сделать лучше?

процессор все одно стартует с 0000, ну а далее как хочется, собирал такой на "беcпайке",
трудней придумать как пользоваться и для чего.

вот посмотри тут
http://www.z80.info/homebrew.htm
оригинальное придумать сложно, быстро теряешь интерес, когда делаешь в одно лицо.
могу предложить следующее, делать "хомбреву" на z180, мне одному скучно, cpu поделюсь, материалами
тоже. Возможно еще Евгений, с орионом разберется, подключится. У него "внезапно", в коробочке
аж 2 180 найдется. :)
Даже придумал для чего и "покумекал" над балансом архитектуры, чтоб не очень сложно.

fmulder007
02.05.2016, 17:08
http://www.z80.info/homebrew.htm
Тут я уже все себе в папочку скачал :)


могу предложить следующее, делать "хомбреву" на z180, мне одному скучно, cpu поделюсь, материалами
тоже

Я чувствую что не осилю. Помимо своего Z80 чуда у меня такая гора задачек. Параллельно делаю DDS на рассыпухе (регистры, сумматоры, цап), да и еще согласующее для антенны надо переделать. И все это в пару часов между тем как все уснули и тем как падаю сам.

Что-то интернет испортился. Киньте в меня ссылкой на простейший программатора на LPT для EEPROM НЕ i2c! Для обычных флешек типа 27с512 и прочего. Не могу найти - все i2c вылазят...

Ewgeny7
02.05.2016, 21:13
Возможно еще Евгений
Это невозможно, но Евгений курит папирусы на HD64180Z (http://www.datasheet4u.com/pdf/HD64180Z-pdf/516367) о 68 ногах. Забавный Z80 на полмега памяти рассчитаный, с кучкой периферии встроенной. Небогатой кучкой, да. Но USARTы в количестве пары штук есть. Да и нечто SPI-подобное тоже приколочено...
Изучаю сигналы, прикидываю, что хочу от него получить.
В конечном счете, это и есть самое сложное - найти применение :)

П.С. Детальки для Ориона пока сильно запаздывают...

- - - Добавлено - - -


Киньте в меня ссылкой на простейший программатора на LPT для EEPROM НЕ i2c!
Самому делать - Это Willem, наверное. Поищи на форуме, в "Hardware"->"Память".
Но это убицца. Лучше купить готовый. Из самых недорогих - TL866, поищи в китаях (Алиэкспресс).

- - - Добавлено - - -

Помимо хитачевского Z180, наверное применю снова классическую схему 32/32 (ПЗУ/ОЗУ).
Ибо лепить метр ОЗУ непонятно для чего - непонятно зачем :)
Единственно, думаю слепить именно BASIC-машинку, с нормальным дисплеем минимум 8 строк.
Один USART-порт MPU как раз можно отдать на вывод "терминального дисплея".
Но для первого старта придется помудрить простенький Монитор.
Воть... Клавиатура - не мучить Му-Му, а сразу ATtiny как контроллер PS/2. Первично. Потом можно будет поосваивать прерывания Z180, прицепив PS/2 прямо к нему.
Фантазии...
А что там у уважаемого Totem'а напридумывалось?

Totem
02.05.2016, 22:00
Это невозможно, но Евгений курит папирусы на HD64180Z (http://www.datasheet4u.com/pdf/HD64180Z-pdf/516367) о 68 ногах. Забавный Z80 на полмега памяти рассчитаный, с кучкой периферии встроенной. Небогатой кучкой, да. Но USARTы в количестве пары штук есть. Да и нечто SPI-подобное тоже приколочено...
Изучаю сигналы, прикидываю, что хочу от него получить.
В конечном счете, это и есть самое сложное - найти применение :)

П.С. Детальки для Ориона пока сильно запаздывают...

- - - Добавлено - - -


Самому делать - Это Willem, наверное. Поищи на форуме, в "Hardware"->"Память".
Но это убицца. Лучше купить готовый. Из самых недорогих - TL866, поищи в китаях (Алиэкспресс).

- - - Добавлено - - -

Помимо хитачевского Z180, наверное применю снова классическую схему 32/32 (ПЗУ/ОЗУ).
Ибо лепить метр ОЗУ непонятно для чего - непонятно зачем :)
Единственно, думаю слепить именно BASIC-машинку, с нормальным дисплеем минимум 8 строк.
Один USART-порт MPU как раз можно отдать на вывод "терминального дисплея".
Но для первого старта придется помудрить простенький Монитор.
Воть... Клавиатура - не мучить Му-Му, а сразу ATtiny как контроллер PS/2. Первично. Потом можно будет поосваивать прерывания Z180, прицепив PS/2 прямо к нему.
Фантазии...
А что там у уважаемого Totem'а напридумывалось?
Я кстати заказал себе
TL866a, заманал меня этот G540.
у тебя в коробочке есть и хитач и зилог.:)
детский комп хочу, развивалку -обучалку.
пока привожу хотелки к порядку.
арифметика, история, русский, английский, испанский минимально, вроде нашел художника, думает. не надумает, будем делать злобного скайнета.

Ewgeny7
03.05.2016, 11:29
TL866a, заманал меня этот G540.
У мну точно такой же, с букафкой А для ISP.
Хороший проггер, только из наших УФ-ПЗУ шьет только 573РФ6А без плясок с бубном. Импорт - весь на ура идет.
И очень не хватает именно GAL18V10...

HardWareMan
03.05.2016, 13:47
У мну точно такой же, с букафкой А для ISP.
А я взял "CS" но зато с 24 адаптерами. А в "А" переделал уже сам. ;)

KeKc
09.05.2016, 07:56
Мужики, вопрос по прерываниям. Допустим, проц настроен на режим прерываний im1. 60 раз в секунду нужно выполнить коротенький кусочек кода в прерывании. Если подать на вход int процессора меандр с частотой 60Гц, будет ли работать?

fmulder007
09.05.2016, 11:35
коротенький кусочек кода в прерывании.
Посчитали такты? Времени на выполнение хватит? Может просто цикл и NOP`ов накидать?

KeKc
09.05.2016, 12:48
Нет, NOPы не катят. Прерывания я хочу использовать вот как: пусть работает какая-нибудь программа, параллельно ей через ви53 выводится звук. 60 раз в секунду процессор прерывает основную программу, читает из памяти следующую ноту (если текущая закончилась), загружает ее в таймер и возвращается к основной программе. Вот как-то так.

Ewgeny7
09.05.2016, 16:27
Если подать на вход int процессора меандр с частотой 60Гц, будет ли работать?
В ЮТе вроде как меандр вообще 1Гц подается, и - нормуль всё.

- - - Добавлено - - -

Приехал долгожданнейший дисплей 12864B, на ST7920. Графический, 128*64 ЖК.
Я его хотел на тот первый комп привинтить, но там уже всё сложилось с двустрочником, ломать не хочу готовую машинку.
Но теперь этот большой (реально большой) дисплей пойдет в состав новой машинки, на Z180.

Totem
09.05.2016, 19:58
пара интересных компов
http://k1.spdns.de/Develop/Hardware/K1-Bus%20Z80%20CPU%20board%20with%20SRAM/
http://labs.domipheus.com/blog/teensy-z80-part-1-intro-memory-serial-io-and-display/

Ewgeny7
09.05.2016, 21:08
пара интересных компов
Угу... Я вчера практически такой же собрал, спортивнго интереса ради.

Конкурс!

1. Найди Z80 на борде.
2. Составь схему по внешнему виду :)

http://savepic.net/8063643m.jpg (http://savepic.net/8063643.htm)

KeKc
09.05.2016, 22:17
В ЮТе вроде как меандр вообще 1Гц подается, и - нормуль всё.
Не, там прерывание подается через триггер, который автоматически сбрасывается в исходное состояние при выполнении процессором команды DI. Она как раз стоит первой в обработчике прерываний.

Ewgeny7
09.05.2016, 22:54
Ага, спасибо.
А вообще, длина импульса прерывания критична? Если процессор выходит из обработки, то он снова уйдет в нее же, если импульс остается активным на входе?
Пойду почитаю мануалы...

- - - Добавлено - - -

Вопрос снят, вычитал - проверка ухода в прерывание у Z80 делается по фронту клока, проверяется уровень сигнала на входе прерывания. А не по фронту самого сигнала прерывания.

HardWareMan
09.05.2016, 23:16
Вопрос снят, вычитал - проверка ухода в прерывание у Z80 делается по фронту клока, проверяется уровень сигнала на входе прерывания. А не по фронту самого сигнала прерывания.
Более того, если IRQ ты можешь упустить, если он будет в пассиве в определенный момент времени (такт - машинный цикл), то NMI буферизируется входным триггером, который перекидывается по любому перепаду 1-0, и восстанавливается только после отработки подтверждения NMI.

Ewgeny7
09.05.2016, 23:31
то NMI буферизируется входным триггером
Да, тоже нашел это. Плюс, NMI не отключается софтово, в отличие от INT.

- - - Добавлено - - -

У Z80 в отличие от ВМ80 нет выхода подтверждения прерывания. Тоесть, тупо_триггер не прокатит для сброса сигнала, надо его длину выставлять внешней схемой...

HardWareMan
10.05.2016, 10:03
У Z80 в отличие от ВМ80 нет выхода подтверждения прерывания. Тоесть, тупо_триггер не прокатит для сброса сигнала, надо его длину выставлять внешней схемой...
Чтение опкода из порта спасет гиганта мысли. M1 | IORQ.

KeKc
10.05.2016, 11:39
Поправьте меня, если я не так понял: т.е. получается, что к моменту выхода из обработчика int, на этом выводе должна быть 1, верно? А что если использовать канал ВИ53 в режиме 2, длительность 0 будет равна четырем периодам тактовой частоты процессора?

b2m
10.05.2016, 12:26
А что если использовать канал ВИ53 в режиме 2, длительность 0 будет равна четырем периодам тактовой частоты процессора?
Длительность 0 для ВИ53 это длительность 65536.

KeKc
10.05.2016, 17:38
Длительность 0 для ВИ53 это длительность 65536. Я имел ввиду, что канал ви53 (пусть будет канал 1) настроен в режиме 2. Пусть ВИ53 тактируется от генератора с частотой в 4 раза меньше, чем частота, на которой работает Z80. 60 раз в секунду на выходе ВИ53 будет формироваться отрицательный импульс длительностью в 4 периода тактовой частоты процессора. Вопрос: хватит ли длины этого импульса для проца?

Ewgeny7
10.05.2016, 17:53
Вопрос: хватит ли длины этого импульса для проца?

Кусочек даташита:

http://savepic.net/8080037.jpg

Насколько можно понять ангельские тексты, опрос состояния INT производится в конце выполнения каждой инструкции, на последнем клоке. А инструкции (ооочень многие) имеют более четырех тактов. Кэп не гарантирует, судя по всему...

- - - Добавлено - - -


Чтение опкода из порта спасет гиганта мысли. M1 | IORQ.
Таки да, сам делал это в ПЛИСе, балда склерозная.... Спасибо! :)

Ewgeny7
14.05.2016, 21:27
Первый "писк" от нового компика, на Z180 + LCD12864B.

http://savepic.net/8062555m.jpg (http://savepic.net/8062555.htm)

LCD подключен напрямую, но кажись он не успевает за процессором на частоте 8МГц... Раза с пятого срабатывает.
Нет под рукой кварца на 4МГц, но он должен подойти в теории.

Ewgeny7
20.05.2016, 14:15
Прошла уже неделя ежедневного бодания с дисплеем.
Пока что всё не очень хорошо.
Дисп подключен напрямую на шину данных, WR - на ноль, PS - на "1", RST - на сбросе процессора, Е - not(A15 or IORQ or WE), RS - А0.
Текстовый режим работает нормально.

http://savepic.ru/9828247.jpg

Управление дисплеем просто до безобразия -
OUT (0),A - отправляем команду,
OUT (1),A - отправляем данные.
Но только им сыт не будешь.
Переключаю дисплей в графический режим командами #34, #36, #80, #80.
Дисп переходит в графику, экранчик заполнен мусором, как и должно быть.
Шлю байты, любые, для наглядности - #41 (код символа "А").
Экран должен заполняться соответствующими точками, но он делает что-то вообще нигде не упоминаемое - по XOR накладывает изображение символа А на графический "мусор".

http://savepic.ru/9806738.jpg

Тоесть, он как-то умудряется "не совсем переключаться" на графику.
Дабы уточнить и проверить алгоритм работы дисплея, привинчиваю его к ATmega128.
За десять минут пишется код, идентичный тому, что писал для Z180.
Мистика какая-то, но дисп переключился в графику нормально, я там даже картинку вывел на экран.
В кодах инициализации - разницы никакой.
Скорость - нормальная, раз в текстовом режиме работает без проблем.
Что тут не так?....
Кадилом чтоли помахать над диспом?

HardWareMan
20.05.2016, 17:57
NANDы не любят, чтобы CS сигнал прерывался внутри цикла обращения (один CMD, несколько ALE, еще один CMD и куча DATA). Если делать запись с тогглом CS оно не работает. Быть может тут тот же принцип?

KeKc
24.05.2016, 21:07
Запилил простенький проигрыватель мелодий для своей поделки. Пока что работает через циклы задержек, но вскоре планирую запихнуть весь проигрыватель в обработчик NMI, чтобы не тратить ресурсы и так не супер быстрого проца.

Ewgeny, что за дисплейчик такой, мне раньше не попадались такие со встроенным знакогенератором

Ewgeny7
24.05.2016, 21:33
Ewgeny, что за дисплейчик такой, мне раньше не попадались такие со встроенным знакогенератором
Вот такой (http://ru.aliexpress.com/item/128-64-DOTS-LCD-module-5V-Yellow-and-green-screen-12864-LCD-with-backlight-ST7920-Parallel/32326299336.html) вот...

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

Ghost
25.05.2016, 09:58
Ммм..., бюджетненький вариант. Случаем, даташита нормального на него нету, а то китайские кракозябры я не понимаю.
Любой даташит на контроллер ST7920 должен подойти.

Ewgeny7
25.05.2016, 20:21
Случаем, даташита нормального на него нету
Есть (https://yadi.sk/i/ryOzJNV0rzS8F), бродит по рукам у заказавших.

Ewgeny7
26.05.2016, 11:15
Дело было не в бобине.
Увлекшись ковырянием с дисплеем, совсем забыл, что у компа процессор не Z80, а контроллер Z180.
Поэтому инструкция OUT (0),A была мягко говоря нежелательна, отсюда и проблемы с дисплеем.
Всё работает.

http://savepic.ru/9859922.jpg

- - - Добавлено - - -

Кварц поставил на 8МГц, дисплей не должен успевать, строб Е получается вдвое короче паспортного, однако - успевает. Об этом уже упоминали в интернетах, что дисп реально вдвое быстрей.
Чел умудрился 25fps выжать из дисплея :)

Totem
26.05.2016, 15:35
Хотел тебе написать об этом, вчера :) хотя zilog утверждает, что данные запишутся в оба порта. :)
внутренний и внешний,
но у нас Hitach, а они имеют массу глюков, утверждают, что z8s180 "вылизан от детских болячек"

а при чтении данные с внешней шины "игнорятся". (если порты совпадают)
мне такой вот едет экран.
http://www.ebay.com/itm/291549750178?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
"синенькай"
Как поборол? порты перенес выше?
У меня есть кроме "хитача" и z8s180 в plcc, можно проверить :)

Ewgeny7
28.05.2016, 08:53
хотя zilog утверждает, что данные запишутся в оба порта
А вот хрена лысого! Я отловил этот глюк с помощью аналайзера, запись во внешний порт не идет, если отправляемое значение 0х80 или более. Потому у меня инит дисплея работал, а вот команды выставления адреса в дисплее - уже нет.


Как поборол? порты перенес выше?
Да, применил OUT(C),А
Адрес задал от балды 0х0300, лишь бы старший байт был не равен 00.

- - - Добавлено - - -


мне такой вот едет экран
Дык такой же, st7920.
Только у тебя вроде как инверсный будет, белые точки на голубом фоне. Мне такие не очень нравятся, привозил десяток двустрочников такой расцветки.

Totem
28.05.2016, 12:22
А вот хрена лысого! Я отловил этот глюк с помощью аналайзера, запись во внешний порт не идет, если отправляемое значение 0х80 или более. Потому у меня инит дисплея работал, а вот команды выставления адреса в дисплее - уже нет.


Да, применил OUT(C),А
Адрес задал от балды 0х0300, лишь бы старший байт был не равен 00.

- - - Добавлено - - -


Дык такой же, st7920.
Только у тебя вроде как инверсный будет, белые точки на голубом фоне. Мне такие не очень нравятся, привозил десяток двустрочников такой расцветки.
получается, что 180 "хитач" считает, что если старший байт 0 запись во внутренние порты, собственно так и должно быть IN0\OUT0(команды в 180), переводят старшие адреса в 0.

но -
Q: What happens if off-chip peripheral’s address is
assigned to the internal I/O devices (overlapped)?
A: I/O read: data from addressed internal peripheral is
read, and the data on the bus at that time is just ignored.
I/O write: output the data to the data bus as well as to
on-chip peripherals. Also, this transaction could write
the data to off-chip peripherals.(с)Z180 Family
QUESTIONS AND ANSWERS 6-2
теоретически внутренние порты можно переносить
I/O Control Register (ICR: I/O Address = 3Fh)
Соответственно в 40h,80h,C0h
"Чет я не догоняю" тогда этот момент"