Поиск-2 Ремонт

16-битные ПЦ-совместимые компьютеры с процессорами 8086/8088/80286 работающие под управлением ДОС

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Поиск-2 Ремонт

Post by Lavr »

Tronix wrote:проверю, откушу 8 и 11 ноги от земли. Но не думаю что так просто все.
В таком случае это будет похоже на убогий RS-триггер для подавления дребезга контактов одиночной кнопки на замыкание.

Кстати, при работе с CPLD зрительно убедился, что у большинства кнопок приличный-таки дребезг.
Внутри CPLD был собран синхронный счетчик, и я посмотрел, что будет, если управлять им просто
кнопкой с резистором к +5В. Счетчик успевает насчитать дофига дребезга! :o
iLavr
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Поиск-2 Ремонт

Post by Vic3Dexe »

Lavr wrote:выход же коротится на землю в состоянии лог.1.
Но он в 1 никогда не будет, хотя микруху это не спасет. Верхний ключ в нижнем элементе, по идее, уже тогойт.
Lavr wrote:она может и генерить пачки импульсов начать
Вот что-то такое и я подозреваю.
Теоретически проц должен падать в перезагрузки, но если импульсы короткие - остальные цепи могут не сброситься. И тогда будет черти-что.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Поиск-2 Ремонт

Post by Vic3Dexe »

Lavr wrote:Внутри CPLD был собран синхронный счетчик, и я посмотрел, что будет, если управлять им просто
кнопкой с резистором к +5В. Счетчик успевает насчитать дофига дребезга!
Да, поэтому надо либо подавители снаружи, либо внутри.
Вот, где-то когда-то выдрал готовый.
CLK - какая-то частота, с помощью которой будем "ждать" прекращения дребезга. in, out - понятно.

Code: Select all

module deb(input wire CLK, input wire in, output reg out);

reg ff1,ff2;
reg [7:0] cntr = 8'h0;

wire cntr_ena = ~cntr[7];
wire cntr_clr = ff1 ^ ff2;

always @(posedge CLK)
begin
  ff1 <= in;
  ff2 <= ff1;  
end

always @(posedge CLK)
  if (~cntr_ena) out <= ff2;
  else out <= out;

always @(posedge cntr_clr or posedge CLK)
begin
  if (cntr_clr) cntr <= 8'h0;
  else if (cntr_ena) cntr <= cntr+8'h1;
  else cntr <= cntr;
end

endmodule
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Поиск-2 Ремонт

Post by Lavr »

Vic3Dexe wrote:
Lavr wrote:Внутри CPLD был собран синхронный счетчик, и я посмотрел, что будет, если управлять им просто
кнопкой с резистором к +5В
. Счетчик успевает насчитать дофига дребезга!
Да, поэтому надо либо подавители снаружи, либо внутри.
Ну НАХЕРА КОЗЕ ЭТОТ БАЯН? :o Когда я именно и хотел посмотреть как дребезжит кнопка?
2...3 переключения... 4..5 или зело больше - я ЭТО и посмотрел.
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Поиск-2 Ремонт

Post by Tronix »

Сфотографировал как смог: https://habrastorage.org/webt/40/tj/qx/ ... t-jcg.jpeg

Выпаиваю D7, освобождаю ноги 8 и 11 от земли.
UPD: Да вообще выкинул этот узел и собрал на резисторе и конденсаторе RESET. (10K к VCC и 0.1мкФ к земле).
Поведение не изменилось.

UPD: У меня комп не стартует с KS82C84A-8CP вместо 1810ВГ84. Нет генерации на кварце -> нет OSC42 и CLK. Так и должно быть?
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Поиск-2 Ремонт

Post by Lavr »

Tronix wrote:У меня комп не стартует с KS82C84A-8CP вместо 1810ВГ84. Нет генерации на кварце -> нет OSC42 и CLK. Так и должно быть?
Обсуждалось вот здесь:
viewtopic.php?p=116559#p116559
viewtopic.php?p=116573#p116573
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Поиск-2 Ремонт

Post by Tronix »

Понятно. Ну ладно, с этим понятно. Однако проблему в целом не решает :(
RESET починил, ЛН1 кстати живая была. Что еще смотреть?

При зависнутом сосотоянии
-на памяти: на DI, DO (2,14) - низкий уровень, ~900 мВ. RAS молотит ~1MHz, CAS - высокий уровень.
-на слотах ISA: ШД = 0xFFh. AEN = 0. ША = 0xF062h. /MEMR,/MEMW,/IOR,/IOW = 1.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Поиск-2 Ремонт

Post by Vic3Dexe »

Tronix wrote:AEN = 0
Регена нет? :o
К моменту вывода строк биоса на экран он же уже должен включиться, как я понимаю?
DMA/таймер как себя чувствуют?
Tronix wrote:/MEMR,/MEMW,/IOR,/IOW = 1
Эээ... вы вроде говорили, что на проце жизнь кипит. Так чем он занят-то, если наружу не ходит? Что на линиях S0-S2?
Также интересно, что на /AEN, CEN 8288.
Tronix wrote:ША = 0xF062h
Это младшие 16 или полный 20-битный?
Tronix wrote:RAS молотит ~1MHz
Откуда? Регена нет, проца нет... Или это предусмотрено само по себе? Я до той части схемы еще не докопался, разматываю клубки D-триггеров в схеме формирования READY.

Пока идеи:
1. Ежели в биос закатать простейший код - заполнение экрана любым символом/стирание, и так по кругу. Проверять на VGA, как на таковой, где глюк воспроизводится проще всего.
2. Если память вынуть, оставить сколько-то по минимуму... Я не знаю зачем :) Просто, когда непонятно что и где искать, я обычно меняю хоть что-нибудь.

Да, вот только в голову пришло - а как перейти от состояния "все работает" (ну, после тонны перезагрузок) до состояния "глючит"? Дать отстояться? Или как-то можно дестабилизировать?
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Поиск-2 Ремонт

Post by Tronix »

Vic3Dexe wrote: Регена нет? :o

К моменту вывода строк биоса на экран он же уже должен включиться, как я понимаю?
DMA/таймер как себя чувствуют?
Tronix wrote:ША = 0xF062h
Это младшие 16 или полный 20-битный?
Tronix wrote:RAS молотит ~1MHz
Откуда? Регена нет, проца нет... Или это предусмотрено само по себе? Я до той части схемы еще не докопался, разматываю клубки D-триггеров в схеме формирования READY.
Да я сам мало что понимаю. Похоже виснет "по разному". Иногда виснет так, что на ША и ШД движения нет, иногда виснет, но продолжает что-то перебирать на ШД и ША. Адрес был полный 20-битный.
Vic3Dexe wrote: Пока идеи:
1. Ежели в биос закатать простейший код - заполнение экрана любым символом/стирание, и так по кругу. Проверять на VGA, как на таковой, где глюк воспроизводится проще всего.
Простейший, но с нюансами. Как VGA заинициализить? Пути два 1) - заинициализировать самому через порты VGA. При этом не обязательно инициализировать остальную перефирию, включая память. Пробовал, одержал фейл. Ну, то есть режим то 80x25 вроде как устанавливает, но шрифт в упор не грузит.

 Код:

Code: Select all

setRegs:                          
         mov si, offset regs825
	push cs
	pop ds
 
         mov     dx, 3C2h
         lodsb
         out     dx, al
	 IODELAY
       
         mov     dx, 3DAh
         lodsb
         out     dx, al
	 IODELAY
 
         xor     cl, cl
         mov     dx, 3C4h
    l1:
         lodsb
         xchg    al, ah
         mov     al, cl
         out     dx, ax
	 IODELAY
         inc     cl
         cmp     cl, 4
         jbe     l1
 
         mov     dx, 3D4h
         mov     ax, 0E11h
         out     dx, ax
	 IODELAY
 
         xor     cl, cl
         ;mov     dx, 3D4h
    l2:
         lodsb
         xchg    al, ah
         mov     al, cl
         out     dx, ax
	 IODELAY
         inc     cl
         cmp     cl, 18h
         jbe     l2
 
         xor     cl, cl
         mov     dx, 3CEh
    l3:
         lodsb
         xchg    al, ah
         mov     al, cl
         out     dx, ax
	 IODELAY
         inc     cl
         cmp     cl, 8
         jbe     l3
   
         mov     dx, 3DAh
         in      al, dx
 
         xor     cl, cl
         mov     dx, 3C0h
    l4:
         in      ax, dx
         mov     al, cl
         out     dx, al
	 IODELAY
         lodsb
         out     dx, al
	 IODELAY
         inc     cl
         cmp     cl, 14h
         jbe     l4
 
         mov     al, 20h
         out     dx, al
	 IODELAY

	cld

;    out 3c4H, 0402H   ;Mask reg; enable write to map 2
;    out 3c4H, 0704H   ;Memory Mode reg ; alpha, ext mem, non-interleaved
;    out 3ceH, 0005H   ;Graphics Mode reg; non-interleaved access
;    out 3ceH, 0406H   ;Graphics Misc reg; map char gen RAM to a000:0
;    out 3ceH, 0204H   ;Graphics ReadMapSelect reg; enable read chargen RAM

	MOV AX, 0a000h
        MOV ES, AX

        MOV DX, 03C4h
        MOV AX, 0402h          ; seq.mapmask = !0, !1, 2, !3
        OUT DX, AX
	IODELAY
        MOV AX, 0704h          ; seq.font A=0 B=0
        OUT DX, AX
	IODELAY

        MOV DX, 03CEh
        MOV AX, 0005h          ; gx.modereg = !256, !shift, !OE, writemode_0
        OUT DX, AX
	IODELAY
        MOV AX, 0406h          ; gx.miscreg = map_b8000, !HostOE, !graphics
        OUT DX, AX
	IODELAY
	mov ax,0204h
	out dx,ax
	IODELAY

        ; set font to garbage
        MOV CX, 01000h
        XOR DI, DI
	mov si, offset Font
lop:	stosw
	stosw
	stosw
	stosw
	stosw
	stosw
	stosw
	stosw
	add di,16
	dec cx
        jnz lop
	

;    out 3c4H, 0302H   ;Mask reg; disable write to map 2
;    out 3c4H, 0304H  ;Memory Mode reg; alpha, ext mem, interleaved
;    out 3ceH, 1005H   ;Graphics Mode reg; interleaved access
;    out 3ceH, 0e06H   ;Graphics Misc reg; regen buffer to b800:0
;    out 3ceH, 0004H   ;Graphics ReadMapSelect reg; disable read chargen RAM

        ;restore VGA state to normal operation
        mov            ax, 0302h
        out            dx, ax
	IODELAY
        mov            ax, 0304h
        out            dx, ax
	IODELAY
        mov            dx, 03ceh
        mov            ax, 1005h
        out            dx, ax
	IODELAY
        mov            ax, 0E06h
        out            dx, ax
	IODELAY
	mov ax,0004h
	out dx,ax
	IODELAY


mov ax, 0B800h
mov es,ax
mov di,0
mov al,'O'       ; буква O
mov ah,7        ; белым по черному
mov cx,10        ; один раз
rep stosw

	hlt
 
regs825:
; MISC
db    67h, 00h
; SEQ
db    03h, 00h, 03h, 00h, 02h
; CRTC
db    5Fh, 4Fh, 50h, 82h, 55h, 81h, 0BFh, 1Fh
db    00h, 4Fh, 0Dh, 0Eh, 00h, 00h, 00h, 50h
db    9Ch, 0Eh, 8Fh, 28h, 1Fh, 96h, 0B9h, 0A3h
db    0FFh
; GC
db    00h, 00h, 00h, 00h, 00h, 10h, 0Eh, 00h
db    0FFh
; AC
db    00h, 01h, 02h, 03h, 04h, 05h, 14h, 07h
db    38h, 39h, 3Ah, 3Bh, 3Ch, 3Dh, 3Eh, 3Fh
db    0Ch, 00h, 0Fh, 08h, 00h

Font: здесь шрифт

2) Пройти почти весь POST, заинициализировать 8237,8259,8255, настроить стек. Загрузить видео-BIOS из VGA карты. То есть практически ничем не отличится от обычного BIOS, ну разве что на BOOT управление не передавать. Смысл?
Vic3Dexe wrote: 2. Если память вынуть, оставить сколько-то по минимуму... Я не знаю зачем :) Просто, когда непонятно что и где искать, я обычно меняю хоть что-нибудь.
По-моему пробовал оставить только один банк 512Кб. Поведение не меняется.
Vic3Dexe wrote: Да, вот только в голову пришло - а как перейти от состояния "все работает" (ну, после тонны перезагрузок) до состояния "глючит"? Дать отстояться? Или как-то можно дестабилизировать?
Дать остстояться. Дестабилизировать не получается умышленно. На ходу плату немного гнул во все стороны, нажимал на детали сверху - работает и не чихает.

Тут еще подумалось... А не может БП такую подлянку устраивать? Я ж от ATX питаю, гружу только по +5V линии. Хотя пробовал воткнуть просто так еще вместе с поиском МФМ винт. Поведение не меняется. Еще по схеме блокировочные у автора 0.15мкФ везде. У меня 0.1мкФ везде. На осциле питание шумит немного, но не проседает, помех таких уж чтоб прям в труху все - нет. Не знаю.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Поиск-2 Ремонт

Post by Tronix »

Вот еще посмотрел фото собранных плат, у всех стоят 541РУ2А, у меня 541РУ2 без буквы. Судя по даташитам без буквы <= 120нс, с буквой А <= 90нс...
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Поиск-2 Ремонт

Post by Lavr »

Tronix wrote:Да я сам мало что понимаю. Похоже виснет "по разному".
А аппаратно пошагово нет возможности пройти?
А то всё напоминает "бессмысленное гадание на жуткой кофейной гуще"...
Есть же "пошаговая схема"... :-?

Я сейчас более простую схему отлаживаю, но докатился до пошагового прохода,
и увидел, что в динамике я этот глюк у себя низачто бы не отловил... :osad:
iLavr
Mixa64
Doomed
Posts: 481
Joined: 25 Aug 2009 07:02
Location: Москва

Re: Поиск-2 Ремонт

Post by Mixa64 »

Tronix wrote:Вот еще посмотрел фото собранных плат, у всех стоят 541РУ2А, у меня 541РУ2 без буквы. Судя по даташитам без буквы <= 120нс, с буквой А <= 90нс...
В те времена нужно было постараться сделать так так, чтобы любая биполярная статика вдруг не поспевала за любым n-МОП. ИМХО ни разу не фактор. Если схема не косячная в принципе. (призадумался ... хм. 132РУ скорее исключение)
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Поиск-2 Ремонт

Post by Vic3Dexe »

Tronix wrote:Как VGA заинициализить?
Да, я как-то упустил этот момент... Ладно, проехали.
Tronix wrote:А не может БП такую подлянку устраивать?
Аналогично, подумал про питание уже когда спать пошел.
Я свой циклон+8086 запитывал напрямую от +5 и +3.3 АТХ. Проблем не было.
А с POWER_GOOD все нормально?
Если БП заменить?
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Поиск-2 Ремонт

Post by Tronix »

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

Тут еще попробовал вчера просто так зашить PC/XT Super BIOS v3.1 - не стартует от слова совсем.

Шагатель.... Шагатель оно конечно, но нужны все равно какие-то средства мониторинга - анализатор там какой-нибудь. Думаю, что проще - паять 32 провода к ША и ШД или просто тупо менять микросхемы на плате одна за одной. Или забить. Склоняюсь уже к последнему.

Хотя наверное попробую сварганить что-то вроде POST карты на LPT, интересно, чего обычный XT биос то не взлетел.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Поиск-2 Ремонт

Post by Vic3Dexe »

Tronix wrote:Смотрел осцилом питание
А PWR_GOOD? Он в БП отдельной цепью идет вроде.
Tronix wrote:Шагатель.... Шагатель оно конечно
Не думаю, что сработает. До вывода строк биоса проходит туева хуча инициализаций. Я бы задолбался столько "шагать", это раз. Второе - есть таймер, который на отдельном генераторе. Боюсь, в этой связке полезут свои собственные глюки.

И вопрос не совсем в тему - а что, 8086 умеет пошагово? Просто по даташиту у него нижний предел частоты - 2 МГц.
Tronix wrote:Или забить.
А 541РУ поменять на РУ2? Тайминги в полтора раза же. Как по мне - реальное основание для глюкалова. Особенно на фоне "D19 нельзя ставить 1533".
Кстати, есть мысли почему эту долбаную D19 нельзя в 1533? Нагрузочная способность?

upd
1. А VGA часом не та, допиленая "коллективным разумом"? Если она, надо брать другую. Иначе мух от котлет не отличить будет.
2. зачеркнуто
3. А как виснет чаще - с дискотекой на шине, или со стабильным HLT со стороны проца? Если второе, то адреса стопа на шине совпадают?
Last edited by Vic3Dexe on 20 Nov 2017 04:31, edited 2 times in total.