Taal:
ADC8. (Analoog Digitaal Convertor, 8 bits)
Gebruik:

Hiermee kunnen electrische spanningen gemeten worden door de computer in een schaalbereik van 0 tot 2,45 Volt met een nauwkeurigheid van 10 milliVolt. De print heeft bovendien 6 digitale uitgangen, die geschikt zijn voor het aansturen van bijvoorbeeld relais.

Toepassing is vergelijkbaar met het gebruik van een Voltmeter. Op basis van een gemeten waarde kan buiten de computer een aktie uitgevoerd worden, bijvoorbeeld als de temperatuurmeetwaarde te hoog is, schakelt een digitale uitgang van de print een ventilator aan.

Ook snelle electrische signalen kunnen geregistreerd worden door de computer. Zo is de print geschikt voor het digitaliseren van geluidssignalen en zelfs tekeningen en/of foto’s (zie PTC-PRINT nr, 46).
(Click op het plaatje)
(Click op het plaatje)
Technische specificaties:

De ADC8-print beschikt over een analoge ingang van 0 tot ca. 2,5 Volt met een resolutie van 8 bits en 6 digitale outputpoorten.

De analoge ingang is snel (A/D conversietijd is 5 microseconden) en de ingangsimpedantie is hoger dan 10 mega Ohm. De nauwkeurigheid van de conversie is absoluut 1 LSB en relatief 1/2 LSB (dus resp. ca. 10 en 5 mv) bij 25 graden Celsius. De zero offset bedraagt maximaal 1/2 LSB (ca. S mv).

Waarschuwing: De combinatie van snelheid en hoge ingangsimpedantie maakt de print gevoelig voor stoorpulsen door bijvoorbeeld overspraak. Daarom gelieve men met afgeschermde verbindingskabels te werken ofwel er moet een condensator over de ingang aangebracht worden, waarvoor de soldeergaten al aangebracht zijn.

De digitale outputpoorten zijn open collector uitgangen. Het spanningsverschil wordt daardoor gerelateerd t.o.v. +5 Volt, die dan ook op de kroonsteen 3 keer aanwezig is. Maximaal kan per uitgang 40 mA stroom afgenomen worden. Bij gebruik van alle 6 poorten gelijktijdig op deze stoomsterkte bestaat de kans, dat de computervoeding de benodigde 240 mA stroom niet leveren kan.

Schakeling: (De A/D-conversie)

 

Analoog-Digitaal omzetting vindt plaats door de te meten spanning te vergelijken met een deelspanning afgeleid van een referentie, dit is een nauwkeurige en constante spanningsbron (U7)., De deelspanning wordt gemaakt door een netwerk van weerstanden, die zodanige waardes hebben, dat 256 spanningsstapjes gemaakt kunnen worden. De vergelijking vindt bit voor bit plaats te beginnen met de meest significante bit en uiteindelijk wordt de waarde gevonden, die minder dan de minst

significante bit de te meten spanning benadert. De sequentie van de wel of niet ingestelde referentiespannings delen leveren een byte-waarde op, die zo goed als mogelijk de digitale waarde voorstelt van de aangeboden te meten spanning.

 

Uiteraard is het belangrijk, dat de referentiespanning (U7) goed bekend is en volgens specificatie mag deze nog variëren van 1,20 tot 1,25 Volt. Het meetbereik van de A/D-conversie is twee keer deze waarde, dus 2,40 tot 2,50 Volt en de mogelijke fout in het meetbereik is groter dan de meetspanning van de A/D-conversie. Daarom moet de referentiespanning bij voorkeur vooraf door meting bepaald worden, Dit kan het door meting over de aansluitpinnen van U7 of wellicht gemakkelijker tussen pinnen 17 (Vref) en 15 (analoog ground) van U6 (AD 7575), Bij aflevering van de ADC8 wordt de exacte referentiespanning op een etiketje op de print vermeld in mV. Gebruik deze waarde bij de programmering op de plaats

van Vref.

Adressering:

Adressering vindt getnverteerd plaats. Met de beide DIL (Dual In Line) schakelaars van de ADC8 print op de Off positie is het adres van de print 223 door de vaste verbinding op bit 5. Met de schakelaars kan hiervan gemaakt worden 222, 221 en 220. Nieuwe adressen zijn te vormen door verbinding te maken op de nog niet doorverbonden adresbits. De adressen die ontstaan door verbindingen op bits 2 en 3 zijn daarbij gereserveerd tot de ADC8-adresruimte. (deze loopt dus van 208 t/m 223)

Hoe te programmeren:

 

Bit O en 1 van de data-in worden gebruikt voor de aansturing van de A/D conversie (resp. READ en Chip Select). De conversie wordt gestart door beide waardes van 1 naar 0 te brengen en 5 microseconden later is de digitale waarde van de op de tulp-ingang aangesloten spanning beschikbaar op de digitale uitgang van U6 ‘AD 7575). Dit 8 bits getal wordt automatisch ingeklokt in de latch U4 en blijft hierin behouden tot de volgende waarde uitgelezen worden op de data-uit lijnen na adressering van de print. De bits 2 t/m 7 van de data-in worden gebruikt voor aansturing van de digitale uitgangen. Bij het bedienen hiervan moet men er steeds rekening mee houden, dat meeveranderen van bit O en 1 kan leiden tot A/D-conversie, wellicht ongewild. Een met een 1 aangestuurde uitgangspoort krijgt de waarde +5 Volt via de driver U8 en kan dus geen stroom leveren t‚o.v. de voedingsspanning. Daarvoor moet een 0 uitgestuurd worden.

 

Start de programmering van de ADCB-print door alle digitale uitgangen op 5 Volt te brengen door:

 

OUT X,255: OUT X+1,adres 

  • adres is het geïnverteerde printadres (223).
  • X is het nummer van de gebruikte koppel 1/0 poorten (X en X+1) van de computer en is gelijk aan 96 voor de P2000, 48 voor de MSX en 784 voor de PC.

 

De A/D-conversie wordt gestart door bit O0 en 1 op nul te brengen:

 

OUT X,252: A%=INP(X): SP=A%*Vref/255: PRINT SP: ‘print spanning

 

De waarde van de te meten spanning wordt als een getal ingelezen in A% en hieruit berekend rekening houdend met de waarde van de referentie-spanning Vref.

 

Indien men dít BASIC-programma vertaalt in machinetaal, moet tussen het starten van de conversie en het uitlezen van de waarde een wachtlus ingebouwd worden van ca. 10 mieroseconden lang zijnde de tijd, die nodig is om de conversie uit te voeren en de waarde in te klokken in de betreffende latch. BASIC is zodanig traag dat een wachtlus niet nodig is,

 

Het bedienen van de digitale uitgangen gebeurt door de betreffende uitgangen op O te brengen. Als er geen A/D-conversie nodig is, geldt:

 

OUT X,255-2^N

 

N is de gewenste uitgangsbit (2 t/m 7) Resumerend:

 

OUT X,252-2^4-2^7 stuurt de conversie aan en de outputpoorten overeenkomend met bit 4 en 7. OUT X,108 is hetzelfde.

Subroutines:  (voorbeeld middels een programma)

 

Dit programma is geschreven voor Personal Computers (PC's XT of AT).

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

 

Als kaartnummer is 32 genomen (het inverteren gebeurt in het programma). Het eerste programma is voor alleen het ADC-gedeelte, het tweede voor alleen het Driver-gedeelte en tenslotte het laatste voor beide.

Programma 1:


10 ’  Voorbeeldprogramma aansturen ADCB (ADC-gedeelte) Voor Personal Computers
20 ' Aansturing databus op adres 784 (DB=784)
30 ‘ UNIFACE kaartnummer is 32 (KA=32)
40 ' Door D.Kroonenberg d.d, 29-10-’90
50 '
60 '
70 '
80 DB=784
90 AB=785
100 KA=32
110 '
120 ‘ Invoeren referentiespanning (staat op ADC8 kaart)
130 '
140 INPUT "TYPE IN: PRECIESE WAARDE REFERENTIESFPANNING:"; VR
150 '
160 GOSUB 250: ' roep bedieningsroutine aan
170 PRINT "DE GEMETEN WAARDE = "; A%
180 PRINT "DIT KOMT OVEREEN MET :"; VR*A%/255;"V."
190 INPUT “OPNIEUW ? TYPE J/N";J$
200 IF J$="J" OR J$="j" then 160
210 END
220 '
230 ' Bedieningsroutine
240 '
250 OUT DB, 252: ' zet startbitpatroon voor ADC op databus
260 OUT AB, 255-KA: ' klok in op kaart (start ADC)
270 A%=INP (DB): ' lees gemeten waarde en geef aan A%
280 OUT DB, 255: ’ zet databus
290 OUT AB,0: ’ zet adresbus terug
300 RETURN

Programma 2:


10 ’ Voorbeeldprogramma aansturen ADC (Driver-gedeelte)
20 ' Voor Personal Computers
30 ’ Aansturing databus pp adres 784 (DB=784)
40 ' Aansturing adresbus op adres 785 (AB=785)
50 ’ UNIFACE kaartnummer is 32 (KA=32)
60 ' Door D.Kroonenberg d.d, 05-11-'90
70 '
80 DB=784
90 AB=785
100 KA=32
110 '
120 ' Invoeren aanstuurgetal
130 '
140 INPUT "TYPE IN: AANSTUURGETAL:"; DR
150 IF DR<0 OR DR>63 THEN 140
160 '
170 GOSUB 240: ’ roep bedieningsroutine aan
180 INPUT "OPNIEUW ? TYPE J/N’; H$
190 IF H$="J" OR H$="j" THEN 110
200 END
210 '
220 ' bedieningsroutine
230 '
240 OUT DB, 255- (DR*4): . ' get gecorrigeerd drivergetal op databus
250 OUT AB,(255-KA): ’ klok in ADC8-kaart (drivers aan)
260 OUT AB,0: ' zet adresbus terug
270 RETURN

Programma 3:


10 'Voorbeeldprogramma aansturen ADC (ADC en Driver-gedeelte)
20 'Voor Personal Computers
30 'Aansturing databus op adres 784 (DB=784)
40 'Aansturing adresbus op adres 785 (AB=785)
50 'UNIFACE kaartnummer is 32 (KA=32)
60 'Door D. Kroonenberg d.d. 04-02-’91
70 '
80 DB=784:
90 AB=785:
100 KA=32:
110 '
120 'Invoeren referentiespanning (staat op ADC8-kaart)
130 '
140 INPUT "TYPE IN: PRECIESE WAARDE REFERENTIESPANNING:"; VR
150 '
160 ’ invoeren aanstuurgetal
170 '
180 INPUT "TYPE IN: DRIVER AANSTUURGETAL:"; DR
190 IF DR<0 OR DR>63 THEN 180
200 '
210 GOSUB 320; ' roep bedieningsroutine aan
220 PRINT "DE 6 DRIVERS VAN DE ADC8-KAART ZIJN INGESTELD OP GETAL: ";DR
230 PRINT "DE GEMETEN WAARDE = ";A%
240 PRINT “DIT KOMT OVEREEN MET:”;: PRINT USING "+##, ###"; VR*A%/255;: PRINT "Volt”
250 PRINT
260 INPUT "OPNIEUW ? TYPE J/N"; H$
270 IF H$="J" OR H$="j" THEN CLS: GOTO 180
280 END
290 '
300 ’ bedieningsroutine
310 '
320 OUT DB, 255- (DR*4) -3: 'samenvoegen ADC en Drivergetal
330 OUT AB, 255-KA: 'start conversie en drivers aan
340 A%=INP (DB): ' lees gemeten waarde en geef aan A%
350 OUT DB, 255- (DR*4) : 'zet ADC terug (drivers blijven aan)
360 360 OUT AB, 0: 'zet adresbus terug
370 RETURN
---