да, одинаковы
Вид для печати
да, одинаковы
Тогда наверное пошаговик и смотреть что считывается с ПЗУ
Скрытый текст
Сделал почти то же самое - залил нулями всё ПЗУ.
По идее, проц, читая nop-ы, должен просто перебирать адреса, выдавая меандры на ША.
Вместо этого там какая-то хрень, вот, напр., на А15 :
http://savepic.su/7198546m.png
На ШД примерно то же самое. Кто-то явно срет в ШД. Но там всего-то три калеки и у всех них на входе выборки кристалла висит единица (проверил 3 раза).
Хоть какая-то активность на IORQ появилась только после
но на выходах ИР23 по-прежнему тихо. Также тихо и на выходах 555ЛЛ1.Код:ORG #0000
DI
JP LOOP
ORG #0038
LOOP:
LD A,#00
OUT (IOUT),A
LD A,#FF
OUT (IOUT),A
JP LOOP
[свернуть]
Любые литиевые подходящего веса/размеров (link) и step-up на 5 вольт (тыщщи их)
Обе шины прозванивал, все нормально, разве что адресация была нарушена, ее переделал.
Вход /CE (CS1) у ОЗУ сейчас вообще отключен от всей остальной схемы и просто притянут к плюсу.
В любом случае, спасибо вам за советы, я пока завязываю, а то превратил тему в "помогите починить кусок старого..."
Товарищи, может было уже, ткните пальцем или просветите новичка - вот у меня есть ВВ51А и ВИ53. Хочу последовательный порт. Обложился мануалами всякими. Какая должна быть частота процессора что бы у меня Боды совпадали с ПК и стандартным COM портом? Что бы ошибок не было и все соответствовало стандарту? Вроде как ровно 4 или 2 МГц не получается?
И в довесок связанный вопрос - от частоты тактовой Z80 зависит его потребление? У меня проц goldstar Z8400A ps.
Заранее спасибо...
ALS, немного пропустил тему, но в догонку...
У вас на схеме из поста http://zx-pk.ru/threads/25682-karman...l=1#post869180 инверсия идет не А15, а сигнала /MREQ следовательно при обращении к памяти при А15=0 будет выбрано ПЗУ, а ОЗУ - во всех остальных случаях при А15=0, вот и мусор на ШД и неактивность ОЗУ при обращении к ней.
Любой 0 на диодной логике заставляет транзистор закрыться. Это значит выход будет в 1. И только когда 2 лог.1 (А15=1 и MREQ=0) транзистор откроется и будет 0. Все верно там.
Исходя из имеющихся чипов памяти намыслил адресацию-выбор памяти. Пока в протеусе разбираюсь еще поэтому извиняйте, кривовато изобразил в сплане. Прошу критиковать...
Вложение 57035
Да, но это первый мой самодельный "компьютер" и хотелось бы не подложить себе грабли таким решением. В наличие чипы SRAM из кэш памяти старых 486 материнок, по з2 килобайта на чип. EEPROM`ы от пней первых мегабитные. Планирую в первых 16кб ПЗУ расположить типа загрузчик-монитор с "драйвером" клавиатуры и дисплея, а в переключаемых страничках уже чего-нить полезное можно хранить. Думаю попробовать реализовать перепрошивку прям "из себя"
Только ИР22 тут совсем не пойдут. Они не "защелкиваются". Надо или ТМ8 или ИР23 или ИР13. ТМ8 у меня есть но только 155 серии. ИР13 тоже 155 да они еще и здоровые. А ИР23 в наличие нет. А сейчас праздники :(
В качестве тактового генератора поставил ЛН1 и ИЕ7. Кварц пока взял на 14318КГц. Потом ИЕ7. Позже буду разбираться с таймером - возможно пригодится подбирать кварцы, менять тактовую.
Если проинвертировать 3FH то подойдет. Но лучше просто стробировать его сигналом WR, использовав 1 элемент от ЛЕ1.
Тут я не очень догнал, Если вы про возможность применения ИР22 то судя по ее описанию она держит данные на выходах неизменными пока LE (11 нога) находится на уровне 0. Если LE равно 1 то ИР22 работает "насквозь". То есть выходы равны входам. В моей схеме соответственно инфа с трех линий шины данных все время будет гонять странички ПЗУ пока не дерну порт. Мало того - ИР22 не фиксирует это дело, то есть подняли LE и регистр забыл что за ПЗУ я выбрал.
....ААА Точно! Если LE все время будет 0 и IL не пройдет на ПЗУ а когда мне надо я его в 1 - данные попали на нужные адреса, потом он снова в 0 а адреса-то застряли!!! Спасибо!
А зачем стробировать его WR? Я же хочу писать в ПЗУ! Хотя надо сделать так что бы я не мог писать в ПЗУ если адрес меньше 4000H что бы не "отрезать себе ноги"
Ноги отрезаны когда ты делишь 64K на 32к, сжирая озу , z80 там и живет.
процессор все одно стартует с 0000, ну а далее как хочется, собирал такой на "беcпайке",
трудней придумать как пользоваться и для чего.
вот посмотри тут
http://www.z80.info/homebrew.htm
оригинальное придумать сложно, быстро теряешь интерес, когда делаешь в одно лицо.
могу предложить следующее, делать "хомбреву" на z180, мне одному скучно, cpu поделюсь, материалами
тоже. Возможно еще Евгений, с орионом разберется, подключится. У него "внезапно", в коробочке
аж 2 180 найдется. :)
Даже придумал для чего и "покумекал" над балансом архитектуры, чтоб не очень сложно.
Тут я уже все себе в папочку скачал :)
Я чувствую что не осилю. Помимо своего Z80 чуда у меня такая гора задачек. Параллельно делаю DDS на рассыпухе (регистры, сумматоры, цап), да и еще согласующее для антенны надо переделать. И все это в пару часов между тем как все уснули и тем как падаю сам.
Что-то интернет испортился. Киньте в меня ссылкой на простейший программатора на LPT для EEPROM НЕ i2c! Для обычных флешек типа 27с512 и прочего. Не могу найти - все i2c вылазят...
Это невозможно, но Евгений курит папирусы на HD64180Z о 68 ногах. Забавный Z80 на полмега памяти рассчитаный, с кучкой периферии встроенной. Небогатой кучкой, да. Но USARTы в количестве пары штук есть. Да и нечто SPI-подобное тоже приколочено...
Изучаю сигналы, прикидываю, что хочу от него получить.
В конечном счете, это и есть самое сложное - найти применение :)
П.С. Детальки для Ориона пока сильно запаздывают...
- - - Добавлено - - -
Самому делать - Это Willem, наверное. Поищи на форуме, в "Hardware"->"Память".
Но это убицца. Лучше купить готовый. Из самых недорогих - TL866, поищи в китаях (Алиэкспресс).
- - - Добавлено - - -
Помимо хитачевского Z180, наверное применю снова классическую схему 32/32 (ПЗУ/ОЗУ).
Ибо лепить метр ОЗУ непонятно для чего - непонятно зачем :)
Единственно, думаю слепить именно BASIC-машинку, с нормальным дисплеем минимум 8 строк.
Один USART-порт MPU как раз можно отдать на вывод "терминального дисплея".
Но для первого старта придется помудрить простенький Монитор.
Воть... Клавиатура - не мучить Му-Му, а сразу ATtiny как контроллер PS/2. Первично. Потом можно будет поосваивать прерывания Z180, прицепив PS/2 прямо к нему.
Фантазии...
А что там у уважаемого Totem'а напридумывалось?
Я кстати заказал себе
TL866a, заманал меня этот G540.
у тебя в коробочке есть и хитач и зилог.:)
детский комп хочу, развивалку -обучалку.
пока привожу хотелки к порядку.
арифметика, история, русский, английский, испанский минимально, вроде нашел художника, думает. не надумает, будем делать злобного скайнета.
Мужики, вопрос по прерываниям. Допустим, проц настроен на режим прерываний im1. 60 раз в секунду нужно выполнить коротенький кусочек кода в прерывании. Если подать на вход int процессора меандр с частотой 60Гц, будет ли работать?
Нет, NOPы не катят. Прерывания я хочу использовать вот как: пусть работает какая-нибудь программа, параллельно ей через ви53 выводится звук. 60 раз в секунду процессор прерывает основную программу, читает из памяти следующую ноту (если текущая закончилась), загружает ее в таймер и возвращается к основной программе. Вот как-то так.
В ЮТе вроде как меандр вообще 1Гц подается, и - нормуль всё.
- - - Добавлено - - -
Приехал долгожданнейший дисплей 12864B, на ST7920. Графический, 128*64 ЖК.
Я его хотел на тот первый комп привинтить, но там уже всё сложилось с двустрочником, ломать не хочу готовую машинку.
Но теперь этот большой (реально большой) дисплей пойдет в состав новой машинки, на Z180.
Угу... Я вчера практически такой же собрал, спортивнго интереса ради.
Конкурс!
1. Найди Z80 на борде.
2. Составь схему по внешнему виду :)
http://savepic.net/8063643m.jpg
Ага, спасибо.
А вообще, длина импульса прерывания критична? Если процессор выходит из обработки, то он снова уйдет в нее же, если импульс остается активным на входе?
Пойду почитаю мануалы...
- - - Добавлено - - -
Вопрос снят, вычитал - проверка ухода в прерывание у Z80 делается по фронту клока, проверяется уровень сигнала на входе прерывания. А не по фронту самого сигнала прерывания.
Поправьте меня, если я не так понял: т.е. получается, что к моменту выхода из обработчика int, на этом выводе должна быть 1, верно? А что если использовать канал ВИ53 в режиме 2, длительность 0 будет равна четырем периодам тактовой частоты процессора?
Я имел ввиду, что канал ви53 (пусть будет канал 1) настроен в режиме 2. Пусть ВИ53 тактируется от генератора с частотой в 4 раза меньше, чем частота, на которой работает Z80. 60 раз в секунду на выходе ВИ53 будет формироваться отрицательный импульс длительностью в 4 периода тактовой частоты процессора. Вопрос: хватит ли длины этого импульса для проца?
Кусочек даташита:
http://savepic.net/8080037.jpg
Насколько можно понять ангельские тексты, опрос состояния INT производится в конце выполнения каждой инструкции, на последнем клоке. А инструкции (ооочень многие) имеют более четырех тактов. Кэп не гарантирует, судя по всему...
- - - Добавлено - - -
Таки да, сам делал это в ПЛИСе, балда склерозная.... Спасибо! :)
Первый "писк" от нового компика, на Z180 + LCD12864B.
http://savepic.net/8062555m.jpg
LCD подключен напрямую, но кажись он не успевает за процессором на частоте 8МГц... Раза с пятого срабатывает.
Нет под рукой кварца на 4МГц, но он должен подойти в теории.
Прошла уже неделя ежедневного бодания с дисплеем.
Пока что всё не очень хорошо.
Дисп подключен напрямую на шину данных, 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.
Мистика какая-то, но дисп переключился в графику нормально, я там даже картинку вывел на экран.
В кодах инициализации - разницы никакой.
Скорость - нормальная, раз в текстовом режиме работает без проблем.
Что тут не так?....
Кадилом чтоли помахать над диспом?