fred101
Golden Member
www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur en maritieme en industriele PCBs
Ik heb hier een probleem en het enige wat volgens mij het probleem kan veroorzaken is een soms-foute 8255A. Als dat tenminste mogelijk is.
Nu is dat een programmable Peripheral Interface (PPI). Bevat zo'n ding een programma? Ik denk dat ik er wel heb liggen maar als ze geprogrammeerd zijn dan is uitwisselen niet mogelijk.
Probleem:
- Het lijkt af en toe of er een bedienknop blijft hangen, hij kan het dagen lang goed doen dus hij staat hier al een tijd in de hoop dat hij eens wat langer de fout in gaat.
- De schakelaar is goed en werkt maar als hij de fout in gaat reageert hij ook niet op het indrukken van de knop
- Als hij de fout ingaat gebeurd er niks op de keyboard matrix lijnen (scoop)
- Zonder keyboard gaat hij nog steeds soms de fout in.
- Voeding is perfect.
- De keyboard output gaat direct naar het CPU board naar de 8255A via een bandkabel en wat weerstanden. Dat deel is ook nagekeken/gemeten.
- Ik kan niet op de 8255A zelf meten want ik kan er niet bij. En steeds uitbouwen om een draadje te solderen gaat hier ook niet, kost me ongeveer een half uur om het board uit te bouwen en de zelfde tijd voor het inbouwen. Elco's en druppel-tantalen op het board heb ik voor de zekerheid vervangen (ze waren echter nog goed)
(ik heb de service manuals (3 hele dikke mappen))
Nope,er zit geen ROM oid in.
Je schuift er 8 bits in en er komen (op 1 van de 3 poorten) weer 8 bits uit.
Of vica versa (bidir)
Inderdaad; de 8255 heeft geen programma aan boord. Alle functionaliteit wordt door registers bepaald die je zelf moet aansturen. Als je een vervangend exemplaar hebt kun je dat er gewoon inzetten en dan zou alles weer moeten werken.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Idem. Ook ik ben voldoende bekend met dat ding om te weten dat ie "door een CPU geprogrammeerd kan worden". Daar slaat dat programmable op.
fred101
Golden Member
www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur en maritieme en industriele PCBs
EricP
mét CE
Die dingen zijn niet geprogrammeerd, dus je zou 1-op-1 moeten kunnen wisselen. Soms is 'timing' een dingetje, in de tijd dat deze chip populair was, was het nog wel eens kritisch (maar lang niet altijd, dat is uiteraard afhankelijk van de 'host'). Als bus-timing een beetje 'op het randje' is, dan is de voeding vaak kritisch, inclusief spanningen en bypass-C's (dat was wel eens de test bij practica: OK, het werkt, sloop de bypass-C's er af, als het dan nog steeds werkt, dan heb je niet lopen knoeien met timing).
Houd ff in de gaten dat er vaak een stuk address decoding voor zit (dat hangt doorgaans aan de nCS). Als daar ellende in zit, dan wil het ook niet. Je zou verwachten dat er dan meer dan '1 knop' niet wil. Om het nog wat gecompliceerder te maken: als er ergens anders een address decoder naar doet, dan kun je zomaar te maken hebben met 'bus conflicten' (nl. 32 devices die op hetzelfde address data op de databus gaan zetten). Been there. Done that. Succes met zoeken 
Stel je hebt een 10-bit brede address bus (10 bit is een beetje en rottig getal, maar handig in dit voorbeeld)... A0 en A1 gaan naar de 8255, A2-A9 naar de decoder. De decoder is feitelijk niks anders dan een bitwise 'compare' tussen wat er als address is opgegeven (of met DIP switches is ingesteld) en de address bus. Op een match wordt de output laag (dat zal wel handig geweest zijn: 8x een XOR met een open collector output ofzo).
Kortom: er zit meer aan vast dan alleen wat I/O wat ellende kan veroorzaken.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op donderdag 8 januari 2026 12:43:09 schreef EricP:
Op een match wordt de output laag (dat zal wel handig geweest zijn: 8x een XOR met een open collector output ofzo).
In die tijd waren alle chipselect lijnen "actief-laag".
Vaak zit er dan een A15-A13 3->8 decoder. Die verdeelt dan de adresseringsruimte van 64k naar 8 blokjes van 8. De hoogste is dan bijvoorbeeld systeem-ROM, en de een-na-hoogste is dan "IO".
Aan die A15-A13 == 6 uitgang, hangt dan NOG een 3->8 decoder (A12-A10) die stukjes van 1k maakt. 1 van de uitgangen hangt dan aan zo'n 8255. Vanuit de CPU adresseer je dan deze 8255 op 0xc400 - 0xc7ff. De adresbitjes A2 ... A9 zijn dan niet aangesloten en je ziet 256 copieen van die ene 8255 in de geheugenmap.
(Voor compatibility, zou ik als fabrikant dan specificeren dat 0xc400-0xc403 de 8255 is, en dat 0xc404...0xc7ff "reserved" is. Dan kan je in een volgende versie eventueel nog meer devices in dat 0xc400 blok plaatsen zonder dat een een of andere grappenmaker besloten heeft dat schrijven op 0xc48b handiger is (1 instructie korter) dan 0xc403.)
Hier een voorbeeld uit de C64. Die blijkt een 1->16 decoder te hebben (oid), en dan twee keer niet zo'n 3->8, maar een dual 2->4 decoder, gestapeld zoals hierboven beschreven.
Wat hier "CIA" heet, dat is vergelijkbaar met de 8255. Echter slechts 16 in-/outputs, en maarliefst 4 adresbitjes die gebruikt worden.
... heb liggen ...
Ik had er ook een paar geloof ik. Ik heb ze aan een CO lid overgedragen.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Let wel op: de 8255 bestaat in verschillende clockspeed versies (2...8MHz): een te trage geeft uiteraard ook ellende...
fred101
Golden Member
www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur en maritieme en industriele PCBs
Het is een CP82C55A (opdruk IC) ik ga morgen kijken of ik hem heb, het is nu te glad om naar de loods te fietsen waar die onderdelen, als het goed is, staan.
Ik kan net bij pin 21-40. Als ik een 10x 200MHz probe op sommige van die pinnen zet dan gaat hij heel vaak de fout in. Maar soms loopt hij zelfs vast en reageert helemaal niet meer, of een langere tijd niet meer, op de schakelaars. (dit gebeurde bv op D0, reset en write) Maar er was niets vreemds te zien op de scoop zodra daar die functie grafisch inverted werd en naar een ander menu sprong. Er gevoelig blijkbaar.
Als ik vanaf de display terug kijk dan spreekt deze met een 74HC245 en een 74HC32 en die zitten aan de 80188 vast. De 82C55A zit dan via de bus waarschijnlijk ook aan de 80188 vast dus een zoekplaatje want heel het schema van dat board is verdeeld over een stuk 12 A4tjes..
Maar meestal werkt hij gewoon en ook als hij de fout in gaat klopt de data op de display verder gewoon. Alleen knop 2 (setup) is behekst.
Dat ding heeft verschillende modes,, meestal is mode 0 het meest gebruikt, dit krijg je vanzelf na een reset.De lijnen A0 t/m A3 selecteren welke poort gebruikt wordt.
EricP
mét CE
Weet je ook de clocksnelheid van die 80188?
Dat lijkt allemaal wel op een 8088 / 8086, het zou zomaar kunnen dat het sterke gelijkenissen heeft met een PC of XT. Daar was dat allemaal niet zo heel gevoelig. Immers, je kon er een kaartje bij prikken (ISA bus) waar dat ook allemaal zomaar op zat. En dat tot ik meen 8x. Daar zou dan ook weer wat decodering op zitten. Zou dat serieus minder impact hebben dan een scope probe? Als het maar op 1 datalijn de mist in gaat... dat is ook raar. Zitten daar ergens pull-ups / downs op waar wellicht om welke reden dan ook iets hemelen is? Waarschijnlijk zit er wel een nRESET lijn door dat hele board. Als je die laag trekt, dan zou alles van de bus af moeten blijven. Dan zou je redelijk makkelijk moeten kunnen controleren of die er zijn / het doen.
Tevens denk ik nog even aan een 8051 - voorloper van de 8086 en dus ook 80188. Die had pull-ups op alle bussen als ik het wel heb. De boel 'laag' krijgen was niet zo moeilijk (OC outputs). Om het snel genoeg hoog te krijgen (al lagen de snelheden toen niet zo hoog... het telde wel) werd een pin die wat moet 'driven' 1 clock cyclus hoog gemaakt (dus blijkbaar toch iets totem-pole-achtigs) en daarna HiZ - zodat de weerstand het 'hoog' moest houden.
Wat ik meestal met dergelijke schema's is een copietje maken, uit snijden en aan elkaar plakken. Kun je er ook lekker in krassen.
@mel: is dat niet gewoon een register wat je moet setten? Het ding heeft dacht ik alleen een A0 en A1... (misschien toch eens tijd om er een datasheet bij te pakken ipv. opgraven uit minimaal 30 jaar oud geheugen
).
jeronimo2003
Heeft al heel wat gesloopt en er soms iets van geleerd.
Op donderdag 8 januari 2026 12:20:21 schreef rew:
Idem. Ook ik ben voldoende bekend met dat ding om te weten dat ie "door een CPU geprogrammeerd kan worden". Daar slaat dat programmable op.
Progammable? Ik denk dat 'configureerbaar' beter past hier. Bij systeem-opstart wordt eerst de definitie van de poorten en hun functies geladen vanuit de CPU. 'Programmable' werd nogal 'losjes' gebruikt. Denk b.v. aan TTL programmable counters. Met draadjes en diodes kon je daar leuke dingen mee doen, maar er zat absoluut geen programmeerbare logica in.
Op donderdag 8 januari 2026 17:09:42 schreef EricP:
Weet je ook de clocksnelheid van die 80188?
Dat lijkt allemaal wel op een 8088 / 8086, het zou zomaar kunnen dat het sterke gelijkenissen heeft met een PC of XT. Daar was dat allemaal niet zo heel gevoelig. Immers, je kon er een kaartje bij prikken (ISA bus) waar dat ook allemaal zomaar op zat. En dat tot ik meen 8x. Daar zou dan ook weer wat decodering op zitten. Zou dat serieus minder impact hebben dan een scope probe? Als het maar op 1 datalijn de mist in gaat... dat is ook raar. Zitten daar ergens pull-ups / downs op waar wellicht om welke reden dan ook iets hemelen is? Waarschijnlijk zit er wel een nRESET lijn door dat hele board. Als je die laag trekt, dan zou alles van de bus af moeten blijven. Dan zou je redelijk makkelijk moeten kunnen controleren of die er zijn / het doen.Tevens denk ik nog even aan een 8051 - voorloper van de 8086 en dus ook 80188. Die had pull-ups op alle bussen als ik het wel heb. De boel 'laag' krijgen was niet zo moeilijk (OC outputs). Om het snel genoeg hoog te krijgen (al lagen de snelheden toen niet zo hoog... het telde wel) werd een pin die wat moet 'driven' 1 clock cyclus hoog gemaakt (dus blijkbaar toch iets totem-pole-achtigs) en daarna HiZ - zodat de weerstand het 'hoog' moest houden.
Wat ik meestal met dergelijke schema's is een copietje maken, uit snijden en aan elkaar plakken. Kun je er ook lekker in krassen.
@mel: is dat niet gewoon een register wat je moet setten? Het ding heeft dacht ik alleen een A0 en A1... (misschien toch eens tijd om er een datasheet bij te pakken ipv. opgraven uit minimaal 30 jaar oud geheugen
).
Ja, je hebt natuurlijk gelijk..
Ik zat in mn hoofd met 4 draden,maar dat waren er 2 van CS
Op donderdag 8 januari 2026 17:09:42 schreef EricP:
@mel: is dat niet gewoon een register wat je moet setten? Het ding heeft dacht ik alleen een A0 en A1... (misschien toch eens tijd om er een datasheet bij te pakken ipv. opgraven uit minimaal 30 jaar oud geheugen).
Dat ding had 4 adressen (duh: 2 adreslijnen). 3 waren er voor de 3 8-bits IO poorten (A, B en C), de 4e was een configuratieadres. Dat gaf natuurlijk maar 256 mogelijke configuraties, dus je kon niet iedere van de 24 IO's individueel configureren als input of output; er waren maar een paar mogelijke instellingen.
Wat de betekenis van die configuratie-byte precies was weet ik niet meer, ik heb er voor het laatste in 1993 mee gewerkt. 131 is blijkbaar ene helft output, andere helft input
; Date: 25 Sep 1993
; knip
cport dw 771 ; " controle- "
cbyte db 131 ;controlebyte(PA+PCh uitv. en PB+PCl inv.)
;knip
mov al,cbyte ;initialiseer de I/O kaart
mov ah,0 ;
mov dx,cport ;
out dx,ax ;
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op donderdag 8 januari 2026 18:48:41 schreef soldeersmurf:
Progammable? Ik denk dat 'configureerbaar' beter past hier.
Tuurlijk, in het normale hedendaagse jargon vinden we hem niet programmeerbaar. Maar toendertijd, ondertussen ongeveer 50 jaar geleden, vonden we het feit dat die poorten A, B, C door software geconfigureerd (geprogrammeerd!) konden worden om input danwel output te zijn, al heel heftig. Eerdere chips hadden dat soort programmeerbaarheid dus niet.
De 80188 is de opvolger van de 8088 / 8086. Die bood nauwelijks voordelen over de 8088/8086, dat haast niemand hem in een PC-achtige heeft gemonteerd. Hij is wel veel in "embedded" toepassingen terecht gekomen. Ik heb nog harddisks waar hij als "controller" in zit.
De 80286 begon eindelijk features te hebben dat je een echt OS kon maken. Dus met protectie tussen processen. Maar het was nog een 16-bit chip. Als ik het goed heb, had die een adresbus goed voor 16M, een upgrade van de 8088 die maar 1M kon adresseren. De 386 was pas de eerste 32-bitter.
In die tijd waren er twee "families" van hoe een systeembus kon werken. De ene was met een RD en een WR signaal. Waren beide inactief was er geen read of wite gaande. De andere was met een R/W signaal en een ander signaal wat aangaf of er iets moest gebeuren. Motorola vs Intel. Dat dit ding met 8(2) begint is een hint dat ie het Intel protocol volgt.
Tegenwoordig koop je LCD controllers (ST7789 b.v.) die je met pootjes kan configureren welke van de twee ie gaat volgen...
@iemand hierboven: Je geheugen is goed: Hij heeft maar twee adreslijnen. Ik heb het TMP8255A datasheet(toshiba) gedownload en snel doorgelezen.
fred101
Golden Member
www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur en maritieme en industriele PCBs
Dit is geen computer, het is een heel prijzige automatische weerstand brug voor kalibratie toepassingen. Ergens eind jaren 90 gebouwd. Hij is een jaar of 10-15 niet gebruikt. Eerst de display gerepareerd maar toen kwam dat schakel probleem boven water.
De voeding heb ik gereviseerd (voor de zekerheid) maar hij voldeed qua rimpel en hoogte al ruim aan de specs uit het SM.
Er zit een klein printje tussen de display + keyboard en het processor board. Dat staat niet in het manual. Daar zitten 22ohm weerstand IC's. ( 4116R-1 220, https://class.ece.iastate.edu/ee230/Datasheets/4116R%20Datasheet.pdf ) Die zetten zo te zien 22 ohm in serie met het signaal. Die ga ik eerst eens doormeten maar ik verwacht niet dat daar een probleem zit. Als ze open zijn zou de boel nooit werken en short lijkt me ook geen probleem het is maar 22 ohm. En in beide gevallen zou de boel nooit goed werken. Maar mogelijk een slechte soldering ofzo.
Ik heb een UM82C55A (komt zo te zien uit een PCB voetje) , Toshiba TMP82C55AP-2 en twee Siemens SAB82C55A-2-P. De laatste 3 zijn van onbekende herkomst, mogelijk nieuw (geen tin aan de pootjes en geen sporen van een IC voet maar goede gedraaide voetjes laten waarschijnlijk geen sporen achter.
Is er een test schakeling om die dingen op een breadboard te testen door gewoon handmatig pinnen hoog en laag te maken en dan met een ledje kijken of een poort werkt? of zeg ik nu wat doms
? (Anders misschien samen met een Raspberry pi pico?) Ik test soms logic IC's op een breadboard of mijn zelfbouw IC tester door pinnen handmatig te bedienen. Maar dat zelf bedenken voor dit IC is een brug te ver.
Op vrijdag 9 januari 2026 12:45:36 schreef fred101:
Is er een test schakeling om die dingen op een breadboard te testen door gewoon handmatig pinnen hoog en laag te maken en dan met een ledje kijken of een poort werkt? of zeg ik nu wat doms? (Anders misschien samen met een Raspberry pi pico?) Ik test soms logic IC's op een breadboard of mijn zelfbouw IC tester door pinnen handmatig te bedienen. Maar dat zelf bedenken voor dit IC is een brug te ver.
Er zit geen maximum aan de setup/hold tijden van dit ding, het is gewoon statische logica die geen klok nodig heeft.
Dus als je hem op een broodplank zet met switches voor de data en adresbus, en drukknopjes voor ~RD en ~WR dan zou je hem moeten kunnen configureren als output only (configuratiewoord opzoeken in de datasheet), en de outputs moeten kunnen instellen.
Eigenlijk is de aansturing hetzelfde als die van een HD4470 (nummer?) LCD controller in 8-bits intel mode. Alleen een adrespin meer.
EricP
mét CE
Dit is geen computer, het is een heel prijzige automatische weerstand brug voor kalibratie toepassingen.
Dat zal voor de opbouw van RAM, ROM, bus ed. geen moer uitmaken...
Daar zitten 22ohm weerstand IC's
Het lijkt erop dat men wat problemen met de bus heeft gehad, ringing ofzo? En zo dat wat onderdrukt heeft - de flanken worden wat minder stijl. Soort van 'red flag' - het zou zomaar kunnen dat men 'geknoeid' heeft. Dat het prijzig is, doet daar niks aan af.
Maar zo'n ding testen... Ja, het kan. Ik zou het inderdaad aan iets programmeerbaars hangen met een zut I/O.
Het resultaat is beperkt bruikbaar. Als iets 'niet goed' is, dan is dat duidelijk. Als je dat niet kan constateren, dan wil dat niet zeggen dat het 'wel goed' is. Het kan 'stuk' op timing op een bus om maar wat te noemen. En nogmaals: als er ergens anders een address decoder ellende veroorzaakt, dan kun je soortgelijke verschijnselen hebben.
[offtopic]Heel lang geleden werkte ik als loonslaaf bij een computer hardware toko. De pentium was 'hot'.
Wij hadden laptops die tot 133MHz zouden moeten kunnen. Maar... daarvoor moesten dan wel de busdrivers van ik meen Philips zijn (TI deed het niet). Dat is natuurlijk al een 'red flag': het zit niet lekker qua timing. Flipse heeft een iets andere propagatietijd waardoor het net wel loopt.
Dus we hebben wat mainboards omgebouwd. want hey... een 133MHz machine brengt nou eenmaal meer op dan een 120MHz machine. Alle techneuten hadden zoiets van 'niet verkopen, dit gaat gez**k opleveren'. Verkoop had zoiets: zelfde machine, andere processor, meer marge! Dus het werd toch verkocht. Dat ging best aardig tot de zon begon te schijnen. En toen stond de telefoon roodgloeiend. Klanten die belden dat die machine steeds onderuit ging.
De oplossing was simpel: keyboard eruit, dipswitch om (daarmee draaide het ding op 120MHz) en mag ik Uw naam en telefoonnummer, dan belt verkoop wel terug voor een financiële oplossing. Verkoop en directie over de z**k... jongens, leuk, maar je weet dat dit ellende oplevert. Toch verkopen. Los het maar op. Wij kunnen er niks mee.
Moraal van het verhaal: onder iets andere omstandigheden kan het wel werken en iets simpels als 5 of 10 graden temperatuurverschil kan het onderuit trekken.
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Er zijn al mensen met een 8255 icm Arduino aan het spelen geweest, zoals hier.
Kortom met een Arduino, een brokje code en een LA is dat ding zo te testen.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ja, arduino / AVR is kwa "hardware requirements" makkelijker: je zit al met 5V signaal niveaus. Met een pico zit je met de 3.3V signaal niveaus. Anderzijds, voor de toshiba staat duidelijk dat 2.2V voldoende hoog is om als "1" gezien te worden.
Het config register kan je NIET teruglezen. Dit ding dateert nog uit de tijd dat teruglezen in theorie niet nodig was omdat je in software kon onthouden wat je geschreven had. Dus kost hardware, dus dat doen we niet.
Je "doet het soms" klinkt toch eigenlijk als een slecht contact ergens, en niet een kapotte chip.
fred101
Golden Member
www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur en maritieme en industriele PCBs
Het probleem is dat er niks raars gebeurd aan de input kant, dus tussen display+toetsen en 82C55 moet het goed zijn. En aan de uitgangkant op het board zelf kan ik niet meten ivm ruimte gebrek. (PCB staat verticaal in een mu-metaal doos)
Daarom heb ik het hele board uitgebouwd, tantalen en afvlak elco's vervangen en de nodige onderdelen die in/aan het signaalpad zitten getest. Alle solderingen onder de microscoop gehad en bij de minste twijfel opnieuw gesoldeerd. Maar dat heeft niets geholpen.
Dus nu blijft over dat ik dan maar als laatste optie ga doen wat ik meestal afraad, op de gok IC's vervangen die een relatie met het signaal hebben. Dat wil zeggen de 82C55, een 74HC245 en een 74HC32 die beide na de 80C55 zitten. Maar ik verwacht er niks van. Ik heb in de datasheet gezien in combinatie met jullie info dat ik het IC wel kan testen op een breadboard maar aangezien het meestal goed werkt lijkt me dat het ding goed moet zijn en als hij wel fout zou zijn dan zul je net zien dat hij het op het breadboard net wel goed doet.
EricP, dat dat tussenboard met weerstanden er zit omdat ze al problemen hadden was ook mijn gedachte. Ik ontwerp nooit digitale schakelingen dus ik weet niet of dat hier speelt maar ik krijg hier het idee dat er ergens pull-up's of pull-downs zouden moeten zitten. (die zitten er niet of ze moeten op het displayboard zitten maar dat was een commerciële module en daar is geen schema van. ) En als er een open is dan zou zo'n data of adreslijn rotzooi kunnen reageren maar dan had ik random fouten verwacht en niet alleen het knop 2 menu item. En aan de ingang van de 82C55A gaat volgens de scoop niks fout. De uitgang data stuurt het hele grafische display aan dus als er een datalijn soldering brak zou zijn dan zou er veel meer fout moeten gaan.
Het zou zomaar kunnen dat het ding destijds vanwege dit probleem op de plank is geëindigd.