Google Analytics

Posts tonen met het label CPU tester. Alle posts tonen
Posts tonen met het label CPU tester. Alle posts tonen

23 april 2022

Toepassing: Een 6502 CPU tester

De 6502 Central Processing Unit (CPU), ontwikkeld door MOS is in 1975 op de markt gebracht. Veel home computers uit de jaren 70/80 maakten er gebruik van zoals de Commodore PET en VIC-20, de Acorn en Apple homecomputers, enkele Atari computers en nog vele andere.

Er bestaan ook veel varianten op de 6502 processor, zo is voor de Atari de 6502C, ook wel Sally of C014806 gemaakt. Deze versie bevat een extra Halt signaal op pin 35 waarmee de processor tijdelijk kan worden gestopt. De 6510 versie is gebruikt in de Commodore 64 en bevatte 6 extra I/O poorten en de 8502 is gebruikt in de Commodore 128. Door de extra I/O aansluitingen verschillen de 6510 en de 8502 aansluitingen nogal, ook de voedingsspanning zit op andere pinnen en daarom zijn deze IC's niet zo maar uit te wisselen. De 85xx serie verschilde van de 65x serie alleen in het fabricage proces.


Een originele MOS 6502 uit 1985.


Een moderne 65C02 van Western Design Center (WDC) uit 2022.


Een 6502C (Sally) voor de Atari uit 1980.


Een 6510 gebruikt in de Commodore 64 uit 1984.


Een 8502 gebruikt in de Commodore 128 uit 1988.


Aansluitingen van de vergelijkbare 6502 varianten

De verschillen in aansluitingen van de 6510 (c64) en de 8502 (C128)

Ten behoeve van het testen van oudere CPU's wordt tegenwoordig vaak gebruik gemaakt van zo genaamde "NOP testers". Deze eenvoudige testers maken alleen gebruik van de No Operation (NOP) instructie van de processor. Die instructie voert op zich niets uit en verhoogt alleen de adresteller. Door het aansluiten van leds op de adreslijnen wordt zichtbaar of er enige activiteit is. Het mag duidelijk zijn dat dit soort testers alleen een indicatie geven dat er iets op de processor gebeurt maar helemaal betrouwbaar is het niet.

Een betere benadering heeft de MOS6502/WDC65C02 Tester die een stap verder gaat en een testprogramma uitvoert die is opgeslagen in een 27C512 EEPROM. Hij is ontwikkeld voor het testen van de 6502 CPU en de varianten 65C02 en 6502C (Sally).

Rechtsboven zijn 16 leds geplaatst om de activiteit op de adreslijnen weer te geven en daaronder 8 leds om de databits weer te geven.
Met de dipschakelaars links kan de juiste klokfrequentie worden ingesteld op 1, 2, 4 of 8 MHz en met de schuifschakelaar kan gekozen worden voor de 6502 of de 65C02. Het geheel word gevoed door een 5V adapter aangesloten op de Mini USB aansluiting rechtsboven.
Met de resetknop onder kan het programma worden gestart. In de 6502 stand kan ook het verschil worden bepaald tussen een 6502 en een 65C02 (Sally). Dit kan door het indrukken van de "Halt Sally" knop. Gebeurt er niets dan is het een 6502 en stopt het uitvoeren dan betreft het een "Sally".

Het type 6502 staat toch op de IC opdruk? Dat klopt maar het komt echt voor dat vooral Chinese IC verkopers de ene processor verkopen voor een andere door de originele opdruk weg te polijsten en van een andere te voorzien om zo meer geld te kunnen vangen.

Bij een goed werkende 6502 CPU zullen de databit leds afwisselend oplichten zoals in de animatie hieronder.

26 maart 2022

Bouw: De "mini" Microcomp-2 een controversiële computer

In 1981 verscheen in Australië het eerste nummer van het elektronica tijdschrift Talking Electronics, opgericht en gepubliceerd door Colin Mitchell. 

Het eerste nummer van Talking Electronics

Het tijdschrift verscheen onregelmatig en was gericht op de beginnende elektronica hobbyist. Het  bevatte allerlei leuke ideeën voor het bouwen van diverse zelfbouw schakelingen. In mei 1989 verscheen het laatste nummer: 15.

Het Microcomp-1 ontwerp

In de delen 13 en 14 verscheen het ontwerp voor een computer gebaseerd op de Z80 processor met een minimum aan onderdelen: De Microcomp-1. Deze computer bestond uit slechts 3 IC's en bevatte 2 7-segment displays, een 4x4 led matrix, 8 uitvoer leds en een buzzer. Daarnaast bevat het een reset knop, twee bedieningsknoppen A en B en een 8 voudige dip schakelaar waarmee een programma kan worden geselecteerd.

Het printontwerp is enkelzijdig waardoor er veel draadbruggen nodig zijn en ook de led matrix dient aan de achterkant met draadbruggen aan elkaar te worden verbonden. De afmeting van de printplaat bedraagt ongeveer 17 bij 10 cm.

Er kunnen ook uitbreidingen op worden aangesloten zoals een telefoon kiezer, een morse trainer of een 4 cijfer display.

Het controversiële aan dit ontwerp is dat de Microcomp-1 geen RAM geheugen heeft, alleen een EPROM waarin het programma is opgeslagen. Dit beperkt de mogelijkheden van deze computer behoorlijk aangezien alleen de 11 interne registers en de 7 schaduw registers van de Z80 kunnen worden gebruikt voor het vastleggen van gegevens. Bovendien kunnen bepaalde Z80 instructies die met de geheugenstack werken zoals CALL/RET, LD (xx),yy, PUSH/POP en RST xx niet worden gebruikt.

Nu (2022) ruim 40 jaar later is Colin Mitchell nog steeds actief en biedt de meeste van zijn ontwerpen aan als kits via internet. De Microcomp-1 ontbreekt helaas en daarom heeft Brian Chiha met toestemming van Colin een nieuw kleiner formaat (12 x 6,5 cm) printplaat ontworpen: de "Mini" Microcomp-2.

Op deze nieuwe dubbelzijdige printplaat zijn geen draadbruggen meer nodig.

Deze PCB is als Shared Project te bestellen bij PCBWay.
Hoewel je voor deze computer niet direct een praktische toepassing verwacht, heb ik toch een nuttige inzet gevonden: een Z80 Central Processing Unit (CPU) tester.

Veel eenvoudige CPU-testers werken als zogeheten NOP-testers. NOP (No Operation) is een processorinstructie die zelf geen bewerking uitvoert en alleen de programmateller verhoogt. Ontwikkelaars gebruiken deze instructie vooral bij het testen en debuggen van software. Wanneer je leds op de adreslijnen aansluit, knipperen deze bij een correct functionerende processor. Zo controleer je echter slechts een klein deel van de CPU-functionaliteit.

Dit ontwerp pakt het grondiger aan. Het voert een breed scala aan processorinstructies uit, waardoor de werking van de Z80 veel uitgebreider wordt getest. Dat resulteert in een aanzienlijk betrouwbaardere en representatievere test.

De Bouw

Om het testen van Z80 CPU's te vergemakkelijken, soldeer ik een ZIF-voet in plaats van een standaard IC-voet.

De aansluitingen van een Z80 CPU

Het elektronica ontwerp is nog van voor het USB tijdperk en heeft een 9V wissel of gelijkspanning als voedingsingang. Ik ga dit ontwerp aanpassen met een 5V USB B connector en laat alle componenten die nodig zijn voor de oorspronkelijke voeding achterwege.

De buzzer rechtsonder die kan worden gebruikt om signalen op de print hoorbaar te maken ten behoeve van foutopsporing heb ik ook achterwege gelaten.

Links op de foto hierboven zie je een USB B connector op een breakout printplaatje (onderzijde), deze wordt gesoldeerd op de plaats van de 1000uF condensator (net boven de blauwe instel potmeter) en levert dan direct de 5V voedingsspanning. 

Er is dan geen ruimte meer voor de 1uF condensator die gebruikt wordt voor het reset signaal, dus die soldeer ik aan de onderkant. Ook wordt de in- en uitgang van de niet gebruikte 7805 spanningsregulator met een draadbrug doorverbonden (links). Een dikke dubbelzijdige sterk klevende tape zorgt voor fixatie van de USB printje op de hoofdprint (rechts).

De Software

In het Talking Electronics tijdschrift verschenen diverse software lijsten die door Brian Chiha zijn verzameld. Ook heeft hij zelf enkele toepassingen geschreven zoals spellen en deze gezamenlijk in een bestand ondergebracht die kan worden gebruikt om een 2732 EPROM te programmeren en is te downloaden op github.

De software is opgedeeld in twee geheugenbanken. Door middel van een miniatuur schuifschakelaar in het midden van de print kan tussen de twee banken worden geschakeld.

De eerste bank (schakelaar naar rechts) bevat de volgende programma's:

  • 99 op/aftel teller (dip schakelaar op 0)
  • Quickdraw (dip schakelaar op 2)
  • Scrollende tekst (dip schakelaar op 8)
  • Weergave geheugen (dip schakelaar op 20)
  • Led Demo 1 (dip schakelaar op 30)
  • Dobbelsteen (dip schakelaar op 47)

De tweede bank (schakelaar naar links) bevat de volgende software die door middel van een menu met knop A kan worden doorlopen en met knop B kan worden geselecteerd:

  • Blackjack spel
  • Mastermind spel
  • NIM spel
  • Tug 'O War spel
  • LED demo 2

Het programmeren van de 2732 EPROM bleek een behoorlijke uitdaging. Dit verouderde type EPROM wordt door zijn lange programmeer tijd en/of hoge programmeer spanning niet goed meer door moderne EPROM programmers ondersteund. De 2732A werkt met een programmeer spanning (Vpp) van 21V. en de 2732B met 12.5V.

De laatste versie van de populaire TL866II programmer kan nog maar tot 18V programmeren. Oudere versies van de TL866 konden wel tot 21V. Ook het programmeren van de 2732B versie op 12.5V lukt niet met de TL866II omdat de benodigde stroom niet kan worden geleverd en zelfs de langzaamste instelbare programmeer timing toch nog te snel blijkt voor dit type IC.

Uiteindelijk is het wel gelukt door een 2732A type te programmeren met behulp van een GQ-4x4 EPROM programmer. Deze programmer is echter wel ruim 2x zo duur.
De stoom geleverd door de 5V USB aansluiting bleek niet voldoende dus dient ook een externe 9V voeding op de programmer te worden aangesloten. De programmeer snelheid dient bovendien te worden verlaagd door Speed: 0 in te stellen.

Links de TL866II programmer en rechts de GQ-4x4

Het eindresultaat


Een werkende "Mini" Microcomp-2 met het op/aftel programma en een werkend geteste Z80 CPU.

Rest nu nog om software te schrijven die speciaal gericht is op het testen van Z80 processors door het uitvoeren van zo veel mogelijk instructies en bovendien softwarematig kan detecteren of het een NMOS of CMOS type Z80 betreft.