D8155 testen

fred101

Golden Member

Datasheet: http://pdf1.alldatasheet.com/datasheet-pdf/view/55469/AMD/D8155.html

Ik heb hier een industriële besturing-computer staan voor reparatie/restauratie. Onderdeel van een machine.

Het is uit de jaren 80 dus voornamelijk 74 en 40/45XX logic IC's. Verder wat opto's, torren en passieve onderdelen. Alles op insteekkaartjes van 12x12cm. Ik heb een complete set extra, de voorganger van deze (welke net zo oud is) en ook defect.

Op een aantal kaarten zit een D8155. Dat blijkt een IC met SRAM, timer en I/O ports te zijn en heeft een 8085 nodig.

Ik test logic IC's mbv een TL866 of vervang ze door NOS met de zelfde leeftijd. Lukt dat beide niet dan test ik hem op mijn zelfbouw universele "IC tester". Dat gaat gewoon met drukknoppen en/of een FG als input en op de outputs een scoop, LA of ledjes. Ik maak steeds een "kaart" per IC met setup en test methode. De eerste keer wat werk maar een tweede keer erg handig. Het idee van een buizentester.

Maar ik heb geen idee hoe ik zo'n 8155 kan testen. Het zijn er in het totaal een stuk of 6. (met zoveel pootjes moet het dan wel op een breadboard)

Iemand een idee ?

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

Een beetje een scheve tip, maar Elektuur heeft de nodige dingen beschreven met in elk geval de 8255 (o.a. mei 1988 PC i/o board, Halfgeleidergids '89, mini ISA i/o kaart )
- Ik denk met een blik op de laatste dat hij op de meeste acht bits bussen of b.v. een Arduino wel aan de praat te krijgen is, het is een heel standaard interface.

Dit soort chips zouden naar mijn gevoel echter niet zo zeldzaam moeten zijn dan je niet gewoon kunt omwisselen en testen, maar het is niet mijn gebied dus ik kan mij vergissen.

Arco

Special Member

Het simpelst is inderdaad ze in een bestaand (zeker goed werkend) systeem te testen.
Als je alle functies van de chip wilt testen (zoals of alle RAM cellen OK zijn), zal daar wel wat zelfgeschreven firmware bij kijken.
Het is niet echt gecompliceerd, maar de timing van de gemultiplexte adres/databus en de select/read/write signalen moet wel kloppen.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
mel

Golden Member

de 8155 heeft een gemultiplexte adres/databus. is wel te doen, gewoon zelf
iets maken wat dat kan simuleren.
Met de control signalen word gekozen tussen data of adress.
Zie de post van Arco.
Ik heb hier er nog een aantal van liggen,(ergens) dus als je interesse hebt. hoor ik het wel .

[Bericht gewijzigd door mel op maandag 16 januari 2017 11:25:29 (20%)

u=ir betekent niet :U bent ingenieur..
fred101

Golden Member

Er zijn 4 i/o kaarten (CDA1-4) Op zo'n CDA insteek board zit een 8155 waarvan de meeste pinnen aan de pin 1-20 kant naar de backplane connector gaan. Aan de 21-40 kant zit wat aan 74/40 logica , ADC en wat analoog spul. Daarnaast zit er een rij van 6-8 opto's die met die 74/40 IC's communiceert. De led kant zit aan de connector. Dat zijn dus inputs. Er zit in het totaal niet veel op zo'n kaart. De processor zit op een aparte kaart.

Het testen van het geheel kan dus niet in mijn lab want ik weet niet wat er allemaal aan die connector hangt. Dat is volgens de andere betrokkenen ook bijna niet te achterhalen.

Het liefst zou ik ze in dit geval vervangen. Tenzij testen eenvoudig is. Farnell/Mouser/Digikey hebben hem niet. Vrij obsolete dus.

@MEL, ik wil er dus graag een paar van je overnemen.

Ik wil altijd graag weten wat er kapot was zodat ik dan de evt diepere oorzaak kan achterhalen om te voorkomen dat de boel na de eerste test weer dood is. Maar de klant heeft hem graag gisteren al klaar dus dan is blind vervangen van die 8155 toch een optie. Ik zaql ze in IC voeten zetten

Blijkbaar is testen dus *(voor mij) niet eenvoudig. Voor ik weet hoe ik dat ding aanstuur en daarvoor een programma heb geschreven ben ik 2 weken verder. Ik had gehoopt op wat creatief spelen met drukschakelaars en ledjes. Ik ben niet zo'n programmeur.

Aart, ik zal eens zoeken, ik heb wat ioude halfgeleider gidsen liggen

Wat achtergrond info mocht iemand meer willen weten:
Alle kaarten zitten op een backplane gestoken. Die bevat de hoofdvoeding (230V naar 13V) en een hele berg draden naar een RS232 achtige 25 pin D connector, en het verbindt de insteekkaarten onderling. Er zit (uit mijn hoofd) oa een 7 segment led display kaart, keypad "kaart". Een 5V voeding kaart, een processor kaart (met piggyback), een eprom en backup accu kaart, 4 i/o kaarten.

Ik had hem al eerder gerepareerd en het ding werkte toen standalone weer(je kon hem weer via het keypad programmeren. Hij reageerde daarvoor niet meer op het keyboard) Maar de rest kon ik toen niet testen.
De (niet zo) "technische dienst" heeft daarna vrolijk alles door elkaar gehusseld. Ik had de 2 sets van 4 CDA kaarten allemaal nagekeken zodat ze die konden wisselen mocht er zoiets iets als die 8155 stuk zijn. Maar zo te zien hebben ze zelfs de eproms omgewisseld want er lag er 1 met kromme pootjes los in de doos. De hele boel was nu op het oude backplane gestoken en de rest was een mix. Er was ook een elco met een stuk trace verdwenen. Er zat nog een afgebroken pootje. Niet zo raar dus dat hij nu weer dood was.
Kortom nu was tijd voor een complete restauratie.

Ik was de eerste keer er van uit gegaan dat de fout niet elders in de machine zit.(daar zit nog meer electronica (zoals oa FO's en een pcb met een rijtje ongekoelde heel dikke powertorren en een zware 24V voeding, volgens het externe onderhoudsbedrijf was de kans op een defect elders vrij klein)

De "fabrikant/bouwer" bestaat niet meer en ik denk dat het custom build is. (zelf geëtste handgesoldeerde pcb's)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
Arco

Special Member

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Ik heb een keer een universele chip tester gemaakt. Gewoon alle pootjes naar een GPIO ding, en dan wordt het een software probleem. Dit was begin jaren negentig, dus was het nog niet makkelijk om dit echt generiek te doen. Ik geloof dat ik statisch input of output moest kiezen. En power pins via de GPIO laten lopen is ook niet zo verstandig. Dus helemaal universeel was het niet. Maar tegenwoordig zou ik voor zoiets dus IO extenders op een I2C of SPI bus doen, en dan de rest van de test in software doen. 1 programma voor iedere chip.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
fred101

Golden Member

Zoiets zou nog handiger zijn maar dan zou ik het zo maken (als ik dat kon) dat ik in het programma alle poorten kan toewijzen en dan die setting kan opslaan per IC.

Het zou mooi zijn als ik voor mijn TL866 zelf IC's zou kunnen toevoegen.

Het voordeel van mijn opzet is dat het best leerzaam is. Niet alleen omdat ik eerst moet uitzoeken hoe zo'n ding werkt maar ook omdat het visueel is.
Vanmiddag een paar 4024 counters getest. Een 1 Hz klok erop, de reset aan Q7 en dan zie ik de leds in een mooi binair patroon naar 64 tellen en dan reset hij en begint opnieuw.

Als ik het goed heb moet ik een adres op AD0-7 zetten. Dat zou dan met zo'n 4024 kunnen. Dan ledjes op de uitgangen en WR hoog maken. Dan zou ik die leds 1 voor 1 moeten zien aan (en uit ?) gaan. Of gaan ze pas uit met reset ? Maar ik heb geen idee hoe ik het ram of de timer moet testen.

Ik zet ze in voetjes dan kan ik wisselen. Ze zullen vast niet allemaal stuk zijn (als ze al stuk zijn) Testen heeft het voordeel dat ik steeds meer onderdelen kan uitsluiten als potentieel probleem.
Nu kan de fout in de computer zitten maar ook elders in de machine. Als ik zeker weet dat elk onderdeel werkt kan ik de computer uitsluiten.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
Arco

Special Member

Op AD0-7 moet de adresbus en de databus gemultiplexed, dus met een 74HCT573 latch o.i.d.
Voor chips als de D8155 zal die TL866 wel niet bruikbaar zijn. De chip gebruikt 180mA voeding, dat kunnen de pindrivers vast niet leveren...
I/O, RAM en timer kun je besturen door naar het command/statusregister te schrijven. (zie datasheet)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Het testen van deze chip met drukschakelaars etc zal niet werken.
De beste oplossing lijkt mij een ISA kaartje te maken voor een "oude" XT/AT ISA slot 8bit.
Je hebt 6 registers als IO-/M hoog is , en 256 bytes geheugen als IO-/M Laag is.
Als je alleen de IO wil testen,en geheugen even buiten beschouwing laat (IO-/M=1), kun je met 74ls688 een adress selector maken voor bv 300h waar dan je command/status register zit.
301h =IO port A
302h =IO port B
303h =Port C
304h =low order 8bit timer
305h =high order 6bit timer

Maar ja, dan moet je wel een PC hebben met een ISA slot...
en een experimentele ISA-pcb en wat IC's.
Het kost veel moeite om dit zo te testen , heb je dat ervoor over is de vraag?

Re-integratiecoach uitgerangeerde en degoutante electronen
Arco

Special Member

Voor dat geval is een processor als de D8742 heel handig, die heeft een complete interface aan boord voor de ISA bus.
PAL'letje (of inderdaad een 74HCT688 met dip switch) voor adresdecodering is genoeg.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
fatbeard

Honourable Member

Voor het volledig "bestoken" van de processor-kant van deze chip heb je in totaal 13 lijntjes nodig; waar die vandaan komen is volkomen irrelevant. Ik geloof dat je deze chip prima (zij het absoluut niet makkelijk) met alleen drukknoppen/schakelaars en LEDs kunt bedienen/testen, de gemultiplexte adres/databus reduceert het aantal benodigde schakelaartjes juist...
Wat busbuffers kunnen de bediening aanmerkelijk vereenvoudigen, met wat extra tellers is ook een geautomatiseerde test mogelijk.
Als je een Arduino/Raspberry/whatever die 13 lijntjes kan laten bedienen: nóg makkelijker. De poorten A, B en C zijn 'gewoon' GPIO (te testen met LED en drukknop), alleen die timer in en -out kan wat lastiger zijn...

Als ik mij goed herinner zit precies deze chip op het trainingsbord van de Dirksen microprocessor cursus uit de 70/80-er jaren (vandaag de dag doen ze het met een arduino). Moet ik nog wel ergens hebben (kompleet met kursusboek), maar weet zo gauw niet meer waar.
Wil er desgewenst wel naar zoeken, ik doe er toch nix mee en wil hem wel ruilen voor een goed Belgisch biertje of zo...

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
fatbeard

Honourable Member

Nee, die had ik zelf al aangeschaft.
Bij die cursus (geadapteerd door het CBVW) had ik iets wat meer op de KIM-1 leek, was een bouwpakket...

Ik kan me een decennium vergissen, mijn geheugen is niet meer zo goed georganiseerd als het nooit geweest is. :p

... checking external memory ...
... loading database ...
... cross-referencing entries ...

FOUND DATA

Ik vergis me inderdaad een decennium :o, het was eind 80-begin 90...

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
mel

Golden Member

Ik ga eens zoeken of ik in de rotzooi(onee, onderdelenvoorraad :) ) deze chips nog kan vinden, en als ik ze heb doe ik ze wel in een enveloppe.

u=ir betekent niet :U bent ingenieur..
Peter_dtn

Golden Member

Waarom niet een klein systeem bouwen met 8085, eprom, 74ls373 en die 8155, met een handvol assembly instructies kan je de pinnen van de 8155 laten bewegen en ook een idee krijgen van de interne ram etc.

EricP

mét CE

Ik denk dat ik ook de rew-benadering zou kiezen als testen relevant wordt. Kost alleen wel veel tijd...

In mijn geval: een AVR met voldoende poten. Daar zit ook wel een UART in -> naar PC. En dan maar 'lijntjes trekken' en kijken wat er terug komt. Die AVR-flash is vaak genoeg programmeerbaar om je test-software in source te configureren en de AVR ff opnieuw te programmeren als je wat anders wilt.

Heeft Fred niet al eens iets met een Arduino gedaan? Daar moet dat toch ook mee kunnen?

mel

Golden Member

u=ir betekent niet :U bent ingenieur..
fred101

Golden Member

Fatbeard, Als tiener (in de jaren 80) was ik met een ZX-81 en later een ZX spectrum bezig. Ik ben handig in veel dingen maar niet met programmeren en wiskunde. Ik zat liever aan de hardware te knutselen.

Ik heb een Arduino, daar heb ik wat dingen mee gemaakt. Daarvan werkt er eentje (een trafo-wikkelmachine) heel goed, voornamelijk dankzij de hulp van Jochem. De rest "doet het meestal min of meer" op de grens van bruikbaar.

Arabel: Dat gaat hem niet worden.
Het was de bedoeling om zoveel mogelijk onzekerheden weg te nemen maar om daarvoor een halve pc te gaan bouwen en een cursus assembler te volgen was niet helemaal de bedoeling ;-)

Ik ben hardwarematig beter. Dingen als gates, adders, counters, fan-out, delay, timingc diagrammen, SRC latch-up, metastabiliteit, tri-state etc zeggen me meer dan registers, float-variabel dingen, I2C , CAN etc.
Dat begrijpen lukte pas beter toen ik ging uitzoeken hoe een gate intern werkt, toen werd ineens een hele hoop duidelijker.

Deze is wel mooi, in 20 minuten tijd meer geleerd over hoe een pc werkt dan de afgelopen tig jaar. Zo vond ik een tijd terug ook wat over gates. Dat kreeg ik maar niet onder de knie. Rare onlogische dingen als A + B is een Or ipv And. Maar in 5 minuten legde iemand het uit met 2 schakelaars en een lamp. De schakelaars in serie is AND, en parallel is Or. Ik heb nu geen tabel of wiki meer nodig, ik zie nu steeds die schakelaars voor me.

Voor mij is kennis van de hardware kant belangrijk. Ik hoef niet te debuggen, ik moet defecte onderdelen vinden. In het analoge gebied is dat vaak niet zo moeilijk, maar zodra het digitaal wordt.....pffff

Vreemd genoeg is daar erg weinig leerstof over te vinden. Een tor, diode, weerstand, opamp etc is meestal stuk of niet en bij twijfel eenvoudig te testen/nameten. Maar een processor kan op het oog foutloos werken met een paar kapotte poorten en kom er dan maar eens achter welke poort kapot is (zonder schema/service manual)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

Zeker als je weinig programmeer ervaring hebt zou ik voor een arduino-tje gaan. Relatief makkelijk te programmeren.

Het aantal vrije pinnen zou je denk ik inderdaad genoeg moeten hebben.
Met 13 pinnen kun je inderdaad alle functies bij. Behalve de out-/inputs natuurlijk daar zul je ledjes/pull-up,-down weerstandjes aan moeten hangen om alles te testen.

Vroeger had je een DATAIO programmer. Dat waren luxe apparaten met zgn pin drivers waarmee je alle pinnen kon sturen en uitlezen. Tot een vrij forse stroom zelfs. Van -12 tot +14V of zo dacht ik.

Daar kon je alles wat god verboden had mee programmeren. Maar ook kon je alles wat digitaal was testen.
Daar hangt natuurlijk ook wel een fors prijskaartje aan.

Een LV48 programmer kan ook logic testen, net even gekeken maar alleen de 8255 staat ertussen. Volgens mij kun je daar zelf nieuwe devices voor definieren. Nog niet naar gekeken hoe dat moet.

-Edit- Nog een reparatie tip voor digitale logic:
Heel vaak is een output van een chip defect of ligt er een input in een halve sluiting.
Met een scoop alle lijnen bekijken terwijl het board draait.
Als je op de lijnen logic levels ziet die op een "half" niveau liggen: trapjes etc. of gewoon statisch zijn die een verder onderzoek waard.
Dan is het controleren waar die lijnen vandaan komen.
Daar heb je twee keuzes: De lijn komt uit een totempole output (meestal gewoon gates of zo), dan is er iets aan de hand want de lijn moet hoog of laag zijn.

Is de lijn onderdeel van een databus dan is het een stuk lastiger die kan namelijk tristate zijn gedurende het "trapje".
Dan gebruik je de truuk van de pull-up of pull-down. Hang er wat aan (2k2 oid) zodat je de lijn gedurende zo'n periode van "tristate" redelijk lager of hoger zou moeten worden. Zie je de lijn nog op dezelfde "spannings-trap" dan is dat zeker een indicatie dat er ergens wat rot is op die lijn.
Tjsa, dan wordt het zoeken wel device het is en moet je gaan reverse engineren als je geen schema hebt.

@Arco: Origineel hangt het ding aan een 8085 CPU of soortgelijke. Misschien met een beetje glue ook aan een 8051 te knopen (of 89Cxx van atmel).

-edit- Oh ja: Er zit ook nog een timer/counter in. Ook niet effe simpel te testen.

Ik heb de programmer gevonden die we vroeger hadden/gebruikte:
Data I/O Unisite Programmer (zie deze site: http://matthieu.benoit.free.fr/dataio_unisite_programmer.htm)

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Arco

Special Member

Makkelijkste is een controller met een PMP interface (Parallel Master Port), die is speciaal hiervoor bedoeld. (kan adres/data multiplexen)
Voorbeeld is de PIC24FJ256GA106, maar veel nieuwere PIC's hebben er een..

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
EricP

mét CE

En eh... wat is daar makkelijk aan? Wellicht dat je een deel niet in software hoeft te doen. Ik kan me ook nog wat performance winst voorstellen.
Beide zaken waar je in de situatie waar Fred nu in zit... niet echt veel aan hebt...

Als ik je zo lees Fred, dan benader je programmeerbaar spul als iets discreets wat je wilt repareren :) Verkeerde benadering - net zoals met je AND en OR.

Zelfs voor heel veel doorgewinterde ontwerpers is het een 'black box' met een goed omschreven gedrag. Feitelijk is dat bij een AND ofzo niet anders - als zijn die een heeeel stuk simpeler.
Net zoals bij gewone poortjes, kan iets programmeerbaars het prima doen, tot er aan een bepaalde situatie (niet meer) voldaan wordt. In het analoge bereik was een (deel) component al lang door de mand gevallen. In 'digitaal land' gaat het vaak wat langer goed, een beetje ruis stoort meestal niet. Het blijft verbazend dat computers kunnen werken :) Je zou er eens een scope in moeten prikken. Afgezien van dat er waarschijnlijk wel wat omvalt vanwege de invloed van de probe... Zul je je rot schrikken van wat je ziet: het heeft niks met digitaal te maken. En toch werkt het meestal vrij behoorlijk. :)
Wat dat betreft zou je het best eens met zo'n STK versterker plak kunnen vergelijken: je weet niet wat er in zit, maar er is een behoorlijk verhaal over, dus je krijgt het wel aan de praat.
En eh... vergeet niet dat heel veel 'digitale' chippies niks anders zijn dan een enorme verzameling gates... Niemand gaat je vertellen hoe het in elkaar zit. En als iemand je het al gaat vertellen, dan gaat het (denk ik) al snel je bevattingsvermogen te boven. Als in: het is te veel. Ook de maker zou het zomaar wel eens niet precies kunnen weten: een 'slim' stuk software beschrijf je wat er moet komen en dat gaat aan de gang met gates om dat voor elkaar te krijgen - beetje zoals een FPGA. En vervolgens maak je die chip - zonder dat je exact weet wat je maakt. Alleen dat 'het past' en aan 'alle rulechecks die je hebt verzonnen voldoet'...
Voor wat betreft je test: je zou die 8155 als een black box kunnen beschouwen. Bekijk de uitgangen en laat iets de ingangen zodanig manipuleren dat je wat aan de uitgangen kunt zien.

Iets in een register douwen, is tenslotte ook niks anders (in 8-bit land) dan een copietje maken van die waarde in 8 D-flipflops (dat kan met poortjes) op het moment dat er een clock voorbij komt. Welk setje van 8 flipflops geclocked wordt, heb je eerst ingesteld met een adres. Adres decoder (dat kan uit poortjes) die de clock doorzet naar de juiste set-van-8. Ingewikkelder is het niet. Alleen zet waarde X op address Y is een stuk beter te behappen dan een heel verhaal over welke logic je precies aan het werk moet zetten. Dat kunstje is elke keer hetzelfde, daar hoef je een programmeur niet mee lastig te vallen... (en de hardware ontwikkelaar eigenlijk ook al niet meer, het zit goeddeels in de chip).

Arco

Special Member

En eh... wat is daar makkelijk aan?

Heel veel... :)
De port regelt het bidirectionele verkeer (anders moet je de pinnen zelf steeds omkeren van input naar output), en heeft alle verdere benodigde signalen zoals RD, WR, ALE,...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Is die TL866 niet te programmeren dat je een custom device kunt toevoegen?

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.

Mischien de snelste testmethode(maar niet waterdicht :-) ) dan?
Ik meet hier meer dan >20Meg Ohm op iedere ABC poort(p21-39) tenopzichte van Massa(pen20).
Vcc(+5volt) naar Vss(gnd) is 809 Ω
Als je ze alle 6 even snel doormeet en je ziet een discrepantie is dat de chip die je beter vernieuwd.

Type hier is P8155H-2 intel

Re-integratiecoach uitgerangeerde en degoutante electronen