тип упаковки при транспортировке: буква R
Вид для печати
Всем привет! Дособирал наконец свой сизиф. Платы заказывал из папки аут. Прошивки брал оттуда же. ПЗУ прошивал программатором G540. Все это прошло удачно. Но результат!! Результат есть! но не такой, как я ожидал. Цветные мигающие квадратики по знакоместам по всему экрану!! На сброс реагирует, и опять рисует те же квадратики. на маджик реакции нет. без ОЗУ - чистый белый экран. В смысле папер белый, а бордер темный. что есть проц и ПЗУ что нету- результат тот же. Вижу и у других те же проблемы. хелп!! помогите советом что делать!
Процессор исправный?
Похоже пришла пора создавать методологию пусконаладки )
Uzix, может быть можно сделать какую-то усеченную прошивку для ПЛИС, которая бы включала в себя только 48-й или 128-й спек "без всего", на минимальной частоте и с одними стабильными таймингами, чтоб на ней можно было отладить запуск CPU и памяти ? Или даже чтоб она автономно формировала какую-то картинку, по которой можно было бы судить о корректности работы шин адреса/данных ?
AndreiZX, коли квадратики стабильные отображаются из ОЗУ, то оно хотя бы как-то исправно. И видеоподсистема (назовем ее так) по определенным адресам что-то читает. Дальше надо понять, стартует ли процессор и может ли он писать в ОЗУ. Что у процессора на /CLOCK, /RESET, /MREQ, /M1, /RD, /WR ? Меняется ли оно при нажатии на сброс ?
Может будет полезным - я расскажу, как обычно запускал платы, но тут оговорка: я частично теоретизирую. У меня нету ревизии D, и я запускал несколько плат ревизии А, а также некоторых других спеков на ПЛИС, суть-то одна.
На ревизии А обычно запаивал вначале только ПЛИС (и ее стабик, чтоб дать питание и прошить) и генератор - на выходах ПЛИС через RGBIVGA получал стабильную картинку с бордюром случайного цвета и белым экраном. Далее запаивал ОЗУ, а на линии /MREQ, /M1 и /IORQ будущего проца подавал единицу - получал картинку с квадратиками (стабильными). Если квадратики нестабильные - искал непропай памяти, замыкания, непропай ПЛИС (в ревизии А нету шифтеров и это упрощало дело). А ревизии D надо запаивать ПЛИС и шифтеры. Если поднесение руки к ОЗУ что-то меняет (мельтешение или "забеливание" областей экрана), то это непропайка ОЗУшных адресов или сигналов выборки.
Когда есть картинка, можно запаять процессор и проверить, что при его сбросе что-то меняется (в идеале - получаем матрас, то есть ОЗУ, заполненное 0039h, если нет - иногда можно по картинке догадаться, какие разряды данных слиплись или не задействуются, либо если какими-то картинка областями не меняется, то из-за каких-то адресных линий проц не имеет туда записи. Если при сбросе ничего не меняется, проверяем, что у процессора после сброса на /CLOCK, /RESET, /MREQ, /M1. Устраняем причину, если что-то аномальное. Он должен начинать делать выборку инструкции с адреса 0000, читать всегда FF (RST 38h), по ней выполнять переход по адресу 0038h, сохраняя в стек адрес будущего возврата 0039h, в итоге через стек заваливая всю память по кругу этим самым 0039h.
Если при сбросе есть какое-то изменение или даже подобие матраса, то процессор однозначно стартует, зашиваем в ПЗУ какой-нибудь тест, лучше с бордюрной индикацией, я чаще использую тест RATCOPY (Хахонов), он уже пытается осмысленно что-то отобразить. У автора набор других тестов есть прямо в РОМе, я просто их не освоил. Если тест идет, но все на экране в каше, у меня еще есть свой тестовый РОМ, который просто включает в себя картинку экрана (длина 6912) и кусок кода, который LDIR-ом эту картинку копирует в адреса 4000h, то есть в экран. После этого бывает по искажению картинки видно, пишется ли туда что-то, какие разряды или знакоместа искажаются - это позволяет определить косяки на шинах.
Когда по тесту получен какой-то ясный результат, тогда уже засовываю настоящий РОМ и отлаживаю прочее, то есть ДивММЦ, другую периферию.
Иногда приходится какие-то настраиваемые детали в прошивке ПЛИС отключать (и пересобирать усеченный вариант), чтоб понимать, как они влияют, но это уже отдельная тема.
Еще наблюдение. Использовал ОЗУ либо Samsung K6X4008C1F-GF55 , либо Hynix HY628400ALLT2-55 через переходники, потому что не смог найти AS6C4008 в DIP32 за адекватные деньги и сроки. Самсунг везде работает стабильно, Hynix работал хорошо только с EPM3256 (в т.ч. в ГенералСаунде, который расширение к ревизии D) но сбоил на платах c EPM7512. Да, в поздних ревизиях стоит и не то, и не другое - EPM1270, но если используете аналоги памяти, то тоже могут быть нюансы.
Это прекрасно, но я прошу прощения, он менял 40 штук подряд на одном аппарате из одной пачки и не переставал верить ? Вау..
Про резисторы - тут про замену шифтеров на резисторы писал tank-uk, это вроде работает, но есть сомнения, что не все ноги ПЛИС выдержат долго это выдержат. Хотя для диагностики, наверное, вариант годный.