В том-то и дело - не могу нигде найти такой кварц, поэтому и парюсь с легкодоступными 24МГц...
Вид для печати
Продолжаю разбираться со своим VGA на 24МГц. Ошибок в МАХе нет. Проблема неработоспособности комплексная:
1. Кварц на котором было написано 24 000 почему-то работал на 10МГц!
2. Частота перестала "плавать" после замены в генераторе 1533ЛН1 на 74LS04...
После этого изображение на монике начало появляться на несколько секунд, а затем тухнет с надписью "Превышена частота" и так по кругу. Удалось посмотреть параметры сигнала на монике - 31,2кГц/75Гц
Перепроверил осцилограммы - строчная соответсвует расчетам в ~32мкс, а вот кадровая вместо ~14мс оказалась ~13мс. Пересчитал по измерениям - высота символа должна быть 12-13 строк:
Я почему-то все расчеты делал для 14 строк, считая размер символа 8х14! :confused:
Вот и ошибка!
Вопрос к Rokl. В чем делали шрифты и конвертацию в бинарник?
Всё по порядку.
Припаял вместо кварца 21.480мгц кварц 24мгц. У меня тоже в генераторе SN74LS04. Серия КР1533 дерьмо полное. Такое впечатление, что корпусируют вместо 1533 серии что то типа К164 или ещё старее. например счетчики КР155ИЕ5 работают на 21.480мгц, а КР1533ИЕ5 не работают на 21.480 Мгц. Сплошные иглы и снег по всему экрану монитора. Так что либо 555 серия, либо 155. А КР1533 вообще отстой.
Настройки ВГ75 подогнал к параметрам 32.202 кгц - горизонтальная развертка 75,04гц вертикальная. Имеем частый срыв изображения. Длительность импульсов по горизонтали 2 мкс по вертикали 13,3 мс.
Лучше всего монитор (ЭЛТ) держит режим 71,76 Гц вертикальная , 29.859кГц горизонтальная. По горизонтали синхроимпульс получается 3,52 мкс, по вертикали 13,9 мс.
ЖК мониторы Асер никакой режим признавать не хотят, просто по экрану плавает надпись "Режим не поддерживается".
Шрифты вырисовывал вручную в тетрадочке. Потому есть мелкие огрехи ( не принципиальные, принципиальные вывел, как тараканов). Бинарник знакогенератора выложен в ветке Микрокома.
Заменил в прошивке 12 строк на расчётные 14 - получил стабильную картинку на мониторе! Правда ЭЛТ монитор SyncMaster550b упорно не хочет отображать картинку, причём с размерами символа 8х11 показывает (понимает как 34кГц/99Гц), а вот LCD Futura HD14A - всё стабильно. Осталась одна проблема - видно только курсор, символы распадаются в звёзды по всему экрану. Пробовал разные 155ИР13, только на одной микрухе появился намёк на символы, хочу вывод VGA сделать на 74HC166.
Поставил отдельно на вывод VGA 74HC166 - получил картинку с надписью "РАДИО-86РК"! :v2_yahoo:
Монитор LCD Futura HD14A, правда, определяет сигнал как 720х400 34кГц/77Гц...
Все-такия я был прав относительно количества символов в гасящем ипульсе (из ВГ75) - оно никак не влияет на совместимость!
Перехожу к пайке клавиатуры.:v2_dizzy_keyboard:
P.S. Шрифты пока не переделывал, использовал 8х12 от Rokl.
Вы немного путаете. ВГ75 не формирует гасящие строчные импульсы. ВГ75формирует синхроимпульсы (строчные и кадровые для монитора). А длительность синхроимпульсов строки у ВГ75 программируется в количестве знакомест символов, влезающих в эту длительность строчного синхроимпульса. И естественно на совместимость эти псевдознакоместа символов не влияют. А вот именно строчногасящие импульсы для телевизора в РК получаются программно, записью нулей и формируются аппаратно, суммируясь через резисторы на выходном транзисторе КТ315 видеовыхода . Они то и влияют на совместимость. Естественно, когда вы пользуете VGA режим с раздельными входами синхроимпульсов и RGB, то ни о каких строчногасящих импульсах речи быть не может, т.к. они VGA монитору не нужны, хотя и надобны. Просто во всех неиспользуемых строках для VGA монитора будут записаны пробелы. Кстати, при выводе часов на экран монитора приходится использовать именно те строки, которые используются в РК для создания строчногасящих импульсов.
Если быть точным, то ВГ75 формирует сигналы обратного хода - это по даташиту. В статье про ВГ75 из "Микропроцессорные средства и системы" №3/1985 http://www.wdigest.ru/mpss03_1985.htm стр. 52 они обозначены как сигналы гашенимя обратного хода. Поэтому я их и назвал гасящими, возможно не совсем корректно. В обоих документах сказано, что эти сигналы должны использоваться для генерации соответсвющих синхроимпульсов. Про всё отальное я знаю и писал в http://zx.pk.ru/showpost.php?p=645523&postcount=317
У нас просто возникла путаница с определениями где СИ, а где ГИ, хотя я старался всегда уточнять откуда сигнал, например
или
Вот по даташиту и правильно, сигналы обратного хода и есть синхросигналы и ВГ75 синхросигналами луч развертки не гасит в принципе. Для этого у него есть специальный выход (нога 35 - подавление видеосигнала). На этом выходе в момент синхроимпульсов обратного хода развертки, всегда присутствует запрещающий сигн. лог 1
Здесь вкралась ошибочка. для гашения (подавления) луча в момент обратного хода (обратный ход луча происходит в момент синхроимпульса) используется 35 нога ВГ75.
Опять у нас путаница! Есть различия в том, как ДОЛЖНЫ использоваться и как ИСПОЛЬЗУЮТСЯ выводы HRTC & VRTC. По даташиту - это сигналы обратного хода, а не синхро! В состав этих сигналов ДОЛЖНЫ входить СИ, которые формируются ВНЕШНИМИ цепями. Всё в том же "МСиС" №3/1985 на стр. 53 дан пример схемы включения ВГ75 в стандартном режиме, а на стр. 54 второй абзац слева говорится, что ССИ и КСИ формируются таймером (ВИ53), что дает возможность перемещать эти импульсы "в пределах сигналов гашения, формируемых на выходах HRTC и VRTC", что в итоге дает стандартный ГИ, содержащий запасы гашения и СИ. В РК же - эти сигналы используются "напрямую" как СИ и об этом говорится в статье Зеленко из "МСиС" №3/1985 на стр. 59, а в качестве запасов гашения используются пробелы.
Мы с Вами говорим об одних и тех же вещах, только Вы со стороны РК, а я со стороны ВГ75 :)
Вообще то я говорил со стороны справочника "Микропроцессоры и микропроцессорные системы".
Обратный ход луча развертки ЭЛТ формируется только, повторяю синхроимпульсом. Сигнал обратного хода и есть синхроимпульс!!!
Так как...толькосинхроимпульс провоцирует схему развертки монитора включить обратный ход луча!!! иначе у вас поплывут строки и кадры, если схема развертки будет работать без синхроимпульса.
Вот Вы сами себе противоречите:
...выводы HRTC & VRTC. По даташиту - это сигналы обратного хода, а не синхро...
И тутже:
... что дает возможность перемещать эти импульсы "в пределах сигналов гашения, формируемых на выходах HRTC и VRTC"...
Получается, что из импульсов обратного хода (по даташиту) сигналы HRTC и VRTC превращаются в импульсы гашения...
Да мипульсы HRTC и VRTC можно использовать как строчно и кадрогасящие импульсы, но тогда для чего на 35 ноге присутствует сигнал подавления видеосигнала???Ведь по даташиту именно он гасит луч в момент импульсов обратного хода. Он для этого и выведен на кристалле и для гашения луча предназначен.. Да, дополнительно формировать свои внешние синхроимпульсы ни кто не запрещает. Но согласитесь, с ВИ53 это изврат полный и такую схему кроме автора статьи больше ни кто не использовал.
Читаем в справочнике:
VSP (35 нога) подавление видеосигнала.
Выходной сигнал для гашения изображения на экране ЭЛТ.
Действует в следующих случаях:
Во время обратного хода вертикальной и горизонтальной развертки....
Я хочу вас, как умного человека, спросить:
Зачем формировать дополнительные гасящие импульсы строк и кадров на выходах HRTC и VRTC, если есть уже сигнал VSP????
Где логика?
Логика разработчиков кристалла от INTEL на поверхности(есть отдельные синхроимпульсы строк и кадров, и есть отдельный сигнал гашения, который гасит луч при обратном ходе разверток, все логично и понятно и зафиксировано в даташите), а вот логики разработчиков схемы на ВИ53 не видно..... если не предположить, что терминал на ВГ75 работал на СОВЕТСКИХ мониторах и что бы хоть как то отцентровать кадр по трубе ЭЛТ приходилось идти на подобный изврат, смещая синхроимпульсы внутри гасящих, и таким образом центровать изображение на видимой части ЭЛТ телевизора или монитора советского производства(.....что дает возможность перемещать эти импульсы "в пределах сигналов гашения....). Мможно было в сам монитор залезть, но автор схемы до этого просто не додумался, да и в каждый монитор не залезишь и не покрутишь)))))).
В данном случае - да. Эти сигналы имеют "0" в период вывода отображаемой информации и "1" в период между выводом этой информации, т.е. если смотреть на стандарт телевизионного сигнала, то как раз это и получается гасящий импульс, внутри которого должен быть еще синхроимпульс http://principact.ru/images/stories/...tv_1/tv_11.jpg который должен формироваться внешней схемой (это по даташиту). Да, формировать на ВИ53 СИ изврат (хотя оригинально и позволяет программно менять параметры сигнала), но в данном случае это не принципиально, я привел это как пример внешнего (относительно ВГ75) формирования СИ.
Например для того же для чего он использован в РК - блокировать знакогенератор. Сигнал действует не только во время обратного хода, но и в других ситуациях - он не является гасящим сигналом как таковым, он используется для подавления вывода полезной информации.
Нет. Я же приводил статью Зеленко (ошибся со страницей - стр. 69), в которой он пишет, что "Для того чтобы иметь возможность непосредственно использовать сигналы HRTC и VRTC в качестве строчных и кадровых синхроимпульсов, затмение неиспользуемых краев экрана осуществляется программно..." - на выходе имеем стандартный видеосигнал. Т.е. эти сигналы как раз можно использовать как СИ, а не наоборот.
Это не изврат, всё как раз по стандартам.
У буржуин это Back/Front porch
http://www.epanorama.net/documents/pc/vga_timing.html
Потихоньку доделываю РКшку.
1. Клавиатуру сделал что-то среднее между оригинальной и стандартной. Надо было сделать стандартной - с непривычки долго ищу нужные клавиши. :)
2. Двигаюсь в сторону эмулятора внешнего ПЗУ. Сначала думал забросить эту идею и сделать всё на одной ПЗУ с переключением банок (есть такое на форуме), но потом всё-таки спортивный интерес взял верх. Сделал пока на самодельной девборде Меги32 цифровой магнитофон для РК - список файлов считывается с карточки (потдержка ФАТ12/16/32) и выводится на дисплей от Нокии 1100, выбранный файл грузится во внешнее ОЗУ (64к) и затем, если надо, проигрывается. Длинные имена отключил, т.к. занимает много места, да и проблемы с загрузкой (пока лень разбираться). Осталось допаять буферы на ОЗУ, что бы РКшка могла к нему обращатся через ВВ55 - получится эмулятор внешнего ПЗУ.
P.S. Фото сделаны мобилкой, поэтому качество плохое.
Alex_LG, а что за кнопки, где брал? Цифровой магнитофон тоже зачетный :)
На четвертой фотке что-то сложное с видеовыходом?
Alex_LG А можно по магнитофону подробнее, вещь для РК нужная!
Кнопки обычные контактные, на аукро купил (там сейчас есть в предложения по герконовым, но порядка 150грн за 64 штуки для Спектрума)
На четвертой фотке - девборда на Меге32, там сейчас подключен дисплей от Нокии1100.
---------- Post added at 16:08 ---------- Previous post was at 16:03 ----------
Что именно интересует, я вроде в общих чертах описал?
Пока это все на девборде, но работает. Спаяю все в железе, т.е. как законченное устройство - выложу проект полностью.
Схемы рабочего варианта нет, т.к. все "слеплено" из модулей основная плата Мега32+LCD+SRAM 64k, софт соответственно под это "заточен". Схема рабочего девайса попроще и соответственно код будет проще. Схему готового устройства могу выложить, но под нее нет пока софта, а выкладывать софт под девборду - нет смысла. Как только спаяю все в железе - обязательно выложу все.
Предлагаю свой вариант реализации ввода программ в РК через магнитофонный вход. В архиве - схема в формате SPlan, прошивка контроллера и исходник на MikroC for PIC. Печатная плата не разрабатывалась, всё собрано на макетке. Устройство работает с SD-картами формата FAT12/16, видит только корневой каталог и короткие DOS имена. Воспроизводятся файлы типов RK, RKR, PKI и GAM. Прошивка рабочая, но имеет баги(напр. виснет при пролистывании) - программист я никакой, сильно не ругайте...
Контрольная сумма вычисляется программно в соответствии с требованиями РК, т.е. с неправильной циклической суммой; печатается на индикаторе по окончании вывода.
Напряжение питания - 3,3 В.
matr0s
Здорово!
Платку я подготовлю, надеюсь найдется программист для "допиливания" девайса.
Вот запись-бы еще прикрутить...
При выводе файла чтение карты организовано побайтно - это позволяет не отслеживать границы сектора. Я грузил программы по 15-17 кб(типа шахмат), глюков не замечал.
А вообще, тайминги РК таковы, что при ошибке вывода карту можно успеть заново инициализировать за время вывода отдельного бита.
---------- Post added at 16:23 ---------- Previous post was at 16:14 ----------
На использованном контроллере (PIC16F76) для записи мозгов не хватит. Была мысль реализовать полный "РК-магнитофон" на более мощном PIC18F252, тем более, под них уже есть готовые библиотеки для FAT16/32, но как решить вопрос о присвоении имен файлов при записи?
Вот как и обещал отдаю проект цифрового магнитофона и эмулятора РОМ-диска.
Сделано на атмеге16. Файловая система FAT12/16/32. Фильтров и сортировки при работе с файлами нет (кому нужно - можно доделать, свободно около 5кБ). Длинные имена не поддерживаются. Файлы .RKR загружаются в ОЗУ и автоматически проигрываются, файлы .ROM - только загружаются в ОЗУ для эмуляции РОМ-диска. Есть идея .RKR грузить как образы РОМ с дописыванием в старшие адреса загрузчика...
Плата двухсторонняя, переходные отверстия на ножках микросхем, за исключением 4-х (между микроконтроллером и картодержателем). Все корпуса микросхем (кроме контроллера) - DIP, поэтому плата немаленькая. Если не нужен РОМ-диск, то из схемы просто нужно убрать 3 буфера. Схема питается от +5В компьютера. Выводы D7-D0, A0-A14 подключаются на соответствующие выводы IC14 ВВ55, А15 - разведён, но не используется, может служить ключом. Плату для индикатора и кнопок не делал - на макетке. Индикатор от Нокии 1100/1101.
RKR можно грузить как образы РОМ. Т.е. после загрузки .RKR в память появляется запрос на проигрывание, если ответить "нет", то в память заносится загрузчик, который по команде U с РК86 загружает и запускает программу. Теперь не надо формировать программы в образы РОМ-диска!
Нет, но думал над этим. Для этого, правда нужна будет уже атмега32, а то хоть и обещал разработчик системы FsFat, что она мало места занимает, но "жрёт" она в рид-онли почти 10кБ! Да еще как-то названия файлов вводить, но можно и автоматом нумеровать.
Ок.
Помогите советом по подключению ЖК монитора. Собрал на кварце 21,48 МГц и получил соответственно 100 Гц и 31 КГц. Проблема что только с ЦРТ монитором работает, не подумал когда делал, что жк такую частоту не держит. Есть ли какой-либо выход для подключения к ЖК со стандартными частотами? Спасибо!
Я делал для кварца на 24Мгц (с изменением Монитора) - LCD Futura HD14A показывает нормально, определяет как 720х400 34кГц/77Гц.
Для кварца 24 МГц нужно поставить в Мониторе по адресу 0x02DC D8.
Расчет для кварца 24МГц
24MHz/8pix = 3MHz - пиксельклок
3MHz/31469Hz = 95.3 символов в ССИ
78 символов в строке
96(95.3) - 78 = 18 символов/СГИ
1/24MHz*18*8 = 6мкс длительность СГИ
2 строки в КГИ
30 видимых строк в кадре
14 пиксель на символ (высота)
(30+2)*14 = 448 высота кадра в пикселях
31469Hz/448 = 70.2Hz КСИ
Лучше посмотрите в ветку по Микрокому (который на ВМ85) и там поспрашивать - люди подключают к ЖК и все работает.
Из-за нестабильности на некоторых мониторах пришлось маленько поковыряться со шрифтами и настройками... Теперь все мониторы, которые попались под руку (различные ЭЛТ и TFT) стабильно показывают картинку и определяют режим как 640х480 31кГц/60Гц (для кварца 24МГц), т.е. стандартный режим для Винды с 16 цветами.:v2_yahoo:
Что-бы не извращаться с прошивкой знакогенератора - подключил ПЗУ знакогенератора к ВГ75 как положено, т.е. LC0..LC3 -> A0..A3, CC0..CC6 -> A4..A10. В ПЗУ Монитора и знакогенератора с адресов 0x000-0x7FF прошита стандартная ТВ-версия РК, с адресов 0x800-0xFFF - VGA-версия. В обоих ПЗУ адресная линии A11 - ТВ/VGA (0-ТВ, 1-VGA).
Так же прилагаю редактор шрифтов (пришлось написать самому, а то все что находил или платные или неудобные) шириной в 8 пикселей и высотой от 8 до 16 строк. По работе с ним должно быть все просто и понятно. Загружаем файл, устанавливаем высоту, кликаем по коду символа, правая кнопка - установить 1, левая - 0. Команды отзеркаливания и инверсии могут применяться как к текущему символу, так и ко всем. Команда изменения размера только убирает или добавляет строки (для всех символов).
А можно все "детали" по переделке увидеть (имеется ввиду подправленные коды и схему от кварца с новой обвязкой с подключением к старым чипам). Очень хочется повторить, только со старыми 2 кб ПЗУшками, по возможности оставив старую схему. Спасибо!
Во вложении Монитор32к (2кБ) с настройками для VGA и прошивка для ПЗУ шрифтов (2кБ). Схему подключения я давал выше, только вместо 27с64 нужно использовать РФ2/5. Генератор - схема от Rokl. В качестве выходного регистра для VGA поставил 74НС166, т.к. ИР13 очень сильно "снежит" (частоты для нее большие, а некоторые экземпляры вообще не работали на 24МГц). Полную схему включения дам завтра - сейчас нет под рукой в електронном виде.
Вот схема подключения. Нумерация элементов сквозная по оригинальной схеме, т.е. дополнительные элемены:
BQ2;
С26 (влияет на качество картинки, без него изображение немного "снежит");
R35-R49;
IC30-IC33.
Остальные элементы - часть оригинальной схемы.
Что бы не резать много ног у РФ2/5, лучше поставить новую на отдельную плату (вместе с новыми элементами) и подпаяться на выходы ВГ75 по схеме.
Дорожки идущие на выводы 4 и 5 DD4.2, 13 DD13.2, 30 DD8 на оригинальной схеме необходимо отрезать и подключить новые сигналы.
Большое!!! спасибо!
Замутил новую тему про эмулятор РК, кому интересно заходите :v2_dizzy_tea:
Вот мой РК приобрел корпус, правда еще прошлым летом, но все никак руки не доходили до фото. Верхняя часть сделана из цельного куска дерева, нижняя - две планки и кусок ОСБ, боковушки - обрезки досок. На заднюю панель выведены: переключатель Шрифт ПЗУ/ОЗУ, порт ВВ, переключатель ТВ/VGA, выход Видео, выход VGA, Магнитофон, Питание, Сброс.