A/D - D/A Konvertere

Relaterede dokumenter
A/D - D/A Konvertere

Lyd, højtalerprincip og harmoniske. Højtaler princip

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 %

ORCAD Digital U1A er en tæller. Den får clocksignaler ind på ben 1. På ben 2 er der en reset-funktion.

Design & Produktion. Valle Thorø. Sønderborg. ELektronik. ( Pendler-ordning gør det muligt! )

Øvelse. Øvelse. D.1 CMOS-øvelse. Under øvelsen laves notater, som senere bruges i den efterfølgende journal! Opgave 1:

Fasedrejning. Fasedrejning i en kondensator og betragtninger vedrørende RC-led.

TG 8. Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: Modtaget af: Søren Knudsen

Elektriske Signaler. Redigeret 21/ Analoge signaler: Før vi beskæftiger os med OPAMP s ses her lidt på analoge signaler!

Kompendium. Flip Flops og Tællere

Elektriske Signaler. Redigeret 19/ Analoge og digitale signaler: Før vi beskæftiger os med OPAMP s ses her lidt på analoge signaler!

Fasedrejning i RC / CR led og betragtninger vedrørende spoler

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Projekt - RoboNet Del Journal.

Thevenin / Norton. 1,5k. Når man går rundt i en maske, vil summen af spændingsstigninger og spændingsfald være lig med 0.

Arduino Programmering

Microcontroller, Arduino

Projekt. Analog Effektforstærker.

Microcontroller, Arduino

Af: Valle Thorø Fil.: Oscilloscopet Side 1 af 10

Noter til Komplekse tal i elektronik. Højtaler Bas, lavpasled, Mellemtone, Diskant

Figur 0.1: To kredsløb hvor en operationsforstærker bliver brugt som komparator. [1]

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

Orcad DC Sweep & Parametrsk analyse

Ugeopdelte Hjemmeopgaver

Analyseopgaver. Forklar kredsløbet. Forklar kredsløbet. 3.0 DC Adapter med Batteri Backup.

0.1 Modultest af hardware

Samtaleanlæg Projekt.

Operationsforstærkere

Analoge indgange og A/D konvertering. Analoge udgange

Strømforsyning +/- 12V serieregulator og 5V Switch mode

Kompendium om brug af kondensator til tidsudmåling i elektronik

Enes Kücükavci Roskilde Tekniske Gymnasium Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C

Metal Detektor. HF Valgfag. Rapport.

Sampling. Reguleringsteknik for Grundfos Lektion 6. Jan Bendtsen

Lektion 6 / Analog Arduino

Thevenin / mayer-norton Redigeret

Indholdsfortegnelse :

GSM SMS Modem MODEL: SA RTU-1 V1.01

Velkommen til. EDR Frederikssund Afdelings Almen elektronik kursus. Steen Gruby OZ9ZI

Boolsk algebra For IT studerende

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Kompendium. Gates og Boolsk algebra

LCD Character display Intro

wwwdk Digital lydredigering på computeren grundlæggende begreber

TinkerCad - Arduino simulator

J-fet. Kompendium om J-FET

Opgaver - PLC - analogteknik - forbindelsesteknik...3 Opgaver - PLC - analogteknik - programmering...9

Ved indkøring påtrykkes en kendt amplitude (HUSK 50 ohms afslutning) og displayet aflæses.

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.

Mellem mennesker Ny Prisma Fysik og kemi 9 - kapitel 9 Skole: Navn: Klasse:

Analoglyd for digitalister /finn holst 06

VHF radio muter CD/FM radio Version 1 af 23. nov. 2008

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde

Total systembeskrivelse af AD1847

Svingninger. Erik Vestergaard

Dæmpet harmonisk oscillator

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Boolsk algebra For IT studerende

Talsystemer I V X L C D M Hvad betyder halvanden??. Kan man også sige Halvtredie???

Øvelsesvejledning. Frekvenskarakteristikker Simulering og realisering af passive filtre.

Spektrumrepræsentation

El-Teknik A. Rasmus Kibsgaard Riehn-Kristensen & Jonas Pedersen. Klasse 3.4

Komplekse tal i elektronik

24 DC til DC omformer

Nedenstående opgaver er lavet til en Allen-Bradley PLC, men uden videre tilpasses andre PLC typer.

SVINGNING. 2 x 5,3 kw AC

Kompendium om brug af kondensator til tidsudmåling i elektronik

Orcad. Digital simulering

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

Logik Rapport - Alarm. Klaus Jørgensen Itet. 1a. Klaus Jørgensen & Ole Rud 9/ Vejledere: PSS & SKH

Laboratorie Strømforsyning

Kompendium. Gates og Boolsk algebra

Dansk Mink Papir. Teknisk brugermanual

Hos Podconsultsbutik kan du finde vandpumpen i 3 udgaver, hvilket har betydning for hvordan du samler og forbinder pumpen til din Micro:bit.

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.

Frekvensbestemmelse. HWP I1 Kursusarbejde Forår 2007

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B

DC-Motor Controller. Brugermanual

Undervisningsbeskrivelse for design & produktion - el

Genius laderegulator Monterings og brugervejledning

Nedenfor er tegnet svingningsmønsteret for to sinus-toner med frekvensen 440 og 443 Hz:

User Guide AK-SM 720 Boolean logic

Brugervejledning for Modtager RX 300

Hold 6 Tirsdag. Kristian Krøier, Jacob Christiansen & Thomas Duerlund Jensen Fag: ELA Lærer: Jan Petersen (JPe) Dato for aflevering: 29.

Intro til AVR. Mads Pedersen, OZ6HR

Motorline JAG (indbygget limit switch) Dansk brugermanual

Indholdsfortegnelse :

MP3 player med DMX interface.

Benjamin Franklin Prøv ikke at gentage forsøget! hvor er den passerede ladning i tiden, og enheden 1A =

Oversigts billedet: Statistik siden:

En Krystalstabil Oscillator til dit næste projekt

Hardware dokumentation Skrevet af. Gruppen. Version 1.0

WEA-Base Brugervejledning til vejetransmitter

Komplekse tal i elektronik

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning

En krystalstabil oscillator til dit næste projekt

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor.

NDHOLDSFORTEGNELSE VIGTIGT

db og Bodeplot Når man arbejder med forstærkere, skelnes mellem Effektforstærkning, - og Spændingsforstærkning.

Transkript:

3/1218 Kompendium / noter om signaler og A/DD/Akonvertering: Først ses her lidt på begrebet harmoniske signaler: Harmoniske Signaler Alle periodiske svingninger kan opløses i en grundtone plus eller minus et antal højere harmoniske frekvenser, med aftagende amplitude. Ethvert periodisk signal, dvs. et, der gentager sig selv, kan uanset kurveform opløses i en række sinustoner med forskellig frekvens, amplitude og fase. Fænomenet blev opdaget af en fransk matematiker, JeanBaptiste Joseph Fourier [Fur je ]. Det gav senere navn til Fourieranalyse og Fouriertransformation. At overtonerne kan have forskellig fase betyder, at de kan være forskudt i tid. Givet følgende kredsløb: VOFF = VAMPL = 1 FREQ = 1 V1 f V VOFF = VAMPL =.33 FREQ = 3 f3 V2 R1 V VOFF = VAMPL =.2 FREQ = 5 R2 f5 V3 R3 V R4 U1 R6 R5 Usum U2 V Den første generators frekvens er 1 Hz, og amplituden 1 Volt. Den anden er 3 Hz med en amplitude på 1/3 Volt. Og den 3. har 5 Hz og amplituden 1/5 Volt. De 3 generatorer giver flg. signaler: Side 1 af 47

3/1218 1.V.5V V.5V 1.V s.5ms 1.ms 1.5ms 2.ms 2.5ms 3.ms V(F) V(F3) V(F5) Time Den matematiske fremstilling er som flg.: f 4 A t sin t sin 3 t sin 5 t 1 3 1 5 hvor A er signalets amplitude, og er lig 2 f. Adderes signalerne fås summen af dem. Det ser ud som flg.: 1.V.5V V.5V 1.V s.5ms 1.ms 1.5ms 2.ms 2.5ms 3.ms V(USUM) Time Her vises alle signaler sat sammen! Side 2 af 47

3/1218 1.V.5V V.5V 1.V s.5ms 1.ms 1.5ms 2.ms 2.5ms 3.ms V(F) V(USUM) V(F3) V(F5) Time Og med 5 generatorer 1.V.5V V.5V 1.V s.5ms 1.ms 1.5ms 2.ms 2.5ms 3.ms V(F) V(USUM) V(F3) V(F5) V(R7:2) V(V5:) Time Med 7 generatorer 1.V.5V V.5V 1.V s.5ms 1.ms 1.5ms 2.ms 2.5ms 3.ms V(F) V(USUM) V(F3) V(F5) V(R7:2) V(R8:2) V(V6:) V(R1:1) V(R11:1) Time Side 3 af 47

3/1218 Det ses, at jo flere harmoniske signaler, der adderes, jo tættere kommen man på en ren firkant. Dvs. at ikkesinusformige signaler kan opløses i en grundsinus plus et antal harmoniske. Det betyder også, at skal et ikkesinusformigt signal forstærkes i en forstærker, skal forstærkeren kunne håndtere både grundtonen, og de højere harmoniske. Musikinstrumenter Baggrunden for at vi kan skelne forskellige musikinstrumenter og stemmer fra hinanden, ligger i den forskellige kombination af overtoner. Instrumenterne giver altså svingninger, der består af en grundfrekvens plus et antal harmoniske. Grundfrekvensen er jo den samme hvis instrumenterne spiller samme tone eller node. Fx kammertonen, 44 Hz!! Forskellen i lyden ligger i overtonerne. Skal en lyd fra et instrument med en given frekvens forstærkes i en forstærker, skal forstærkeren selvfølgelig kunne gengive grundtonen, men altså også den dobbelte frekvens, den 3dobbelte, den 4dobbelte osv. En god forstærker skal altså kunne håndtere betydelig højere frekvenser end 16 khz for at kunne gengive høje frekvenser, der ikke er sinusformede. Denne graf viser forskellige instrumenter og deres overtoner.: Illustrationen viser frekvensområderne, eller toneomfanget, for forskellige musikinstrumenter og sangstemmer. Til venstre grundtoner, den 2. harmoniske ( overtone ) og den 3. harmoniske. Nederst er også medtaget flyglets klaviatur samt nodesystemet. Side 4 af 47

3/1218 Og her en anden: Se den på interaktiv side: http://www.independentrecording.net/irn/resources/freqchart/ main_display.htm Her er vist frekvenserne ( grundtoner ) for et klavers forskellige tangenter: Ikkeperiodiske signalers rækkeudvikling: 2 A 1 1 1 f t sin t sin 2 t sin 3 t sin 2 3 4 En savtak ser således ud : 4 t 8 A 1 1 f t sin t sin 3 t sin 5 t 2 2 3 5 1 sin 7 t 2 7 En trekant : Side 5 af 47

3/1218 Jo kortere en firkantpuls, der skal gengives, jo langsommere klinger de højere harmoniske af. Dvs. at der ved computerbrug, hvor der jo forekommer firkantpulser, frembringes et stort antal signaler med meget høje frekvenser. Dette indikeres af denne scannede oversigt. For de forskellige signaler vises indholdet af harmoniske! Det ses, at frekvensspektret for firkantpulser, med lav dutycycle har næsten uendelig mange harmoniske, der næsten ikke klinger af i amplitude!! Side 6 af 47

3/1218 Her ses øverst uregelmæssige svingninger. Det vil vi opfatte som støj. Nederst en svingning, der gentager sig i hvert fald inden for et lille stykke tid. Vi kalder det lyd! Hvorfor lyder instrumenter forskelligt?? Her ses et billede af lydtryksvingningerne fra en Piano og en Clarinet. De spiller samme frekvens. Men lyder forskelligt. Her spilles den samme tone, = frekvens, på et piano og en klarinet. Grundtonen eller grundfrekvensen ses, og forvanskninger af den giver den specifikke lyd. Side 7 af 47

3/1218 http://chaos.nus.edu.sg/teaching/gem257/tutorials/tutorial%23%2gem257.ppt#265,22,timbre Profile of Tuning Fork, Flute and Clarinet For mere info: Søg: sound waves music instruments fourier harmonics ppt Her et skærmbillede fra et online program. Man kan manipulere med grundfrekvensen, og så forvanske eller ødelægge svingningen og høre lyden!! Kræver Java!! http://www.phy.ntnu.edu.tw/ntnujava/index.php?topic=17 Side 8 af 47

3/1218 Her ses lidt på analoge spændinger: Analoge spændinger kan antage uendeligt mange værdier. Fx imellem og 12 Volt, eller over og under Volt. Analoge signaler på en Vinyl LPplade: I grov udgave ser en analog vinyl grammofonplade sådan ud: En nål har skåret riller i vinylen. Imens pladen drejede, har nålen været påvirket af et (musik) signal, så rillen svinger i takt med musikken. De næste plader er lavet som et aftryk af den første plade! I de næste billeder er der zoomet ind på rillerne: Her to eksempler på nærbilleder af en LPplade Side 9 af 47

3/1218 En grammofonnål i en vinylplade. Gengivelse af information fra LPplader De første grammofonafspillere havde en nål, hvis vibrationer blev mekanisk overført til en tynd plade, som satte luften i bevægelse. Altså skabte lyd. Lyden blev ført igennem et rør og ud af en tragt i retningen af lytteren. http://keithwright.ca/thorens/radiophonomania/tranradiophono.html Pladen lå på en pladetallerken, der blev drejet rundt af en spiralfjeder med en rimelig konstant hastighed. Fjederen kunne strammes op med et håndsving. Side 1 af 47

3/1218 Billede af en moderne grammofon: Pickup en sidder på en arm, der kan styre pickup en og følge med ind mod midten af pladen, efterhånden som numrene bliver færdigspillet. Pickup en genererer et lille elektrisk spændingssignal baseret på nålens svingninger. Dette signal skal så forstærkes og føres til en udgangsforstærker. Principperne i Moving Coil og Moving Magnet pickup. http://electronicdesign.com/components/whatsdifferencebetweenmovingmagnetcoilandironcartridgesturntables http://www.djworx.com/skratchworx/reviews/ortofon_manufacture.php http://en.wikipedia.org/wiki/file:moving_coil_cartridge.jpg Der er to principper. I det ene vil nålens svingninger overføres til en lille magnet, som dernæst genererer spændinger i stationære spoler. I det andet er det modsat. Her er det spolerne, der vibrerer, og via et stationært magnetfelt skaber elektriske spændingssvingninger. Side 11 af 47

3/1218 Herover et par billeder af princippet i informationen i rillerne i en vinylplade: Det ses, hvordan der er stereoinformation i rillen. Når pladen afspilles, kører en nål igennem rillen. Dens vibration vil være som det originale musiksignal. Vibrationen overføres fx via en spole og et magnetfelt til en spænding, der forstærkes, og sendes ud i højtalere. På skitsen til højre ses, at der kan være 2 retninger på vibrationen. Dvs. der kan være stereosignal gemt i rillen. Støv, fnug og ridser giver selvfølgelig anledning til støjsignaler oveni det ønskede musiksignal. Digitale signaler. I den digitale verden eksisterer der kun ere og 1 ere. Fx gemt som prikker og streger på en CDplade. Prikkerne og stregerne angiver et antal bit, der igen angiver et tal, som omformes til en spænding, der skal forstærkes og sendes ud til en højtaler. Dvs. at et signal gemmes som en række tal, der på grafen herover repræsenterer hvor langt man er oppe eller nede ad Yaksen, svarende til en øjeblikkelig spænding. Men som det ses her, er der en række problemer. Skal man kunne udtrykke et uendeligt antal spændinger, skal der et uendeligt antal talværdier til, og dermed et uendeligt antal bit. Yderligere må det være væsentligt, hvor ofte der udregnes en talværdi for musiksignalet. Dette kaldes Sampling Rate. Side 12 af 47

3/1218 Antal bit. Opløsning. Opløsningen, dvs. nøjagtigheden af et signal beskrevet med binære tal, afhænger af antallet af bit. Her er der vist et eksempel med 4 bit. Der er med 4 bit mulighed for at beskrive op til 16 forskellige spændinger. De næste eksempler er fra: http://communication.howstuffworks.com/analogdigital3.htm Et analogt signal kunne se således ud: Sampling Rate. Et analogt signal måles et bestemt antal gange pr sekund. Og den målte værdi udtrykkes som et tal. Digitalisering betyder, at man omsætter et analogt signal til en repræsentation på digital form. Dvs. en spænding udtrykkes som et tal. Hvis det oprindelige analoge signal skal beskrives helt nøjagtigt, skal man sample med meget kort interval, og med mange bits opløsning. Ovenfor vises et analogt signal, det er den røde graf. Side 13 af 47

3/1218 Og med de grønne søjler vises hvordan signalet vil se ud, når talværdierne senere skal gengives. Når det gemte signal senere gengives, mistes alle de mellemliggende værdier mellem samplingerne. En meget større opløsning både i antallet af bit, og i samplingsrate medfører et meget bedre beskrivelse af det oprindelige signal. Sampling med dobbelt frekvens. Her ses på sampleratens betydning: Eksempel: Sampleraten for viste signal er meget større end signalets frekvens. Eller sagt på en anden måde: Tiden mellem samples er meget kortere end signalets periodetid, T. De sorte pletter viser, hvor der er taget samples. Her er der ikke så mange samples pr hel svingning. Side 14 af 47

3/1218 Og her ca. 1 sample pr bølgelængde. ( T ) Det, der skal bemærkes, er, at når signalet gengives, vil der fremkomme en meget lavere frekvens end det oprindelige signal. Derfor er det vigtigt, at samplefrekvensen er større end signalets frekvens. Her et andet eksempel på for lav samplingsfrekvens: Tommelfingerregel: Der skal bruges mindst den dobbelte samplingsfrekvens, som signalets frekvens. http://www.ee.nmt.edu/~rison/ee38_spr12/notes/lecture_22.pdf http://www.asel.udel.edu/speech/tutorials/instrument/sam_rat.html CDskive. Side 15 af 47

3/1218 Hvis man optager noget musik, gemmes det i dag fx på en CDskive. Det er 1 ere og ere, der gemmes. Her ses en grov beregning over antallet af bytes, der er gemt på en CD med musik i 74 minutter: Der samples med 44,1 KHz. 44.1 samples/(channel*second) * 2 bytes/sample * 2 channels * 74 minutes * 6 seconds/minute = 783,216, bytes Altså mindst 783 Mbyte skal gemmes på en CDskive. Oversampling: Oversampling kan forbedre lyden fra en Cdafspiller. Det foregår ved, at afspillerens computer beregner mellemliggende værdier imellem de samplede ved hjælp af Interpolation. Dvs. at den 44,1 khz firkant, der normalt overlejrer signalet fra CDafspilleren, vil få en meget højere frekvens ved oversampling. Det betyder, et simpelt RCfilter meget lettere kan fjerne samplingsstøjen, uden at påvirke selve signalet. Side 16 af 47

3/1218 Eksempel: Her er vist et eksempel på et signal fra en CDafspiller. Det var oprindeligt en sinus, men er efter digitaliseringen med 44,1 khz, blevet hakket. Et digitalt signal hentes i fx fra en CD eller en RAM og konverteres til analog. Udgangssignalet ses til højre. Efter Digital til Analogkonverteren kommer signalet igennem et lavpasfilter, der dæmper de høje frekvenser. Det digitale signal før og efter filtrering. Det firkant hakkede fra A/Dkonverteren og signalet efter en filtrering i et RCled, et lavpasfilter. Side 17 af 47

3/1218 Med 4dobbelt oversampling i afspilleren får samplingsfirkanterne en meget højere frekvens. Dermed bliver det meget lettere at filtrere de uønskede signaler væk med et simpelt RCfilter.! 8 gange oversampling. Dvs. at man med et simpelt RCfilter kan fjerne den nu meget højere sampling støj frekvens. Dette ses herunder: Den stiplede skrånende linje viser et Bodeplot for et RCled. Bodeplottet har sit knæk ved 2 KHz. Dette vil ganske vist medføre en fasedrejning på 45 grader i knækket!! Men samplestøjen, der ved oversampling fx ligger på 352,8 khz fjernes meget lettere. Samplerate for et telefonsignal: I en telefon overføres frekvenser fra 1 Hz til 3 khz. Derfor bør sampleraten være på 8 khz. Side 18 af 47

3/1218 A/DD/A konvertering Digitale komponenter kan ikke håndtere analoge signaler, bortset fra, at en komparering kan siges at være en form for digitalisering. Det kan ske med en komparator, evt. bygget af en, eller fx en NANDgate med hysterese. Men dette giver kun en 1bits opløsning. Ønsker man fx en 8bits opløsning må der mere sofistikerede løsninger til. Det kan illustreres med følgende skitse: LSB VCC 3 R1 2 Analog til Digital Bit 1 MSB Bit 7 På omformerens udgang optræder et binært tal. I dette tilfælde et 8bits tal. Dvs. værdier fra til 255D eller fra B til 11111111B. Hvis indgangssignalet fx går fra til 1 Volt, kan det følgelig indrettes således, at 8 nuller svarer til en indgangsspænding på Volt, og 8 1 ere til 1 Volt. Altså, hvert tal på udgangen repræsenterer et 1 spring på 39,2 mvolt. Hvis potentiometeret på indgangen langsomt skrues fra til 1 Volt, 255 vil udgangen bevæge sig fra 8 nuller og opad i det binære talsystem som en 8 bit tæller. Hver gang indgangsspændingen stiger ca. 39 mv vil tallet på udgangen stige med 1. Et eksempel på en digitalisering. Her ses et indscannet billede af et indgangssignal, der er digitaliseret til 4 bit. Når de 4 bit talværdier senere igen konverteres til analog spænding, ( det højre billede ) ses at de analoge spændinger antager en trappekurveform. En opløsning med 8 bit ville gøre opløsningen meget bedre. Side 19 af 47

3/1218 Opbygning af A/D konvertere. Flashkonverter: Dette eksempel viser et diagram, hvor der er brugt komparatorer, og en referencespænding. Som denne skitse indikerer, vil man ved større bitopløsninger komme op på rigtig mange modstande og komparatorer i en converter af denne type. Til en konverter med bare 3bit skal bruges 8 referencespændinger, og 8 komparatorer. Dette princip er det hurtigste til at lave en konvertering! VCC 3 R1 2 1 Ureference R2 R3 R4 R5 R6 R7 R8 R9 R1 5 U8 U7 U6 U5 U4 U3 U2 U1 8 til 3 konverter Bit 2 Bit 1 Bit Men princippet bruger mange komponenter, og bruges kun ved lav opløsning, dvs. <= 8 bit. Kode Modstandsnetværket skaber 2 n 1 spændingsniveauer. Opløsningen er: Uref n 2 1 1 11 1 1 Delta Usignal Side 2 af 47

3/1218 Det er meget vigtigt, at modstandene i modstandsnetværket er ret præcis, at de genererede referencespændinger er nøjagtige. Kode For at lave bedre overensstemmelse mellem faktisk værdi og konverteret værdi, bør første Delta værdi kun være den halve værdi: 1 11 1 1 Delta Usignal Digital til Analog konvertere Her ses et diagramsymbol for en Digital til Analog konverter: Fra venstre tilføres et antal bit: Hvis bittene ind i en DAC kaldes d1, d2,.. dn, hvor MSB er d1, fås, idet Uout = D * Uref: ( d1, d2, osv. er enten 1 eller ) d1 d2 d3 Uref Uout dn Gnd 1 2 3 D d1 d2 d3 d n 2 2 2 2 n U out D U Hvis Uref er 1 Volt, medfører det, at der fås 1 / 2 n amplitude muligheder. ref Eller måske en mere logisk måde at udregne udgangsspændingen på: U Out = ( D 7 2 D 6 4 D 5 8 D 4 16 D 3 32 D 2 64 D 1 128 D 256 ) U Reference Graduerede modstande: Side 21 af 47

3/1218 Ved store opløsninger er det nødvendigt med ret store modstandsspring, og ret nøjagtige modstandsstørrelser. Anvendes derimod et andet princip, opereres der kun med 2 modstandsstørrelser: Her er et eksempel på opbygning af en Digital til Analogkonverter, hvor der er brugt forskellige størrelser af modstande.: Uref 1 2 1 2 1 2 1 2 1 2 R1 R2 R3 R4 R5 R11 4k 8k 16k MSB 2^4 2^3 2^2 2^1 LSB 2^ U9 Uout Negativ I kredsløbet indgår en række switche, og nogle graduerede modstande. Når en switch er ON, løber der en strøm mod nul, dvs. virtuel stel. Strømmen må fortsætte op gennem R11, mod Uout, som må være negativ. Derfor følger, at jo flere switche der er ON, jo mere negativ vil Uout være! I stedet for switchene kunne udgangene i fx en CMOStæller bruges. Det ses, at med store opløsninger, dvs. større antal bit, skal der ret store modstande til for mindst betydende bit, LSB. R2R netværk Dette problem er løst med følgende kredsløb. Der er anvendt et såkaldt R2Rnetværk, der kan opbygges af almindelige modstande, men også fås færdig i en SIL, ( Single in Line ). R2RModstandene er placeret i et SILhus ( Single In Line ) Se fx: http://www.bourns.com/pdfs/r2rap.pdf Side 22 af 47

3/1218 Et R2Rnetværk består af 2 størrelser modstande. Fx en værdi på 1K og den dobbelte værdi, 2K. R1 R2 LSB R3 R4 R5 R6 R7 R8 MSB U1 Uout Uref Konvertere på markedet har en opløsning på mindst 8 bit, men for overskuelighedens skyld er her vist en 4 bit udgave. Ved hjælp af en kombination af switchene kan der frembringes i alt 2 4 forskellige udgangsspændinger. Er alle switche på, dvs. mod højre, er udgangsspændingen =. Switches MSBswitchen ON, vil der løbe en strøm i R8. Den løber gennem R7 og forgrener sig så. Ses på modstandene fra venstre, ses, at R1 og R2 er parallelle. Altså = 1 K. I serie med R3 giver det 2 K. Og så fremdeles. Det betyder i alt, at strømmen gennem R8 = 2 K går videre ind i ialt 2 K. gennem R7 på 1 K og resten, der også udgør 1 K. Alt i alt vil spændingsdelingen mellem R8 og R7 resten give halv spænding til operationsforstærkeren, der blot er koblet som 1 gangs forstærker. Vha. beregninger med superpositionsprincippet, Thevenin og Mayer Norton, eller ved brug af ORCAD Bias Voltage simuleringer, kan de forskellige kombinationer af switchene udregnes. Det giver i alt 16 forskellige spændinger på udgangen med 4 kontakter. Her er vist en ORCADsimulering hvor kontakterne er indikeret med påtrykte spændinger. Med MSB = 1, må udgangsspændingen være det halve af den påtrykte spænding. R2RNetværk 312.5mV R1 V V Vdc 1 R6 R2 V V2 Vdc 625.mV R7 R3 2 V4 V Vdc 1.25V R4 4 V3 R8 5Vdc 8 2.5V R5 5.V V1 U3 2.5V Side 23 af 47

3/1218 R2RNetværk 781.3mV R6 R1 V V 1 R2 V V2 Vdc Vdc 1.563V R3 2 V4 R7 5.V 5Vdc 3.125V R4 4 V3 R8 5Vdc 8 3.75V R5 5.V U3 3.75V Gøres nu også den næst mest betydende bit høj, stiger udgangsspændingen. V1 Opløsningen er 5/16 =,3125 Volt. Udgangsspændingen skal altså være 5 16 12 = 3,75 Volt Strømmen fra 5 Voltskilden fordeler sig i to lige store dele. Fordi, den ser ind i lige store modstande til begge sider efter R2. R2RNetværk R6 R1 R2 R3 R7 R4 R8 R5 R11 R12 U1 Strømmen gennem R6 deler sig igen i to lige store dele, Den ene gennem R7, den anden gennem R3. 5Vdc 1 V2 LSB Vdc 2 V4 Vdc 4 V3 8 Vdc V1 MSB Dvs. strømmen halveres for hvert led, og strømmen gennem R11 er meget lille i forhold til gennem R2. Derfor giver LSB kun el lille bidrag til strømmen gennem R11 og dermed udgangsspændingen! Opgave: Opbyg ovenstående i ORCAD. Som Uref bruges fx VDC, der sættes på 5 volt. Prøv forskellige bitværdier, og regn efter. Øvelse: Opbyg en 8bit CMOStæller. Brug fx en funktionsgenerator til at give pulser. ( Tjek pulserne med scoopet, inden de tilsluttes tælleren. ). Side 24 af 47

3/1218 Monter et R2Rnetværk på tælleren, og mål på netværkets udgang med et scoop. R2Rnetværk med inverterende Mange steder ser man i stedet for ovenstående kobling med noninverting, en opstilling, hvor en inverting er brugt. Det betyder, at man belaster netværket med modstanden før den inverterende indgang. Det betyder også, at der trækkes en strøm ud af netværket. 2.5uV R12 R2RNetværk 28.3mV R6 R1 R2 416.7mV R7 R3 833.3mV R8 R4 1.667V R5 R11 U1 3k R13 2.5uV U2 R14 2.5V V V V 1 2 4 8 V V2 V4 V3 Vdc Vdc Vdc 5Vdc 5.V V1 Strømmen fra den mest betydende bit løber igennem R5, og deler sig i 2. En gren løber mod højre mod virtuel stel gennem R11, den anden mod venstre gennem R8. Regnes de næste modstande sammen til venstre for R8, fås værdien 1K. Dvs. strømmen mod venstre også ser ind i 2 K, og de to strømme er altså lige store. Strømmen op gennem R5 skal altså videre gennem en modstand på 1 K ( Summa R8 parallel med R11 ). Spændingen mellem R8 og R11 vil altså være ( 5 / 3K ) * 1 K = 1,667 V. Hvis udgangsspændingen skal være 2,5 Volt efter de to s skal gain være 1,5 gange. Her ses et eksempel, hvor alle 4 bit er høje. R2RNetværk 3.125V R6 R1 R2 3.75V R3 R7 3.75V R4 R8 3.125V R5 4.688uV R11 U1 R12 3k R13 4.688uV U2 R14 4.688V V 5.V 5.V 1 2 4 8 5.V V2 V4 V3 5Vdc 5Vdc 5Vdc 5Vdc 5.V V1 Udgangsspændingen skal altså være 5 16 15 = 4,6875 Volt Side 25 af 47

3/1218 8 bit R2Rnetværk. Her en skitse af et 8 bit R2Rnetværk. Øvelse: Opbyg følgende kredsløb i ORCAD. Digclock R11 OFFTIME =.5uS DSTM1 ONTIME =.5uS CLK DELAY = STARTVAL = OPPVAL = 1 Stim1 DSTM2 S1 Clock V Reset 1 U2 Q1 INPUTQ2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q1 Q11 Q12 RESET 11 9 7 6 5 3 2 4 13 12 14 15 1 CD44B Resetpuls R1 R7 R8 R9 R2 R3 R4 R5 R1 Uout I light versioner af ORCAD vælges tælleren 74393. V Reset kan sættes til at give en kort puls, eller stelles, men så skal man ind i Simulation Settings > Output??? og tvinge alle flipflops til at starte på. Side 26 af 47

3/1218 Grafen burde se nogenlunde sådan ud: De små glitches stammer fra tællerens udgange, der ikke skifter nøjagtig på samme tid. De kan evt. fjernes med en lille kondensator. RESET 5.V 2.5V V s 1us 2us 3us 4us 5us V(U) Time Lyd eller signal fra en EPROM ( Alarm, det brænder ) EPROM. Erasable Programmable Read Only Rom. Slettes med intens UVlys. 2764, betyder 64 KBit, dvs. 8 KByte. Her ses gennem Kvartsvinduet. Se i mikroskop: https://www.youtube.com/watch?v=cwl4p36r4ls https://www.youtube.com/watch?v=fxv3jos1uy8 Side 27 af 47

3/1218 Ses på data på hylderne i EPROM en kunne det se således ud. Her er vist et eksempel på en oscillator, der tæller op og stepper sig gennem hylderne i en EPROM. Forskellige A/D konverterprincipper: Ofte bruges en D/Akonverter bygget ind i en A/DkonverterIC. Der er fremstillet et antal forskellige typer. De vigtigste gennemgås her.: Rampetæller AD Konverter: Side 28 af 47

3/1218 Oscillator Osc U3 Uin U1 2 3 AND2 1 Clk Reset Komparator Binær Tæller 8 x Digital ud Ux R2R Netværk Efter reset vil tællerens udgang være. Dette betyder, at spændingen fra R2Rnetværket mærket Ux er Volt. Ux stiger eftersom tælleren tæller pulser fra oscillatoren. Komparatoren sammenligner den påtrykte spænding, Uin, med spændingen fra R2Rnetværket. Når Ux bliver højere end Uin lukker ANDgaten ikke flere klocksignaler gennem til tælleren. Tællerens værdi er nu et udtryk for Uin. Uin Ux t Dual Slopekonverter: I en Dual Slope konverter udnyttes, at det tager tid at oplade en kondensator gennem en modstand. C Oscillator Uin U reference SWitch 1 R U2 Integrator 2 U1 Komparator 3 2 3 AND2 1 U3 Reset 4 Tæller Clock MSB LSB På indgangen af den første, U2, vil der være volt. Strømmen, der kommer fra Uin vil gå gennem modstanden R, og op gennem kondensatoren C. Venstre side ophober ladninger. Og for ikke at spændingen skal stige på den inverterende indgang, må højre side af kondensatoren skulle have mere og mere negativ spænding. Side 29 af 47

3/1218 Dette sker så længe tælleren er på MSB. Bliver den høj, starter de øvrige bit jo fra, og switchen skifter ned til den negative referencespænding. Det får strømmen til at gå modsat vej gennem modstanden R. Strømmen kommer oppe fra de ophobede ladninger i kondensatoren. Spændingen på kondensatorens højre side vil stige, og når den når over nul, vil komparatoren U1 stoppe klockpulserne til tælleren. Tællerens output er nu et udtryk for indgangsspændingen!! Jo højere indgangsspændingen er, jo mere bliver kondensatoren opladet, og jo længere tid vil det tage at aflade den igen. Altså, man lader kondensatoren i en kendt tid, og måler så tiden, det tager at aflade den igen. Når kondensatoren lades, sker det med konstant strøm. Derfor gælder følgende formler: Q U C og Q I t Strømmen I er givet ved: Herved fås: I = U Signal R U C = U Signal t R Og endelig kondensatorens opladning: U C = U Signal t R C Bemærk, her er kondensatorens opladespænding vist positiv. Usignal Der lades en konstant tid, og så måles der hvor lang tid det tager at aflade den igen med en kendt strøm. I = k t1 = opladning Fixed tid t2 = afladning Fixed strøm Spænding til frekvenskonverter. En spænding til frekvensa/dkonverter bygger på at jo højere indgangsspænding, der påtrykkes, jo flere gange kan man nå, at oplade en kondensator til en bestemt spænding inden for en given tid. Side 3 af 47

3/1218 Når en bestemt opladespænding er nået, kortsluttes kondensatoren, og opladningen gentages. Opladningen går hurtigere ved højere indgangsspænding. Herved vil antallet af opladninger i løbet af en bestemt tid sige noget om indgangsspændingen. Reset 2 1 Uin 1 R 2 C U2 Integrator 3 U1 Komparator Impuls former 4 6 2 3 U3 AND2 1 5 Tæller U reference Count_Enable Timebase & Kontrollogik Reset 7 Spændingen på punkt 3 går retlinet nedad. Når den når den negative referencespænding, går komparatoren høj, og sender en puls til tælleren og til pulsformeren, der kortslutter kondensatoren! Herefter gentages forløbet.! Antallet af pulser til tælleren i løbet af en bestemt tid, en timebase, er ligefrem proportional med indgangsspændingen! Successiv approximationsprincippet I en successive approximations konverter startes med at sætte MSB høj. En komparator sammenligner så den spænding, der kommer ud af R2RD/Akonverteren. Er spændingen lavere end den spænding man vil måle, fortsætter MSB med at være høj, ellers resettes den til. Herefter prøves med næste bit. Så hver bit sættes høj eller lav, alt efter om den genererede spænding er højere eller lavere end inputspændingen. Når alle bit er gennemløbet, vil det binære tal være et udtryk for inputspændingen. Side 31 af 47

3/1218 Skitse over det indre i en ZN449 A/D konverter. Uin U1 Princippet svarer til at man skal gætte et tal mellem 1 og 1. MSB R2Rnet Switches LSB Komparator Først gætter man på 5, og får at vide, det er højere. Så på 75, og får at vide, det er lavere. Derefter midt mellem 5 og 75, fx 62, osv. FlipFlop Clok Skifteregister Sample & Hold kredsløb. For at undgå, at Uin ændres under et konverteringsforløb, anvendes et Sample and hold kredsløb. Den viste kontakt sluttes kortvarigt. Herved får kondensatoren samme spænding som Uin. Denne spænding holdes konstant af kondensatoren, når kontakten åbnes. Uin 1 2 C1 U1 A/D x Bit Hvis der anvendes en god kondensator med lille lækstrøm, og en god operationsforstærker med en stor Ri, kan spændingen opretholdes ganske længe. Meget længere tid, end der skal til for at foretage en A/D konvertering. Side 32 af 47

3/1218 Orcad simulering af en D/A konverter. Her er igen vist en ORCADsimulering af en D/Akonverter. Der er her brugt en TTLtæller, en 74393. R1 R3 R5 R7 R9 R12 R11 R1 R2 R4 R6 R8 U2 U3 V Uout OFFTIME =.5mS DSTM1 ONTIME =.5mS CLK DELAY = STARTVAL = OPPVAL = 1 U1A 1 3 A QA 4 QB 5 QC 6 QD CLR 74393 2 For at få ORCAD til at køre skal man ind i Simulating Settings, / Options / Gate Level Simulations, og tvinge alle tællerens FF s til at være som startværdi. Grafen ser således ud!! 4.V 3.V 2.V 1.V V s 5ms 1ms 15ms 2ms V(Uout) Time Side 33 af 47

3/1218 Et eksempel på en digital styret analog udgang. Vha. switchene i 466 forbindes en kombination af modstandene til en referencespænding. Der kan på denne måde genereres udgangsspændinger fra til 7,5 Volt, med spring på,5 Volt. Kredsløbet kan også bruges til at lave digital styret signalforstærkning. Kilde: Elrad 199, Heft 6 Principdiagram for ovenstående kredsløb. Opgave: Undersøg kredsen 466 Her et andet kredsløb. Bemærk, at kontakterne er åbne ved lav på de digitale indgange! Kilde: Elrad 199, Heft 6 Side 34 af 47

3/1218 Her et principdiagram af Ovenstående! Et eksempel på en 6bit DAkonverter Principdiagram for ovenstående. Side 35 af 47

3/1218 Serielle konvertere: I vores Arduino chip, ATMEGA328P er der indbygget A/Dkonvertering. Men ingen D/A. Det kan evt. laves med et R2Rnetværk, men det vil tage mange pins. Men der findes eksterne løsninger, dvs. ICér, der kan monteres sammen med UCen. For at spare på benforbruget i en uc, kan man vælge ICer, der forbindes og overfører data til eller fra UCen via en seriel busforbindelse. Og det sker på en bestemt måde, beskrevet i en såkaldt protokol. Der findes flere typer protokoller! TLC549, A/Dkonverter TLC549 er en lille A/D konverter i en 8 bens DIL hus. Det er en 8 bit konverter, beregnet til brug sammen med en microcontroller. Dvs. den kan konvertere en spænding mellem fx og 5 Volt til et tal mellem og 255. En konvertering startes ved at controlleren sætter CS lav. CS står for Chip Select. De 8 bit kommer serielt ud på ben 6. Hver gang microcontrolleren sætter et clocksignal høj, sætter TLC549 næste bit ud på dens Datapin. Blokdiagram for TLC549 Clockpulserne og dataene ses på næste skitse: Princippet kaldes Bitbanging. Side 36 af 47

3/1218 Pin outline: Her er det forsøgt at tegne et blokdiagram over TLC549. Uref <= 5 Volt Analog in ( til 5 V ) Uref >= Volt 1 VCC, 5 V 8 Konverter logik 3 4 TLC549 Data out, Seriel 6 Skifteregister 8 Bit MSB LSB Clk / CS 5 Chip select 1 2 U2A 1 2 U1A 3 Clk 7 Kode, der kan bruges til 851uCen. R5 bruges som tæller, så der kan genereres 8 Clockpulser. Data skiftes ind i Aregisteret fra Cbittet. TLC_549: Setb CS Mov R5, #8 ; R5 er tæller. Clr A Clr Clk ; Clocken lav. Clr CS ; Enable Chippen. Loop: Mov C, Data ;Læs data ind i Cbit Setb Clk Nop Clr Clk RLC A ;Roter ind i Acc DJNZ R5, Loop ; gentag hvis >. Setb CS ; Disable Chip. Ret Her en oversigt over andre konverterkredse: Side 37 af 47

3/1218 Analog til Digital konverter: TLC1549 svarer til TLC549, men er en 1 bitkonverter. ADC84, 8 bit parallel Digital til analog konverter: MAX548, MAX549, 3 wire, 8 bit. LTC1257, 12 bit / CYPAX. MAX518, 2 wire DAC, ca. 5 kr. / Farnell Til I2Cbussen. Opgave: En Microcontroller skal hente en analog spænding ind fra et potentiometer via en TLC549 / TLC1549, og vise spændingen på et LCDdisplay med 2 decimaler. Brug et Kit med display, og forbind det til A/Dkonverteren på et fumlebrædt. Udbyg derefter opstillingen, så den målte spænding tillige vises på et analogt ( evt. digitalt ) display via en MAX548 D/Akonverter. Se blokdiagram herunder: Dokumenter! Blokdiagram over testopstillingen LCDDisplay For info om MAX548, se senere! Pot Analog Display Uc TLC549 MAX548 Bus Se efterfølgende for info om TLC549 og MAX548. Timingdiagram for TLC549: Side 38 af 47

3/1218 Når Cs går lav, starter konverteringen. Det tager max 18 ms, hvorefter MSB (A7) kan læses på Data Out. De resterende 7 bit, A6A, clockes ud på Data Out, på et faldende clocksignal. Når alle data er sendt ud, skal CS gå høj i en periode, mindst på 25 us for at starte en ny konvertering. Clockfrekvens max 1 MHz Side 39 af 47

3/1218 Flowchart eksempel for konvertering og læsning af data fra TLC549! Datapin Equ P3.2 CS Equ P3.3 TLC549, Start Clr Clk Clr CS Pause Setb CS Clr CS Clr A Datapin lav? Nej Ja Setb Acc.7 Setb Clk Nop, Nop Clr Clk Datapin lav? Nej Ja Setb Acc.6 Setb Clk Nop, Nop Clr Clk Osv. Indtil 8 gange MAX548 D/Akonverter Side 4 af 47

3/1218 Max 548 er en 8 bit Dual output DAC. Dvs. den indeholder 2 D/Akonvertere. Den arbejder på 5 Volt. Output er fra til 5 volt. Den har 2 stk R2Rnetværk indbygget. Rout = 33 KOhm, som derfor kræver stor ri på den efterfølgende kreds. Pin 6: Skal til 5 Volt hvis ikke brugt! Pin 5: Data clockes ind på positiv clocksignal. Her en principskitse for Max548 En kondensator på,2nf til 1 nf på Uout kan forhindre glitches. Konverteren arbejder med 3wire styring, ( kompatibel med SPI & Microwire ) Kredsen har latch d input. Dvs. hvis den fodres med en 8 bit binær værdi, holder den den tilsvarende udgangsspænding indtil ny data læses ind. Max548 skal kontrolleres med 16 bit, eller 2 x 8 bit ord @ max 1 MHz. Den første byte, der sendes til den er en kontrolbyte, den anden er Data. Begge DAC registre kan updates samtidig. Input register kan updates, uden at der overføres til DAC x register. Side 41 af 47

3/1218 /LDAC gående lav kan loade DAC fra Inputregister, hvis det vælges i kontrolordet. ( C1 = 1, C = ). Ved Poweron er alle registre =, Dvs. det ikke er nødvendigt at initiere den. Kontrolordet Max548 skal for hver operation have tilsendt 2 byte. Et kontrolord og en Databyte. Kontrolordet bestemmer hvordan konverteren skal reagere på næste byte. Dvs. valg af hvilke inputregistre, der skal opdateres. Dont care Dont care Dont care = Power UP mode?? Power 1 = DAC reg Load enable. = DAC update på /CS. 1 = Adresserer DAC B 1 = Adresserer DAC A x x x C2 C1 C A1 A D7 D6 D5 D4 D3 D2 D1 D Første bit Der behøver ikke være ophold mellem de to Byte. Data Bit 7 Data Bit 7 Sidste bit Send fx: Gør /CS lav, Send x x x 1 B A ( D7 D ) Gør /CS Høj. Værdien i Data D7 til D sendes til DAC b, hvis B er 1, til DAC A, hvis A er 1, eller til begge ved 1 1. Side 42 af 47

3/1218 Udgangsspændingen Uout: Uout = 5 ( Dataværdi ) [Volt] 256 Sendes fx værdien 113 decimal til konverteren fås en udgangsspænding på: Uout = 5 ( 113 ) [Volt] = 2,27 [Volt] 256 Blokskema: Her er det forsøgt at lave et blokskema over indmaden i MAX548, og hvordan den reagerer på data! Men det har ikke været sådan ligetil! Vi får se, om det er rigtigt! Bit i kontrolord MAX 548 D_IN /CS Clk 1 2 A C A1 3 4 5 1 2 3 4 5 6 6 Input Skifte Register A C1 3 4 5 Input Skifte Register B /Valle 8 Bit Bus 6 8 Bit Bus DAC Register Og R2R net A Parallel Load DAC Register Og R2R net B U_out_A R_out ~ 33 KOhm U_out_B Eller? Side 43 af 47

3/1218 Bit i kontrolord MAX 548 D_IN /CS 1 2 9 1 8 C A 1 2 13 12 Input Skifte Register A C1 9 1 8 Bit Bus DAC Register Og R2R net A 8 Parallel Load U_out_A R_out ~ 33 KOhm Clk 12 13 11 A1 3 4 5 6 Input Skifte Register B /Valle 8 Bit Bus DAC Register Og R2R net B U_out_B Håber, det er rigtigt!! Får vi se ved test!! Kode: Strategi: Allerførst gøres Chip Select lav. Først sendes et kontrolord til MAX_548, vist nok lig med 1BA, hvor A = 1 hvis man ønsker at sende en værdi til output A. Tilsvarende for output B Derefter sendes data til MAX_548 D/Akonverter Og til slut gøres CS høj igen. Her et forsøg på at lave noget kode til at styre den: ;Def af pins Max_548_Clk equ P3. Max_548_Cs Equ P3.1 Max_548_Data Equ P3.2 ; pin 5, Clock ; pin 3, Chipselect, aktiv lav ; pin 4, Data ; Max_548 OutA Pin 2, Analog ud ; Max_548 OutB Pin 7, Analog ud ; / Ldac Pin 6, Forbindes til plus ; Def af Registre brugt: ; Max_548_Data i R ; Max_548_counter i R5 ; bruger Acc. Send: Clr Max_548_CS Mov A, #kontrolkode Call Send_8 ; Gør Chip Select lav ; vist nok = 1BA Side 44 af 47

3/1218 Mov A, R ; data fra Reg R sendes Call Send_8 Setb Max_548_CS ; Gør Chip Select høj igen Ret ; Send_8: ; sender 8 bit I reg A Mov R5, #8 ; tæller I reg 5 Send_8_a: RLC A ; roter bit 8 ud i Cy Mov Max_548_Data, C ; Cy til Datapin Setb Max_548_Clk ; Clocksignal Nop Nop Nop Clr Max_548_Clk Nop Nop Nop Djnz R5, Send_8_a Ret ; Eller man kan generere en puls via et call til subrutine: PULSE: SETB SCLK MOV R3,#2 PULS1: DJNZ R3,PULS1 CLR SCLK MOV R3,#2 PULS2: DJNZ R3,PULS2 RET ; Side 45 af 47

3/1218 Her en gaflet kode: ( koden er fundet på nettet, men ikke testet. Max549 er også en D/Akonverter! ) ; Def af pins ORG H JMP MAIN ORG 3H CS EQU P1.7 ; Chipselect SCLK EQU P1.5 ; Clock DIN EQU P1.6 ; Data MAIN: MOV SP,#6H FDOWN: CLR CS ; gør CS lav F11: MOV R7,#8H ; Tæller defineres MOV A,#255 ; Tal, der skal sendes LOOP2: RLC A ; Roter bit 7 ud I CY MOV DIN,C ; Cy til datapin LCALL PULSE ; generer en puls på Clk DJNZ R7,LOOP2 ; gentag 7 gange mere CLR CS ; mener ikke dette er nødvendig!! NOP ; do SETB CS ; do fejl?? LCALL T1MS ; do MOV R7,#8H ; gør ny tæller klar MOV A,#1 ; Ny værdi LOOP3: RLC A MOV DIN,C LCALL PULSE DJNZ R7,LOOP3 ; ; CLR CS ; færdig, NOP SETB CS LCALL T1MS ; Slut PULSE: SETB SCLK MOV R3,#2 PULS1: DJNZ R3,PULS1 CLR SCLK MOV R3,#2 PULS2: DJNZ R3,PULS2 RET T1MS: MOV 38H,#2H L1: MOV 39H,#FFH L2: DJNZ 39H,L2 DJNZ 38H,L1 RET END ; generer en klockpuls. ; pause 1 ms. Side 46 af 47

3/1218 Kilde: http://read.pudn.com/downloads33/sourcecode/embed/16163/max549/max549.asm.htm Arduino Arduino kan direkte læse en analog spænding, og konvertere den til 1 bit. Dvs. opløsning fra til 5 Volt til et tal fra til 123. Dvs. spændingsstep på 5/123 Volt. Men Analog output kan ikke direkte laves. De analoge output pinde, mærket med ~ er PWMoutput. Frekvensen er ca. 4 Hz, og opløsningen er på 8 bit, dvs. fra til 255.!! Se på Arduino D/Akorvertering med R2Rnetværk: http://www.instructables.com/id/arduinoaudiooutput/ Med I2Cog PCF8591. Se: http://tronixstuff.com/213/6/17/tutorialarduinoandpcf8591adcdacic/ Brug evt. 74HC595 eller 74HCT595 8bit serialin, serial or parallelout shift register with output latches http://www.ritsumei.ac.jp/~piumarta/topics4/arduino9.pdf Se også: https://www.youtube.com/watch?v=bqfpzxeuyuc ( om brug af 74HC595 til at skabe flere outputs til Arduinoen! ) Input shiftregister: Brug fx 74HC165 Mål temperaturen med en DS162og vis den LCD / PCen. Der kan findes et bibliotek på nettet!! DS1621 er en I2C temperaturkreds!! Biblioteket Wire.h Side 47 af 47