Een tijdje geleden kocht ik een oude doos met geïntegreerde schakelingen die al vele jaren was opgeslagen en deze bevatte een heleboel buizen met hele oude IC’s. In een koker zaten twee originele P8052-Basic chips en dat bracht goede herinneringen terug aan de tijd halverwege de jaren 80 van de vorige eeuw toen ik werkte als hoofd R&D embedded programmeur en hardware ontwerper voor een klein bedrijf dat veel gebruik maakte van de 8031-processor. Ik heb destijds zelf een kleine Basic-versie uitgebracht, maar de echte P8031-Basic was ongelooflijk krachtig en compleet. Ik besloot er een 3 chips basic computer board van te maken, de latch en geheugenchip had ik op voorraad, ik hoefde maar een paar 11.0592 kristallen te bestellen. Na twee avonden bedraden was het eindelijk klaar en bij mijn eerste poging om het te testen kreeg ik telkens een lijnnummerfout. Het leek erop dat de externe sram niet werkte en het was een kleine bedradingsfout. Daarna werkte het als een tierelier en heb ik het aangesloten op mijn VT100 terminal met de TTL-seriële ingang en nadat ik op de spatiebalk had gedrukt, kreeg ik de prompt en kon ik een klein basisprogramma schrijven. Op deze pagina laat ik je het schema zien dat ik heb gemaakt, wat bouwinstructies en wat documentatie en (bron)code.
Om de vraag te beantwoorden waarom we minimaal 3 chips nodig hebben, moet ik de 8031-bus een beetje uitleggen. Om ruimte te maken voor zoveel mogelijk I/O-pinnen besloot Intel het lage deel van de adressen en de 8 bit databus op één poort te multiplexen. Dit zou slechts 8 pinnen van de chip betekenen in plaats van 16 pinnen. Natuurlijk zou men een externe latch nodig hebben om de 8 adres bits te decoderen en de chip had een pin nodig om de uitvoer van het adres aan te geven. Poort 1 is eigenlijk een 8-bits data-uitgang en een 8-bits data-ingang en een 8-bits adresuitgang. De 74573-chip wordt vaak gebruikt als 8 bit-latch, dit slaat de 8 bits op (een beetje zoals een 8-bits geheugenchip) om de onderste 8 bits van het externe geheugenadres te leveren bij het lezen of schrijven naar extern geheugen. Dan hebben we een externe geheugenchip nodig, we kunnen alles gebruiken tussen 8 en 128 x 8 sram-chips, ik koos voor de 32 kb x 8 chip (62256) aangezien ik deze nog had liggen. Ik gebruik A15 als een chipselectiesignaal, de chipselectiepin is actief laag, dus de A15-pin selecteert de onderste 32Kb van de sram. Bij gebruik van andere chips moet u zelf uitzoeken hoe je de chip selecteert en de ongebruikte adreslijnen naar aarde legt. Dit is de minimale configuratie en alles wat we moeten toevoegen zijn een klein resetcircuit en het kristal oscillatorcircuit en klaar. Hieronder is mijn schema dat ik van mijn ontwerp gemaakt heb.

Bij de bouw van deze computer gebruikte ik een printplaat die dubbelzijdig is en niet te klein, zodat ik ruimte heb om het circuit te bedraden. Ik plaatst alle chips in sockets, om ze eventueel weer te kunnen hergebruiken en de chips te beschermen bij het solderen. Ik soldeer eerst de ic voetjes op het bord en laat er voldoende ruimte tussen voor de draden, daarna soldeer ik vier pin connectoren in een hoek, twee voor de voeding +5v en Gnd, en twee voor de Tx en Rx lijnen. Vervolgens soldeer ik het kristal bij de processorpinnen, laat ruimte voor de condensatoren en soldeer ik ze op de juiste pinnen van de processor ic voet. Dan doe ik hetzelfde met de reset condensator en weerstand.

Het volgende is het bedraden en solderen van alle voedingspanning kabels, ik gebruik rode draad voor de +5V en zwarte draad voor de ground. Ik gebruik vaste kern draad die in heel veel kleuren verkrijgbaar zijn. Ik vermijd het om over de soldeerpunten te gaan en gebruik graag een PCB-layout om de chips zo veel mogelijk te omzeilen. Hierna bedraad ik de besturing en chips select en R/W lijnen met grijs/wit en oranje draad. Dan neem ik gele draad en verbind al het adres lijnen en probeer ik de draden zoveel mogelijk bij elkaar te houden. Nu wordt het een beetje lastig omdat de AD lijnen zowel een adres als een data lijn nodig hebben. Ik gebruik blauw voor de data en groen voor de databuslijnen. Zorg ervoor dat u niet te veel soldeer gebruikt, anders kunt u twee pinnen kortsluiten.

Nu alle lijnen zijn aangesloten, is het tijd om te controleren op kortsluiting, neem een Ohm meter en plaats de pinnen op twee contactpennen dicht bij elkaar en doe dat voor alle pinnen. Als er geen kortsluiting is kunnen we de chips plaatsen. Controleer de voedinspanning lijnen ook op kortsluiting voordat u er 5 volt op zet. Ik gebruik een USB-voeding en ik knip een standaard USB-kabel en soldeer vrouwelijke headerpinnen op de kabel die ik op de print kan prikken, veilig en goedkoop. Maak nu verbinding naar een terminal of naar een pc met behulp van een TTL RS232-naar-USB-kabel en type een spatie. Als alles in orde is, zou u een standaard welkomstbericht moeten zien en een prompt. De downloadlink voor de basishandleiding staat onderaan deze pagina, veel plezier!
De P8052-Basic chip is zeer zeldzaam en niet meer verkrijgbaar, soms heb ik er een in mijn webshop. Maar daar hebben we een goed alternatief voor, Intel heeft de basiscode een tijd geleden freeware gemaakt en plaatste de broncode en hex-bestanden op hun FTP-site. Ik kan het niet meer vinden, maar gelukkig download ik alles wat interessant is en dus heb ik het originele zip-bestand op mijn website gezet om te downloaden. Het bevat de broncode en het binaire hex-bestand van de 8Kb Basic-interpreter. Als u een 8052 gebruikt met Flash eeprom zoals de 89c52 kunt u de hex-code in de microcontroller branden en heb je dezelfde chip als de P8052-Basic-chip. Je kunt deze kleine computer dus ook bouwen met moderne onderdelen. Om het makkelijk te maken heb ik het programmeren van een AT89C52 getest en het werkt prima, U kunt een voorgeprogrammeerde AT89C52 chip hier bestellen: https://www.heinpragt.nl/?product=at89c5
Nuttige links
- https://www.heinpragt-software.com/software_development/Intel_8052_basic_computer.html
- The Microcontroller Idea Book – Circuits and programs for the 8052-BASIC Microcontroller – Jan Axelson.
- The Microcontroller Idea Book – examples Disk
- P8052_Basic datasheet.pdf
- STC89Cxx_datasheet.pdf
- BAS52 Manual.
- De originele Zip file met sourcecode van de Basic52 interpreter van Intel.