Taal:
ADC12. (Analoog Digitaal Convertor, 12 bits)
Gebruik:

Dit is de ’grote broer' van de ADC8-print met 4 analoge ingangen met meetbereiken van 0 tot +5 Volt met een meetnauwkeurigheid van 1,2 mVolt Door de grotere preciesie geschikt voor exact meten.
(Click op het plaatje)
Technische specificaties:

De ADC12-print beschikt over vier analoge ingangen (0,1,2 en 3), die in een resolutie van 12 bits (4095 stapjes) een spanning van 0 tot 5 Volt kunnen omzetten in digitale getallen. De nauwkeurigheid bedraagt 1 LSB. De conversietijd bedraagt ca. 150 microseconden. De ingangen hebben geen 'sample and hold’. De ingangsimpedantie van de ingangen is beter dan 1 mega Ohm.

De ADC12-print bezit een nauwkeurige referentiespanning (IC U7) waarmee het meetbereik van de convertor wordt vastgelegd. Afregeling van het meetbereik is mogelijk met potmeter P1. Bij aflevering is de afstelling tot 0 - 5 Volt gebeurd, zodat de gebruiker niets behoeft af te regelen.
Voor de werking van de ADC12-print zijn 3 voedingsspanningen nodig (+5 Volt, +15 Volt en -15 Volt), die aangesloten worden op de 5-polige kroonsteen (hierop zit ook de -5 Volt en de aarde, die beide voorkomen op de uitgang van de UNIFACE-voeding.

Het storingsgevoelige A/D-conversie-deel van de print is aan de soldeerzijde afgeschermd met een verkoperd plaatje met het doel storingen door 'overspraak' te minimaliseren, De ingangen zijn BNC-connectoren en voor een storingsvrije precisie-meting is het belangrijk in de meetopstelling afgeschermde BNC-kabels te gebruiken.

Schakeling: (De A/D-conversie)

 

De meting van een spanning op een van de meetkanalen van de ADC12-print start met het geven van een conversie-opdracht op de databus en het adresseren van de print. In de conversieopdracht wordt aangegeven, van welk kanaal het meetgegeven dient te komen. Vervolgens dient het programma te wachten toto de conversie beëindigd is, Dit kan door een wachtlus te maken met een duur langer dan 150 microseconden. Het kan aok door van het conversieresultaat continu het meest significante byte uit te lezen. Hiervan worden alleen de bits 0 t/m 3 gebruikt voor het meetgetal. Bit 7 daarentegen geeft informatie over de status van de conversie: zodra dit bit overgaat van 0 naar 1 is de conversie befindigd en is de meetwaarde uitleesbaar.

 

Let op: meestal zal in BASIC-programma's het programma zodanig traag zijn, dat een wachtlus of testen op de conversie-bit niet nodig is,

 

Als de conversie beëindigd is, worden de twee bytes uitgelezen, die tesamen de 12 bits meetwaarde vormen. Het conversie-indicatie-bit wordt afgetrokken en de meetwaarde als getal berekend en eventueel omgerekend naar een voltage door te vermenigvuldigen met 5, 000/4095.

Adressering:

Bij het programmeren van de print dienen een aantal acties te worden uitgevoerd om de hardware te bedienen. De gemeten spanning wordt omgezet in een 12-bits getal en aangezien transport van data in het UNIFACE-systeem plaats vindt over een 8 bits brede data-bus, zijn twee bytes nodig om de meetwaarde in de computer te halen. Het uitlezen van de dataregisters van de A/D-IC moet dan ook in twee stappen gebeuren, waarbij de uitleesopdracht bepaalt, welk byte van de twee te lezen bytes opgehaald wordt.

Adressering van de ADC12-print geschiedt op de gebruikelijke wijze voor het UNIFACE-systeem, d.w.z. op één outputpoort van de computer wordt de print geselecteerd door het printadres uit te sturen. Dit wordt vergeleken in het adresdeel van de print met het adres, dat ingesteld is op de 6-polige switch en bij gelijkheid worden de data op de databus ofwel doorgestuurd naar de print via een tweede poort van de computer ofwel transport van data vindt plaats in tegengestelde richting. Het eerste wordt gebruikt voor het geven van opdrachten aan de ADCi2-print; het tweede voor het uitlezen van meetwaardes.
Hoe te programmeren:

In het voorbeeld programma gebruikt de computer voor het UNIFACE-systeem de poorten X en X+1. X is voor een PC 784, voor een MSX 48 en voor een P2000 96. De computers gebruiken voor input en output resp, de INP en OUT-opdracht (in BASIC).

Het te raadplegen ingangskanaal van de ADC12-print stellen we op 3 en het adres van de print wordt verondersteld KA te zijn.

De programmering in BASIC gaat als volgt:

100 OUT X, 228+3: ' conversie-opdracht (kanaalnummer = 3)

110 OUT X+1,255-KA: ’ print-aansturing: de opdracht bereikt nu het IC

120 OUT X,255: ’ alle bits terug zetten

130 OUT X,207: ' opdracht aan het IC om het meest significante
byte op de data-bus te brengen

140 A%=INP(X): ' A% wordt gelijk aan het MSB

Nu zou regel 140 herhaald kunnen worden tot bit 7 van het MSB een 1 is. De conversie is dan beëindigd. In BASIC is dit niet nodig.

150 OUT X,203: ’ opdracht het LSB uit te sturen
160 B%=INP (X): ' B% wordt gelijk aan het LSB
170 OUT X,255: ' geen opdracht meer

180 OUT X+1,0: ’ zet adresbus terug
190 ”

200 C%=(A% AND 15) *256+B%

210 *

220 ' De AND opdracht trekt bit 4 t/m 7 af van het MSB.

230 ’ De meetwaarde wordt vervolgens berekend in de integer C%
240 *

250 PRINT C%

Subroutines:  (voorbeeld middels een programma)

 

Dit programma is geschreven voor MSX computers.

 

Door het veranderen van de variabelen 'DB' (databus) en 'AB' (adresbus) in overeenkomstige waardes voor P2000 en PC zal het ook op deze types werken.

 

Als kaartnummer is 3 genomen (het inverteren gebeurt in het programma)

Als kanaalnummer is 2 genomen.

---