Важная информация

User Tag List

Показано с 1 по 10 из 10

Тема: Клон спектрума ZX48

  1. #1
    Junior
    Регистрация
    02.09.2015
    Адрес
    г. Челябинск
    Сообщений
    2
    Благодарностей: 11
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Клон спектрума ZX48

    Хочу представить Вашему вниманию очередной вариант клона спектрума.
    Клон состоит из процессора Z80, ОЗУ SRAM UT611024, микроконтроллера STM32F103C8T6, одного регистра ИР22 для механической клавиатуры и операционного усилителя MC34072 для магнитофонного входа.
    Принцип работы отличается от многочисленных клонов тем, что здесь отсутствует ПЗУ. Процессор Z80 и статическая память на 64кБ соединены непосредственно друг с другом без всяких мультиплексоров, коммутирующих между ПЗУ, динамическим ОЗУ и драйвером дисплея. Перед запуском, из контроллера MCU в SRAM «заливается» область ПЗУ (первые 16кБ). Затем запускается процессор Z80. Тактирование осуществляется от таймера микроконтроллера в STM32.
    Во вложении 11.jpg рисунок платы из Sprint Layout.
    Стоит отметить, что по результатам ремонта нескольких клонов, было обнаружено несколько неисправных мультиплексоров КП11 и КП12, именно по этой причине и хотелось отказаться от промежуточных микросхем, сильно осложняющих ремонт.
    Во вложении 12.jpg представлен результат работы микроконтроллера STM32, выполняющий функцию драйвера дисплея. Процессор и память в схеме отсутствуют. В качестве видеопамяти используется встроенная память микроконтроллера.
    Далее были установлены внешняя SRAM и процессор Z80A. И тут начались проблемы. По осциллограммам на выводах процессора, кажется что система CPU - SRAM работает. Но результат работы увидеть никак не выходит.
    Картинка стала ”рваной”. По задумке микроконтроллер должен был следить за процессами записи во внешнюю память SRAM, и если данные относились к дисплейной области, по прерыванию микроконтроллера делать копию данных в свою встроенную память и уже из встроенной памяти выводить на экран, тем самым минуя обращение к внешней памяти и как следствие дополнительных мультиплексоров. Но вышло так, что на прерывания обработки этих обращений уходит слишком много времени, поэтому картинку рвет и данные так и не приходят. Я не стал разбираться почему, главное было то, что даже если они придут, спасти изображение от искажений все равно не удастся. И все это несмотря на то, что микроконтроллер работает на частоте 70 МГц!
    Проблему удалось решить следующим образом. Пришлось немного изменить принцип работы, а именно - прерывать процессор Z80 по сигналу BUSRQ сразу после прорисовки очередной строки для чтения видеоданных из SRAM. За простоту данной процедуры пришлось расплачиваться простоем процессора. Наглядно можно увидеть прерванное время у Z80 – это расстояние в длину черного поля между узкой вертикальной зеленой полоской и широкой рваной зеленой же полосой с правой стороны экрана.
    В итоге удалось получить цветное изображение с градацией яркости, но без раскраски бордюра и выхода звука. Интересной особенность данного клона явилось то, что можно бейсик командой РОКЕ записывать новые значения в область ПЗУ, например можно записать новые шрифты в знакогенератор или что-то вместо 1982 Sinclair Research Ltd. Конечно же при перезапуске микроконтроллера все изменения будут потеряны, но сброс процессора область памяти ПЗУ не трогает. Кстати команда RANDOMIZE USR 0 теперь не приводит с сбросу, появляется только нестандартное сообщение об ошибке.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	11.jpg 
Просмотров:	537 
Размер:	73.9 Кб 
ID:	53477   Нажмите на изображение для увеличения. 

Название:	12.jpg 
Просмотров:	420 
Размер:	61.9 Кб 
ID:	53478   Нажмите на изображение для увеличения. 

Название:	внешний вид.jpg 
Просмотров:	491 
Размер:	76.8 Кб 
ID:	53479   Нажмите на изображение для увеличения. 

Название:	рваная картинка.jpg 
Просмотров:	425 
Размер:	47.0 Кб 
ID:	53480   Нажмите на изображение для увеличения. 

Название:	тестовые цветные полосы.jpg 
Просмотров:	441 
Размер:	27.4 Кб 
ID:	53481  


  2. Эти 11 пользователя(ей) поблагодарили ZX_Farhitdin за это полезное сообщение:
    alvis (21.09.2015), Eagle (20.09.2015), Eltaron (20.09.2015), eugeniusz (20.09.2015), Ewgeny7 (20.09.2015), rasmer (20.09.2015), SERGEY256 (20.09.2015), SoftLight (20.09.2015), Trol73 (20.09.2015), wiktors75 (20.09.2015), zorel (20.09.2015)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Moderator
    Регистрация
    25.11.2007
    Адрес
    Симферополь
    Сообщений
    1,970
    Благодарностей: 386
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ранд usr 0 не будет работать из за проблемы порчи первых 5ти ячеек с адреса 0 в результате ошибки процедуры калькулятора.
    Второе - работа с портами даже в битбанге на стм32 - нормально только до 15 мегагерц ( официально тактирование внешних пинов - 30 мГц)
    И собственно - что смущает более всего - стм32 вообще то 3.3 вольта уровень сигналов. Нагрузочную способность кто то расчитывал ? преобразователей уровня - я тоже не вижу.
    Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
    Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
    ZX Evo 4Mb- в строю.
    Speccy2010 v1
    Специалист (пока готовлюсь к восстановлению).
    Это все мое!
    Родное!
    Все люблю на свете я! Это родина моя!

  5. #3
    Veteran Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    1,187
    Благодарностей: 641
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не очень видно по плате, но на stm32, похоже, заведена вся шина? Если так, то можно, наверное, избавиться от операционника, прицепив SD-карту к stm32 и читая с ней tap-файлы. Просто отлавливать CALL 1306, тем более, что ПЗУ можно подсунуть любое. Экран на время чтения можно и гасить, если ресурсов МК не хватит на то и другое одновременно.

    Хотя и так по числу корпусов это рекордсмен среди клонов без программируемой логики. Круто! Исходники будете выкладывать?

    Цитата Сообщение от balu_dark Посмотреть сообщение
    преобразователей уровня - я тоже не вижу.
    Так ведь там CMOS Z80.
    Граф Дракула наш кумир, патамушта он вомпир!

  6. #4
    Veteran Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    1,187
    Благодарностей: 641
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    Да ладно рекордсмен )) правда по ссылкам софтовые эмуляторы, но вы же пользуетесь эмулятором на PC или это не кошерно? ))
    Пользуюсь, но разделяю понятия "клон" и "эмулятор". А то любую однокристаллку с линухом и fuse надо будет в клоны записывать.
    Граф Дракула наш кумир, патамушта он вомпир!

  7. #5
    Guru Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    7,807
    Благодарностей: 2834
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Несколько оригинально. Радует, что у людей есть фантазия, которые подтверждают факт - что Спектрум можно собрать почти из все угодно.

    Так, мысль вслух, а если вместо статики попробовать забубенить двухпортовую память. Тогда по логике не надо будет тормозить проц и STM сможет спокойно хавать данные из памяти. Кстати, я сильно не вдавался в проект Спектрума на AVR от Лисицина. У него вроде видеоконтроллер собран тоже на микроконтроллере (если не ошибаюсь на 128 меге). Как он успевает все забирать.
    Сайт поддержки моих изделий - http://micklab.ru/
    Форум поддержки - http://forum.tslabs.info/viewforum.php?f=51

  8. #6
    Moderator
    Регистрация
    25.11.2007
    Адрес
    Симферополь
    Сообщений
    1,970
    Благодарностей: 386
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Так ведь там CMOS Z80.
    Ну я не увидел если честно указаний от скольки он питается. так же не увидел - как у него сделан вывод видео. Если тупо с ног проца - конечно будут искажения - оно не вытянет по току - надо транзисторные формирователи на цвет и на синхру ставить. Нельзя мешать цифру и аналог. Им от этого плохо бывает. При правильном стечении обстоятельств - можно даже увидеть дымок : это душа свеже умершего транзистора.
    Последний раз редактировалось balu_dark; 20.09.2015 в 14:54.
    Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
    Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
    ZX Evo 4Mb- в строю.
    Speccy2010 v1
    Специалист (пока готовлюсь к восстановлению).
    Это все мое!
    Родное!
    Все люблю на свете я! Это родина моя!

  9. #7
    Junior
    Регистрация
    02.09.2015
    Адрес
    г. Челябинск
    Сообщений
    2
    Благодарностей: 11
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Стоило упомянуть, что по сути это макетная версия и не на последней своей стадии развития.
    Весьма справедливое замечание о разности напряжений питания микросхем заставило меня задуматься об их стыковке на этапе разработки. И не нашлось ничего проще как поставить ограничивающие ток резисторы, к тому же в микроконтроллере почти половина выводов толерантна к 5В.

    Что касаемо подключения SD карты, то были такие мысли, однако не с этим контроллерам, оказалось, что свободных выводов не остаётся, единственный вариант переходить на 64 выводной корпус.

    Цвета РГБ пришлись как раз на три вывода порта С РС13, РС14, РС15. Несомненным плюсом стало, что других выводов на порт С нету. Сигнал проходит через резистор без повторителя, который в итоге придется все-таки ввести. Еще хотел отметить, что три уровня напряжения: уровень черного, уровень серого и уровень яркого, я получаю с одного выхода используя переключение между выходными структурами полумост или выход с открытым истоком, который и позволяет получить любое среднее напряжение между 0...3,3 с помощью резистивного делителя.

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

  10. #8
    Moderator
    Регистрация
    25.11.2007
    Адрес
    Симферополь
    Сообщений
    1,970
    Благодарностей: 386
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Двухпортовая память просто стоит от потолка до неба. Поэтому о ней знают только избранные - я не видел в самоделках ее вообще. Хотя она и удобна для всяких там видеокарт и аналогичного. Гораздо проще - привязать доступ к памяти к разным уровням клока ( к фронту и спаду) например по форонту глобального клока - туда лезет один процессор, а по спаду - второй. Типа как была реализована на некоторых клонах "прозрачная" работа с памятью - видеопроц лез в одно время а обычный проц - в другое.

    На RGB и SYNC амплитуда 0.75...1В на сопротивлении 75 ом. Я не уверен что нормально можно будет сделать такой сигнал. 3 транзистора (да хоть кт315) и 9 резисторов - очень спасут положение. Плюс не следует забывать о гасящих импульсах и привязки к белому. это даст стабильную картинку. Если после сброса - картинку не рвет, а после выполнения команд меняющих цвет бордюра (например save "1" code 0,1024 ) изображение начинает колбасить всячески - надо смотреть привязку к белому( вернее к черному вроде).
    Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
    Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
    ZX Evo 4Mb- в строю.
    Speccy2010 v1
    Специалист (пока готовлюсь к восстановлению).
    Это все мое!
    Родное!
    Все люблю на свете я! Это родина моя!

  11. #9
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    9,451
    Благодарностей: 3797
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    Вот всего на одном STM32F407 и на PIC32:
    Один испанец слепил эмуль и на STM32F103RB, как раз на одной очень популярной платке с дисплеем. Но сырков/прошивок не выложил, гад... А у меня эта девбордина есть.

    ---------- Post added at 22:54 ---------- Previous post was at 22:52 ----------

    Последний раз редактировалось Ewgeny7; 20.09.2015 в 21:57.
    Scorpion ZS 1024 turbo+/ZXMC 2.6/SD-HDD/FDD/AT-Keyb/Mouse/SMUC 2.0/ProfROMse/VGA 3.0/NeoGS
    ZX-Evolution 4096 rev.B

    Сайт с документацией к "Scorpion ZS 256"

  12. #10
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,720
    Благодарностей: 947
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от balu_dark Посмотреть сообщение
    ранд usr 0 не будет работать из за проблемы порчи первых 5ти ячеек с адреса 0 в результате ошибки процедуры калькулятора.
    Ну не ошибки, а оптимизации Там еще есть несколько мест с фейковой записью в ПЗУ. Надо ставить лочку на запись в #0000 - #3fff.
    ZX Evolution Rev C + ZXM-SoundCard Extrme + NeoGS.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. помогите опознать клон спектрума
    от AHTuXPuCT в разделе Unsorted
    Ответов: 4
    Последнее: 28.10.2013, 17:04
  2. Ответов: 187
    Последнее: 24.02.2013, 19:57
  3. Опознать клон Спектрума ("Мико", возможно, г. Львов)
    от alexshap в разделе Для начинающих
    Ответов: 6
    Последнее: 10.12.2012, 19:12
  4. что это за клон спектрума и как подключить к ТВ?
    от Johnv в разделе Для начинающих
    Ответов: 19
    Последнее: 09.02.2012, 08:03
  5. Отдам в дар ПК Байт 48 (клон Спектрума)
    от Arceny в разделе Барахолка (архив)
    Ответов: 14
    Последнее: 21.05.2010, 11:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •