Interface Technieken. Een gids voor microcontroller toepassingen. Versie: 1.2 Datum: 06/07/2014 Auteur: Roggemans M.

Maat: px
Weergave met pagina beginnen:

Download "Interface Technieken. Een gids voor microcontroller toepassingen. Versie: 1.2 Datum: 06/07/2014 Auteur: Roggemans M."

Transcriptie

1 Interface Technieken Een gids voor microcontroller toepassingen. Versie: 1.2 Datum: 06/07/2014 Auteur: Roggemans M.

2 Inhoudsopgave: Inhoudsopgave:... 2 Inleiding:... 7 Hoofdstuk 0 Blokschema computersysteem... 8 Hoofdstuk 1 Algemene factoren De systeemklok Inleiding Bron van de systeemklok RC netwerk Kristal Een externe klok (oscillator) Resonator Snelheid van de systeemklok Bewaking van de systeemklok De voeding Inleiding Analoog geregelde voedingen Geschakelde voedingen Inleiding Step-Up regelaars (DC/DC switching regulators) Step-Down regelaars (DC/DC switching regulators) Step-Up/Down regelaars (DC/DC switching regulators) Inverting DC/DC converters Batterij als voeding Niet geregelde voeding Bewaking van de voedingsspanning Ontkoppeling Verschuivingen in massapotentiaal Gemengde analoge en digitale systemen Inleiding IC gemengde systemen PCB gemengde systemen Meerdere PCB s gemengde systemen PCB routing Poorten Inleiding Push pull poorten Output Input Bidirectioneel gebruik Open collector (drain) poorten Inleiding Output Input Bidirectioneel gebruik Temperatuur Inleiding Ontwerpcriteria... 56

3 1.5 Behuizing van componenten Inleiding DIL SMD Ontwikkelomgeving IDE Programmeertaal Van idee tot realisatie (hardware en software) Inleiding Lastenboek Handleiding Hardware blokschema en schema Flowchart Opbouw programma Versie controle Debugging Documentatie (technisch dossier) Laden van het programma Inleiding Fuse-, configuration en lock bits Via Programmer Via COM poort Via USB Via SPI Via JTAG Hardware criteria Inleiding PCB design Inleiding Enkelzijdige PCB Dubbelzijdige PCB Multilayer PCB Mechanical layout Prototyping zonder PCB Keuzecriteria microcontroller Inleiding bit microcontrollers bit microcontrollers bit microcontrollers Speciale microcontrollers? Fail safe werking van een controllersysteem Inleiding Ongebruikte vectoren en geheugenlocaties Bewaking van het programmaverloop (Watchdog Timer) Bewaking van de voedingsspanning Temperatuur bewaking Redundante systemen Stroomverbruik beïnvloeden Inleiding Stroomverbruik afhankelijk van kloksnelheid

4 Stroomverbruik afhankelijk van activiteitsgraad Stroomverbruik afhankelijk van voedingsspanning Stroomverbruik afhankelijk van ingeschakelde onderdelen Stroomverbruik afhankelijk van technologie Besluit Hoofdstuk 2 Digitale Input en Output Inleiding Digitale input Inleiding Schakelaars Keypad (klavier) Galvanische scheiding (ook voor digitale output!!) Inleiding DC optocouplers AC optocouplers Transformatoren Industriële sensoren (inductief, capacitief) Rotary/quadrature encoders Digitale output Inleiding LED Segment display Matrix LED display s LCD modules DC-motoren laagspanning Stappenmotoren en brushless DC motoren Relais en Contactoren Piëzo en andere luidsprekers Galvanische scheiding Besluit Hoofdstuk 3 Analoge Input en Output Inleiding Inleiding Definities Uitwendige omvormers (ADC en DAC) Inwendige omvormers (ADC en DAC) Analoge inputs en signaalconditionering Analoge outputs en signaalconditionering Diverse toepassingen Schakelaars Potentiometer LM LM Thermocouple DC motor als instelknop Besluit Hoofdstuk 4 Tijdsgerelateerde Input en Output Inleiding Tijdsmeting en tellen gebeurtenissen Timers en counters

5 4.2.2 Real Time Clock Frequentie meting Periode meting Genereren van tijdsintervallen PWM Software PWM Hardware PWM Hoofdstuk 5 Communicatie Inleiding Schuifregisters IIC SPI UART Inleiding Level shifters RS RS Draadloos Ethernet GSM Hoofdstuk 6 Interrupts gebruiken Inleiding Interrupt bronnen Inwendige interrupt bronnen Uitwendige interrupt bronnen Uitvoeringstijd interrupt routines Opbouw interrupt routine Hoofdstuk 7 Externe busverbindingen Inleiding Hardware ondersteunde busverbindingen Gesimuleerde busverbindingen Alternatieven voor systeemuitbreiding Appendix A Checklist PCB design Bronvermelding:

6 6

7 Inleiding: Deze cursus is bedoeld voor studenten van een Professionele Bachelor opleiding. Hij kan gebruikt worden als zelfstudiemateriaal of als gids bij het volgen van de lessen. In beide gevallen is de aangereikte informatie slechts indicatief en niet algemeen toepasbaar. De auteur kan ook niet aansprakelijk gesteld worden voor eventuele onjuistheden die in het cursus materiaal zijn geslopen. Het is dus noodzakelijk voor elke specifieke toepassing het nodige opzoekwerk en berekeningen uit te voeren. Het WWW kan hierbij een nuttige bron van bijkomende informatie zijn. Gelet op het algemene karakter van de aangeboden informatie zal de cursist de nodige kritische ingesteldheid moeten tonen bij het verwerken ervan. Dit is ook zo bij het verwerken van informatie die via andere bronnen bekomen wordt. De cursus bevat informatie die op verschillende controllers/computers toepasbaar is. De 8051, AVR en ARM (CORTEX) derivaten worden gebruikt als praktijkvoorbeeld. Dit laat de gebruiker toe rekening te houden met enkele specifieke eigenschappen van de door hem gebruikte controller. De beoordeling van het vak verloopt via een schriftelijk examen. De student moet een professionele oplossing kunnen aanreiken voor interface gerelateerde problemen. Dit houdt in (indien van toepassing) een schema opstellen, verklaren van de principiële werking en verduidelijken van gebruikte begrippen. Het is duidelijk dat een combinatie van verschillende technieken noodzakelijk kan zijn. De wijze van evaluatie is voor alle types van studiecontracten, en voor alle evaluatieperiodes dezelfde. Doorheen de cursus worden opzettelijk afbeeldingen en voorbeelden gebruikt die op het WWW te vinden zijn. Die bieden niet steeds een correcte en afdoende oplossing voor gestelde problemen. Door de uitvoerige bespreking van die voorbeelden tijdens de hoorcolleges willen we een kritische ingesteldheid aanmoedigen. Een actieve participatie aan de lessen is dan ook aanbevolen. De cursus is bedoeld, tijdens en na de studies, als naslagwerk. Eventuele constructieve kritiek en voorstellen tot aanvulling/aanpassing zijn steeds welkom. Hierbij wil ik Master Ing. Johan Van Bauwel en Master Ing. Danny Pauwels bedanken voor hun constructieve bijdrage bij het tot stand komen van deze cursus. 7

8 Hoofdstuk 0 Blokschema computersysteem Figuur 0 Blokschema van een computersysteem In figuur 0 staat het blokschema van een computersysteem weergegeven. In de verdere paragrafen van de cursus komen de verschillende onderdelen en hun interfacing aan bod. Je kan steeds terugvallen op de figuur om een visueel overzicht te bewaren. In de afbeelding staat een microcontroller centraal. Die kan je ook vervangen door een standaard microprocessorsysteem (zie cursus computersystemen). 8

9 Hoofdstuk 1 Algemene factoren 1.1 De systeemklok Inleiding De systeemklok (blokgolf-vormig signaal) is de motor van een controller systeem. De flanken van de klok worden gebruikt om alle onderdelen in de controller acties te laten uitvoeren. Zonder klok blijft alle logica in een vaste toestand staan. De klok zorgt er voor dat de signalen zich op een gesynchroniseerde manier voortplanten in de controller. Hierdoor kunnen o.a. de gevolgen van inwendige propagation delay s vermeden worden. De systeemklok van een controllersysteem is een belangrijke parameter bij het ontwerpen van interface systemen. Hierbij is vooral de bron en snelheid van de systeemklok van belang. Signalen die we aan de controller aanleggen zullen ook op een of andere manier gesynchroniseerd met de systeemklok ingelezen worden. De vorm (minimale tijdsduur) van een ingangssignaal zal dus ook afhankelijk zijn van de systeemklok. De bron van de systeemklok zal bepalen hoe nauwkeurig de frequentie is, en hoeveel ze kan afwijken over een bepaald temperatuurbereik. Enkel wanneer communicatie of tijdsgerelateerde acties moeten ondernomen worden is de stabiliteit van de klok belangrijk. In alle andere gevallen kan het wenselijk zijn om zo goedkoop mogelijk, of met een minimaal aantal componenten een klok te maken. De snelheid waarmee de controller instructies kan uitvoeren, of de resolutie waarmee tijdsintervallen gemeten of opgewekt kunnen worden zijn afhankelijk van de kloksnelheid. Hoe hoger de kloksnelheid, hoe hoger de uitvoeringssnelheid en hoe hoger de resolutie voor het afpassen van tijdsintervallen. Een hoge kloksnelheid heeft echter ook nadelen. Zo zal het stroomverbruik en de elektromagnetische emissie hoger zijn. Dit is belangrijk bij batterijgevoede apparaten en/of toestellen die een EMC keuring moeten ondergaan. Sommige microcontrollers gebruiken een Phase Locked Loop (figuur ) of PLL om uitgaande van een lage klokfrequentie een hogere klok op te wekken. Figuur Blokschema PLL 9

10 Door de deelfactor (N) in de terugkoppeling instelbaar te maken als een getal in een register, kan de programmeur de snelheid van de processor wijzigen in functie van de uit te voeren taken. Dit laat o.a. toe om het stroomverbruik te beperken. F1 in de figuur is dikwijls afkomstig van een kristaloscillator met een kristal van 32768Hz (2^15). Dit kristal wordt veelvuldig gebruikt in uurwerken, en is dan makkelijk en tegen een lage prijs verkrijgbaar Bron van de systeemklok RC netwerk Het merendeel van de moderne microcontrollers draaien default (zonder dat je iets aan de instellingen van de controller aanpast) op een RC oscillator inwendig in de component. Onderstaande figuur geeft een voorbeeld van een CMOS RC oscillator. Figuur RC oscillator Het gebruikt van de inwendige RC oscillator maakt dat er geen externe componenten (met uitzondering van de voeding) nodig zijn om een werkend controllersysteem te bekomen. Helaas is de nauwkeurigheid van deze oscillatoren niet erg hoog (1-10%) en vooral afhankelijk van de bedrijfstemperatuur van de controller. In onderstaande figuur is die afhankelijkheid weergegeven voor de XC888 van Infineon. 10

11 Figuur XC888 RC oscillator stabiliteit Voor asynchrone seriële communicatie mag de klok van beide systemen met niet meer dan 2 à 3 % afwijken Er moet wel opgemerkt worden dat de inwendige RC oscillator een hoge betrouwbaarheid heeft. Er kan immers niets mislopen met de verbindingen tussen de controller en de klok. Bovendien is de RC oscillator een integraal onderdeel van de silicon, en dus even robuust dan de andere componenten waarmee de controller is samengesteld. Indien de instabiliteit en initiële onnauwkeurigheid van de klok niet belangrijk zijn voor de werking van de schakeling, verdient deze klok-bron de voorkeur boven alle andere. Tenslotte willen we nog opmerken dat voor bepaalde vormen van seriële communicatie de klok slechts een korte termijn stabiliteit moet vertonen (zie onderste definitie in de figuur ) Kristal In figuur is een discrete kristaloscillator opgenomen. Het kristal heeft een opdruk die aangeeft wat zijn oscillatiefrequentie is. De andere componenten in de schakeling zijn afhankelijk van deze frquentie en de andere elektrische eigenschappen van het kristal. Door de capaciteit C1 bij te regelen kan de frequentie van de schakeling bijgesteld worden (over een zeer beperkt bereik (1%)). 11

12 Figuur Discrete kristal oscillator Hieronder zie je enkele afbeeldingen van kristallen: A B C D A:standaard uitvoering B:low profile kristal C:uurwerk kristal D: SMD uitvoering (afbeeldingen zijn niet op schaal) Figuur Voorbeelden van een kristal Een microcontroller beschikt meestal over 2 aansluitingen om een kristal aan te sluiten. Figuur laat zien hoe dit moet voor een XC888 microcontroller. De waarden van weerstanden en capaciteiten zijn afhankelijk van de gebruikte frequentie. Bij het debuggen van een controllerschakeling zal het nameten van de klok (na de controle van de voedingsspanning) essentieel zijn. Hierbij gebruik je bij voorkeur een 1/10 probe. De parasitaire capaciteit van de probe zal de schakeling immers beïnvloeden. 12

13 Figuur XC888 kristaloscillator Een kristal heeft als belangrijkste nadeel zijn relatieve kwetsbaarheid voor mechanische trillingen. Om dit te illustreren is in figuur het inwendige van een kristal weergegeven. Figuur Inwendige van een kristal 13

14 Omdat de aansluitingen van de component erg dun zijn, en ook om de behuizing als afscherming te gebruiken, wordt het kristal meestal vast gesoldeerd op de PCB. Let wel op dat je bij het solderen de behuizing niet te lang verhit. Hierbij kunnen de inwendige verbindingen loskomen. Soms wordt het kristal bevestigd in een houder (eerder uitzonderlijk) of met een draadje aan de PCB vastgemaakt (figuur ). Figuur Bevestiging van een kristal Omdat de werking van de oscillator sterk beïnvloed wordt door de parasitaire capaciteiten, maar ook om emissie te vermijden, wordt het kristal zo dicht mogelijk bij de controller opgesteld. De aansluitingen tussen het kristal en de controller worden, indien mogelijk, omgeven door baantjes op massapotentiaal. Ook de capaciteiten die deel uitmaken van de schakeling staan zo dicht mogelijk bij de controller opgesteld. 14

15 Een externe klok (oscillator) Sommige componenten beschikken niet over een ingebouwde oscillator, of we wensen een heel nauwkeurige klok, dan kan je gebruik maken van een aparte oscillator (figuur ). Figuur Externe oscillator De componenten in de oscillator zijn tijdens de productie gekalibreerd. Het is zelfs mogelijk dat de oscillator opgenomen wordt in een oven. Dit is echter alleen het geval bij uiterst nauwkeurige meetinstrumenten Resonator Een ceramische resonator is vergelijkbaar met een kristal, alleen minder nauwkeurig. Onderstaande figuur laat enkele uitvoeringsvormen zien. Figuur Uitvoeringsvormen ceramische resonatoren 15

16 In figuur wordt een vergelijking gemaakt tussen de verschillende soorten bronnen. Figuur Vergelijking tussen klokken De volgende schakelingen laten het verschil zien tussen de aansluiting van een kristal en een resonator. Figuur Aansluiting kristal (a) en resonator (b) Resonatoren worden vooral gebruikt in low cost toepassingen Snelheid van de systeemklok De snelheid van de systeemklok komt niet altijd overeen met de frequentie van de klok bron. Zo hebben we reeds besproken dat het gebruik van een PLL voor gevolg heeft dat het systeem inwendig op een instelbare snelheid loopt, die zowel hoger als lager kan zijn. Op die manier kan de processorsnelheid aangepast worden aan de 16

17 snelheidsbehoefte vanuit de applicatie. Dit is vooral belangrijk wanneer de applicatie gevoed wordt door een batterij. De processorsnelheid bepaalt immers recht evenredig het stroomverbruik van de schakeling. De snelheid van de CPU in de controller kan ook afhankelijk zijn van het aantal klokpulsen dat nodig is om een cyclus van de processor af te werken. Bij de originele 8051 zijn er 12 klokpulsen nodig voor 1 cyclus (alle tijdsafpassingen en/of uitvoeringstijden van instructies zijn hier een veelvoud van). Bij een AVR wordt gesteld dat er 1 klok/cyclus is. In de praktijk wordt bij sommige devices de klok inwendig met een factor 3 verhoogd (met een PLL) waardoor de stelling niet meer juist is. Een ander bijkomend effect van een hoge kloksnelheid is de toename in elektromagnetische emissie. Hierdoor krijg je EMC problemen. Die opvangen is niet eenvoudig. Een blik in het inwendige van een PC laat zien wat er allemaal nodig is om een toestel compatibel te maken (gebruik van multi-layer borden, afgeschermde behuizing, doorvoerfilters, zijn maar enkele hiervan). In de meeste gevallen zal de ontwerper de systeemklok zo laag mogelijk houden. Hierdoor blijven stroomverbruik en emissie beperkt. Bij het gebruik van een hogere programmeertaal zal het programma minder efficiënt zijn, zodat een hogere klok noodzakelijk kan zijn. LET OP!! Sommige controllers hebben een minimale kloksnelheid nodig om hun inwendige werking te waarborgen. Je moet nagaan in de specificaties wat als ondergrens toelaatbaar is. Figuur geeft weer voor de ATMEGA8A en figuur voor de XC888 wat de minimale klokvereisten zijn. Merk op dat die bereikt worden met een externe oscillator. De inwendige kristal oscillator geeft meestal minder ruimte op de specificaties. Bij sommige controllers is het mogelijk de inwendige oscillator te configureren zodat hij optimaal geschikt is voor de gebruikte klok-bron. Figuur Minimaal klokvereisten ATMEGA8A 17

18 Figuur Specificaties voor XC888 met externe oscillator Bewaking van de systeemklok De klok is essentieel voor de werking van een controller. Als de klok wegvalt, blijft de logica hangen in zijn huidige toestand. Het lijkt dus alsof de microcontroller stil staat. Wanneer de klok van de microcontroller gegenereerd wordt met externe componenten is het niet denkbeeldig dat een component defect gaat, of er een fout optreedt in de bedrading. Met inwendige componenten is dat onwaarschijnlijk, tenzij de controller in zijn geheel defect raakt. Om te vermijden dat de controller freezes in zijn werking, wordt bij de betere microcontroller een klokbewaking voorzien. In de meeste gevallen gebruikt de fabrikant hiervoor een inwendige RC oscillator. De frequentie van de inwendige oscillator wordt vergeleken met de systeemklok. Zodra de systeemklok onder een minimale waarde daalt, neemt de RC oscillator over. In de meeste gevallen kan het programma dit detecteren. In figuur wordt het blokdiagram van de XC888 klok logica weergeven. Je kan hier duidelijk het bewakingsonderdeel in terugvinden. Bij de AVR controller uit vorig voorbeeld is klokbewaking niet aanwezig 18

19 1.2 De voeding Inleiding Figuur Klok logica van de XC888 microcontroller Als je wil dat een controllersysteem betrouwbaar functioneert, moet je voldoende aandacht schenken aan de voeding. Hierbij moet voldaan zijn aan de specificaties van ALLE componenten in de schakeling. Heb je maar één voedingsspanning nodig, dan blijft het ontwerp relatief eenvoudig. Indien het systeem meerdere voedingsspanningen gebruikt moet je er ook voor zorgen dat de volgorde waarin de spanningen beschikbaar komen voldoet aan de vereisten van alle componenten. Als algemene stelregel mag je aannemen dat geen enkele aansluiting onder spanning mag komen te staan voor dat de betrokken component voorzien is van zijn voedingsspanning. De enige uitzonderingen hierop zijn level shifters bij seriële en parallelle communicatie. Indien een microcontroller systeem verschillende voedingsspanningen nodig heeft, kan het zelfs noodzakelijk zijn die in de tijd gefaseerd op te laten komen ( kan vanuit de programmatuur gebeuren). Je moet ook rekening houden dat de controller niet onmiddellijk na het inschakelen van de voeding actief zal zijn. Het POR (Power On Reset) circuit zal de controller pas na een bepaalde tijd opstarten. Dit kan meerdere seconden bedragen. Je ontwerp zal hiermee rekening moeten houden, en er voor zorgen dat alle I/O in een veilige toestand blijft, tot het programma de controle ervan kan waarborgen. Hier komen we op terug bij het bespreken van de digitale outputs Analoog geregelde voedingen Het schema in figuur geeft een analoog geregelde voeding weer. Een transformator zal de netspanning naar een lagere waarde omvormen. Via een bruggelijkrichter en afvlakcondensator wordt een gelijkspanning bekomen. De regelaar zorgt er voor dat de uitgangsspanning stabiel blijft. 19

20 Figuur Analoog geregelde voeding Figuur Analoog geregelde voeding met overspanningbeveiliging Figuur laat zien hoe de voeding beveiligd kan worden tegen overspanning. Het is hier de bedoeling het computersysteem te beveiligen tegen overspanningen die door de voeding niet opgevangen worden (defecte regelaar). Beide figuren werden ontleend aan het WWW. In vergelijking staat in figuur het aanbevolen schema van de fabrikant. De fabrikant geeft in deze figuur aanbevelingen i.v.m. de te gebruiken condensatoren. Die moeten er voor zorgen dat de regelaar in staat is transienten op te vangen zonder te gaan oscilleren. Voor analoge toepassingen (lage frequenties) is dit minder belangrijk dan bij digitale toepassingen. De steile flanken van de digitale signalen zijn samengesteld uit componenten met hoge frequenties, ver boven het normale werkgebied van de regelaar. Door kleine ontkoppelcapaciteiten te gebruiken (met een laag inductief karakter) kunnen die piekstromen opgevangen worden. Welke condensatoren (en hoeveel) je moet gebruiken wordt meestal door de fabrikant van de verbruikers opgegeven. Als dat niet het geval is, wordt standaard 20

21 0.1uF (geen elektrolytische condensator) gebruikt per spanningsaansluiting. De condensator wordt zo dicht mogelijk bij de voedingsklemmen van het IC aangebracht, met zo breed mogelijke printbanen. Figuur Aanbevelingen van de fabrikant (National Semiconductor) Figuur Load transient response 78M05 21

22 Figuur laat zien hoe belangrijk de verstoring van het uitgangssignaal kan zijn ten gevolge van een plotse verandering in uitgangsstroom. Omdat de ontkoppelcondensatoren niet alle rimpel kunnen wegwerken zal de voeding hoe dan ook een rimpelspanning bevatten. Je moet nagaan of die binnen de spanningstolerantie blijft van de gebruikte componenten (in sommige gevallen beperkt tot 5%!!). Voor de berekening van de voeding wordt verwezen naar de cursus analoge elektronica. Hierbij moet rekening gehouden worden met o.a. tolerantie van de netspanning, maximale en minimale ingangsspanning van de regelaar, de waarde van de afvlakcondensator en de warmte dissipatie van de regelaar (niet limitatieve opsomming). Gelet op het feit dat de controller via de voeding signalen met een hoge frequentie naar het net stuurt, kan ontstoring noodzakelijk zijn (EMC). Bij het inschakelen, maar ook bij het uitschakelen van de voeding zal de spanning niet plots opkomen of wegvallen. Dit heeft voor gevolg dat de microcontroller gedurende langere tijd in een niet gedefinieerd werkingsgebeid vertoeft. Het reset circuit (POR, maar ook power down reset (brown out detectie)) moet zorgen dat de microcontroller in de reset toestand blijft, ongeacht de tijdsduur. Ook wanneer de voedingsspanning een dip vertoont moet het reset circuit optreden. Figuur Opkomen van de voedingsspanning Wanneer de ingangsspanning en de uitgangsspanning van de regelaar niet sterk van elkaar verschillen kan je een Low Drop Out regelaar gebruiken. Waar een normale regelaar 2V spanningsval nodig heeft om de uitgangsspanning te regelen heeft een LDO regelaar maar enkele honderden mv nodig Geschakelde voedingen Inleiding Een lineaire voeding heeft enkele 4 belangrijke nadelen: -Omdat de voeding op 50Hz werkt is de transformator vrij groot. In vliegtuigen is 400Hz de standaard. Hierdoor worden de transformatoren aanzienlijk kleiner. -Omdat op een lage frequentie gewerkt wordt zijn grote afvlakkings condensatoren nodig. 22

23 -Omdat er een relatief grote rimpel aanwezig is zal de analoge regelaar een aanzienlijk vermogen dissiperen, zodat grote koelvinnen gebruikt moeten worden. Bovendien zal dit het rendement van de voeding negatief beïnvloeden. -De bovenstaande nadelen beïnvloeden de kostprijs van de voeding. Een oplossing voor de voorvermelde problemen is de schakelende voeding. In figuur is een blokdiagram van dit type voeding opgenomen. Figuur laat een vereenvoudigd elektrisch schema van dit type voeding zien. Figuur Blokdiagram van een schakelende voeding Figuur Schema van een schakelende voeding In figuur wordt het inwendige van een 250W PC voeding weergeven. Je merkt op dat er geen grote transformatoren of afvlakcondensatoren aanwezig zijn. 23

24 Figuur Inwendige van een 250W ATX voeding Alhoewel de schakeling veel complexer is dan bij een analoge voeding, wegen de voordelen (beter rendement, lager gewicht, lagere kostprijs) zwaar door. Omdat deze schakelende voeding zelf voor storingen op het net kan zorgen, is veel aandacht besteed aan ontstoring. De schakelende voeding die hierboven beschreven wordt behoort tot het geïsoleerde type. Er is een galvanische scheiding tussen de ingang en de uitgang. De hakker aan de ingang wordt gestuurd vanuit een uitgangsspanning. De andere uitgangsspanningen hebben secundair een eigen regeling. Voor lage vermogens worden hiervoor nog dikwijls analoge regelaars gebruikt. In sommige gevallen is er geen transformatie of galvanische scheiding van de spanning nodig, maar enkel nog een regeling (stabilisatie) van de spanning. In plaats van analoge regelaars worden hiervoor soms schakelende regelaars gebruikt. Zij bieden, ondanks een complexere schakeling, tal van voordelen Step-Up regelaars (DC/DC switching regulators) Step-Up regelaars worden gebruikt wanneer de beschikbare spanning lager ligt dan wat de applicatie nodig heeft. Dit is dikwijls het geval wanneer we een batterij gebruiken als spanningsbron. Om de behuizing eenvoudig te houden wordt dan dikwijls 1 of 2 cellen gebruikt, en dikwijls laat de ontwerper ook toe dat oplaadbare cellen gebruikt worden (1.2V/cel i.p.v. 1.5V/cel). Dit type regelaar geeft een hogere uitgangsspanning naar buiten. In figuur is een voorbeeld van dit type regelaar opgenomen. De meeste producenten van analoge IC s produceren ook schakelende regelaars (vb: en ). 24

25 Figuur Voorbeeld van een step-up regelaar Step-Down regelaars (DC/DC switching regulators) Wanneer de beschikbare spanning veel hoger is (kan zijn) dan wat we wensen, is het beter een step-down regelaar te gebruiken. Die is in staat om met minimale verliezen het spanningsverschil te overbruggen. Figuur laat hier een voorbeeld van zien. Figuur Voorbeeld van een step-down regelaar Iets duurder, maar wel eenvoudiger toe te passen zijn schakelende regelaars met alle randcomponenten (vooral de inductieve) aan boord. Hierdoor hoef je geen specialist analoge elektronica te zijn om ze te kunnen toepassen. In onderstaande figuren staan de belangrijkste gegevens van twee simple switchers. (Simple Switcher is een merknaam die door National Semiconducter gebruikt wordt. In deze tekst gebruik ik de naam ook voor gelijkaardige componenten van andere fabrikanten) 25

26 Figuur Simple Switcher van National Semiconductor 26

27 27

28 Figuur Schakelende 7805 regelaar Step-Up/Down regelaars (DC/DC switching regulators) Wanneer de voedingsspanning van de schakeling, zowel hoger als lager dan de gewenste regelde spanning kan zijn, biedt volgende regelaar een uitkomst. De Step- Up/Down regelaar kan zijn uitgangsspanning hoger en lager dan de ingangsspanning laten worden. In figuur is hier een voorbeeld van weergegeven. Figuur Step-Up/Down regelaar Inverting In sommige toepassingen is het belangrijk om over en negatieve spanning te beschikken. Bij batterij gevoede toepassingen is dit niet evident. Er bestaan dan ook 28

29 regelaars die een gelijkspanning kunnen inverteren (van een positieve spanning een negatieve spanning maken). In figuur is een voorbeeld van zo n regelaar opgenomen. Figuur Inverterende regelaar DC/DC converters DC/DC converters zijn modules die een DC spanning omvormen naar een andere DC spanning. Meestal is er in een galvanische scheiding voorzien. Deze modules zijn dan ook uitermate geschikt bij bepaalde vormen van I/O. Ze worden ook gebruikt voor het voeden van analoge subsystemen met spanningen die niet overeenkomen met de standaard 5V (3.3V) voeding van het systeem (figuur ) 29

30 Figuur DC/DC converter Batterij als voeding Wanneer je niet over een spanningsnet beschikt zullen meestal batterijen gebruikt worden om de schakeling van spanning te voorzien. Dit is niet noodzakelijk het geval. Er bestaan systemen van energy harvesting die voor schakelingen met een heel laag energieverbruik kunnen instaan voor de energievoorziening. Bij het gebruik van batterijen komen er een aantal extra ontwerpcriteria aan bod. Die hebben vooral betrekking om de capaciteit van de batterij, de afgegeven spanning en het al of niet oplaadbaar zijn. Oplaadbare batterijen vallen buiten het bestek van deze cursus. Voor gegevens over oplaadbare batterijen verwijzen we naar het WWW. Ook van batterijen bestaan er datasheets. Die geven aan wat de energiecapaciteit van de batterij is. Dit wordt uitgedrukt in mah of Ah. Het getal dat hier bij staat geeft het product van de tijd en de afgenomen stroom dat de batterij kan leveren. In figuur Staat de datasheet afgebeeld van een AA batterij die courant beschikbaar is. In figuur die van een concurrent. Merk op dat de eigenschappen van de batterij afhankelijk zijn van de manier waarop ze belast wordt. Dit is bovendien afhankelijk van de gebruikte chemische samenstelling van de batterij. 30

31 31

32 Figuur Datasheet Duracell AA batterij 32

33 Figuur Datasheet Varta AA Industrial batterij 33

34 Wanneer de schakeling over een stabiele voedingsspanning moet beschikken, zal het nodig zijn om een regelaar te gebruiken. Afhankelijk van het aantal cellen en de technologie van de batterij is dit geen eenvoudige keuze. Onnodig op te merken dat het eigengebruik van zowel de regelaar als de rest van de schakeling belangrijk is. Een schakelende regelaar is bij dit type voedingsbron aangewezen, tenzij het ook zonder regelaar kan (zie volgende paragraaf). Meer gegevens over batterijen kan je o.a. vinden op: Niet geregelde voeding Uit vorige paragraaf blijkt de complexiteit voor batterij gevoede applicaties. Het is ook mogelijk om de verbruiker zo te ontwerpen dat er geen behoefte is aan een regelaar. Voor analoge schakelingen is dit relatief eenvoudig. Digitale componenten hebben meestal strikte toleranties met betrekking tot hun voeding. In figuur zijn de voedingsgegevens van een ARM7 controller opgenomen. Figuur Voedingsgegevens ARM7 microcontroller NXP Zoals je uit de figuur kan afleiden zijn de toleranties op de toegelaten voedingsspanning nauwer dan de toleranties op de batterijspanning. Wat de bovengrens betreft staan in de figuur maximum ratings vermeld. Hier boven gaan verkort de levensduur van de component (tot ns). Ook bij 3.6V zal de MTBF lager zijn. De ATtiny25 van Atmel ( figuur ) kan perfect gebruikt worden zonder een regelaar, op 2 of 3 cellen. De controller beschikt verder over een Brown-out detector, zodat een te lage voedingsspanning de controller in reset plaatst. Door de ingebouwde ADC is het mogelijk de gebruiker van de toepassing een indicatie te geven over de toestand van de batterij. Merk ook op dat het stroomverbruik van de controller afhankelijk is van de mode waarin de controller staat. De power-down mode is een soort van slaaptoestand met minimaal stroomverbruik. De controller kan zich periodiek wekken en nagaan of een hogere activiteitsgraad (hoger stroomverbruik) gewenst is. Er zijn controllers met nog een lager stroomverbruik. Zo is er van dezelfde fabrikant het PICOPOWER gamma, en TI (Texas Instruments) promoot voor dit type toepassingen de MSP430 controllers. 34

35 Figuur Voedingsgegevens ATMEL ATtiny controller Bewaking van de voedingsspanning Een digitaal systeem werkt alleen volgens specificaties wanneer de voeding binnen de opgegeven toleranties blijft, en wanneer er bij het opstarten een correct reset signaal werd gegeven (dus wanneer de voeding binnen de opgegeven specificaties is) Er zijn drie gevallen waarbij de controller (ten gevolge van voedingsspanning ) kan vastlopen: 35

36 -de voeding komt traag op waardoor het reset signaal te vroeg gegenereerd wordt (RC netwerk als reset generator). -de voeding valt te traag weg. Een gewoon POR (Power On Reset circuit) vangt dit niet op. -de voeding vertoont een kortstondige dip. Dit kan problemen veroorzaken, ook al valt de voedingsspanning niet volledig weg. Even onder de specificaties gaan volstaat. Sommige microcontrollers bevatten alle nodige elektronica om deze problemen op te vangen. In figuur zijn de uittreksels opgenomen uit de datasheets van de XC888 en een ATtiny25 microcontrollers. Figuur XC888 en ATtiny25 reset gegevens 36

37 Wanneer de controller niet beschikt over een power supply monitoring, is het aangewezen een extern circuit toe te voegen dat deze taak overneemt. Talloze fabrikanten bieden dergelijke circuits aan met tal van mogelijkheden. Zorg er vooral voor dat het externe circuit afgestemd is op de spanningstoleranties van de controller/cpu. In figuur staan de gegevens van de DS1233 econo-reset opgenomen. Figuur DS1233 econo-reset 37

38 1.2.7 Ontkoppeling De stabiliteit van een microcontroller is grotendeels afhankelijk van de kwaliteit van de voedingsspanning. Het is niet omdat de controller werkt over een groot spanningsbereik dat transienten in die spanning geen problemen kunnen veroorzaken. Het stroomverbruik dat de fabrikant opgeeft is een gemiddelde waarde. Omdat de controller schakelt volgens de flanken van het kloksignaal zal het stroomverbruik gepiekt verlopen. Die pieken worden nog groter als ook de I/O klemmen van toestand veranderen. Het stroomverbruik kan dan oplopen tot enkele honderden ma. Het is daarom belangrijk het gepiekte stroomverbruik van de controller op te vangen via ontkoppelcondensatoren. Hierdoor blijft de spanning op de voedingslijnen stabiel, en wordt de regelaar gespaard van transienten die hij niet kan wegregelen. Figuur is een voorbeeld van slechte ontkoppeling. De condensator staat te ver af van de controller. Hierdoor ontstaan er spanningsvallen over de voedingsbanen. Figuur Ontkoppelcondensator te ver van microcontroller De voedingsruis veroorzaakt bovendien EMC problemen. Hoe korter de draden hoe kleiner de lusoppervlakte, hoe minder straling veroorzaakt wordt. In figuur staat de ontkoppelcondensator veel dichter bij de controller. Het pad waardoor de gepiekte stroom moet vloeien is veel korter (kleinere lusoppervlakte). De gegenereerde ruis, en ook de emissie ervan blijven dan ook veel lager. In figuur is ook nog een spoeltje opgenomen in het ontkoppelcircuit. Dit wordt meestal toegepast op niveau van het subsysteem (scheiden analoge en digitale supply). 38

39 Figuur Correct geplaatste ontkoppelcondensator Figuur Toevoegen van een spoel aan de ontkoppeling In figuur staan enkele verpakkingen van controllers afgebeeld. Je kan zien dat bij de SMD verpakkingen meestal ook veel aandacht besteed wordt aan de plaats van de voedingsaansluitingen. Bij oudere controllers was dat niet het geval. Kloksnelheden en EMC problematiek waren in het verleden niet aan de orde. 39

40 Figuur Verpakkingen van microcontrollers (XC888 en ATmega8) Verschuivingen in massapotentiaal Wanneer twee componenten met elkaar in verbinding staan is het belangrijk dat de signalen die ze uitwisselen eenduidig geïnterpreteerd worden. Figuur geeft de standaard logische niveaus zoals ze door digitale circuits als input en als output aanvaard worden (TTL technologie). Tussen de geldige ingangssignalen en geldige uitgangssignalen zit een kleine veiligheidsmarge. Dit ruisniveau (0.4V) laat toe dat spanningsvallen over de signaaldraden opgevangen worden. Een signaaldraad die geregeld over het hoofd gezien wordt is de massa. Die wordt gebruikt als referentie t.o.v. dewelke alle signalen gerefereerd worden. Deze verbinding moet dan ook steeds gemaakt worden tussen beide circuits. 40

41 Figuur Standaard logische niveaus (TTL technologie) Omdat de massaverbinding ook gebruikt wordt om de voedingsstroom te geleiden, bestaat de kans dat er over deze verbinding een extra spanningsval ontstaat. Ook slechte ontkoppeling kan hier voor kortstondige potentiaalverschuivingen zorgen. Indien er meer dan 0.4V spanningsverschil is Gelet op het feit dat het hier dynamische signalen betreft, kan je dit niet controleren met een DMM. Zelfs een gewone oscilloscoop kan ontoereikend zijn. Toestellen die glitches (zeer smalle transienten) kunnen detecteren zijn dan noodzakelijk. Bij een complexe schakeling (in elk geval wanneer verschillende PCB s gebruikt worden) moet de nodige aandacht besteed worden aan de distributie van de voedingsspanning in het systeem. Het is aangewezen om vanuit 1 punt (stervormig, en zeker niet met lussen) massa en voeding te verdelen Gemengde analoge en digitale systemen Inleiding Een zuiver digitaal systeem werkt enkel op basis van digitale signalen. Er komen geen analoge signalen aan te pas. Een digitaal uurwerk is hier een voorbeeld van. Zodra er echter een analoge variabele gemeten wordt spreken we van gemengde analoge en digitale systemen. Zo kan het uurwerk ook de temperatuur van de omgeving meten. Soms zit het analoge deel handig verstopt in een circuit met uitsluitend digitale verbindingen. In figuur is de LM75 sensor opgenomen. Alhoewel de sensor volledig digitaal uitgelezen wordt, zit er een analoog subsysteem in vervat. Vanaf dat ogenblik spreken we van een gemengd systeem. Dit heeft voor gevolg dat er aan bepaalde aspecten i.v.m. de voeding meer aandacht besteed moet worden. 41

42 Figuur LM75 temperatuursensor met IIC interface In het geval van de LM75 legt de fabrikant op dat er ontkoppeld moet worden (figuur ) Figuur LM75 ontkoppeling 42

43 IC gemengde systemen De meeste microcontrollers hebben naast digitale periferie ook analoge subsystemen aan boord. Een ADC met een resolutie tussen 8 (1/256) en 12 (1/4096) bits is standaard. Uitzonderingen zijn controllers met een resolutie tot 24 ( 1/ ) bit. Sommige controllers (eerder uitzonderlijk omdat PWM in de meeste gevallen handiger in gebruik is (bij PWM wel offset problemen)) bevatten ook een DAC. Wanneer analoge en digitale functies samen voorkomen worden er ook (minimaal) twee aparte voedingssystemen gebruikt (analoge en digitale voeding). Dit laat toe om de onvermijdelijke ruis op voedingen van digitale systemen te weren van de voedingen van analoge onderdelen. Wordt slechts 1 voeding gebruikt (dus geen enkele vorm van filtering tussen beide deelvoedingen), dan zal de performantie van het analoge deel teruglopen. Dit zal je merken aan het aantal onstabiele bits bij een ADC. De fabrikant van een microcontroller zal meestal aanbevelingen doen naar de layout en het schema van het voedingssysteem (figuur en volgende). Figur ADuC832 analoge en digitale voeding De plaats waar de digitale en de analoge massa bij elkaar komen wordt het sterpunt genoemd. De fabrikant stelt meestal voor dit in de buurt van de controller te nemen. De belangrijkste reden hiervoor is het kleine spanningsverschil dat toelaatbaar is tussen analoge en digitale massa. In onderstaande figuur zijn de maximale spanningsverschillen opgenomen die bij de ADuC832 toegelaten zijn. 43

44 Figuur Maximale spanningsverschillen voor de ADuC832 Onderstaande figuur laat de aanbevelingen van de fabrikant zien naar ontkoppeling. Merk op dat de plaats waar de condensatoren getekend zijn overeenkomt met hun effectieve plaats op de PCB. De omgekeerde driehoek stelt de GND voor, meer bepaald het sterpunt van de schakeling. Figuur Voedingsaansluitingen ADuC832 De figuur tenslotte bevat de schematische voorstellen voor het ontwerp van de analoge voeding. De bead (ferriet-kraaltje) in het schema is een spoeltje. De dioden moeten beletten dat kleine stroomstootjes een spanningsval van meer dan 0.3V veroorzaken over de weerstand en spoel. In het andere geval zouden de 44

45 maximale spanningsverschillen overschreden worden, met kans op beschadiging voor gevolg. Figuur Schematische voorstellen analoge voeding ADuC832 In dit schema gaat de fabrikant er van uit dat er slechts 1 voedingsspanning beschikbar is. Door de RLC filter wordt de ruis van het digitale deel geminimaliseerd. Het schema in figuur gaat er van uit dat er twee aparte voedingsspanningen beschikbaar zijn. In dat geval zal extra aandacht geschonken moeten worden aan de beveiliging (beide spanningen moeten immers simultaan en met een minimaal spanningsverschil aanwezig zijn). Figuur Gebruik van aparte voedingen ADuC832 45

46 PCB gemengde systemen Indien meerdere analoge componenten (omvormers) gebruikt worden op 1 PCB, is het niet steeds evident het sterpunt onder de controller te leggen. Immers alle gemengde componenten beschikken over de dubbele massa aansluitingen. Het is moeilijk om in dit geval een generalistische oplossing aan te bieden. Figuur laat een voorstel van de fabrikant zien. De voorgestelde oplossing gaat er van uit dat er een digitaal massavlak en een analoog massavlak is. Beide zijn met elkaar verbonden in het sterpunt (in dit geval niet onder de controller, maar aan de voeding). In dat geval wordt de controller integraal verbonden met het analoge massavlak. Figuur Voorstel tot PCB layout (Analog Devices) Meerdere PCB s gemengde systemen Worden meerdere PCB s gebruikt, dan wordt het massavraagstuk nog moeilijker. In onderstaande figuren zijn twee oplossingen voorgesteld. Als er dan nog analoge signalen van het ene naar het andere bord doorgegeven moeten worden, kan het noodzakelijk zijn een beroep te doen op instrumentatieversterkers om common mode signalen weg te werken. Merk op dat in figuur opnieuw beveiligingen zijn aangebracht om te vermijden dat analoge en digitale spanningen te ver uit elkaar komen te liggen. De beveiligingen zijn niet meer dan beveiligingen. Het systeem zal dusdanig ontworpen moeten zijn dat spanningsvallen over connectoren en verbindingen binnen de toelaatbare grenzen blijven. 46

47 Figuur Enkelvoudige systeemmassa Figuur Gescheiden systeemmassa 47

48 PCB routing Bij het routen van de PCB is het belangrijk de layout te verzorgen. Je gebruikt voor de voedingsbanen ofwel voedingsvlakken, ofwel zo dik mogelijke banen. Vooral de massaverbindingen verdienen veel aandacht. Bij een gecombineerd ontwerp (analoog/digitaal) is bovendien ook de plaatsing van de componenten uitermate belangrijk. Vergeet de ontkoppeling niet. In een verdere paragraaf wordt meer aandacht besteed aan PCB design. Graag verwijzen we naar de betreffende cursus elders in de opleiding. 1.3 Poorten Inleiding Onder poorten verstaan we alle aansluitingen die gebruikt worden om signalen in en uit het IC te transporteren. Waar in een ver verleden poorten uit TTL schakelingen bestonden is dat nu CMOS. Dit heeft voor gevolg dat een input enkel nog een capacitieve load voorstelt. Dit maakt ook dat er nog weinig aandacht besteed wordt aan de belasting van een uitgangspoort. In volgende paragrafen overlopen we de meest gangbare poortstructuren, en ook de elektrische eigenschappen ervan. Belangrijk voor de ontwerper is de ruststand van de poort (toestand na reset). Dit zal namelijk bepalen hoe hierop aangesloten componenten gaan reageren. Het is vooral niet de bedoeling dat een reset tot gevolg heeft dat het gebouwde apparaat dingen gaat activeren. Resetten impliceert immers dat alles opstart vanuit een niet actieve toestand Push pull poorten Output Push Pull poorten hebben een structuur zoals weergegeven in figuur Figuur Push Pull outputs De logische 1 output wordt gegenereerd door de klem te verbinden met de positieve spanning door een transistor (MOSFET) in geleiding te brengen. Afhankelijk van de specificaties van de halfgeleider kan de poort een bepaalde stroom leveren naar massa. De grootte van de stroom is volledig afhankelijk van de fabrikant. Het zal 48

49 dus nodig zijn de datasheets te raadplegen. Een 0 wordt op een gelijkaardige manier gegenereerd. In figuur staan de elektrische outputspecificaties van een XC888 poort. Figuur Uitgangsspecificaties XC888 poort Het uittreksel uit de datasheet laat duidelijk zien dat de uitgangsniveaus afhankelijk zijn van de uitgangsstromen. Het is zelfs mogelijk dat niet voldaan wordt aan de TTL specificaties. De uitgangsspanningen zijn zelfs niet enkel afhankelijk van de stroom uit 1 pin, maar van de totale stroom die het IC moet leveren. Merk op dat er beperkingen kunnen opgelegd worden aan de totale stroom die per poort of verpakking geleverd kan worden. Voor de XC888 is die beperking opgenomen in figuur Figuur Maximale stroom voor alle pinnen samen (XC888) Het is duidelijk dat de controller niet ontworpen is om grote stromen uit te sturen. Een interfacing zal zich opdringen Input Een input gedraagt zich als een grote impedantie. Er zal dus nauwelijks stroom de pin invloeien bij het aansturen. In figuur zijn deze gegevens opgenomen voor de XC

50 Figuur Ingangsgegevens XC888 (digitale input) De ingangsniveaus van deze controller zijn maximaal 0.3*5V=1.5V voor laag en minimaal 0.7*5V=3.5V voor hoog. Voor het hoog niveau is dat strikter dan de TTL specificaties. Wanneer de controller in reset gaat worden alle klemmen in de input mode gezet (ook diegene die we later als output willen gebruiken). De input stroom die nodig is om de pin aan te sturen is maximaal 1ųA. Dat is zo weinig dat een stukje draad van enkele cm volstaan als antenne om stoorsignalen op te vangen. Je zal er bij het ontwerp moeten voor zorgen dat de tri-state pin een gekend niveau heeft. In de meeste gevallen wordt hiervoor een pull up weerstand gebruikt zoals in figuur

51 Figuur Pull up weerstand bij input Figuur Pull down weerstand bij output In de figuur wordt door de poort een FET aangestuurd. Als de poort in tristate gaat, ligt de input van de FET open. Het niveau is dan niet gekend, en de FET kan in geleiding gaan. Door de pull down weerstand wordt de gate op massa niveau gebracht. Hierdoor blijft de FET in de off stand. 51

52 In het uittreksel van de datasheet kan je zien dat de XC888 inwendig over inschakelbare weerstanden beschikt. Merk wel op dat die niet actief zijn tot ze via programmatuur ingeschakeld worden (processor moet uit reset toestand komen!!). Tenslotte maakt de datasheet gewag van een overload current per pin. Die zal vloeien zodra een uitwendig signaal de pin buiten specificaties aanstuurt. De stromen vloeien omdat er in de controller een beveiligingscircuit zit dat tevens bescherming moet bieden tegen ESD (zie figuur ). Figuur Beveiligingscircuit op aansluitklemmen Bidirectioneel gebruik Soms wordt een I/O klem beurtelings als input en output gebruikt. Bij push-pull poorten moet er van output mode naar input mode overgeschakeld worden. Hierdoor gaat de pin zweven. Door een externe pull up weerstand te gebruiken, het dataregister inwendig op 0 te zetten, en de poort enkel aan te sturen via het richtingsregister, kan op een eenvoudige manier een bidirectionele pin bekomen worden. Het enige nadeel is dat de 1 op de lijn door een weerstand bekomen wordt. Het voordeel is dan weer dat buscontention vermeden wordt. In figuur is een vereenvoudigd schema van een poort weergegeven. Dit laat toe om bovenstaande tekst af te toetsen aan de haalbaarheid. De weerstand in de figuur is extern aan de controller aangebracht. 52

53 Figuur Vereenvoudigde poortstructuur Open collector (drain) poorten Inleiding Open drain poorten zijn typisch voor de standaard 8051 familie. Deze structuur is weergegeven in figuur Dit type poort heeft t.o.v. de push-pull poorten voordelen en nadelen. In de volgende paragrafen overlopen we die kort. Figuur Poortstructuur standaard MCS51 controllers De halfgeleiders P2 en P3 werken als stroombronnen, niet als schakelaars. 53

54 Output Het belangrijkste nadeel is dat het 1 niveau bekomen wordt met een pull-up weerstand in de controller. Hierdoor kan in deze logische stand nauwelijks stroom geleverd worden. Het voordeel is dan weer dat de poort ook tijdens een reset in een gekende toestand staat. De stroom die de poort kan leveren is opgenomen in figuur Figuur Karakteristieken 8051 poort (ADuC832) De beschikbare uitgangsstromen zijn sterk fabrikant en device afhankelijk. Net zoals bij controllers met standaard uitgangspoorten zijn er beperkingen in stroom per poort/device. Kijk ook even naar de karakteristieken van de output, vooral de logic 1-0 transition vraagt verduidelijking. (zie volgende paragraaf). De 1 wordt gevormd door 3 stroombronnen (P1, P2, P3) met elk hun eigen doel. P1: actief gedurende 2 klokpulsen bij het omschakelen (capaciteit verbinding) P2: altijd wanneer poort aangestuurd met 1, 80ųA P3: actief als de uitgangsspanning>0.8v Gelet op de beperkte uitgangsstroom bij een hoog niveau, zal de controller (zonder gebruik van buffers) alleen actief laag iets aansturen. Het bijkomende voordeel hiervan is dat tijdens het resetten (alle outputs hoog) geen enkele belasting actief is Input Bij de open drain structuur zit de pull-up stroombron in de weg als we de poort extern gaan aansturen. In de figuur kan je zien dat de P3 FET aangestuurd wordt 54

55 door de spanning op de pin. Die wordt dus uitgeschakeld als de pin op een laag niveau ( <0.8V) gebracht wordt. Omdat er inwendig in de poort altijd een stroombron ingeschakeld is, is de ingangsimpedantie beperkt. Hierdoor zal de poort een gekend niveau inlezen wanneer er niets is aangesloten. Je kan zelfs een externe pull-up weglaten indien een schakelaar wordt aangesloten (verbinding <30cm), zoals weergegeven in fig (de 10k weerstand is optioneel bij de 8051 standaard poort, niet bij tri-state poorten) Figuur Schakelaar op 8051 poort Bidirectioneel gebruik Door de open drain structuur kan de poort eenvoudig in een wired-or configuratie geplaatst worden. Semi Bidirectioneel gebruik is dan eenvoudig. 55

56 Figuur Wired or configuratie De figuur laat zien hoe een IIC bus gemaakt kan worden met open drain aansluitingen. De externe pull-up weerstanden zijn toegevoegd omdat de inwendige van de controller te groot zijn. Zelfs als op dit type verbinding buscontention zou optreden, kan het nooit voor gevolg hebben dat er een kortsluiting ontstaat, wat wel het geval is wanneer 2 push-pull poorten met elkaar verbonden worden. 1.4 Temperatuur Inleiding Alle halfgeleider componenten zijn ontworpen om operationeel te zijn tussen bepaalde temperatuur grenzen. Zo zijn er 3 grote groepen van specificaties: commercial, industrial, en automotive (space en militair laten we buiten beschouwing). Het commercial temperatuurbereik is 0 tot 80 C. Het industriële bereik is van -40 C tot 100 C. Het automotive bereik is van -40 C tot 125 C. De vermelde temperaturen zijn gemeten op de chip. Dat wil zeggen dat de temperaturen in de behuizing lager moeten zijn. Onder de motorkap van een auto wordt het in de zomer makkelijk 80 C. Gewone commerciële componenten kunnen dan niet meer gebruikt worden Ontwerpcriteria Bij het ontwerpen van een schakeling is het belangrijk de uiteindelijke bedrijfstemperatuur te kennen. Een apparaat in een zwarte behuizing kan (afhankelijk of het in de zon staat) hogere temperaturen bereiken. Omdat componenten boven (onder) hun maximale temperatuurbereik niet meer gedefinieerd zijn, kan je ook geen gebruik maken van die componenten om een beveiliging van het systeem te bekomen. 56

57 Zo bevat de ADuC832 controller een ingebouwde temperatuursensor. Stel dat het te warm wordt in de behuizing, dan kan je de controller niet gebruiken om alles uit te schakelen. Zijn werking is immers niet gegarandeerd mocht de temperatuur verder oplopen. Je zal in dit geval thermische zekeringen moeten gebruiken. Problemen kunnen ook ontstaan wanneer er in de buurt van de controller vermogen componenten (weerstanden of transistoren) zijn opgesteld. Die componenten zijn ontworpen om hogere bedrijfstemperaturen te kunnen halen. Via convectie, conductie of straling kunnen zij er de indirecte oorzaak van zijn dat andere componenten beïnvloed worden. Het is ook mogelijk dat de werking van de component niet in gedrang komt, maar dat zijn specificaties verlopen. Zo konden we vaststellen dat een RC oscillator van een controller sterk door de temperatuur beïnvloed wordt. Analoge schakelingen (referenties, weerstanden, ) ondervinden hier nog meer last van. 1.5 Behuizing van componenten Inleiding Componenten worden in tal van verschillende behuizingen ondergebracht. De voornaamste redenen hiervoor zijn: Plaatsbesparing Optimale warmteafgifte Aantal aansluitingen Gebruikte bestukkings technieken Wanneer je de keuze hebt uit verschillende verpakkingen, dan zal de gemaakte keuze het verdere ontwerp beïnvloeden. Zo is het gebruik van SMD verpakkingen een rem op prototyping. Er is immers een kwalitatief goede PCB nodig om de component te kunnen verbinden met de omgeving. Bepaalde SMD verpakkingen zijn niet meer traditioneel te solderen, waardoor hun toepasbaarheid in kleinschalige ontwerpen in vraag gesteld kan worden DIL De Dual In Line Package (DIL of DIP) is traditioneel de oudste vorm om IC s te verpakken. In figuur staan enkele voorbeelden. Figuur geeft de fysische afmetingen van enkele verpakkingen. 57

58 Figuur Voorbeelden van DIP/DIL behuizingen Door de grote afstanden tussen de pinnen, zijn ze makkelijk hanteerbaar, en uitermate geschikt voor prototyping. Je kan ze eenvoudig monteren in een prikbord (niet aanbevolen) of met IC voeten gebruiken op gaatjesprint. Omdat de pinnen relatief ver uit elkaar staan (2.54mm) kan je makkelijk zelf een printplaat ontwerpen en produceren. Het belangrijkste nadeel van dit type verpakking is het volume. SMD componenten laten toe een compactere schakeling te ontwerpen. Bovendien worden hoe langer hoe minder componenten in deze verpakking op de markt gebracht. Ook andere through hole verpakkingen lenen zich uitermate voor prototyping (figuur ). 58

59 Figuur Afmetingen van DIP/DIL behuizingen 59

60 Figuur Voorbeelden van through hole verpakkingen 60

61 1.5.3 SMD Surface Mounted Devices zijn componenten die in een type behuizing zitten die op de print gesoldeerd worden, zonder de verbindingen door gaatjes te steken. Het belangrijkste voordeel is dat deze behuizingen veel kleiner zijn dan de DIP/DIL verpakkingen. Hierdoor is een grotere densiteit aan componenten mogelijk op een PCB. De keerzijde van de medaille is de hogere kwaliteit waaraan de PCB moet voldoen, en de moeilijkheid om de componenten te behandelen. Sommige zijn zo klein dat het typenummer er niet meer op kan. Op volgende URL kan je uitgebreid informatie aangaande deze technologie terugvinden. Sommige SMD componenten hebben helemaal geen aansluitpinnen meer (figuur ) Figuur MPL verpakking Bij andere staan de aansluitingen erg dicht bij elkaar (figuur ) 61

62 1.6 Ontwikkelomgeving IDE Figuur Narrow pitch SMD Een ontwikkelomgeving (IDE) is een instrument dat toelaat de benodigde programmatuur voor de target te schrijven en om te zetten naar uitvoerbare code voor de controller. Een IDE kan bestaan uit één of meerdere onderdelen: Editor voor het intypen van de broncode Assembler, C compiler of andere taal-ondersteuning (vb. BASIC) Simulator (laat toe om de code te simuleren zonder hardware omgeving) Hardware omgeving/debugger zoals: o JTAG connectie o Programmer interface (meestal via dongle) 62

63 Ondersteuning naar OS Bibliotheken met hulpprogramma s (ondersteuning naar wiskundige berekeningen, drivers voor schermen etc.) Sommige IDE s worden gratis ter beschikking gesteld (zonder het hardware platform). Voorbeelden hiervan zijn de IDE s van ATMEL en Microchip. Vooral voor de 8 bit devices (waar deze platformen eerder eenvoudig zijn) kan je ze makkelijk vinden (ook voor 8051). Fabrikanten van software (oa. KEIL) stellen hun platformen beperkt beschikbaar, of volledig, maar voor beperkte tijd. Daarna, of als je alle functionaliteiten wil gebruiken moet je een versie aankopen. Soms kan je ook open source software vinden. Meestal is die echter beperkt in zijn mogelijkheden Programmeertaal Voor het ontwikkelen van microcontroller software zijn twee programmeertalen gangbaar (de derde (BASIC) en vierde (Flowcode)) worden professioneel nauwelijks toegepast). Machinetaal of assembler geeft je de grootste vrijheid en de meeste mogelijkheden. De taal bestaat uit de instructies zoals die door de controller uitgevoerd worden. Deze programmeertaal vraagt van de gebruiker dat hij(zij) erg gestructureerd te werk gaat (gebruik van o.a. subroutines, in kaart brengen gebruikte geheugen, ). Deze taal is uitermate geschikt voor de 8 bit controllers. Die hebben meestal niet de hardware ondersteuning en de rekensnelheid die noodzakelijk is voor een hogere programmeertaal. Assembler laat ook toe om de exacte runtime van programmatuur te bepalen, wat noodzakelijk is bij interrupt routines in tijdskritische applicaties. De C taal laat programmeren toe op een hoger niveau. De gebruiker hoeft niet 100% de onderliggende hardware te kennen, zelfs de taal van de CPU is niet meer belangrijk. Deze taal is uitermate geschikt voor de snelle en krachtige 16/32 bit controllers zoals ARM en CORTEX. De kennis van machinetaal is onmisbaar wanneer de programmeur ook geconfronteerd wordt met start up code of low level hardware drivers. Beide talen komen dan ook aan bod in de opleiding. 1.7 Van idee tot realisatie (hardware en software) Inleiding Wanneer je een oplossing uitwerkt voor een technisch probleem, dan zal de gekozen weg afhankelijk zijn van de gestelde eisen. De gebruikte componenten zullen in functie staan van een optimale oplossing. Hierdoor is het niet steeds evident dat 63

64 aanpassingen van de opgave (lastenboek) nog opgevolgd kunnen worden. Dit wordt niet steeds door de opdrachtgever in dank aanvaard. Het is dus heel belangrijk om duidelijke afspraken te maken. Uiteindelijk zal het afgewerkte product ook hersteld en opgevolgd moeten worden. Documentatie van zowel software als hardware is belangrijk. Die achteraf opstellen is geen optie!! Lastenboek Een lastenboek is een document dat op een eenduidige manier het gestelde probleem omschrijft, en de oplossing die verwacht wordt. Bij het bouwen van een woning zal het lastenboek niet alleen de plannen van de woning bevatten, maar ook de gekozen materialen. In sommige gevallen is er ook een tijdskader opgenomen dat omschrijft wanneer de oplossing klaar moet zijn. Uiteindelijk zullen opdrachtgever en uitvoerder het document tekenen. Het is voor beide partijen een middel om achteraf na te gaan dat aan de gestelde eisen en vragen werd voldaan. De belangrijkste vragen die in het lastenboek een antwoord moeten krijgen zijn: Wat is het probleem dat opgelost moet worden? Wat moet de oplossing exact kunnen? Hoe moet de bediening verlopen? Welke instellingen moeten mogelijk zijn? Tussen welke grenzen moet de oplossing operationeel zijn? Wat wanneer het misgaat (veiligheid)? Hoe moet het er uit zien (vormvereisten)? Wat mag de kostprijs zijn (er is een verschil tussen prototype kost en productiekost)? In welke mate moeten aanpassingen mogelijk zijn (hardware en software)? Wanneer moet wat opgeleverd worden? Welke documentatie moet er beschikbaar zijn? Wie verwerft de uiteindelijke eigendomsrechten (IP, hardware, software)? Welke beperkingen legt de opdrachtgever op (welke componenten moet/mag/mogen niet gebruikt worden, taal en/of OS software, )? Een lastenboek zal een aantal iteraties moeten ondergaan. Zo kan het zijn dat de opdrachtgever zijn eisen moet bijstellen i.f.v. technische beperkingen, of dat de ontwerper niet kan voldoen aan de opdracht Handleiding Na het opstellen van het lastenboek ligt het ontwerp in grote lijnen al vast. Je kan dan van start gaan met het opstellen van een gebruikshandleiding. Door hier mee te starten wordt je geconfronteerd met tal van detailvragen. De handleiding moet hier een oplossing voor bieden. Een goede handleiding vormt de basis voor zowel hardware als software ontwerp. Hoe en wat het apparaat moet kunnen ligt immers al vast. Het geeft een duidelijk beeld van welke bedieningsorganen er nodig zijn, en de problemen die de uiteindelijke gebruiker kan ondervinden met het apparaat. Aangezien de handleiding die in kaart brengt kan je ze verder verwerken in het ontwerp. 64

65 1.7.4 Hardware blokschema en schema Voor dat je in detail uitwerkt welke componenten je gaat gebruiken stel je best een blokschema op van zowel de hardware als de software. Dit laat toe om snel een vereenvoudigd beeld te vormen van de oplossing. Dit kan je aftoetsen met de gestelde eisen. Het blokschema moet dan verder uitgewerkt worden in een gedetailleerd schema. Probeer het schema op te stellen in een geïntegreerd schema/pcb pakket. Hierdoor vermijd je fouten bij het routen van de PCB. Het is uitermate belangrijk dat PCB en schema in overeenstemming zijn. Debuggen van een schakeling wordt anders onmogelijk. Wijzigingen die tijdens het debuggen gemaakt worden aan schema en/of PCB moeten dan ook nauwkeurig bijgehouden worden. Eén of andere vorm van versiecontrole dringt zich dan ook op!! Flowchart Een flowchart is een must bij het schrijven van software. De flowchart geeft op een (relatief) compacte manier weer hoe de software in elkaar zit. De flowchart biedt de programmeur de mogelijkheid om de software te doorlopen, en na te gaan of alle gewenste functionaliteit er in zit, maar ook of de software niet ergens in een lus blijft zitten. Net zoals bij het blokschema bevat een flowchart geen details. In de blokken staan dus geen specifieke processorinstructies, maar omschrijvingen van wat er moet gebeuren. Bij de omzetting naar effectieve code zal de flowchart terug te vinden zijn in de vorm (subroutines/functies) die het programma bevat Opbouw programma Elk programma start bovenaan met een uitvoerige beschrijving van wat het doet, en op welk platform het wordt gebruikt. In deze header steek je ook best een revisiecode zodat je kan nagaan welke versie dit programma is, maar ook welke aanpassingen er t.o.v. vorige versie werden aangebracht (versiebeheer of change log). Onder deze header staan meestal de gebruikte variabelen. Bij het programmeren in machinetaal is de programmeur verantwoordelijk voor het geheugengebruik. Door de gebruikte variabelen op een chronologische manier in kaart te brengen wordt dubbel geheugengebruik voorkomen. Dit is een regelmatig voorkomende, maar moeilijk op te sporen fout. Als een programma leesbaar moet blijven, maar vooral moet toelaten fouten op te sporen of wijzigingen aan te brengen, is een structuur noodzakelijk. Het hoofdprogramma zal zo veel mogelijk subroutines/functies bevatten. Elk programmaonderdeel wordt best overvloedig van commentaar voorzien. Na enkele weken ben je immers vergeten welke speciale truc je hebt toegepast. 65

66 Tabellen staan altijd onderaan het programma. Zij vormen immers niet uitvoerbare code. Het gebruik van include files laat toe om eigen bibliotheken aan te maken van veelvoorkomende subroutines. Ook hier is overvloedig commentariëren een noodzaak! Versie controle In de vorige paragraaf werd reeds aangegeven dat versiecontrole belangrijk is. Het toestel waarop de software draait moet ook op een of andere manier communiceren welke versie van software er in zit. Producenten gebruiken hiervoor verschillende technieken: Het toestel bevat een display. Dan kan je de versie van software laten verschijnen bij het opstarten of door het drukken van toetsencombinaties (menu item in bediening) Het toestel bevat slechts enkele LED s als indicatie. Door een toetsencombinatie in te drukken tijdens het opstarten kunnen de LED s via een knippercombinatie een indicatie geven van de software versie. Op het IC wordt een sticker geplakt met een code. Het IC kan uitgelezen worden, en in een geheugenlocatie staat een code (dit is niet gebruikelijk aangezien producenten de uitleesmogelijkheid van de controller gaan uitschakelen) Debugging Debugging is nagaan of het ontwerp doet wat het verondersteld wordt te doen. Dit kan je maar nagaan wanneer op een eenduidige manier is vastgelegd wat het moet doen (lastenboek, blokschema, flowchart). Wanneer je dan toch met een probleem opgezadeld zit zijn er een aantal procedures die je best volgt: Hardware controle: o Is er een correcte voedingsspanning waar nodig? o Is er een kloksignaal waar nodig? o Klopt de PCB met het schema (geïntegreerd pakket!!) o Is er overeenstemming tussen wat jij denkt en wat de datasheet omschrijft? o Zijn alle solderingen goed? o Zijn alle verbindingen goed (OPGELET met MULTIMETERS!!) Software controle: o Klopt de flowchart met het lastenboek? o Is de flowchart uitvoerbaar? o Zijn de initialisaties van componenten correct? o Is de stack in orde? o Is er dubbel geheugengebruik? o Zijn er fouten tegen de jump/call/return combinaties? o Zijn de push en pop instructies correct toegepast? 66

67 o Zijn de interruptroutines volledig in orde (vectoren, stack en registergebruik, uitvoeringstijden, ) Debuggen kan ook door op uitgangspinnen (LED s, display, ) afhankelijk van de software pulsen te genereren. Die kan je met een oscilloscoop nameten. Debuggen kan ook via de IDE. Een simulator kan helpen bij het nagaan van rekenroutines of initialisaties van I/O. Via een JTAG bestaat de mogelijkheid om op de hardware in te grijpen Documentatie (technisch dossier) Uiteindelijk wordt een ontwerp afgerond met een technisch dossier. Dit bevat alle documentatie die nodig is om de realisatie te gebruiken, onderhouden, aan te passen. Het is een bundeling van lastenboek, schema s, flowchart, code, aansluitgegevens, montage/demontage handleiding, onderhoudsvoorschriften, specificaties, 1.8 Laden van het programma Inleiding Wanneer een programma klaar is zal de IDE een Intel Hex file afleveren (kan ook een Sxx file zijn, maar is minder gebruikelijk). Dat bestand bevat de code die door de controller uitvoerbaar is. Het geeft ook aan waar de data in het geugen komt te staan. Figuur bevat een Intel Hex file voor een 8051 controller. : D8 : D F9007F1117E A : E11A09005C2117E11A : E11A011A8B D6B EFB457 : C0201B5B45602A153B45202A1AC9007AD : DD117E E11A080CE75AAD97549 File gaat hier nog even verder. : FF Figuur Intel Hex file voor 8051 De code (moet nog omgezet worden van ASCII naar binair) die in het bestand zit moet in het geheugen van de controller geladen worden. Indien het systeem reeds code bevat (BIOS in PC, monitor in GIANT, Boot loaders) kan die de mogelijkheid bevatten dit te doen. In het andere geval, is er bijkomende hardware nodig om de code in het geheugen van de controller te plaatsen. In sommige systemen wordt de code in niet vluchtig geheugen geplaatst. In andere wordt RAM gebruikt (537 systemen laboratorium). In dit laatste geval kan het programma verloren gaan bij spanningsuitval. 67

68 In de volgende paragrafen beperken we ons tot controllers met niet vluchtig geheugen Fuse-, configuration en lock bits Microcontrollers worden steeds complexer. De eindgebruiker kan kiezen welke mogelijkheden hij wil behouden of uitschakelen. Sommige controllers kunnen zelfs hun functionaliteit aanpassen aan een ouder model dat uit productie werd genomen (ATMEL). In figuur is een fusebyte opgenomen van de ATtiny25. In de controller zitten er meerdere. Onderaan de figuur staan ook enkele verklaringen. Figuur Fusebyte ATtiny25 Naast de instellingsbits bestaan er ook lock bits. Die laten de eindgebruiker toe bepaalde onderdelen van de controller te vergrendelen. Hierdoor wordt het bijvoorbeeld onmogelijk het opgeslagen programma uit te lezen. Op die manier kan je eenvoudig kopiëren van software tegengaan. Figuur bevat een fuse byte van de ATtiny25. Deze bits kunnen enkel uitgeschakeld worden wanneer ALLE informatie in de chip gewist wordt. 68

69 1.8.3 Via Programmer Figuur Fusebyte van de ATtiny25 Een programmer (figuur ) is een apparaat dat toelaat om IC s te programmeren. De meeste programmers laten toe dat een heel gamma van componenten geladen kan worden (EPROM, FPGA, controllers, ). 69

70 Figuur Programmer Dit type toestel is aan de dure kant en zonder adapters enkel geschikt voor DIL/DIP. Het voordeel is dan weer dat IC s van verschillende fabrikanten ondersteund worden. Om het IC van een programma te voorzien moet het uit de schakeling genomen worden. Via de ZIF socket op de programmer wordt het geladen, waarna het terug in de schakeling kan. Voor SMD componenten wil dit zeggen dat je ze alleen kan programmeren voor de eindmontage. Sockets voor SMD componenten worden (wegens kostprijs en volume) nauwelijks toegepast Via COM poort Zowat elke microcontroller is uitgerust met een UART. Fabrikanten rusten de controller uit met bootloader code die via bepaalde pinnen geactiveerd kan worden. De bootloader gebruikt dan de UART om de Intel Hex file in te lezen en in het geheugen te plaatsen. In figuur staat een applicatieschema voor de ADuC832 controller. De controller kan geprogrammerd worden nadat hij op de PCB is gesoldeerd. 70

71 Figuur Applicatie ADuC Andere controllers die op die maniergeladen worden zijn o.a. XC888 en 89c5115. Omdat PC s niet steeds beschikken over een COM poort is het gebruik van een USB naar COM omvormer nodig (figuur ). 71

72 Figuur USB naar COM In nieuwe ontwerpen wordt een FTDI232 of aanverwante chip gebruikt om deze omvorming te doen. Er bestaan ook speciale mini programmers op de COM poort. Zie hiervoor de volgende paragraaf (bestaan immers ook op USB) Via USB Gelet op de complexere hardware die hiervoor op de controller aanwezig moet zijn is het aantal controllers dat op deze manier rechtstreeks geladen kan worden beperkt. Voorbeelden zijn o.a. te vinden bij ARM en ATMEL controllers. USB on the go is een USB systeem waardoor controllers ook met elkaar kunnen communiceren. Industrieel en automotive is USB niet direct bruikbaar. Sommige fabrikanten brengen mini programmers op de markt die aangesloten kunnen worden op de USB poort van de PC. Communicatie met deze dongle via de IDE maakt het gebruik extra eenvoudig. De dongle doet dan een omzetting van USB naar een ander protocol dat door de microcontroller gebruikt wordt (kan o.a. SPI of JTAG zijn). In figuur is een afbeelding opgenomen van een programmeer dongle van ATMEL. 72

73 Figuur Dongle ATMEL Door op de PCB van je eigen applicatie een header te voorzien kan de component geladen worden nadat hij op de PCB werd gesoldeerd. Ook herprogrammeren is mogelijk. De dongle kan gebruikt worden voor alle controllers van de fabrikant, niet voor die van andere producenten Via SPI Kleine controllers kunnen meestal via een SPI poort geladen worden. Omdat een PC dit formaat niet kan genereren is een tussenapparaat nodig. Je kan hiervoor de dongle gebruiken uit de vorige paragraaf. Meestal geven de fabrikanten het SPI protocol vrij, zodat je zelf een programmer kan schrijven. In figuur is weergegeven hoe de ATtiny25 aangesloten moet worden om hem te programmeren via SPI. Figuur ATtiny25 SPI programming LET OP!!! De SPI mode kan uitgeschakeld worden via de fuse bits. De controller kan dan enkel nog via een programmer geladen worden. 73

74 1.8.7 Via JTAG JTAG (Joint Test Action Group) is een standaard die origineel werd ontworpen om complexe schakelingen te testen. Het systeem laat toe de gebruikte IC s in een debug mode te schakelen. Via een beperkt aantal aansluitingen (JTAG port) (zie figuur ) kan een extern systeem de controle van de aansluitingen van het IC overnemen. Figuur JTAG PORT Microcontrollers die uitgerust zijn met een JTAG poort kunnen ook langs deze weg geladen worden met een programma. De JTAG poort laat meestal een ver doorgedreven vorm van debugging toe. Sommige IDE s ondersteunen JTAG. 1.9 Hardware criteria Inleiding Een schakeling is maar even betrouwbaar als de zwakste schakel. Niet alleen de software maar ook de hardware is hieraan onderworpen. De behuizing, bekabeling, kwaliteit van connectoren en schakelaars verdienen aandacht. De opdrachtgever zal meestal specifiëren aan welke voorwaarden de hardware moet voldoen. En alhoewel spaghetti best lekker is, kan deze omschrijving niet van toepassing zijn op de bedrading van een elektronische schakeling. Een belangrijke hardware schakel is de PCB. Die komt in de volgende paragrafen aan bod PCB design Inleiding Voor gedetailleerde richtlijnen i.v.m. het ontwerp van een PCB verwijzen we naar de bijhorende cursus. Toch geven we beknopt enkele richtlijnen: 74

75 De PCB is de component die alle andere met elkaar verbindt. De kwaliteit en betrouwbaarheid ervan is dan ook van toepassing op de totale schakeling. Gebruik niet meer componenten dan noodzakelijk. Dit heeft namelijk gevolgen voor: o BOM o Afmetingen PCB o Afmetingen behuizing o Stroomverbruik o Aantal verbindingen en soldeerpunten o Kans op vergissingen Gebruik geen hardware voor problemen die ook met software oplosbaar zijn. Respecteer de aanbevelingen van de fabrikant i.v.m. voedingen. Voorzie montagegaten (een PCB onder spanning mag NOOIT vlak ergens op liggen). Zorg er voor dat alle connectoren aan de rand van de PCB staan. Dit laat een ordelijke montage toe. Zorg dat je eerst alle componenten fysiek beschikbaar hebt. Dit voorkomt verrassingen bij het bestukken. Maak gebruik van een geïntegreerd schema-pcb pakket. Dit voorkomt fouten en vereenvoudigd ook het debuggen van de schakeling. Meet NOOIT met een multimeter de verbindingen door op een bestukte PCB. Een PCB is ook een beetje kunst. Als het er netjes en ordelijk uitziet is de kans groot dat het ook netjes werkt. Gebruik zo dik mogelijke voedingsbanen, liefst voedingsvlakken. Volg de richtlijnen i.v.m. ontkoppeling. Voorzie voldoende koeling voor componenten die vermogen dissiperen. Oriënteer connectoren en componenten zo veel mogelijk in dezelfde richting. Dit voorkomt vergissingen bij gebruik en bestukking. Elke fabrikant van componenten heeft application notes i.v.m. EMC, PCB shielding en grounding. Lees ze dan ook! In appendix A staan er een uitgebreide checklist voor PCB design. In een volgende paragraaf komen we nog terug op enkele eigenschappen i.v.m. PBC s Enkelzijdige PCB Een enkelzijdige PCB kan artisanaal vervaardigd worden. De kwaliteit (tenzij uit industriële productie) is meestal ondergeschikt. De PCB is niet voorzien van een soldeermasker of silkscreen. De kwaliteit van de banen is afhankelijk van het gebruikte basismateriaal, ets en belichtingstechnieken. Deze PCB s kunnen perfect gebruikt worden voor through hole componenten. SMD kan alleen wanneer de pitch >0.05 inch. Na het etsen zal er op de koperbanen en de pads een laagje fotoresist overblijven. Zodra dit weggenomen wordt zal de PCB beginnen met oxideren waardoor de soldeerbaarheid afneemt. Gelet op de zorg waarmee de PCB gemaakt wordt is het perfect mogelijk dat er haarscheuren in de banen voorkomen. 75

76 Het is aanbevolen om zodra de fotoresist verwijderd is een flux aan te brengen met filmvorming (SK10 in figuur ). Figuur SK10 van Kontaktchemie Deze lak zal de PCB beschermen tegen oxidatie. Zodra de flux opgewarmd wordt met een soldeerbout wordt hij vloeibaar en vergemakkelijkt het soldeerwerk. Dit is ook handig bij het vertinnen van de banen op de PCB (vermijden van haarscheurtjes). Het boren van de gaatjes gebeurt best voor het verwijderen van de fotoresist. Zodra de complexiteit van de schakeling toeneemt zijn draadbruggen onvermijdelijk. De ontwerper zal dan overwegen een twee- of meerlagige print te ontwerpen Dubbelzijdige PCB Dubbelzijdige PCB s worden best industrieel vervaardigd. Op die manier kunnen doormetallisaties aangebracht worden die banen van de onderzijde en de bovenzijde met elkaar verbinden. In figuur staan gerelateerde afbeeldingen. 76

77 77

78 Figuur Dubbelzijdige PCB s Dit type PCB is meestal voorzien van een soldeermasker en een silkscreen. Dit vereenvoudigt het bestukken, en biedt de PCB een zekere mate van bescherming. Als je de PCB laat fabriceren heb je de keuze uit verschillende types coating voor de pads. Goud of tin met lood genieten de voorkeur bij prototyping. Loodvrije of zilveren coatings zijn sterk onderhevig aan corrosie en beperken de houdbaarheid (soldeerbaarheid) van de PCB. Bij het bestukken worden eerst de laagste (fysieke afmetingen) componenten bestukt. Als laatste de connectoren en andere through hole componenten. Bestukken langs beide zijden kan overwogen worden. Bij het vervangen van een component kan je best eerst alle pinnen lossnijden, waarna de overblijvende aansluitingen één voor één verwijderd worden. Met soldeerlint/pomp kunnen dan de via s/pads vrij gemaakt worden. Voor je de print laat produceren ga je best bij de fabrikant na welke fysische restricties opgevolgd moeten worden (minimale boordiameters, minimale breedte van banen, dikte van de koper op de PCB, minimale afstanden tussen de banen etc.) Multilayer PCB Multilayer PCB s zijn betaalbaar, zelfs voor prototyping. Het ontwerp ervan moet rekening houden met verschillende factoren zoals o.a. soorten via s. 78

79 Mechanical layout Bij het ontwerp van de PCB moet je rekening houden met de mechanische afmetingen van alle gebruikte componenten. Zorg dat je de juiste footprint gebruikt. Vooral bij SMD componenten zijn er afwijkende verpakkingen beschikbaar. Een PCB moet ook gemonteerd kunnen worden. Montagegaten zijn dan ook onontbeerlijk. Indien er koelvinnen of andere logge mechanische componenten (transformatoren) op de PCB staan moet je ook hiervoor een mechanische montage voorzien. Een verzorgde silkscreen zal het bestukken en het gebruik van de PCB vereenvoudigen (figuur ). Figuur Silkscreen van PCB Prototyping zonder PCB Bij prototyping zonder PCB kan je best GEEN gebruik maken van prikbordjes (figuur ) 79

80 Figuur Prikborden Deze borden zijn bruikbaar voor kleine analoge schakelingen. Door de slechte contacten is dit type bord alles behalve betrouwbaar, laat staan transporteerbaar. Door de grote parasitaire capaciteiten is het bovendien enkel geschikt voor LF ontwerpen. Daarom geven we de voorkeur aan prototyping borden waarop de componenten gesoldeerd worden (figuur ). Deze verbindingen zijn betrouwbaar. Let wel op dat je de minimale afstanden tussen geleiders respecteert in functie van de werkspanning!! 80

81 Figuur Prototyping met gesoldeerde verbindingen 1.10 Keuzecriteria microcontroller Inleiding Het kiezen van een microcontroller voor een bepaalde taak is niet eenvoudig. Er zijn talloze fabrikanten, die elk op hun beurt een uitgebreid gamma aanbieden. Omdat de controllermarkt erg competitief is, zal elke fabrikant zijn aanbod continu afstemmen op de vraag vanuit de markt. Alleen wanneer het over productiereeksen gaat is die optimale keuze van fundamenteel belang. Voor kleinere reeksen of prototyping is de overige kost van die aard dat de prijs van de componenten verwaarloosbaar is. Vele gebruikers gaan dan ook voor 1 producent, en gebruiken uit zijn gamma enkele controllers die breed inzetbaar zijn. Uit de Atmel reeks zou dat de ATtiny25, ATtiny26, ATmega16 en ATmega1280 (zie figuur ) kunnen zijn. Afhankelijk van de aard van toepassingen is een andere selectie mogelijk. Zo zullen automotive 81

82 (CAN bus en ander temperatuurbereik), of batterij gevoede applicaties een andere keuze afdwingen. ATtiny25 (8 pin) ATtiny26 (20 pin) ATmega16 (40 Pin) 82

83 ATmega1280 (100 pin) Figuur Een greep uit het Atmel gamma Het limiteren van de keuze heeft een aantal voordelen: Stockbeheer (aankopen per stuk niet steeds mogelijk) Ervaring (door dezelfde controller te gebruiken bouw je ervaring en herbruikbare software op) Basis hardware (sommige componenten (SMD) vragen kwalitatief hoogstaande PCB s. Door steeds dezelfde controller te gebruiken kan je hiervoor een standaard herbruikbare print ontwerpen) Spelingsmarge bij het ontwerp (door een over dimensioneren van de controller blijft er een marge voor uitbreiding/aanpassing) Herbruikbare IDE en programmeertools 83

84 Op Campus De Nayer limiteren wij ons tot: 8051 compatibele controllers AVR 8 bit ARM7/Cortex Freescale Coldfire Deze keuze houdt geen enkele uitspraak in met betrekking tot andere fabrikanten (vb. TI, Microchip, ). Het is een historische/logistieke keuze. De bitgrootte van een controller is het aantal bit waaruit de inwendige geheugenlocaties bestaan. In de meeste gevallen is dit ook de grootte van de getallen waarop de controller in een keer een berekening kan doen. In figuur staat de binaire notatie van een byte (by eight). Figuur Binaire notatie van een byte 8 bit controllers: o alle variabelen zijn 8 bit groot (of bestaan uit meerdere bytes) o minimale waarde getal b, 00h o maximale waarde getal b, ffh (256 combinaties) 16 bit controllers: o Variabelen zijn 16 bit groot o Minimale waarde getal b, 0000h o Maximale waarde getal b, ffffh (65536 combinaties) 32 bit controllers: o Variabelen zijn 32 bit groot o Maximale waarde getal ffffffffh, ( combinaties) De instructieset van al deze controllers bevatten dezelfde fundamentele mogelijkheden: 84

85 Verplaatsen van gegevens in het geheugen Basisberekeningen (+, -, (niet steeds x en /) Logische berekeningen (and, or, xor, not, shift, ) Meestal is het wel zo dat met de bitgrootte de complexiteit van de chip toeneemt, maar meestal ook snelheid en stroomverbruik. Door het grote aantal aansluitingen zal ook de verpakking een PCB van hogere kwaliteit vragen. In de volgende paragrafen overlopen we even kort de voornaamste eigenschappen van soorten controllers bit microcontrollers Dit type controller is historisch de oudste (Intel 1975 de 8048, Intel 1980 de 8051). Hierdoor bestaat er een arsenaal aan ervaring en tools. Maar door het initiële succes van deze controller heeft hij een groot marktaandeel verovert. Tal van fabrikanten maken ondertussen compatibele versies, of hun eigen systemen. De 8 bitters zijn moeilijk van de markt te verdrijven wegens hun eenvoud, betrouwbaarheid, stabiliteit (lang verkrijgbaar, zo kan je nu nog altijd een 8051 model 1980 kopen) en lage kostprijs. Ze worden aangeboden in een scala van verpakkingen en pincounts bit microcontrollers Dit type controller heeft nooit het succes van de 8 bit systemen kunnen evenaren. Een belangrijke reden was het niet gratis ter beschikking stellen van IDE s en de hoge pincount (complexe PCB). Ze worden vooral gebruikt voor specifieke toepassingen (Vb. Infineon 166 voor PLC s en frequentieomvormers) bit microcontrollers Tot voor kort waren dit type controllers hetzelfde lot beschoren als de 16 bit varianten. Met de opkomst van de ARM core (ontwerp van 1983) is dit drastisch veranderd. De ARM core kenmerkt zich door: Lage kostprijs (RISC opbouw) Laag stroomverbruik (draagbare toepassingen) Core principe waardoor verschillende fabrikanten devices op de markt brengen (NXP, Atmel, Analog Devices, ) Het marktaandeel van dit type zal in de toekomst verder blijven toenemen. Enkele nadelen blijven er wel bestaan (complexiteit, hoge pincount, ontwikkeltools). 85

86 Speciale microcontrollers? Elke fabrikant brengt ook controllers op de markt die voor een specifieke toepassing worden ontworpen. Enkele voorbeelden: Microchip maakt een controller specifiek voor deur-elektronica in een wagen SC12 van Beck zijn single chip PC s met ethernet connectiviteit Atmel maakt controllers specifiek voor het aansturen van verlichting Deze niet limitatieve lijst geeft aan dat ook niet standaard controllers op de markt komen. Een groot probleem zal altijd blijven: Kan ik er aan geraken, en zo ja voor hoe lang? Voor een ontwerp zou het antwoord JA en LANG moeten zijn Fail safe werking van een controllersysteem Inleiding Fail safe werking houdt in dat een systeem onder alle omstandigheden betrouwbaar blijft werken. Vooral wanneer het uitvallen van het systeem voor ernstige gevolgen (voor mens en milieu) kan zorgen is fail safe werking belangrijk. 100% fail safe is onmogelijk, maar afhankelijk van de toepassing zal je er meer aandacht aan moeten besteden. In de nucleaire toepassingen gaan de ontwerpers erg ver (7 computers parallel) Ongebruikte vectoren en geheugenlocaties Het is mogelijk dat de processor het programma niet afwerkt zoals het voorzien is. Dit kan het gevolg zijn van een bug in de software, maar ook ESD/EMC problemen kunnen er de oorzaak van zijn. Het is gebruikelijk ongebruikte geheugenlocaties te vullen met de NOP instructie. Ongebruikte interrupt vectoren laat je best verwijzen naar een dummy interruptroutine die op een ordelijke manier de controle overdraagt aan het hoofdprogramma Bewaking van het programmaverloop (Watchdog Timer) Bovenstaande technieken garanderen niet dat het geheel niet vastloopt. Daarom zijn de meeste controllers uitgerust met een watchdog timer. Dit kan je best vergelijken met een keukenwekker. De timer wordt ingesteld op een bepaalde tijd (ųs-ms-s). Als binnen die tijd het programma de wekker niet opnieuw instelt zal de controller opnieuw opgestart worden. Om te beletten dat de herinstelling van de timer toevallig 86

87 kan gebeuren is hiervoor een beveiligde operatie voorzien (strikte timing of procedure). De WDT maakt deel uit van de controller. In sommige toepassingen wordt dit niet als veilig aanzien (kristal breekt af, totale chip valt stil). In dat geval wordt een externe watchdog toegevoegd (figuur ) (TUVcompliance). Figuur Externe WDT 87

88 Bewaking van de voedingsspanning Dit onderwerp werd reeds uitvoerig behandeld in dit hoofdstuk bij de bespreking van de voeding Temperatuur bewaking Voor de thermische bewaking van het systeem kan je beroep doen op bimetaal thermostaten (figuur ) of halfgeleider thermostaten (figuur ). Figuur Bimetaal thermostaten 88

89 Figuur Halfgeleider thermostaat Het gebruik van de bimetaal thermostaten kan ook noodzakelijk zijn als bijkomende beveiliging in een elektronisch geregeld systeem (vb. waterboiler, kookplaat etc). Thermische zekeringen herstellen zich niet na de over-temperatuur. Zij worden veel gebruikt in consumer-elektrische toestellen (figuur ) Figuur Thermische zekering 89

90 Redundante systemen If all else fails In o.a. jachtvliegtuigen en nucleaire installaties worden redundante systemen gebruikt. Hierbij gaan meerdere computersystemen (zelfs van verschillende fabrikanten) onafhankelijk van elkaar dezelfde berekeningen uitvoeren. In geval van onenigheid wordt er democratisch beslist wat er moet gebeuren (In de nucleaire sector heeft een democratische beslissing voor gevolg dat het systeem daarna in shut down gaat). Omdat de I/O gedeeld wordt, zal extra hardware toegevoegd worden om er voor te zorgen dat een systeem dat in de fout gaat de hardware gaat hypothekeren Stroomverbruik beïnvloeden Inleiding Het stroomverbruik beïnvloeden heeft vooral bij batterij gevoede systemen voordelen. Zowat alle microcontrollers bevatten hardware ondersteuning om dit mogelijk te maken. Merk op dat sommige controllers initieel ontworpen zijn om batterij gevoed te worden Stroomverbruik afhankelijk van kloksnelheid Er bestaat een verband tussen stroomverbruik en kloksnelheid (figuur voor ATmega128) 90

91 Figuur Stroomverbruik versus kloksnelheid ATmega128 Door de werkfrequentie van de controller aan te passen kan dus ook het stroomverbruik aangepast worden. De grafieken geven het stroomverbruik bij een actieve controller ( zie ) Stroomverbruik afhankelijk van activiteitsgraad Onafhankelijk van de klok kan de processor in een aantal stroomreducerende modes geplaatst worden. De ATmega128 kent 3 modi: -actief, idle, power down. Het verschil tussen beide laatste modi is het aantal onderdelen dat effectief uitgeschakeld wordt. In idle is dat meestal alleen de CPU. Die kan dan gewekt worden door I/O gebeurtenissen (figuur ) Figuur Stroomverbruik ATmega128 in idle mode 91

92 In de power down mode wordt alles uitgeschakeld. De chip kan meestal enkel gewekt worden door een hardware reset. Sommige controllers laten ook toe dat de watchdogtimer of een externe interrupt het systeem uit de slaapmode haalt (figuur voor stroomverbruik power down). Figuur Stroomverbruik ATmega128 in power down Merk op dat er bij power down geen sprake meer is van de klok. Het enige wat nog loopt (en ook dat kan uitgeschakeld worden) is de inwendige RC oscillator die de watchdog klokt (in figuur staat de watchdog nog ingeschakeld) Stroomverbruik afhankelijk van voedingsspanning De figuren in bovenstaande paragrafen bevatten ook gegevens i.v.m. de voedingsspanning. Hoe lager die is, hoe lager het stroomverbruik. Meestal is er wel een verband tussen de maximale kloksnelheid en de voedingsspanning (figuur voor ATmega128). Bij de pentium reeks van Intel kan de processor zijn voedingsspanning bijsturen, afhankelijk van de gevraagde rekenkracht. 92

93 Figuur Klokfrequentie versus voedingsspanning Stroomverbruik afhankelijk van ingeschakelde onderdelen Een microcontroller is opgebouwd uit onafhankelijke functionele onderdelen. Na een reset zijn alle niet noodzakelijke onderdelen uitgeschakeld. De gebruiker zal, afhankelijk van zijn toepassing, die onderdelen initialiseren, en dus ook inschakelen. Hierdoor zal het stroomverbruik van de controller toenemen. Sommige controllers (ARM) laten ook toe dat de kloksnelheid van de periferie lager kan zijn dan die van de CPU Stroomverbruik afhankelijk van technologie Tenslotte zal het stroomverbruik ook afhankelijk zijn van de door de fabrikant gebruikte technologie. Sommige controllers (MSP430 van TI) zijn speciaal ontworpen om een ultra laag stroomverbruik te hebben. De gebruikte geometrie van de inwendige componenten, het aantal halfgeleiders waaruit de schakeling is opgebouwd, gebruikte kloksnelheid en voedingsspanning zijn hierbij de voornaamste factoren Besluit Bij het ontwerpen van een controllertoepassing is het uiterst belangrijk gestructureerd te werken. Bij het opstellen van een lastenboek moet je trachten rekening te houden met de sleutelparameters die een systeem omschrijven. Een goede documentatie en nauwgezette uitvoering zijn van primordiaal belang! 93

94 Hoofdstuk 2 Digitale Input en Output 2.1 Inleiding Digitale I/O is elke vorm van input en output waarbij een uitgangsklem met een 1 of een 0 aangestuurd wordt. Alhoewel tijdsgestuurde uitgangen (PWM) ook digitale I/O vormen zullen we die vormen bespreken bij de tijdsgerelateerde I/O. Een belangrijk aspect bij de bespreking van de digitale I/O is het type poort waarover de controller beschikt (push-pull of open drain (al of niet met ingebouwde pull-up weerstand)). Ook de elektrische specificaties van de poort (en zoals in het vorige hoofdstuk besproken van de chip) spelen een belangrijke rol bij het inlezen of aansturen van externe componenten. 2.2 Digitale input Inleiding Digitale input laat toe om een signaal in te lezen met de toestand 1 of 0. Afhankelijk van de bron van het signaal kan een elektrische aanpassing nodig zijn. Als het over een NIET 8051 poort gaat, heeft een input van een controller een hoge impedantie. Je zal er dan moeten voor zorgen dat de poort altijd in een gekende toestand is. Bij een 8051 compatibel poort (met uitzondering van poort 0) is er inwendig altijd een pull-up weerstand aanwezig. Als de poort open ligt zal intrinsiek een 1 op de poort aanwezig zijn. Waar mogelijk zullen we voor elk type input de alternatieven bespreken. Bij digitale inputs moet ook aan contactdender aandacht geschonken worden (figuur ). Dit verschijnsel treedt op wanneer mechanische contacten gebruikt worden. Maar ook optische systemen zonder ingebouwde hysterese kunnen dit verschijnsel vertonen. In de meeste gevallen kan dit verschijnsel opgevangen worden in software. Alleen bij tijdsgerelateerde I/O moet het signaal dender vrij zijn. Alleen in die gevallen is een ontdendering aanvaardbaar. Ook hier blijven we aanhanger van het principe hoe minder componenten hoe beter, en wat in software kan moet je niet in hardware doen onder het motto software kost geen geld tijdens de productie, hardware wel, en software is flexibel, hardware niet. In figuur is een ontdenderingsschakeling opgenomen. Voor het inlezen van keypads bestaan er ook geïntegreerde schakelingen. Ook hier zijn we voorstander van een software oplossing. 94

95 Figuur Contactdender Figuur Ontdenderingsschakeling (100R in serie SW1!!) Schakelaars Schakelaars vormen de meest eenvoudige vorm van input. In figuur staan enkele mogelijke manieren afgebeeld om een schakelaar aan te sluiten op een poort. 95

96 A B C D Figuur Schakelaars op ingangspoort. Figuur A: Deze configuratie is geldig voor alle types ingangspoorten. Bij een 8051 poort is de pull-up weerstand totaal overbodig voor afstanden < 30cm. Worden de afstanden groter, dan kan de pull-up weerstand best toegevoegd worden. De waarde van de weerstand kan je dan best verkleinen naar een waarde tussen de 1k en 4k7. Als de afstanden erg groot worden (m) dan kan moet je opletten voor spanningsvallen in de aansluitdraden. Een oplossing met optocoupler (zie verder) kan dan aangewezen zijn. Figuur B: Dit is niet aan te bevelen bij 8051 poorten. Er zal immers constant een relatief grote stroom vloeien (80ųA). Bij poorten zonder inwendige pull-up kan dit perfect. De weerstandswaarde kan dan best genomen worden zoals in uitleg figuur A. Figuur C: Werkt bij geen enkele ingangspoort. Als de schakelaar open is zal er bij een 8051 poort een 1 ingelezen worden (behalve voor poort 0 die meestal geen inwendige pull-up weerstanden heeft). Bij een gesloten schakelaar ook. Bij een poort zonder pull-up weerstanden zal de ingang zweven en dus een ongekend niveau afleveren. Figuur D: Deze figuur is vergelijkbaar met figuur A. De weerstand van 1k zal de pushpull poort beschermen wanneer ze per ongeluk in de output mode komt te staan. Zonder de weerstand kan er dan een kortsluiting ontstaan. Alhoewel de meeste 96

97 poorten een inwendige stroombegrenzing hebben is dit toch te vermijden. Behalve in educatieve systemen is dit niet gebruikelijk (je mag er van uit gaan dat de programmeur weet wat hij doet). Voor ontdendering verwijzen we naar vorige paragraaf (100R in serie schakelaar!!) Keypad (klavier) Een keypad is een groep van schakelaars die gebruikt worden om gegevens in te lezen. Omdat het aantal aansluitingen op een controller beperkt is, worden de schakelaars in een matrix geplaatst. Hierdoor zal ook het aantal verbindingen tussen de controller en het keypad beperkt blijven (figuur ). Figuur Keypad Het keypad kan op verschillende manieren aangesloten worden op de controller. Ook hier is het al of niet beschikbaar zijn van inwendige pull-up weerstanden belangrijk. Indien dat niet is moet het klavier aangesloten worden zoals in figuur

98 Figuur Aansluiting keypad met externe pull-up weerstanden Tenslotte is er ook software nodig om het klavier te pollen. Een klavier inlezen via een interruptroutine is niet aangewezen wegens de contactdender. Figuur laat zien hoe dit zou kunnen (de dender moet dan in software opgevangen worden in de interruptroutine (delay) wat niet altijd een goede programmeertechniek is). Figuur Keyboard genereert een interrupt In onderstaande figuur ( ) is een flowchart opgenomen die aangeeft hoe het inlezen van het klavier kan gebeuren. Het is aanbevolen van keyboardscanning een onderdeel van het hoofdprogramma te maken. Het betreft hier immers een relatief trage gebeurtenis. 98

99 99

100 Figuur Keyboard polling flowchart Onderstaande figuur (figuur ) is een alternatieve aansluiting van een keypad. Als je over een analoge input beschikt kan je op deze manier klemmen uitsparen. LET WEL OP!! Afhankelijk van stoorsignalen, nauwkeurigheid van de ADC en bekabeling is het aantal schakelaars dat op deze manier ingelezen kan worden beperkt. Figuur

101 Het is ook mogelijk een PC PS2 klavier op een controller aan te sluiten. De communicatie tussen de controller en het klavier verloopt via een seriële interface (figuur ). Figuur PC klavier De communicatie verloopt via de clock en datalijn. Omdat er informatie in beide richtingen uitgewisseld kan worden is er een protocol opgesteld dat de nodige afspraken bevat. Dit kan je terugvinden op het www (vb: ) Galvanische scheiding (ook voor digitale output!!) Inleiding Een galvanische scheiding wordt toegepast wanneer er: Gevaar bestaat voor elektrocutie Een spanningsverschuiving (common mode spanning) is De gekoppelde systemen op andere spanningen werken (PLC I/O=24V CPU=5V) Gevaar bestaat voor ongewenste stroompaden (vb. aardingslussen) Als detector Om een volledige galvanische scheiding te bekomen moeten er voor de verschillende subsystemen ook galvanisch gescheiden voedingen bestaan (zie DC/DC converters in hoofdstuk 1). Soms wordt er ook een semi galvanische scheiding gebruikt door gebruik te maken van hoog-ohmige weerstanden. Dit wordt soms gebruikt bij nuldoorgangdetectie (figuur ). Enige voorzichtigheid is hier wel geboden (zowel op het vlak van PCB ontwerp als keuze van componenten) 101

102 Figuur Galvanische scheiding met weerstanden Figuur laat zien dat je in de flowchart rekening moet houden met de mogelijkheid dat dit circuit ook op korte pulsen zal reageren. 102

103 Figuur Flowchart zero crossing detection Wil je echt een galvanische scheiding, dan kan je bovenstaand circuit apart voeden en via een optocoupler het signaal laten doorgeven aan de rest van de schakeling. OPGELET!!! Bovenstaand circuit werkt enkel bij controllers met inwendige beveiligingsdiodes. Indien die niet aanwezig zijn, moet je zelf schottky dioden toevoegen (figuur ). Figuur Schottky diode 103

104 Dit type diode heeft een lagere spanningsval dan een gewone diode. Hierdoor wordt de overspanning op de microcontroller pin beperkt tot 0.3V. Je moet wel nagaan of die overspanning op de door U gebruikte controller toelaatbaar is DC optocouplers Optocouplers bestaan er in verschillende uitvoeringen (figuur ) en met uiteenlopende specificaties. 104

105 Figuur Optocouplers en hun uitvoeringen Figuur Analoge optocoupler HCNR

106 In figuur is een optocouplers afgebeeld met 2 fotodiodes. Omdat de twee fotodiodes een identieke karakteristiek hebben kan je één van de twee gebruiken in een terugkoppel circuit. Hierdoor kan je ook analoge signalen optisch galvanisch scheiden (figuur ). Figuur Analoge signaaloverdracht via optocoupler HCNR200 Optocouplers bestaan uit een fotodiode en een transistor. Wanneer je deze component wil toepassen zal je de nodige aandacht moeten besteden aan de specificaties. Ter illustratie zijn fragmenten uit de datasheet opgenomen van de 4N25, een courant gebruikte optocoupler. Behuizing (figuur ): Figuur Aansluitgegevens van de 4N25 De aansluitingen zijn opzettelijk gegroepeerd aan beide zijden van de behuizing. Op die manier is er een fysieke barrière tussen de ingang en de uitgang. Bij het PCB ontwerp zullen geen verbindingen (met uitzondering van een aarding) aangebracht worden. De elektrische karakteristieken laten zien dat de optocoupler ook een isolatiespanning heeft. 106

107 In onderstaande figuur zijn de AC en DC karakteristieken opgenomen (Figuur en figuur ) Figuur Elektrische maximum karakteristieken 4N25 107

108 Figuur Elektrische karakteristieken 4N25 108

109 Een optocoupler moet beschermd worden tegen inverse spanningen aan de LED zijde (figuur ) Figuur Bescherming LED tegen inverse spanningen Dit is van toepassing wanneer de optocoupler gebruikt wordt om ingangssignalen te lezen en door een foutieve aansluiting inverse spanningen over de LED komen te staan. In industriële toepassingen zal het ingangscircuit bovendien voorzien worden van een filterschakeling (RC netwerken en/of bijkomende dioden zie figuur ). Figuur Filterschakeling ingang optocoupler De weerstand parallel met de diode zorgt er voor dat kleine lekstromen de diode niet laten oplichten. In figuur wordt weergegeven hoe de optocoupler geschakeld kan worden om een laag of een hoog signaal te genereren wanneer de transistor in geleiding komt. 109

110 A: transistor in geleiding= hoog niveau B: transistor in geleiding= laag niveau Figuur Uitgangstransistor optocoupler schakelen In figuur is een standaard inputtoepassing voor een optocoupler weergegeven. Figuur Standaard optocoupler ingangsschakeling Dit type circuit wordt ook gebruikt om de ingangsimpedantie van een digitale input kunstmatig omlaag te brengen. Hierdoor wordt een grotere immuniteit tegen stoorsignalen bekomen. De input kan ook met een schakelaar naar de massa gebracht worden. Zelfs wanneer 5 volt gebruikt wordt als voedingsspanning van de LED, kunnen problemen met spanningsvallen over draden opgevangen worden. Wanneer een optocoupler als outputcircuit gebruikt wordt, zal in de meeste gevallen een buffer gebruikt moeten worden om de benodigde LED stroom te leveren AC optocouplers AC optocouplers worden gebruikt om AC signalen te schakelen. Ze bevatten geen transistor maar een TRIAC als schakelelement. Voor kleine vermogens (figuur ) worden ze optocouplers genoemd. Voor grotere vermogens krijgen ze de 110

111 naam solid state relay (figuur ). Beide bestaan met en zonder zero crossing detection. Figuur Optocouplers met TRIAC schakelelement 111

112 Figuur Solid state relay Naast de optocouplers met TRIAC schakelelement bestaan er ook optocouplers die MOSFET of IGBT schakelelementen gebruiken om een AC of DC signaal te schakelen (figuur ). Figuur Optocouplers met MOSFET uitgang LET OP!! SSR s met een TRIAC als schakelelement kunnen niet gebruikt worden voor het schakelen van DC belastingen (hier gebruik je beter SSR s met IGBT schakelelement). Ook bij het schakelen van sterk inductieve belastingen kunnen er problemen ontstaan met SSR s die een nuldoorgangdetectie hebben! Tijdens het schakelen van inductieve belastingen kunnen er stoorsignalen ontstaan. Om die op te vangen worden vrijloopdioden (DC inductieve belastingen), snubber netwerken (RC keten) en/of varistors (en ook transient absorbers) gebruikt. Je kan bij het dimensioneren van de SSR best rekening houden met de overgangsverschijnselen bij het inschakelen van bepaalde belastingen (fig ) 112

113 Figuur Overgangsverschijnselen bij inschakelen belasting 113

114 Transformatoren Voor bepaalde communicatiedoeleinden worden transformatoren gebruikt als galvanische scheiding. Het best gekend zijn de transformatoren bij ethernet verbindingen (figuur ). Figuur Ethernet transformator Transformatoren kunnen ook gebruikt worden om de 50Hz van het net te gebruiken als referentieklok zoals voor wekkerradio s. Figuur laat hiervoor een mogelijke schakeling zien. De schakeling is niet bruikbaar als zero crossing detector omdat een transformator een faseverschuiving heeft tussen ingangsspanning en uitgangsspanning. De schakeling uit de figuur kan aangevuld met een diode, een condensator en een regelaar ook als voeding voor de applicatie gebruikt worden. 114

115 Figuur Hz klokgenerator Industriële sensoren (inductief, capacitief) Er zijn tal van industriële sensoren op de markt die als input voor een controller gebruikt kunnen worden. Enkele voorbeelden zijn de inductieve en capacitieve naderingsschakelaars (figuur ), maar ook level switches (figuur ), Figuur Industriële naderingsschakelaars Figuur Level switch 115

116 Figuur bevat een voorbeeld van het inwendige van een naderingsschakelaar. Zodra het uitgangscircuit gevormd wordt door een halfgeleider is het ook dender vrij. De industriële sensoren werken wel op volt. Het uitgangssignaal kan nog aangepast moeten worden naar 0-5v. Figuur Elektrische aansluitingen naderingsschakelaar Meer informatie kan je o.a. terugvinden bij

117 2.2.6 Rotary/quadrature encoders In sommige toepassingen wensen we de positie of de hoek verdraaiing van een as te meten. Die as kan een onderdeel vormen van een aandrijvingssysteem, of een potentiometer (draaiknop) zijn (figuur ). Figuur Rotary encoder De rotary encoder in de vorm van een potentiometer wordt soms ook wel een digitale potentiometer genoemd (Let op! Er bestaan ook digitale potentiometers in IC vorm). Inwendig kunnen rotary encoders op verschillende manieren opgebouwd zijn: Met schakelaars Met Hall-elementen Optisch Met sleepcontacten over weerstanden (zoals een gewone potentiometer) De prijs en de betrouwbaarheid zijn afhankelijk van de gebruikte technologie. Hierbij verdienen optische en Hall systemen de voorkeur (figuur ) Figuur Optische en Hall rotary encoders. 117

118 Afhankelijk van het uitgangssignaal worden encoders onderverdeeld in absolute en relatieve encoders. Bij absolute encoders is er een uitgangssignaal dat op elk ogenblik de absolute positie (hoek) van de as weergeeft. Inwendig wordt dan een optische schijf gebruikt met absolute coördinaten (figuur ). Figuur Absolute encoder Een dergelijke encoder is mechanisch precisiewerk en bijgevolg erg prijzig. Indien je de absolute positie niet moet kennen bij het opstarten van het systeem kan je gebruik maken van een incrementele (relatieve) encoder. In de meeste gevallen geeft die 2 signalen naar buiten die in fase verschoven zijn (figuur ). 118

119 Figuur Incrementele/relatieve encoder 119

120 Omdat de uitgangssignalen 90 graden verschoven zijn (4x90=360) worden ze ook wel quadrature encoders genoemd. De naam wordt echter ook gebruikt voor de elektronische schakeling die dit signaal om zet naar een richtingssignaal en een puls uitgang telkens de as een bepaalde hoekverdraaiing maakt (figuur ) Figuur Quadrature encoder Infiguur staat een alternatieve schakeling die een puls geeft op een van beide uitgangen in functie van de draairichting. Sommige microcontrollers hebben deze hardware aan boord. Bij andere kan je door software (al of niet met flankgevoelige interrupts) of door timers met een up/down telmogelijkheid dit type sensor inlezen. 120

121 Figuur Quadrature encoder alternatief 2.3 Digitale output Inleiding Bij het bespreken van digitale outputs gebruiken we een standaard 8051 poort (figuur ) en een AVR poort (figuur ) als voorbeelden. Figuur Uitgangskarakteristieken standaard 8051 poort 121

122 Figuur Uitgangskarakteristieken AVR poort Merk vooral op dat de uitgangsspanning afhankelijk is van de hoeveelheid stroom die de pin moet leveren. Wordt enkel de belasting (vb. LED) aangestuurd, dan is dat van ondergeschikt belang (wel rekening mee houden bij berekeningen, maar niet van invloed op de functionaliteit). Wordt het uitgangssignaal ook nog gebruikt als input voor een andere component, dan zal je moeten nagaan of de logische niveaus nog gehaald worden. Bij het aansturen van outputs is de reset toestand van een pin belangrijk. Die toestand zal namelijk bepalen wat er zal gebeuren bij (en vooral tijdens) het resetten van de controller. Ga er van uit dat tijdens een reset alle aangestuurde elementen in een ruststand moeten staan. Voor de 8051 controllers (met uitzondering van de nieuwere exemplaren zoals de XC888) zijn alle outputs 1 tijdens een reset. In die toestand kan de poort slechts enkele ųa stroom leveren. Het aansturen van een output zal dan ook per definitie actief laag gebeuren. In een lage toestand kan een poort 1.6mA stroom leveren Voor de AVR (maar ook alle andere controllers met push-pull poorten) staan de pinnen in hoge impedantie tijdens de reset. De poort zweeft, en wordt niet in een gekende toestand gebracht. Als de belasting die aangesloten is op de pin effectief stroom verbruikt (vb. LED) dan zal er niets gebeuren tot de poort in de output mode wordt geschakeld. Je kan dan best eerst het data-register schrijven, zodat de uitgang in een niet actieve toestand komt als je de outputbuffers inschakelt (richtingsregister van de poort instellen). Je kan hier dus kiezen of je de verbruiker actief hoog of actief laag gebruikt. 122

123 Als de verbruiker quasi geen stroom verbruikt (FET), dan kan de zwevende output de verbruiker niet gegarandeerd uitschakelen. Dit kan je verhelpen door pull-up of pull-down weerstanden toe te voegen. Is de verbruiker een transistor, zorg dan dat die steeds ingesteld is (basis is niet zwevend!) LED Een LED is de meest eenvoudige vorm van output (op een testpunt na). LED s bestaan in alle soorten en maten. In deze cursus gaan we er van uit dat er 3 soorten zijn, ingedeeld volgens stroomverbruik: Standaard LED verbruikt 20mA Groot vermogen LED verbruikt meer dan 20mA (kan oplopen tot meerdere ampère) LED s met laag stoomverbruik, wat meestal 1mA is Voor de LED s met groot vermogen zal steeds een bufferschakeling noodzakelijk zijn. Hiervoor kan je een transistor gebruiken, maar er bestaan ook vermogen buffers (figuur en figuur ). A B A: R2 zal bij de AVR poort de transistor instellen (reset) B: Bij de 8051 zal deze LED branden tijdens een reset Figuur Aansturen vermogen LED 123

124 Figuur Driver IC s en componenten ULN

125 Figuur Driver IC s en componenten IRL3102 Voor de standaard LED moet je nagaan wat de maximale uitgangsstroom is die een poort kan leveren, en hoeveel LED s je op de controller wil aansluiten. Bij de AVR controller zie je bovendien dat de uitgangsspanning niet meer gegarandeerd is. Figuur AVR stuurt LED 125

126 Door in de figuur de LED s om te draaien kan je ze ook actief hoog aansturen. Figuur stuurt LED s Bij de 8051 kunnen enkel LED s met een laag stroomverbruik rechtstreeks op de controller aangesloten worden. Bovendien kunnen ze enkel actief laag aangestuurd worden (figuur ). Je kan op het WWW schema s vinden waarbij een 8051 wel grotere belastingen kan sturen, zelfs actief hoog. Ga eerst na in de datasheets of de betreffende component uitgangsspecificaties heeft die hier aan voldoen. Kijk vooral ook naar de maximum ratings voor het complete IC!! Tenslotte nog een case study in figuur

127 Figuur Case study PIC microcontroller 127

128 Segment display Een 7 segment display bestaat uit 8 LED s in een behuizing (figuur ). Meestal is er een gemeenschappelijke (common) aansluiting (Common Cathode (CA), Common Anode (CA)). De LED s die gebruikt worden hebben vergelijkbare specificaties met discrete LED s. Figuur segment display Wordt slechts 1 display gebruikt, dan kan je er een volledige microcontroller poort aan opofferen (figuur ). Figuur segment display op 1 poort (display OK?) 128

129 Je kan overwegen om een 7-segment decoder te gebruiken (figuur ). Die kunnen maar een beperkt aantal symbolen weergeven. Bovendien geldt ook hier dezelfde regel als bij keypad s (minder is beter). Figuur segment decoder Er bestaan 7 segment drivers die met de microcontroller communiceren via een seriële verbinding. Deze drivers zijn bijzonder handig wanneer de controller over weinig aansluitingen beschikt, of wanneer er veel uitlezingen aangestuurd moeten worden (figuur ) Figuur segment drivers Deze segment drivers kunnen verschillende mogelijkheden bieden zoals: instellen intensiteit, al of niet 7 segment decodering, blanking, etc. 129

130 In de meeste gevallen wordt multiplexing gebruikt om 7 segment displays aan te sturen (figuur ). Figuur Display multiplexing (geen goed voorbeeld!!) In de figuur worden geen buffers gebruikt om de segmenten van de uitlezingen aan te sturen. Zelfs met high brightness displays zal de stroom beperkt moeten blijven. Hierdoor zal de intensiteit van de uitlezing dalen (25% duty cycle aansturing). Bovendien worden common cathode displays gebruikt. De controller zal dus stroom moeten leveren aan de displays, wat hij niet kan!!!!! Volgende schakeling komt hier voor een deel aan tegemoet (figuur ). Figuur is een werkende oplossing. Het is duidelijk dat het WWW met de nodige kritische ingesteldheid benaderd moet worden. In figuur staan weerstanden en transistoren omcirkeld die bij een 8051 aansturing niet nodig zijn. Bij andere controllers kan je de 10k weerstanden behouden. De transistoren zorgen voor een actief hoge aansturing (mocht je daar op kicken). Voor 14 segment displays kan analoog gewerkt worden. 130

131 Figuur segment aansturing (beter voorbeeld) Figuur segment aansturing (goed voorbeeld) 131

132 Het multiplexen van het display zal steeds op interruptbasis moeten gebeuren. Anders krijg je verschillen in lichtintensiteit Matrix LED display s Matrix displays (figuur ) bieden meer vrijheid bij de weergave. Hun aansturing verloopt analoog met die van 7 segment uitlezingen. Omdat je hier heel vlug aan een groot aantal LED s komt zijn aparte stuur IC s (figuur ) vaak onmisbaar. Figuur Matrix display 132

133 Figuur Stuur IC matrix display 133

134 2.3.5 LCD modules LCD schermen (de glasplaat) kunnen niet rechtstreeks door een gewone microcontroller aangestuurd worden. Dit heeft te maken met de AC-golfvormen die nodig zijn om het display aan te sturen. Sommige controllers zijn uitgerust met een LCD interface (figuur ) Figuur ATMEL AVR Butterfly Voor de meeste toepassingen is het handiger om van LCD modules gebruik te maken (figuur ). 134

135 Figuur LCD modules LCD modules kunnen grafisch (bovenste afbeelding) of alfanumerisch werken. Er zijn ook displays die een combinatie van beide aankunnen. Ze bestaan in verschillende kleuren en vormen. De grafische LCD s zijn niet standaard. Elke fabrikant heeft zijn eigen gamma met verschillende mogelijkheden. Alfanumerische displays zijn wel gestandaardiseerd. Dit zowel in mechanische afmetingen en aansluitingen als de manier (software) waarop ze aangestuurd moeten worden. Voor beide types display is het belangrijk dat er een controller aan boord is. Voor grafische displays is dit niet steeds het geval. De controller zorgt er voor dat een microcontroller data naar het display kan sturen, waarna de controller op het display voor de verdere aansturing zorgt. De controller zal de LCD drivers zodanig aansturen dat de glasplaat het gewenste beeld laat zien. Voor grafische displays zal de controller er voor zorgen dat het scherm (in eenvoudigste vorm) voorgesteld wordt door een bitmap (figuur ). 135

136 Figuur Grafisch LCD scherm met KS0108b controller 136

137 Figuur Grafisch LCD scherm met KS0108b controller 137

138 Figuur Grafisch LCD scherm met KS0108b controller Alfanumerische displays kunnen maar een beperkt aantal symbolen laten zien (figuur ). Daarnaast kan de gebruiker 8 karakters volledig zelf bepalen. Dit geeft enige grafische mogelijkheden. In figuur staan enkele gegevens opgenomen van display modules. Belangrijke topics voor beide types modules zijn: Temperatuurbereik Contrastspanning (kan een negatieve spanning zien die extern aangelegd moet worden) Afleeshoek Achtergrond verlichting (en bijhorend stroomverbruik!!) Communicatiesnelheid bij overdracht gegevens tussen microcontroller en controller Uitvoeringssnelheid van de commando s 138

139 Figuur Standaard symbolen alfanumerisch display 139

140 Figuur Gegevens alfanumerisch display 140

141 Figuur Gegevens alfanumerisch display 141

142 Figuur Gegevens alfanumerisch display 142

143 Write mode timing diagram Figuur Gegevens alfanumerisch display 143

144 Let op!! De verklarende uitleg voor de verschillende bits klopt niet!! Figuur Gegevens alfanumerisch display Dit type display wordt meestal in de 4 bit mode gebruikt. Indien je niet leest van het scherm heb je dan slechts (4 datalijnen, 1 enable, 1 RS) 6 pinnen van de controller nodig. Met 1 poort kan je dan tot 3 modules aansturen. Modules van 40 karakters 4 lijnen gebruiken 2 enable lijnen (figuur ) Figuur Aansluitingen 4 lijnen 40 karakters 144

145 2.3.6 DC-motoren laagspanning Het aansturen van DC motoren is afhankelijk van het aantal draairichtingen. In het geval slechts 1 draairichting gewenst is, kan principieel elke schakeling die een LED kan sturen ook voor een motor gebruikt worden mits toevoeging van een vrijloopdiode en eventueel een ontstoringscapaciteit (figuur ). Figuur Aansturen DC motor met 1 draairichting Omdat stroombegrenzing meestal wenselijk is worden ook driver IC s gebruikt (figuur ). 145

146 Figuur Motor control IC 146

147 De figuur laat de gegevens zien van een low side switch. De verbinding zal dus naar de massa gemaakt worden. Dit type IC s is zo ontworpen dat ze tegen zowat alles beschermd zijn. Je kan er zelfs inductieve belastingen mee schakelen zonder dat die van een vrijloopdiode voorzien zijn. De laatste curve laat zien wat er met de spanning over de belasting gebeurt (42V voor 12V toepassingen, 75V voor 24V toepassingen). Een vrijloopdiode voorkomt dit. In automotive toepassingen zullen eerder high side switches gebruikt worden (figuur ). De oorzaak hiervan is dat het koetswerk de massa vormt. Er kan dan altijd 1 verbinding tussen de load (lamp, motor, ) en koetswerk vast aangebracht worden. 147

148 Figuur High side switch De IC s die gebruikt werden als voorbeeld worden door Infineon gemaakt voor de automotive markt. Andere fabrikanten maken gelijkaardige circuits. De voorbeelden laten toe een motor (maar ook andere willekeurige belastingen) in en uit te schakelen. Bij een motor kan het wenselijk zijn de motor in 2 richtingen te laten draaien. In dat geval heb je een H-brug schakeling nodig (figuur ) Figuur H-brug (dead time?) 148

149 In de praktijk wordt een H-brug niet discreet maar in IC vorm gemaakt. Dit laat toe allerhande beveiligingen in te bouwen, en koeling eenvoudiger te maken (figuur ). Figuur Gecombineerd IC 149

150 2.3.7 Stappenmotoren en brushless DC motoren Stappenmotoren kunnen verschillende mechanische uitvoeringvormen hebben. Zo zijn er: Stappenmotoren met permanente magneet (figuur ) Variabele reluctantie motoren Motoren die volgens het principe van de variabele reluctantie (figuur ) werken hebben een lichtere (kleinere) rotor, maar zijn mechanisch veel nauwkeuriger gemaakt. Figuur Stappenmotor met permanente magneet rotor 150

151 Figuur Variabele reluctantie motor 151

152 Stappenmotoren kunnen elektrisch voornamelijk in twee categorieën ingedeeld worden: Unipolaire motoren Bipolaire motoren In Figuur wordt de vergelijking tussen beide types gemaakt. Figuur Unipolar en bipolar stepper In figuur staan de elektronische schakelingen om elk type motor aan te sturen. Bipolaire motor 152

153 Unipolaire motor Figuur Aansturing stappen motoren Uit de figuren kan je afleiden dat de driver IC s die gebruikt worden voor DC motoren ook voor stappenmotoren bruikbaar zijn. De motoren worden aangestuurd op hun nominale spanning. We kunnen aantonen dat dit type sturing bij hogere stapsnelheden een verlies aan koppel zal meebrengen. Dit kan verholpen worden door current chopping toe te passen (figuur ). 153

154 154

155 Figuur Current chopping bipolaire motor Stappenmotoren kunnen op 3 manieren gebruikt worden: Full step (figuur ) Half step (figuur ) Microstepping (figuur ) Figuur Full step sturing Figuur Half step sturing 155

156 Figuur Microstepping 156

157 2.3.8 Relais en Contactoren Contactoren (figuur ) worden dikwijls gebruikt als digitale uitgang. T.o.v. SSR s hebben ze het belangrijke voordeel dat je er zowat alles mee kan schakelen. De gebruikte interface die de spoel aanstuurt moet rekening houden met het inductieve karakter ervan (figuur ). Figuur Contactoren De schakeling A uit figuur geeft de normale aansturing van het relais weer. Je kan je wel vragen stellen over de plaats van de 10k pull-down weerstand. De diode over de spoel zal de vrijloopstroom opvangen bij het uitschakelen van het relais. Het is echter ook aangewezen om de aard van de belasting, die door het relais geschakeld wordt, in rekening te brengen. Afhankelijk van het type belasting (capacitief of inductief, maar ook resistief) ontstaat vonkvorming tussen de contacten tijdens het schakelen. Die vonk zorgt voor EME. Die kan instralen op de microcontroller en de stabiliteit van het systeem in gedrang brengen. Om dit te vermijden kan je best de geschakelde belasting ontstoren. Dit kan door gebruik te maken van een snubber netwerk (figuur ), een varistor, een transient absorber, vrijloopdiode of een combinatie van deze elementen. Volgens de ontwerpers van schakeling B in figuur zou de optocoupler het interferentie probleem moeten oplossen. Zonder de voorgenoemde ontstoringstechnieken is dat erg onwaarschijnlijk. Indien het relais bovendien grote spanningen moet schakelen en op een PCB gemonteerd is, zal je kruipstromen moeten vermijden. Dat kan door tussen de spoel en de geschakelde contacten voldoende afstand te laten (minimaal 1cm) of een aardingsbaan tussen beide groepen aansluitingen aan te brengen. Net zoals bij de optocoupler is het niet aangewezen stuursignalen en gestuurde signalen te laten kruisen (figuur ). 157

158 A B Figuur Aansturen van de bekrachtigingsspoel 158

159 OK (Bistabiel relais, vandaar de 3 spoelaansluitingen) Zoek de fout!! Figuur PCB layout 159

160 R=47 Ohm C=0.1ųF (waarden afhankelijk belasting) Figuur Snubber netwerk Piëzo en andere luidsprekers Je kan een gewone luidspreker aansturen vanuit een microcontroller schakeling. Let wel op dat het hier een inductieve belasting betreft (figuur ). 160

161 Figuur Aansturen van een luidspreker Piëzo luidsprekers worden veel toegepast wegens hun geringe afmetingen (figuur ). Voor de aansturing moet je een onderscheid maken tussen buzzers met en zonder inwendige oscillator. De elementen met oscillator vertonen meestal een inductief karakter, en worden overeenkomstig aangestuurd. Piëzo elementen werken in twee richtingen: Excitatie met een spanning veroorzaakt vervorming, en dus geluid Geluid (tikken op het element) veroorzaakt vervorming en dus spanning Wanneer je een piëzo element gebruikt kan een beveiliging noodzakelijk zijn (figuur ). Het element zal maar geluid produceren wanneer je het met een AC signaal aanstuurt. Hiervoor kan je een aparte oscillator bouwen (figuur ), maar je kan het ook aansturen vanuit een pin van de controller (figuur ). De capaciteiten beletten dat er DC spanning over het element komt te staan wat op lange termijn de kwaliteit van het element kan aantasten (migratie van AG bij hoge vochtigheid). Door de invertor te gebruiken wordt de spanning over het element verdubbeld met een hogere geluidsdruk voor gevolg. Merk op dat in de schakeling het beveiligingscircuit weggelaten is. 161

162 Figuur Piëzo luidsprekers 162

163 Figuur Beveiliging elektronische schakeling tegen spanningen gegenereerd door het piëzo element Figuur Aansturen met een oscillator Figuur Aansturen vanuit de microcontroller Galvanische scheiding Voor de galvanische scheiding verwijzen we naar de bespreking over optocouplers bij de ingangssignalen. Wanneer de optocoupler als uitgang gebruikt wordt, zal de controller de LED moeten aansturen. In de meeste gevallen is hierbij een buffering nodig, net zoals bij het aansturen van een gewone LED. Ook relais kunnen gebruikt worden als galvanische scheiding bij inputs. Je zal dan wel rekening moeten houden met de contactdender. 163

164 Besluit In dit hoofdstuk zijn een aantal courante interface methoden besproken. De opsomming en de aangeboden oplossingen zijn zeker niet limitatief. Het is dan ook wenselijk met onderstaande aanbevelingen rekening te houden: Bekijk informatie die je op het internet kan terugvinden met de nodige sceptische ingesteldheid Raadpleeg de application notes van fabrikanten. Zij vormen meestal een betrouwbare vorm van informatie. Ga na welke beveiligingen nodig zijn, en gebruik de aanbevelingen van de fabrikant i.v.m. de correcte dimensionering en toepassing Zoek naar meerdere oplossingen voor het probleem en weeg af welke het best uw behoeften invuld. Gedenk de wet van SOD! 164

165 Hoofdstuk 3 Analoge Input en Output 3.1 Inleiding Inleiding Digitale systemen zijn per definitie weinig gevoelig aan ruis. Er worden weinig eisen gesteld aan de layout van de schakeling en de uiteindelijke PCB (f<20mhz). Bij analoge systemen is dat niet het geval. Analoge systemen zijn dus moeilijker te ontwerpen. Vooral wanneer de nauwkeurigheid van de schakeling toeneemt, worden de eisen alsmaar strikter. In een gewone multimeter zijn spanningen en stromen in de orde van ųa en ųv niet ongewoon. Wanneer analoge systemen niet noodzakelijk zijn, worden ze angstvallig vermeden. Vandaar dat zowat alle problemen digitaal worden opgelost. Het is immers eenvoudiger een programma aan te passen dan een volledige design cyclus voor een analoog systeem. Vermits een digitaal systeem in ons geval uitgebreid wordt met analoge subsystemen is een wisselwerking onvermijdelijk. Digitale systemen zijn weinig compatibel met analoge systemen: Stroomverbruik verloopt gepiekt op hoge frequentie (PSRR van analoge componenten!! Stabiliteit van de voeding is erg belangrijk!) Gebruikte spanningsniveaus (2) zijn gedefinieerd om immuun te zijn voor ruis, analoge circuits verwerken kleine spanningsvariaties. Signaaloverdracht gebeurt laag impedant waardoor overspraak nauwelijks aan de orde komt, bij analoge schakelingen zijn signaalvoerende geleiders dikwijs hoog impedant. Digitale systemen werken op hoge frequenties waardoor EMC problematiek onvermijdelijk is, waar analoge systemen (audioband) deze problemen niet hebben (signalen verlopen ook sinusoidaal). Wanneer een digitaal systeem analoge signalen gaat verwerken (ADC) of genereren (DAC), zal de ontwerper met volgende aspecten rekening moeten houden: Wat is de gewenste resolutie van het systeem (kleinste analoge variatie die in rekening gebracht moet worden)? Hoe en in welke mate moet beïnvloeding door het digitale systeem vermeden worden? Welke gevolgen zal dit hebben voor de hardware (afschermingen, voedingssystemen, PCB, )? Is dit betaalbaar? Is dit haalbaar (tijd, technisch)? Het laatste puntje heeft met ervaring te maken. 165

166 In dit hoofdstuk beperken we ons tot DAC s en ADC s die courant in/met microcontrollers gebruikt worden. Andere types van omvormers (die ook hun toepassingsgebied hebben) komen niet aan bod. Een gedetailleerde beschrijving van hun werking maakt geen deel uit van deze cursus Definities Bij de bespreking van analoge functieblokken komen een aantal begrippen aan bod. Hier trachten we daar een beknopte omschrijving van te geven. ADC: Analoog naar Digitaal Converter. Deze bouwsteen zal een analoge ingansspanning omzetten naar een digitale uitgangscode (figuur ) DAC: Figuur ADC principiële werking. Digitaal naar Analoog Converter. Deze bouwsteen zet een digitale waarde om in een analoog uitgangssignaal (figuur ) Figuur DAC principiële werking 166

167 Resolutie: Dit begrip is van toepassing op zowel ADC als DAC. In de verklarende uitleg gebruiken we een ADC als voorbeeld. Wanneer een analoge spanning omgezet wordt in een digitale code, dan komt het begrip resolutie aan bod. De resolutie is de kleinste analoge variatie die waarneembaar is in een wijziging van het digitale uitgangssignaal. Om de resolutie te kunnen bepalen heb je 2 gegevens nodig: Ingangsspanning bereik van de ADC Het aantal bit waaruit het resultaat van de omvorming bestaat 1LSB: Stel het ingangsbereik is tussen 0 en 5V. Het aantal bit van het resultaat is 8. We spreken dan van een 8 bit omvormer. Die kan 2^8 resultaten hebben ( b b of 00h-ffh of 0-255). Er zijn dus in totaal 256 schaaldelen. De kleinst mogelijke analoge variatie die gemeten kan worden is dan 5V/256=0, V (praktisch 0,0195V). Deze waarde wordt ook wel 1LSB genoemd. Voor dezelfde ingangsspanning zal bij een 12 bit omvormer de resolutie 5V/4096=0, V (praktisch 0,00122V) worden. (zie ook figuur en ) Zie resolutie. (zie ook figuur en ) Nauwkeurigheid: De nauwkeurigheid omschrijft hoe dicht de digitale uitlezing aanleunt bij de reële spanning die aangelegd wordt. Je kan dit best vergelijken met een multimeter. Het toestel heeft een uitlezing van 4 cijfers. Je kan dus een spanning meten tussen 000,0v en 999,9V. De resolutie van het toestel is 1/ Maar uiteindelijk lees je in de specificaties de absolute nauwkeurigheid van het toestel en die kan 0,1% zijn. Stel je meet 1000,0V. Het toestel kan een variatie van 0,1V laten zien, maar de uiteindelijke echt gemeten spanning kan 1000,0x0,001=1V verschillen met de uitlezing. De reële spanning kan dus tussen 999 en 1001 volt liggen. De nauwkeurigheid is afhankelijk van de nauwkeurigheid van de inwendige componenten van ADC en DAC, maar ook van de gebruikte referentie. (zie ook figuur en ) 167

168 Referentie: Een ADC / DAC gebruikt een nauwkeurige spanning (de referentie),bij een meting om na te gaan wat het ingangssignaal is / bij het genereren van een uitgangssignaal. De nauwkeurigheid van de referentie zal in grote mate de nauwkeurigheid van de analoge functiebouwstenen bepalen. Sommige microcontrollers hebben een referentie aan boord (figuur ), bij andere moet je die extern toevoegen (figuur ). Merk op dat een referentie een nauwkeurige analoge spanningsregelaar is. Analoge specificaties zoals PSRR, max. output current, moeten dan ook in acht genomen worden! 168

169 Figuur ADC karakteristieken microcontroller ATtiny25 169

170 Figuur Externe spanningsreferentie 170

171 ADC/DAC errors: De transfer karakteristiek van een een omvormer vertoont fouten. In de voorbeelden wordt een ADC gebruikt om dit te illustreren. Voor een DAC treden analoge fouten op. Offset error: Figuur laat zien wat de invloed van een offset fout kan zijn op een meting. Gain error: Figuur ADC offset error Bij een offset fout zal de digitale output niet exact bij 0V+1/2 LSB wijzigen. Dit kan vroeger of later gebeuren (er kan dus al een uitlezing zijn bij 0V ingangsspanning, of geen uitlezing bij een effectieve ingangsspanning). Bij een gain error (figuur ) ligt het eindpunt van de karakteristiek niet op de juiste plaats. Dit type error zou je kunnen opvangen met een externe schakeling waarvan de versterking instelbaar is. 171

172 Figuur Gain error Linearity errors: Lineariteitsfouten worden op twee manieren gedefinieerd (figuur en figuur ). Figuur Integrale niet lineariteit 172

173 Figuur Differentiële niet lineariteit Ook aan dit type fouten kan je niet veel verhelpen. Een vergelijking tussen verschillende fabrikanten van ADC s toont dat hier wel wat verschil op zit (ook in prijs). Voor sommige toepassingen kunnen dit type fouten tot instabiliteit leiden (regelaars)! Missing codes, monotoon gedrag: SAR: Wanneer de fabrikant garandeert dat zijn component een monotoon gedrag vertoont (bij stijgende ingangsspanning stijgt ook de digital uitlezing), of er zijn geen missing codes ( elke binaire code komt voor). Dit geeft een functionaliteit zoals je die eigenlijk verwacht. De meeste ADC s in microcontrollers gebruiken het principe van opeenvolgende benadering om een ingangssignaal te meten (figuur ). Merk op dat deze methode een omzettingstijd (conversion time) vraagt. Tijdens die omzettingstijd mag het ingangssignaal niet wijzigen. Hiervoor wordt een sample & hold (of track & hold) schakeling gebruikt. 173

174 Figuur Opeenvolgende benadering 174

175 Sample & hold (track & hold): Een S&H schakeling zal een analoge spanning samplen (bemonsteren) en constant houden tijdens een ADC omvorming (figuur ). Figuur Sample and hold schakeling 175

176 Laddernetwerk: De meeste DAC s gebruiken een weerstandsnetwerk om een digitaal signaal om te zetten in een analoge waarde (figuur ). Figuur Laddernetwerk DAC De uitgang van dit netwerk mag niet belast worden. Daarom wordt er een bufferversterker toegevoegd. Omdat bij microcontrollers slechts 1 voedingsspanning gebruikt wordt, heeft dit gevolgen voor het uitgangssignaal (figuur ) Vette lijn: uitgangsbuffer ingeschakeld Stippellijn: uitgangsspanning zonder buffer Figuur ADuC832 DAC output 176

177 3.2 Uitwendige omvormers (ADC en DAC) Sommige microcontrollers zijn niet uitgerust met analoge functieblokken. Voor een ganse reeks toepassingen is dat ook niet nodig. Dit zal ook de kostprijs van de component reduceren. Mocht het dan toch nodig zijn over analoge I/O te beschikken kan je gebruik maken van aparte ADC s en DAC s (figuur 3.2.1). Er zijn op de markt tal van varianten beschikbaar, tot en met totale meetsystemen met signaalconditionering (figuur 3.2.2). 177

178 Figuur Voorbeelden van externe ADC s en DAC s 178

179 Figuur Meetsysteem on chip 179

180 Alhoewel uitwendige systemen bestaan met een traditionele busverbinding (data- en adres bussen), wordt meestal geopteerd voor een seriële verbinding. Hierdoor kan het aantal aansluitingen beperkt blijven, en zal ook het PCB ontwerp eenvoudiger blijven. De meeste microcontrollers beschikken trouwens niet over een externe bus, zodat die geëmuleerd moet worden met gewone poortpinnen. Deze componenten worden door verschillende fabrikanten aangeboden met een scala aan resoluties. Op die manier kan je het analoge deel van het systeem optimaal afstemmen op de behoeften. Deze componenten laten ook makkelijker toe om bij het design van de PCB rekening te houden met de design guidlines voor analoge systemen. 3.3 Inwendige omvormers (ADC en DAC) Microcontrollers worden dikwijls aangeboden met een ADC aan boord. De meest voorkomende resolutie is 10 bit. Er bestaan systemen van 8 tot 24 bit. De ADC heeft meestal een multiplexer zodat verschillende ingangsklemmen gemeten kunnen worden (figuur 3.3.1). Figuur ADC in microcontroller ATtiny25 180

181 Door het toevoegen van een S&H kunnen ook DC signalen met een AC component gemeten worden (figuur 3.3.2). Figuur Berekening maximale frequentie AC component ADC 8 Bit volstaat voor toepassingen met een resolutie van maximaal 0,5%FS (1/256). Dit is dikwijls het geval voor het inlezen van een potentiometer (analoge instelling van een variabele) of metingen met een beperkt bereik (stel C, kan nog altijd ingelezen worden tot op 0,5 C). 10 Bit is het meest voorkomende. Dit biedt een resolutie van 0,1%FS (1/1024). Gelet op de nauwkeurigheid dringt zich (tenzij voor potentiometrische metingen) een goede spanningsreferentie op. Vanaf 12 bit omvormers (1/4096) is het analoge deel van de schakeling onderworpen aan hoge eisen met betrekking tot shielding, buffering, decoupling etc. Figuur laat de aansluitingen zien van de ADuC832. Merk op dat er aparte aansluitingen zijn voor de voeding van het analoge en digitale deel van de chip. Ook wanneer je het analoge deel niet gebruikt moet je het van voedingsspanning voorzien! De klemmen die gebruikt worden als analoge input staan ook dicht bij elkaar (klemmen van poort 1). Er wordt aangeraden om de digitale signalen uit de buurt van de analoge signalen te houden, en bij voorkeur een massavlak aan te brengen onder de lijnen die analoge signalen voeren. 181

182 In de kader staan de analoge klemmen van de controller. Figuur Aansluitingen ADuC832 Controllers die geen aparte aansluitingen hebben voor analoge en digitale voedingsspanningen vragen extra veel aandacht i.v.m ontkoppeling en voeding. Sommige fabrikanten raden de gebruiker aan om tijdens een omvorming enkele richtlijnen te volgen: 182

183 Het is opmerkelijk dat slechts enkele controllers ook over een DAC beschikken (figuur 3.3.5). Analoge uitgangsignalen worden zelden gebruikt om o.a. motoren te sturen. Een motor wordt in snelheid geregeld door PWM te gebruiken (figuur 3.3.4). Dit heeft als voornaamste voordelen: Beperkte dissipatie in het schakelelement (geen koeling, hoog rendement) Eenvoudige elektronica Digitale aansturing (foutongevoeligheid) PWM is heel nauwkeurig met hoge resolutie (16 bit (1/65536)) te maken (zelfs software matig) (let wel op voor offset!!) Figuur DC motor met PWM 183

184 Analoge uitgangen kunnen handig zijn in instrumentatietoepassingen. Hier ligt immers de nadruk op analoge signalen. Een laboratoriumvoeding programmeerbaar maken via een microcontroller met analoge uitgangen is relatief eenvoudig te realiseren. PWM uitgangen zouden hiervoor ook gebruikt kunnen worden (zie figuur 3.3.5, sigma delta 16 bit DAC). Hier moet dan wel nog de nodige filtering toegepast worden. Figuur Blokschema ADuC832 Cypress maakt SOC controllers. Dit zijn componenten waarvan de inwendige opbouw software matig kan ingesteld worden. Deze componenten bestaan ook voor analoge subsystemen. Dit geeft aan de gebruiker tal van mogelijkheden om interfacing op te vangen in de controller zelf. 184

185 Figuur System On Chip 3.4 Analoge inputs en signaalconditionering Net zoals bij digitale I/O zijn de ingangskarakteristieken van analoge inputs fabrikant afhankelijk. Het is dan ook aangeraden de richtlijnen (application notes) voor de gebruikte chip op te volgen. In figuur staat een circuit dat aanbevolen wordt voor de ADuC832. De opamp in de schakeling zal de input lekstroom (10ųA) compenseren. Dit is nodig omdat de resolutie van de omvormer 1/4096 is, en een uitgangsimpedantie groter dan 100Ohm (van de signaalbron) veroorzaakt dan reeds meetbare fouten. De schottky dioden beschermen de analoge input tegen overspanning. De capaciteit werkt als buffer wanneer de inwendige samplecondensator verbonden wordt met de klem. 185

186 Figuur Signaalconditionering ADuC832 Figuur AVR ADC ingangen Figuur komt uit de datasheet van de ATtiny25. De aanbevelingen wijken duidelijk af van die van Analog Devices. Beide fabrikanten gaan er wel van uit dat je signaalbronnen gebruikt met een lage uitgangsimpedantie. De besproken schakelingen gaan er van uit dat geen aliasing problemen kunnen optreden (figuur 3.4.3). Die treden op wanneer een signaal net niet gesampled wordt volgens het Nyquist criterium. Dit kan vermeden worden door het ingangssignaal door een lowpass filter te sturen. 186

187 Figuur Aliasing 3.5 Analoge outputs en signaalconditionering Wanneer een controller over een DAC beschikt, dan zal de uitgangsspanning al of niet gebufferd naar buiten komen (zie definities vooraan dit hoofdstuk (laddernetwerk). Zelfs indien het signaal gebufferd is zal de uitgangsimpedantie relatief hoog blijven (figuur 3.5.1), wat bijkomende externe buffering noodzakelijk maakt. Omdat de uitgangsspanningen binnen het voedingsbereik van de controller blijven (eg 0-5V of 0-3.3V) zullen versterkers toegevoegd moeten worden om de gewenste amplitude te bekomen. 187

188 Figuur Uitgangsspecificaties ADuC832 DAC 3.6 Diverse toepassingen De figuren en afbeeldingen werden van het WWW geplukt. Zij geven geen enkele garantie op werking of functionaliteit. Ze worden in de les besproken en kritisch geanalyseerd!! Schakelaars In veel toepassingen worden zo klein mogelijke microcontrollers toegepast. Dit staat in contrast met de behoefte om over veel I/O te beschikken. Als de microcontroller over een ADC beschikt, dan kan die gebruikt worden om schakelaars in te lezen. De schakelaars worden gebruikt om de uitgang van een spanningsdeler door te geven aan de ADC (figuur , en ). 188

189 Figuur Schakelaars inlezen met ADC De 10K weerstanden vormen een spanningsdeler (figuur ). De schakelaars verbinden een gedeelde spanning door naar de ADC pin. Als geen enkele schakelaar gesloten is zorgt de 1M weerstand voor een 1 aan de ingang van de ADC. Omdat het inlezen van de analoge input via een S&H zal gebeuren bestaat de kans dat je een foutieve spanning inleest (sample moment t.o.v. indrukken schakelaar). Het aantal aftakpunten op het weerstandnetwerk (+2) kan theoretisch gelijk zijn aan het aantal combinaties dat de ADC kan inlezen (8 bit=256, 256-2=254 aftakpunten). In de praktijk moet je rekening houden met: Tolerantie van de weerstanden (en dus ook de afgedeelde spanning) Aantal bit ruis op de ADC Fouten in de ADC (gain, offset, lineariteit) Veiligheidsmarge tussen de spanningen voor de verschillende schakelaars Figuur Schakelaars inlezen met ADC 189

190 De schakeling in figuur is hier een variant op. De spanningsdeler wordt gevormd door de Pull-up weerstand en de serieschakeling van de weerstanden tot het punt waar de schakelaar een sluiting naar de massa vormt. Figuur Keypad inlezen via ADC In de figuur wordt een matrix keyboard aangesloten op een ADC. Al deze schakelingen werken maar naar behoren wanneer de ingangsimpedantie van de ADC voldoende groot is. Zo zal bij de ADuC832 controller de S&H capaciteit het weerstandsnetwerk belasten. Een signaalconditionering moet dan toegevoegd worden. De gebruikte weerstanden zijn relatief groot. Dit wil zeggen dat het systeem ook storingsgevoelig wordt. Zonder signaalconditionering (dicht bij het klavier) zal de afstand tussen klavier en controller klein moeten blijven (cm). 190

191 3.6.2 Potentiometer Een potentiometer inlezen gebeurt volgens dezelfde modaliteiten als de weerstandsnetwerken uit paragraaf Een potentiometer kan in vele gevallen de bediening van een controllersysteem vereenvoudigen. Om het bereik van de instelling te vergroten kan een meer-toeren potentiometer gebruikt worden. Ook hier moet je nagaan (in functie van de ADC) hoeveel instelpunten nog aanvaardbaar zijn. De weerstandswaarde van de potentiometer zal voornamelijk bepaald worden door zijn stroomverbruik (100 Ohm geeft 50 ma, 4K7 geeft 1 ma) LM35 De LM35 is een temperatuursensor van National Semiconductor. De gegevens van de sensor zijn opgenomen in figuur Figuur LM35 temperatuursensor 191

192 De fabrikant geeft ook aanbevelingen i.v.m. het toepassen van de sensor. Voor capacitieve belastingen >50pF wordt een RC dempingscircuit aanbevolen (figuur ) Dit kan ook noodzakelijk zijn wanneer de input van een ADC (S&H) een grote capacitieve belasting vormt. Figuur LM35 bij aansturen capacitieve belasting >50pF De LM35 heeft een uitgangssignaal van 10mV/ C. Bij 100 C is de uitgangsspanning 1000mV. Bij een meetbereik van 0-5V laat een 8 bit omvormer een uitlezing toe per ongeveer 2 graden. Bij een 10 bit omvormer is dat 4 keer nauwkeuriger. Door het uitgangssignaal te versterken met een factor 5 wordt de resolutie evenredig verbeterd. Bij een ADC komt het er steeds op aan het ingangsbereik optimaal te benutten. Bij sommige microcontrollers kan je door de referentie aan te passen het meetbereik in overeenstemming brengen met het ingangssignaal (figuur ). Figuur ADuC832 bereik van Vref LM335 De LM335 (figuur ) heeft een meetbereik in Kelvin. 192

193 Figuur LM335 sensor De sensor werkt als en zenerdiode waarvan de uitgangsspanning afhankelijk is van de temperatuur. Bij de berekening van de R1 moet je uitgaan van de hoogst mogelijke temperatuur die de schakeling moet kunnen meten. In dat geval moet er nog minimaal 0,4 ma door de weerstand vloeien. Je kan de weerstand kleiner dimensioneren, waardoor de stroom hoger wordt. Dit zal echter een negatieve invloed hebben op de eigen opwarming van de component. Bij 0Kelvin zal de uitgangsspanning 2,73 volt bedragen. Voor een metingen tussen -20 en +100 C zal 193

194 de spanning variëren van 2,53V tot 3,73V. Wil je hier de resolutie van de ADC verbeteren, dan zal een instrumentatie (verschil) versterker noodzakelijk zijn. Sommige microcontrollers (AVR) beschikken over differentiële ingangen (figuur ), waardoor de externe interfacing eenvoudiger kan blijven. Figuur ATMEL AVR ADC inputs ATtiny25 Het meetsignaal zal nog enige berekening moeten ondergaan alvorens het op een display kan. Denk aan de beperkingen van rekenen met een microcontroller!! Thermocouple Thermocouples worden gebruikt om temperaturen over een groot bereik te meten. In figuur wordt een overzicht gegeven van de verschillende types. Figuur Overzicht types thermocouples 194

195 Het type K heeft een vrij lineair uitgangssignaal (figuur ). Hierdoor is het niet noodzakelijk linearisatie toe te passen. Voor andere thermocouples heb je de keuze tussen hardware oplossingen, of het gebruik van een tabel. Figuur Karakteristiek K- thermocouple Een nadeel van deze sensoren is de temperatuur afhankelijke spanning van de koude las. Om die te compenseren word de temperatuur hiervan gemeten, en in software (of hardware) gecompenseerd. Gelet op de amplitude van de thermocouple spanning is versterking een noodzaak (figuur ). Figuur Thermocouple interface Er bestaan ADC s met ingebouwde instrumentatieversterker. De versterking kan digitaal ingesteld worden (PGA) (figuur ). 195

196 Figuur bit ADC en PGA interface Afhankelijk van de gewenste nauwkeurigheid kan de inwendige temperatuursensor van de microcontroller (ADuC832, sommige AVR controllers) gebruikt worden om de koude las te compenseren. 196

197 3.6.6 DC motor als instelknop In sommige toepassingen wil je graag een instelknop gebruiken die geen vaste start of eindpositie heeft (wat wel het geval is bij een potentiometer). Hiervoor kan je een rotary encoder gerbuiken. Een andere mogelijkheid is het gebruik van een DC motor Zoals veelvuldig gebruikt in speelgoed (figuur ) Figuur DC motor Wanneer je aan de as van dit type motor draait, werkt hij als generator en geeft een spanning naar buiten. De polariteit van de spanning is afhankelijk van de draairichting, de amplitude van de draaisnelheid. Het schema in figuur Geeft een mogelijke interface weer. Kan je de componenten bepalen/verklaren? R4 V DD V DD R1 M R3 - + IC Uout R2 R5 Figuur Interface voor DC motor als input 197

198 3.6.7 Besluit Een ADC laat toe om analoge signalen om te zetten naar digitale waarden, die dan verder door software verwerkt kunnen worden. In sommige gevallen zal een signaalconditionering nodig zijn. Volgende doelstellingen zal je steeds trachten na te streven: Beveilig analoge ingangen tegen over/onder spanning Zorg dat het ingangssignaal zo goed mogelijk het meetbereik van de ADC gebruikt De uitgansimpedantie van de sensor(schakeling) moet zo laag mogelijk zijn Gebruik voor de voeding van de ADC en de andere signaalconditionering zo veel mogelijk een aparte voeding Filter de signalen waar nodig Ga na of resolutie en absolute nauwkeurigheid van de ADC voldoen voor uw toepassing 198

199 Hoofdstuk 4 Tijdsgerelateerde Input en Output 4.1 Inleiding Zowat alle microcontroller toepassingen hebben tijdsgerelateerde onderdelen. Een eenvoudig knipperlicht zou veel te snel van toestand veranderen mocht er geen tijdsvertraging gebruikt worden. Sommige parameters die ons dagelijks leven beïnvloeden zijn een functie van aantal/tijd. Denken we maar aan Km/h, omw/min, Hz, aantal klanten per dag. Maar ook het begrip tijd is verweven met ons dagelijks bestaan, uurwerken, wekkers, timers,. Tijdsafpassingen kunnen in software gebeuren. Elke instructie van de CPU heeft een uitvoeringstijd. We kunnen een programma schrijven met een dusdanig aantal instructies, dat de gewenste tijdsvertraging bekomen wordt. Software tijdsafpassingen verhinderen dat de CPU gelijktijdig andere taken uitvoert. Door tijdsafpassingen in hardware (timer bouwstenen) mogelijk te maken wordt de CPU ontheven van tijdrovende taken. Om het toerental (omw/min) van een motor te meten zal je zowel tijd moeten afpassen (een minuut) als pulsen tellen (stel 1 puls per omwenteling). Inkomende pulsen tellen kan alleen in software wanneer de processor een aanzienlijk aantal instructies per puls kan uitvoeren, en er verder niets berekend of uitgevoerd moet worden. Via counter bouwstenen kan het tellen van gebeurtenissen door hardware uitgevoerd worden. Een real time clock is een variant van timer, speciaal ontworpen om tijd in /dagen/uren/minuten/seconden/ af te passen. Het basis meettoestel voor het afpassen van tijd, en het tellen van gebeurtenissen is een hardware teller. De teller wordt vanuit de CPU gezien als een geheugenplaats waarvan de inhoud door hardware aangepast wordt. Voor het afpassen van tijd (timer) wordt meestal de systeemklok van de CPU (of een afgeleide hiervan) als input voor de teller gebruikt. Voor het tellen van gebeurtenissen wordt de teller via een klem (aansluiting op het IC) met de buitenwereld verbonden. Via deze weg worden pulsen aangelegd die in verband staan met de te tellen gebeurtenissen. Omdat het onderscheid in naam tussen counter en timer enkel gemaakt wordt op basis van het te tellen signaal, is de werking van beide systemen analoog. Ongeacht het type controller dat gebruikt wordt is de werking van timers en counters vergelijkbaar. 199

200 4.2 Tijdsmeting en tellen gebeurtenissen Timers en counters In figuur staat een 8 bit timer/counter weergegeven van de 8051 microcontroller familie. Figuur bit timer/counter De P3.4/T0 en P3.2/INT0 zijn externe aansluitingen. TR0, C/T en GATE zijn controlebits die in een controleregister aangestuurd kunnen worden. TL0 is het register waarlangs de 8 bit teller uitgelezen en geschreven kan worden (schrijven kan enkel als de teller geen inkomende pulsen kan krijgen). TF0 is een controlebit die aangeeft dat de teller een overflow heeft gehad. De 8 bit teller telt in principe van 00h tot FFh. Een extra puls zal de teller een overflow laten genereren, waardoor hij terug op 00h komt te staan. Deze overflow zet ook de TF0 vlag op 1. Die kan op haar beurt een interrupt genereren naar de CPU (indien ingeschakeld). Voor de verdere uitleg gaan we er van uit dat de GATE bit op 0 staat. Dit laat toe om de pulsen door te laten, of te stoppen door de TR0 bit van waarde te veranderen. Als de GATE bit op 1 staat, leent de schakeling zich voor periodemeting (zie verder). De C/T bit zal bepalen of inkomende pulsen van P3.4 geteld gaan worden (counter werking), of dat de systeemklok gedeeld door 12 geteld zal worden (timer werking). Het nadeel van een 8 bit timer is zijn beperkte telmogelijkheid. Bij de meeste controllers (ook de 8-bitters) zijn 16 bit timers beschikbaar (figuur ). 200

201 De hardware teller kan nu tellen van 0000h tot FFFFh. Het uitlezen van de teller moet nu wel in twee leesbeurten gebeuren, waardoor bij een timer/counter in bedrijf een foutief resultaat bekomen kan worden. Figuur bit timer/counter 8051 familie Beide timers kunnen ook voor-geladen worden. Je kan ze laten starten met tellen vanaf elke willekeurige waarde. Om die in de teller te laden, moet je er wel eerst voor zorgen dat de teller stil staat (controle signaal = 0). Dit kan voor gevolg hebben dat er inkomende pulsen (of tijd in timer mode) verloren gaan(t). Dit wordt verholpen met de reload (figuur ) mode. Figuur Reload mode Timer familie 201

202 De reload mode laat toe dat de timer zijn startwaarde krijgt via een hardware systeem. Hierdoor kunnen er geen pulsen/tijd verloren gaan. In sommige toepassingen is het belangrijk het exacte tijdstip van een uitwendige gebeurtenis te kunnen meten. Dit wordt bekomen door de capture mode te gebruiken (figuur ). Figuur Capture mode Timer familie In sommige gevallen kan het belangrijk zijn om op een hardware matige manier signalen te genereren die gerelateerd zijn aan de stand van een timer (verlopen tijd). In dat geval worden compare modes gebruikt (zie verder bij PWM en figuur ) Figuur Compare mode op de ADuC832 controller 202

203 Figuur ATtiny25 timer/counter In de figuur is een timer van een ATtiny25 weergegeven (beschikbare modes?). 203

204 4.2.2 Real Time Clock Een RTC (real time clock) is een timer die tijd afpast in uren, minuten en seconden. Dit type timer is niet in alle controllers beschikbaar. Het is immers mogelijk (mits minimale programmatuur) een uurwerk te maken. In figuur staat de RTC (TIC) van de ADuC832 afgebeeld. Figuur RTC (TIC) ADuC832 controller Meestal zal dit type timer aanwezig zijn wanneer de systeemklok niet eenvoudig omgezet kan worden naar interrupts die tellen in een geheel deel van een seconde mogelijk maakt. Dit is bij deze controller het geval. Zijn systeemklok is immers 16,777216MHz. Ze wordt gemaakt door de KHz van een uurwerk kristal met een PLL op te voeren. Het kloksignaal van het uurwerk kristal kan wel eenvoudig omgezet worden naar tijd in uren/minuten/seconden. 204

205 4.3 Frequentie meting Wanneer je omw/min, Hz, Km/h, wil meten heb je 2 timers nodig. De eerste wordt als timer geschakeld en wordt gebruikt om de meettijd af te passen. De tweede wordt als counter gebruikt en telt inkomende pulsen. In de figuur staan enkele opstellingen voor het meten van dit type signalen. Pick-up coil tandkrans Optisch meetsysteem Hall-sensor Reed switch Figuur Meetsystemen rotatie 205

206 Let wel op dat de signalen ontdenderd zijn!! De hardware counters tellen immers pulsen met een heel korte periode. De maximale ingangsfrequentie is afhankelijk van de systeemklok. Bij de 8051 familie is dat 1/24 van de systeemklok. Bij de AVR familie is dat IO clock/2.5. Dit heeft te maken met de hardware synchronisatie van het inkomende signaal. Frequentiemeting heeft als belangrijkste nadeel dat de meetnauwkeurigheid afhankelijk is van de meettijd. Voor trage signalen loopt die snel op. In dat geval kan beter periode meting gebruikt worden. Onderstaand voorbeeld verduidelijkt dit. Stel: we willen de snelheid van een motor meten (600<n<6000 rpm) we krijgen 1 puls per omwenteling Meettijd 0,1s 1s 60s (1min) Toerental % 60 10% % % 60 1% 1 0,016% Meetnauwkeurigheid in rpm en % in functie van de meettijd. De meetnauwkeurigheid kan opgevoerd worden door het aantal pulsen per omwenteling te verhogen (zie afbeelding tandkrans). Dit is echter niet steeds mogelijk, denk maar aan de snelheidsmeter op een fiets. 4.4 Periode meting In onderstaande tabel herhalen we de berekening van vorige paragraaf. Alleen meten we nu de periode van 1 omwenteling. Meettijd Toerental 600 0,1s ,01s Meettijd in functie van toerental. De meetnauwkeurigheid is nu afhankelijk van de resolutie van de timer waarmee de periode gemeten wordt. Als de timer kan meten met een resolutie van 1ųs (standaard bij oude 8051 controllers), is de meetnauwkeurigheid bij 0,1s 0,001% (tot op 0,006 rpm nauwkeurig). Bij 0,01s wordt dat 0,01% (tot op 0,6 rpm nauwkeurig). 206

207 Om een periode nauwkeurig te meten kan je gebruik maken van de capture mode van de timer. Timers die niet over deze mode beschikken hebben soms een GATE aansluiting (zie figuren vorige paragraaf). Merk op dat wanneer je het ingangssignaal een interrupt laat genereren om een timer te starten en/of stoppen, er tijd verloren gaat bij de verwerking van de interrupt. Dit zal de meetnauwkeurigheid beïnvloeden!! 4.5 Genereren van tijdsintervallen In een controller is meestal een beperkt aantal timers aanwezig. Hieruit zou je kunnen besluiten dat bij het genereren van tijdsintervallen de programmeur beperkt is tot het aantal beschikbare timers. In de praktijk zal meestal een timer gebruikt worden om interrupts te genereren met het kleinste tijdsinterval dat de applicatie nodig heeft. Door in de interrupt routine software matig verder te delen (geen delay!!!) wordt de interrupt routine opgebouwd uit delen die na een verschillend aantal interrups worden uitgevoerd. Het kan handig zijn om in de interrupt routine een register na elke interrupt te incrementeren. Dat register kan dan gebruikt worden als een soort van klok voor het afpassen van tijden, zonder dat een delay gebruikt moet worden. 4.6 PWM Puls Width Modulation is een systeem dat op een digitale manier een analoge sturing toelaat (figuur 4.6.1). Figuur PWM 207

208 De gemiddelde spanning is afhankelijk van de tijdsduur dat de uitgang op 1 staat. Wanneer een resistieve belasting met een PWM signaal aangestuurd wordt zal de component zich gedragen alsof de gemiddelde spanning aangelegd wordt. Dit is niet steeds het geval voor ander types belasting. Bij een LED zal de V+ uit de grafiek niet hoger mogen zijn dan de maximaal toegelaten waarde. Bovendien mag de piekstroom (aantal ma/ųs) de specificaties niet overschrijden. In figuur staat de golfvorm van een PWM sturing toegepast op een gloeilamp (resistieve belasting na het overgangsverschijnsel) Figuur PWM aansturing gloeilamp Bij inductieve belastingen (figuur 4.6.3) zal de stroom de spanningscurve niet volgen, zodat het koppel niet evenredig is met de gemiddelde spanning (zoals dat wel het geval is bij het aanleggen van een analoge spanning). Figuur PWM sturing DC motor 208

209 De figuur laat de golfvormen zien (spanning en stroom) bij een DC motor die met PWM aangestuurd wordt op 500Hz en 20kHz. Op het eerste zicht lijkt de 20kHz curve beter aan te sluiten bij de verwachtingen. Bij het ontwerp zal je echter rekening moeten houden met de bijkomende verliezen in de gebruikte schakeltransistor. Figuur Golfvormen PWM sturing DC motor Er bestaan tal van fabrikanten die elektronische componenten beschikbaar stellen voor het aansturen van dit type belasting. In de volgende paragrafen gaan we in op het genereren van PWM signalen vanuit een microcontroller. 209

210 4.6.1 Software PWM Een software PWM kan zowel op interrupt basis, als gewoon via een lus in het hoofdprogramma gemaakt worden. Het principe is in beide gevallen gelijk, alleen de manier om de tijdsafpassing te realiseren is anders. In figuur staat het basisprincipe van PWM generatie afgebeeld. Figuur Basis principe opwekken PWM signaal Bij een analoge PWM generator wordt een zaagtand-vormig signaal opgewekt. De waarde wordt vergeleken met een referentie, en afhankelijk van de relatie tussen beide signalen wordt een 1 0 uitgangssignaal gegenereerd. In een digitaal systeem wordt de zaagtand verkregen door een register met een vaste tussentijd met een te verhogen. De waarde van het register zal tellen: fe-ff-00-01,. De tijdsvertraging tussen de increments van het register bepalen de frequentie van de zaagtand, en dus ook de frequentie van het PWM signaal. Het aantal bits dat gebruikt wordt om de zaagtand te maken bepaalt de resolutie van de PWM. Bij een 8 bit is de resolutie 1/256, bij een 16 bit 1/

211 4.6.2 Hardware PWM Bij een hardware PWM is de zaagtandgenerator een timer. De waarde van de timer wordt constant vergeleken met een referentie-register. Afhankelijk van hun verhouding wordt een digitale uitgang aangestuurd (figuur ). Het systeem is vergelijkbaar met de compare mode van timers. Figuur PWM unit ARM7 microcontroller De PWM generator van de ARM7 controller is speciaal ontworpen om 3-fasige PWM te genereren. Hierdoor wordt het een complexe unit. Het is vooral afhankelijk van het toepassingsgebied van de controller hoe complex zijn timers zijn. 211

212 Hoofdstuk 5 Communicatie 5.1 Inleiding Communicatie tussen controllers onderling, of tussen controllers en periferie kan op talloze manieren verlopen. Enkele vormen zijn gestandaardiseerd. Maar de vindingrijkheid van technici laat toe, en noodzaakt soms ook, dat van standaarden afgeweken wordt. We willen in dit hoofdstuk een overzicht geven van veel gebruikte communicatiesystemen. In deze cursus wordt communicatie gedefinieerd als elke vorm van dataoverdracht tussen componenten. Het is niet de bedoeling om een in depth benadering te hanteren. Hiervoor verwijzen we naar datasheets en normen die eenvoudig terug te vinden zijn op het WWW. In dit hoofdstuk beperken we ons tot seriële communicatie. In tegenstelling tot parallelle communicatie (figuur 5.1.1) laat dit systeem communicatie toe over een beperkt aantal geleiders (media). Dit heeft wel voor gevolg dat er hogere eisen aan software en/of hardware worden gesteld. Figuur Vergelijking seriële en parallelle communicatie Je kan de vraag tellen waarom communicatie nodig is. De belangrijkste redenen zijn: Distributie van intelligentie, waardoor de individuele nodes eenvoudiger worden (figuur 5.1.2) Bedrading binnen de perken houden (figuur 5.1.3) Toevoegen van extra I/O aan systemen (figuur 5.1.4) In sommige gevallen biedt de controller hardware ondersteuning voor de communicatie. In het andere geval zal je bit-banging moeten gebruiken. 212

213 213

214 Figuur Gedistribueerde intelligentie 214

215 Figuur Bedrading genoeg? Figuur Toevoegen van extra I/O 215

216 5.2 Schuifregisters Een schuifregister is een schakeling die een synchroon serieel signaal omzet naar een parallelle uitgang (of omgekeerd). In figuur zijn enkele types opgenomen. 216

217 Figuur Schuifregisters Bij het aansturen van externe componenten is het respecteren van timing uitzonderlijk belangrijk. In figuur is een beperkt deel van een timing diagram weergegeven. Er moet aan alle timing eisen voldaan worden. Anders zullen de aangeboden signalen niet op de verwachte manier geïnterpreteerd worden door het IC. Figuur Beperkt timing diagram Schuifregisters zijn de meest eenvoudige componenten om de I/O van een controller uit te breiden. Ze bieden echter geen bijkomende functies. 217

218 5.3 IIC De IIC standaard werd door Philips semiconductor ontworpen om allerhande periferie aan controllers te kunnen toevoegen, zonder een complexe bedrading. Het systeem gebruikt 2 draden (SDA en SCL) (figuur 5.3.1). Figuur IIC busverbinding De Rp weerstanden (1k-4k7, zie datasheet gebruikte componenten) zorgen er voor dat de bus een hoog niveau kan bereiken. De devices sturen de bus aan met open collector (open drain) uitgangen. Hierdoor is het mogelijk CSMA/CA (multi master) te gebruiken en clock-stretching voor de synchronisatie. De bus laat toe dat er meerdere devices op de bus worden aangesloten. De lengte van de bus is beperkt (afhankelijk van capacitieve belasting) tot enkele tientallen cm. De bus kan langer gemaakt worden door het gebruik van repeaters. In de meeste gevallen wordt IIC gebruikt in een master slave configuratie. Hierbij is er op de bus een master (die geen adres heeft) en één of meerdere slaves, elk met een eigen uniek adres. Het adres is 7-bit groot. Een aantal bits kunnen hardware bepaald zijn in het IC, de andere (aantal IC afhankelijk) kan ingesteld worden op externe pinnen. Theoretisch zijn kunnen er dus 128 slaves aangesloten worden. Een master (slave) kan hardware ondersteuning bieden voor het communicatieprotocol, maar het is best mogelijk dat je via bit-banging de nodige signalen moet genereren. Dit is trouwens ook voor de andere communicatievormen een veel gebruikte techniek. 218

219 Het communicatieframe bij IIC is relatief eenvoudig. In onderstaande figuur (figuur 5.3.2) staat de basistiming afgebeeld. Start en stop condities communicatie Timing voor de transfer van 1 bit ACK/NACK na elke byte transfer Figuur Basis timing IIC 219

220 De basis timing is van toepassingen op alle IC s die IIC gebruiken. De manier waarop het IC gelezen of geschreven moet worden is afhankelijk van de functie van het IC. Dat zal je moeten nagaan in de datasheet van de gebruikte functie. Alle IIC componenten kunnen een communicatiesnelheid aan van 100kbit/s. Er bestaan IC s die 400 en 1000 kbit/s aankunnen. De bus laat toe om trage en snelle componenten door elkaar te gebruiken. Door clock-stretching wordt de snelheid van de bus aangepast aan het traagste device. In het geval dat je de master via bitbanging een IIC bus laat emuleren, werkt dit systeem niet meer zonder een ernstige overhead aan software. Het is daarom aangeraden in dat geval de bus op de basissnelheid van 100kbit/s te gebruiken. Zowat alle fabrikanten van halfgeleiders maken IIC IC s met een sterk uiteenlopende functionaliteit. In figuren 5.3.3, 5.3.4, en zijn enkele voorbeelden opgenomen. 220

221 Figuur IIC port expander PCF8574 Figuur IIC ADC-DAC PCF

222 Figuur IIC LM75 temperatuur sensor Figuur IIC SAA digit LED driver 222

223 De componenten in voorgaande figuren zijn louter informatief. De beschikbaarheid in een snel evoluerende wereld kan een probleem vormen. 5.4 SPI Serial Peripheral Interface is een communicatie standaard die voor dezelfde toepassingen gebruikt wordt als IIC. SPI heeft als voordeel dat het veel sneller is (meerdere mega-bit/s), maar het systeem heeft als nadeel dat er meer verbindingen nodig zijn (MISO, MOSI, SCLK en een Slave Select lijn per component in de bus (zie figuur 5.4.1)). Het systeem laat ook slechts 1 master toe op de bus. Er is geen automatische snelheids-aanpassing van de bus aan het traagste device. Figuur SPI bus SPI is in zijn eenvoudigste vorm terug te brengen tot een schuifregister met seriële in- en uitgang, dat in twee richtingen gelijktijdig kan (niet altijd het geval) gebruikt worden. Wat er met de data moet gebeuren, en wat de relatie is tussen SS en de andere signalen is afhankelijk van de gebruikte chip. In figuur is een voorbeeld van een SPI geheugenchip opgenomen. 223

224 Blokschema van het FLASH IC (slechts 8 aansluitingen) Timing voor het lezen van 1 byte Timing voor het schrijven van 1 byte Figuur SPI FLASH memory chip AT25DF

225 5.5 UART Inleiding Een Universal Asynchronous Receiver Transmitter is een hardware unit die aan de meeste microcontrollers toegevoegd wordt. Het is een hardware systeem dat toelaat een byte serieel te verzenden en (gelijktijdig) te ontvangen. Vroeger werd hiervoor een speciaal extern schuifregister gebruikt (figuur ) Figuur UART als externe component (obsolete) Het gebruikte frame format kan uit 5-8 bit bestaan, aangevuld met een start bit, 1, 1 en ½ of 2 stop bits en mogelijk een pariteitsbit (figuur ). Figuur Frame format UART De UART s die in microcontrollers gebruikt worden laten ook een NBM (negen bit mode) toe. Dit systeem maakt het eenvoudig een bus te vormen met meerdere controllers. 225

226 De snelheid van de communicatie wordt bepaald door de duurtijd dat elke bit op de pin aanwezig is. Het aantal bit per seconde wordt baud rate genoemd. Je mag de baudrate willekeurig kiezen wanneer je niet moet communiceren met systemen die met producten van andere producenten moet kunnen communiceren. In dat geval gebruik je best een standaard baud rate (figuur ). Figuur Standaard baud rates De figuur is een uittreksel van de datasheet van de ATmega128 van ATMEL. Omdat de baud rate bepaald wordt door een inwendige klok, moet de systeemklok (die als uitgangspunt gebruikt wordt) aan bepaalde tolerantievoorwaarden voldoen. Het asynchrone systeem laat maximaal een afwijking in baud rate tussen zender en ontvanger toe < 5%. In de praktijk wordt aanbevolen onder de 1,5% a 3% te blijven. De controller beschikt over twee aansluitingen die gebruikt worden voor de communicatie: Tx(D) en Rx(D) (figuur ). De MAX232 in de figuur is een level shifter (zie verder). Het IC past de 0-5v signalen van de controller aan zodat een grotere afstand overbrugd kan worden. De aansluitingen zitten op dezelfde pinnen als de parallelle I/O. Bij de 8051 wordt de selectie van de functie gemaakt door de klemmen niet via de poort registers aan te sturen. Bij andere controllers (maar ook bij sommige 8051 derivaten zoals de XC888) moeten de poortpinnen in de juiste richting ingesteld worden. Meestal is er dan ergens een statusregister dat de pinnen toewijst aan de UART i.p.v. aan de poort registers. Veel nieuwe microcontrollers gebruiken een inwendige RC oscillator als klokgenerator. De tolerantie op de RC oscillator moet beter zijn dan ongeveer 2% om seriële communicatie toe te laten. Is dat niet het geval, dan moet je een extern kristal gebruiken. Let wel op dat je eerst nagaat of de gekozen frequentie toelaat de gewenste baud rate te bekomen. 226

227 Figuur Aansluitingen UART op microcontroller Level shifters De signalen die de controller verlaten, of moeten bereiken zitten binnen de logische niveaus van de controller (meestal 0-5v of 0-3.3v). Deze spanningen laten niet toe dat het signaal een verbinding van meer dan enkele tientallen cm kan overbruggen. Door level shifters te gebruiken wordt het signaal omgezet naar een andere amplitude of zelfs fysische grootheid (licht). Hierdoor kunnen afstanden tot enkele km overbrugd worden. De meest voorkomende level shifters/interfaces zijn: RS232 RS485/422 Current loop Licht Radiogolven modems 227

228 We beperken ons tot de meest gebruikte levelshifters bij microcontrollers RS232 Figuur MAX232 RS232 level shifter 228

229 De MAX232 level shifter (figuur ) is de bekendste RS232 level shifter. Hij wordt door zowat alle fabrikanten op de markt gebracht (origineel ontwerp van MAXIM-IC). Het IC vertaalt een ingangssignaal van 0-5V naar +10V (voor een logische 0) en -10V (voor een logische 1). Hierdoor is het spanningsverschil tussen 0 en 1 bijna 20V. De elektrische specificaties van de RS232 zijde zijn opgenomen in figuur De figuur laat de gangbare RS232 normering zien. Figuur RS232 karakteristieken MAX232 De interface is kortsluitvast en mag ook aangestuurd worden als de level shifter niet onder spanning staat. Door het grote ingangsbereik (-30V tot +30V) is het IC bijna onverwoestbaar. Het voorziet tevens in een beveiliging tegen elektrostatische ontlading. Figuur RS232 niveaus 229

230 Figuur RS232 afstand/snelheid verhouding De overbrugbare afstand met dit type level shifter kan je terugvinden in figuur Voor verdere informatie verwijzen we naar de cursus datacommunicatie of het WWW RS485 De RS485 standaard is een verbeterde versie van de RS422. Dit type level shifter is ontworpen om grote afstanden te overbruggen tegen relatief hoge snelheden (figuur ). De standaard laat ook toe om een busverbinding te realiseren (figuur ), maar je kan ook een full-duplex verbinding opzetten (figuur ). Net zoals de MAX232 bij RS232 verbindingen een industrie standaard is, wordt bij de RS485 verbinding de van TI als industriestandaard aanzien. Omdat het originele IC beperkingen had (geen fail safe werking en geen kortsluitbeveiliging) zijn er door andere fabrikanten derivaten gemaakt die deze tekortkomingen niet meer hebben (zie figuren en ) 230

231 Figuur RS485 afstand t.o.v. snelheid Figuur RS485 / RS422 busverbinding en parameters 231

232 Figuur RS485 full duplex verbinding 232

233 Figuur gegevens 233

234 Figuur MAX308x fail safe verbeteringen Draadloos In sommige gevallen is het wenselijk data draadloos te verzenden. Dit kan op verschillende manieren gebeuren: Optisch Ultrasoon RF RC5 en IrDA zijn voorbeelden van optische dataoverdracht. Voor RC5 bestaan er geïntegreerde zenders en ontvangers. Die zetten het 0-5V signaal van de controller om naar IR licht en vice versa. Om de invloeden van het daglicht op te vangen wordt het optische signaal gemoduleerd en zijn de sensoren van filters voorzien (figuur ) 234

235 Figuur RC5 ontvanger 235

236 Figuur RC5 zender SC3010 Ultrasoon overdragen van gegevens is niet meer aan de orde, maar was bij de eerste afstandsbedieningen de standaard. Het overdragen van signalen via RF kan op verschillende manieren. Bluetooth is er eentje van. Hiervoor bestaan kant en klare modules die je op de controller kan aansluiten. ZigBee wordt door sommige fabrikanten van microcontrollers ondersteund met hardware en software drivers (Figuur ) 236

237 Figuur ZigBee microcontroller van ATMEL RF modules komen in alle maten. Je kan ze vinden als transmitter, receiver of als transceiver (figuur ). Ze interfacen eenvoudig met een microcontroller, en laten low cost en relatief betrouwbaar dataoverdracht toe (software protocol nodig!!). Je moet wel nagaan wat de module doet wanneer er geen draaggolf meer beschikbaar is. 237

238 Figuur RF modules RFM12B 5.6 Ethernet Ethernet functionaliteit toevoegen aan een microcontroller is niet evident. Er is zowel een hardware als software ondersteuning nodig. Er komen steeds meer microcontrollers op de markt die dit ondersteunen. Voor bepaalde toepassingen bieden de o.a. firma s BECK en DIGI eenvoudige oplossingen. De firma BECK heeft een microcontroller in zijn gamma die zowel de hardware als de firmware voor ethernet toepassingen aan boord heeft. Via API s kan de controller eenvoudig in C geprogrammeerd worden (figuur 5.6.1). Digi levert tal van modules die op een seriële poort van een kleine controller aangesloten kunnen worden. In de module moet nog een C programma geladen worden om de uiteindelijke web-toepassingen te ondersteunen (figuur 5.6.2) 238

239 Figuur BECK Figuur DIGI modules 239

240 5.7 GSM GSM modems kunnen een handige oplossing vormen wanneer je data over grotere afstanden moet transporteren. De GSM modems communiceren via een standaard seriële poort met een controller. Berichten en bevelen tussen de controller en de GSM modem verlopen volgens het HAYES coderingssysteem (AT-codes) (figuur en 5.7.2). GSM modems kunnen zowel gebruikt worden voor spraak (telefonie) als SMS. Sommige GSM s hebben een aansluiting zodat je ze met AT (Hayes) commando s kan aansturen. Figuur Cinterion (formerly Siemens) MC35iT GSM Modem 240

241 Figuur HAYES codes (SMS voorbeeld voor MC35 modem) 241

Interface Technieken. Roggemans M. 2012

Interface Technieken. Roggemans M. 2012 Interface Technieken Roggemans M. 2012 Evaluatie Begrijpen leerstof Figuren kunnen verklaren/uitleggen Kritische kijk op technologie (info van het internet) Basiskennis analoge 1 Herbekijk leerstof en

Nadere informatie

AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke

AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT Geschreven door: Tom Vocke Datum: 28-09-2010 Inleiding: Dit document bevat alle hardware informatie betreffende de AVR-Doper mini. Het eerste deel zal zich

Nadere informatie

Tinyserir-RC5. Datasheet. Tinyserir-RC5 Page: 1 of 8

Tinyserir-RC5. Datasheet. Tinyserir-RC5 Page: 1 of 8 9600 bps RS-232 interface voor uitlezing van Ontvangen RC5 codes Led aanduiding bij ontvangst van Infrarood pulsen Led aanduiding goede werking Interne firmware Inwendige oscillator Weinig externe componenten

Nadere informatie

Introductie EMC. Hét EMC Event 2011 DARE!!

Introductie EMC. Hét EMC Event 2011 DARE!! Introductie EMC Inleiding EMC 1. Electro Magnetische Compatibiliteit, hoe en waarom? 2. EMC fenomenen - Eigenschappen - Oorzaken - Gevolgen 3. Afschermen of filteren? 4. Bepalen van de opgewekte veldsterkte

Nadere informatie

Arduino CURSUS. door Willy - 09-juni-2017

Arduino CURSUS. door Willy - 09-juni-2017 Arduino CURSUS door Willy - w2@skynet.be, 09-juni-2017 OVERZICHT (1) OVERZICHT (2) Historiek Microcontroller (1) Microcontroller (2) Specificaties - Arduino UNO bord Specificaties - ATmega328P chip LET

Nadere informatie

PWM50/3. Dubbele motor sturing. DIGITAAL HANDLEIDING. Motion Control Systems

PWM50/3. Dubbele motor sturing. DIGITAAL HANDLEIDING. Motion Control Systems PWM50/3 Dubbele motor sturing. DIGITAAL HANDLEIDING Touwslagerij 19 4762AT Zevenbergen Nederland www.motion.nl info@motion.nl tel: 00 31 168 325077 fax: 00 31 168 328134 Inhoudsopgave: INHOUDSOPGAVE:...1

Nadere informatie

Introductie EMC. Hét EMC Event 2011 DARE!!

Introductie EMC. Hét EMC Event 2011 DARE!! Introductie EMC Inleiding EMC 1. Bepalen van de opgewekte veldsterkte van een zender - Norm versus optredende velden 2. AM detectie - Hoe veroorzaakt een HF signaal problemen op LF apparatuur 3. Hoe lopen

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (4)

De Arduino-microcontroller in de motorvoertuigentechniek (4) De Arduino-microcontroller in de motorvoertuigentechniek () E. Gernaat (ISBN 978-90-7930--6) De Atmel ATmega38/P microcontroller. Uitvoering De ATmega38 is een microprocessor van de Amerikaanse firma ATMEL

Nadere informatie

Multi Purpose Converter 20A

Multi Purpose Converter 20A MPC20 Multi Purpose Converter 20A Gebruiksaanwijzing Lees deze gebruiksaanwijzing grondig door voordat u uw omvormer gaat gebruiken GEBRUIKSAANWIJZING Index SECTIE 1 Eigenschappen...17 SECTIE 2 Aansluitschema...17

Nadere informatie

Labo digitale technieken

Labo digitale technieken .. Het gebied "elektronica" is reeds geruime tijd onderverdeeld in twee specialiteiten, namelijk de analoge en de digitale technieken. Binnen analoge schakelingen gebeurt de signaalverwerking met lineaire

Nadere informatie

Informatiebundel ADuC832 Motor interface bord MGM/[dp]

Informatiebundel ADuC832 Motor interface bord MGM/[dp] Het ADuC832 Motor interface bord. Het ADuC832V2.0 motor interface bord heeft als doel: Een DC motor en een stappenmotor, die op het motor interface bord gemonteerd zijn, te kunnen aansturen met een ADuCV2.0/V1.1

Nadere informatie

Installatiehandleiding

Installatiehandleiding LC-Products B.V. tel. (+31) 088-8111000 email: info@lc-products.nl website: www.lc-products.nl LC-Products. All rights reserved. No part of this publication may be reproduced in any form or by any means

Nadere informatie

Idee, ontwerp en realisatie : Marc Van den Schoor. PICAXE-18M2+Rotor speed controller V1 Manual.docx pagina 1 van 7

Idee, ontwerp en realisatie : Marc Van den Schoor. PICAXE-18M2+Rotor speed controller V1 Manual.docx pagina 1 van 7 1 Introduction... 2 2 Uitzicht... 2 3 Aansluitingen... 3 3.1 Voeding van de module... 4 3.2 LCD aansluiting... 4 3.3 Voeding remsysteem... 4 3.4 relais of generator GND remsysteem... 4 3.5 RPM sensor...

Nadere informatie

Stappenmotor Interface. Controller

Stappenmotor Interface. Controller Besturing In deze moderne tijd zal de besturing geheel elektrisch worden uitgevoerd. De bedoeling is dat er voor ieder afgaand spoor een wisseladres gebruikt worden. Dit betekend dan een reeks van 24 aansluitende

Nadere informatie

Inhoudsopgave LED dobbelsteen

Inhoudsopgave LED dobbelsteen Inhoudsopgave Inhoudsopgave...2 Dobbelstenen...3 Project: Dobbelsteen met LED s...3 Inleiding...3 Werking...3 Berekeningen...4 Frequentie...4 Bits...4 LED voorschakelweerstanden...4 Schema...4 Printplaat...5

Nadere informatie

DVM830L -- Digitale Mini Multimeter

DVM830L -- Digitale Mini Multimeter 1. Beschrijving -- Digitale Mini Multimeter De is een compacte multimeter met een 3 ½ digit LCD. Met dit apparaat kunt u AC en DC spanning, DC stroom, weerstanden, diodes en transistors meten. Het apparaat

Nadere informatie

GEÏNTEGREERDE PROEF. VTI Sint-Laurentius. Pakketweegschaal. Industriële informatie & communicatietechnologie SCHOOLJAAR 2010-2011.

GEÏNTEGREERDE PROEF. VTI Sint-Laurentius. Pakketweegschaal. Industriële informatie & communicatietechnologie SCHOOLJAAR 2010-2011. VTI Sint-Laurentius De school voor Wetenschap, Techniek en Technologie Pr. Thuysbaertlaan 1 9160 Lokeren www.vti-lokeren.be info@vti-lokeren.be GEÏNTEGREERDE PROEF Pakketweegschaal Industriële informatie

Nadere informatie

AP80 Display Controller

AP80 Display Controller Datasheet AP80 AP80 Display Controller Toepasbaar als: Display voor positie en snelheid Nokkencontroller Signaalomvormer Toerentalbewaking Linearisatie functie 72 mm ca. 160 mm 144 mm Voor sensoren met:

Nadere informatie

Hydrofoon versterker. Een versterker voor de Aquarian H2a. Betreft: Hydrofoon versterker. Door: David Boelee,

Hydrofoon versterker. Een versterker voor de Aquarian H2a. Betreft: Hydrofoon versterker. Door: David Boelee, Hydrofoon versterker Een versterker voor de Aquarian H2a Betreft: Door: Opdrachtgever: Hydrofoon versterker David Boelee, davidboelee@gmail.com Hogeschool Rotterdam, Kenniscentrum Duurzame Havenstad Kees

Nadere informatie

Microcontrollers Labo

Microcontrollers Labo Microcontrollers Labo 8051 based microcontroller ADuC832 from Analog Devices 06/2016 Roggemans M. (MGM) LES 0 Testen en verdelen van de hardware FTP site overlopen Installeren van software om thuis te

Nadere informatie

Fig. 5.1: Blokschema van de 555

Fig. 5.1: Blokschema van de 555 5 Timer IC 555 In de vorige drie hoofdstukken hebben we respectievelijk de Schmitt-trigger, de monostabiele en de astabiele multivibrator bestudeerd. Voor ieder van deze schakelingen bestaan in de verschillende

Nadere informatie

vanwege het hoge rendement weinig warmte-ontwikkeling vanwege de steile schakelpulsen genereert de schakeling sterke hf-stoorsignalen

vanwege het hoge rendement weinig warmte-ontwikkeling vanwege de steile schakelpulsen genereert de schakeling sterke hf-stoorsignalen SCHAKELENDE VOEDING INLEIDING Bij de examenstof over voedingen is sinds 2007 behalve de stof in hoofdstuk 3.3. van het cursusboek ook kennis van de werking van schakelende voedingen opgenomen. De voordelen

Nadere informatie

Zelfbouw frequentieteller

Zelfbouw frequentieteller Zelfbouw frequentieteller De frequentieteller die hier beschreven is, is een teller die gebruik maakt van de software van JG6DFK. De teller is opgebouwd met een PIC processor, namelijk de bekende PIC 16F84.

Nadere informatie

Harmonischen: een virus op het net? FOCUS

Harmonischen: een virus op het net? FOCUS Amplitude Harmonischen: een virus op het net? FOCUS In het kader van rationale energieverbruik (REG) wordt steeds gezocht om verbruikers energie efficiënter te maken. Hierdoor gaan verbruikers steeds meer

Nadere informatie

1. BESCHRIJVING. power LED. sigarettenplug. ON/OFF schakelaar. ventilator. AC uitgangsstopcontact. zekering 2. AANSLUITINGEN

1. BESCHRIJVING. power LED. sigarettenplug. ON/OFF schakelaar. ventilator. AC uitgangsstopcontact. zekering 2. AANSLUITINGEN 1. BESCHRIJVING power LED sigarettenplug ON/OFF schakelaar AC uitgangsstopcontact zekering ventilator 2. AANSLUITINGEN Sluit de sigarettenplug aan op de sigarettenplughouder van uw wagen en verbind de

Nadere informatie

Herken de kwaliteit van Leddrivers. Rob Snoek - R&D manager Lumotech B.V. - Heerhugowaard

Herken de kwaliteit van Leddrivers. Rob Snoek - R&D manager Lumotech B.V. - Heerhugowaard Herken de kwaliteit van Leddrivers Rob Snoek - R&D manager Lumotech B.V. - Heerhugowaard Factoren waar de technologie van drivers bepalend zijn Veiligheid Compliance Voeding en bekabeling Low inrush High

Nadere informatie

B3C 70cm converter besturing. v1.0 2010 PE5PVB www.het bar.net pe5pvb@het bar.net

B3C 70cm converter besturing. v1.0 2010 PE5PVB www.het bar.net pe5pvb@het bar.net B3C 70cm converter besturing v1.0 2010 PE5PVB www.het bar.net pe5pvb@het bar.net Deze schakeling en de bijbehorende software mag niet worden gedupliceerd voor commerciële verkoop zonder uitdrukkelijke

Nadere informatie

NATIONALE MAATSCHAPPIJ DER BELGISCHE SPOORWEGEN TECHNISCHE BEPALING

NATIONALE MAATSCHAPPIJ DER BELGISCHE SPOORWEGEN TECHNISCHE BEPALING NATIONALE MAATSCHAPPIJ DER BELGISCHE SPOORWEGEN TECHNISCHE BEPALING F - 1 LEVERING VAN UITRUSTINGEN MET OMVORMERS VOOR DE VOEDING VAN KOPLICHTEN 24 V 80 W MET EEN INGEBOUWDE KNIPPERINRICHTING EN VOOR DE

Nadere informatie

1. BESCHRIJVING. "-" aansluiting. power LED. ventilator "+" aansluiting zekering. ON/OFF schakelaar. AC uitgangsstopcontact 2.

1. BESCHRIJVING. - aansluiting. power LED. ventilator + aansluiting zekering. ON/OFF schakelaar. AC uitgangsstopcontact 2. 1. BESCHRIJVING power LED "-" aansluiting ON/OFF schakelaar AC uitgangsstopcontact ventilator "+" aansluiting zekering 2. AANSLUITINGEN Verbind de inverter met de batterij (krokodillenklemmen meegeleverd)

Nadere informatie

GPRS-A. Universele monitoringsmodule. Quick start. De volledige handleiding is verkrijgbaar op Firmware versie 1.00 gprs-a_sii_nl 02/18

GPRS-A. Universele monitoringsmodule. Quick start. De volledige handleiding is verkrijgbaar op   Firmware versie 1.00 gprs-a_sii_nl 02/18 GPRS-A Universele monitoringsmodule Quick start De volledige handleiding is verkrijgbaar op www.osec.nl Firmware versie 1.00 gprs-a_sii_nl 02/18 SATEL sp. z o.o. ul. Budowlanych 66 80-298 Gdańsk POLAND

Nadere informatie

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012

Nadere informatie

Spanningdriver LEDVD5CH20A-V4 Real Time Clock

Spanningdriver LEDVD5CH20A-V4 Real Time Clock Spanningdriver LEDVD5CH20A-V4 Real Time Clock Spanningdriver waarbij de uitgangen door de Real Time Clock worden ingesteld (zonder user interface print) De gebruiker kan door middel van een pc/laptop met

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Voor deze oefeningenles heb je de handleiding van de uitgedeelde ARM processor nodig. Je kan deze vinden op de website van het

Nadere informatie

HANDLEIDING - LEVEL INDICATOR M A N U A L

HANDLEIDING - LEVEL INDICATOR M A N U A L HANDLEIDING - LEVEL INDICATOR M A N U A L Ondanks de grootst mogelijke zorgvuldigheid die Tasseron Electronics B.V. aan haar producten en de bijbehorende handleidingen besteedt, kunnen er onvolkomenheden

Nadere informatie

Digitaal is een magisch woord

Digitaal is een magisch woord Digitaal is een magisch woord Hieronder leest u over digitale logica. De theorie en de praktijk. Dit werk moet nog uitgebreid worden met meer informatie over TTL, CMOS en varianten. Daarnaast kunnen de

Nadere informatie

Vermogenelektronica, propere technologie! Of toch niet zo evident?

Vermogenelektronica, propere technologie! Of toch niet zo evident? Vermogenelektronica, propere technologie! Of toch niet zo evident? Inhoudsopgave - De Frequentie Omvormer (FO) - Opbouw Frequentie Omvormer - Voordelen - Nadelen + oplossingen Inhoudsopgave - De Frequentie

Nadere informatie

Onderzoek werking T-verter.

Onderzoek werking T-verter. Onderzoek werking T-verter. De Beer Gino Page 1 02/10/2007 Inhoudstabel: 1. Doelstellingen. 2. Benodigd materiaal. 3. Bespreking van de frequentieregelaar. 4. Instellingen en gebruik van de frequentieregelaar.

Nadere informatie

Elektronica monteur, Technicus Elektronica

Elektronica monteur, Technicus Elektronica Elektronica monteur, Technicus Elektronica Patrick De Locht Business Developer SYNTRA Limburg vzw Versie Mei 2016 Patrick.delocht@syntra-limburg.be 1 Beschrijving traject Heb je al langer zin om je te

Nadere informatie

BEVEILIGING VAN HET STUURSTROOMCIRCUIT

BEVEILIGING VAN HET STUURSTROOMCIRCUIT BEVEILIGING VAN HET STUURSTROOMCIRCUIT Beveiliging van de stuurstroomtransformator: EN60204-1 stelt: Transformatoren moeten beveiligd zijn tegen overbelasting in overeenstemming met de het datasheet van

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 3: Eenvoudige externe hardware & hardware programmeren in C Hardware programmeren in C Inmiddels ben je al aardig op gang gekomen met het programmeren van microcontrollers.

Nadere informatie

Meten met de multimeter Auteur: Wouter (Flush) [0905-002]

Meten met de multimeter Auteur: Wouter (Flush) [0905-002] Meten met de multimeter Auteur: Wouter (Flush) [0905-002] Dit artikel moet de beginners helpen simpele metingen te kunnen uitvoeren met de multimeter. Soorten multimeters Eerst en vooral hebben we digitale

Nadere informatie

STROOMSENSOR BT21i Gebruikershandleiding

STROOMSENSOR BT21i Gebruikershandleiding STROOMSENSOR BT21i Gebruikershandleiding CENTRUM VOOR MICROCOMPUTER APPLICATIES http://www.cma-science.nl Korte beschrijving De Stroomsensor BT21i is een veelzijdige sensor, die de stroomsterkte kan meten

Nadere informatie

Cursus/Handleiding/Naslagwerk. Driefase wisselspanning

Cursus/Handleiding/Naslagwerk. Driefase wisselspanning Cursus/Handleiding/Naslagwerk Driefase wisselspanning INHOUDSTAFEL Inhoudstafel Inleiding 3 Doelstellingen 4 Driefasespanning 5. Opwekken van een driefasespanning 5.. Aanduiding van de fasen 6.. Driefasestroom

Nadere informatie

(On)voldoende spanningskwaliteit kost geld!

(On)voldoende spanningskwaliteit kost geld! (On)voldoende spanningskwaliteit kost geld! De verantwoordelijkheid voor een voldoende kwaliteit van de spanning en de stroom is een gezamenlijke verantwoordelijkheid van netbeheerders, fabrikanten en

Nadere informatie

DATA SHEET C2-20. Besturing voor elektrische actuators. DATA SHEET C2-20 A&E Trading b.v. 1

DATA SHEET C2-20. Besturing voor elektrische actuators. DATA SHEET C2-20 A&E Trading b.v. 1 DATA SHEET C2-20 Besturing voor elektrische actuators DATA SHEET C2-20 A&E Trading b.v. 1 C2-20 De C2-20 biedt geavanceerde positionering en controle van actuators door middel van eenvoudige en flexibele

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (3)

De Arduino-microcontroller in de motorvoertuigentechniek (3) De Arduino-microcontroller in de motorvoertuigentechniek (3) E. Gernaat (ISBN 978-90-79302-11-6) 1 In- en uitgangssignalen van microprocessoren 1.1 Overzicht signalen Informatie van en naar een microprocessor

Nadere informatie

PDM-8-MB POM (VOEDING OVER MODBUS) Montage & gebruiksvoorschriften

PDM-8-MB POM (VOEDING OVER MODBUS) Montage & gebruiksvoorschriften POM ( MODBUS) Montage & gebruiksvoorschriften Inhoudstafel VEILIGHEIDS - & VOORZORGSMAATREGELEN 3 PRODUCTBESCHRIJVING 4 GEBRUIKSTOEPASSING 4 TECHNISCHE GEGEVENS 4 STANDAARDEN 4 OPERATIONELE DIAGRAMMEN

Nadere informatie

Combinatorische schakelingen

Combinatorische schakelingen Practicum 1: Combinatorische schakelingen Groep A.6: Lennert Acke Pieter Schuddinck Kristof Vandoorne Steven Werbrouck Inhoudstabel 1. Doelstellingen... 2 2. Voorbereiding... 3 3. Hardware-practicum...

Nadere informatie

Een 13,8 volt - 30 ampere voeding

Een 13,8 volt - 30 ampere voeding Een 13,8 volt - 30 ampere voeding We gaan de opbouw van dit schema van links naar rechts beschrijven zodat een ieder het kan volgen. Als eerste de transformator, neem hiervoor een type dat secundair minstens

Nadere informatie

Spanningdriver LEDVD5CH20A-V5 0-10V en DALI

Spanningdriver LEDVD5CH20A-V5 0-10V en DALI Spanningdriver LEDVD5CH20A-V5 0-10V en DALI Spanningdriver met user interface print waarop de 0-10V en DALI interface is aangebracht (zonder display) Speciaal voor home automation kan aan de Spanningdriver

Nadere informatie

Update B van 13 /11/ 2009: in versie A van 3 /11 /2009 fout voeding LM324

Update B van 13 /11/ 2009: in versie A van 3 /11 /2009 fout voeding LM324 Een praktische, goedkope,met groot bereik,gemakkelijk te bouwen,relatief nauwkeurige anatenne-analyser die zowel SWR als R, X en Z-componenten kan weergeven. Na langdurig zoeken naar een haalbare oplossing

Nadere informatie

Geavanceerd EMC Printontwerp

Geavanceerd EMC Printontwerp Geavanceerd EMC Printontwerp Patrick Dijkstra 9 November 2016 Waar gaan we het over hebben? Introductie DARE!! Filtering en afgeschermde kabels Voedingsontkoppeling Routing (referentievlak) Voor een Veilige

Nadere informatie

Spanningdriver LEDVD5CH20A-V7 Real Time Clock met LCD scherm

Spanningdriver LEDVD5CH20A-V7 Real Time Clock met LCD scherm Spanningdriver LEDVD5CH20A-V7 Real Time Clock met LCD scherm Spanningdriver waarbij de uitgangen door de Real Time Clock worden ingesteld door middel van user interface print met LCD display De vijf kanalen

Nadere informatie

AP22 Analoog Display

AP22 Analoog Display Datasheet AP22 AP22 Analoog Display Toepasbaar als: Display voor positie en snelheid Grenswaardebewaking met hysterese 48 mm ca. 90 mm 96 mm Voor sensoren met analoge interface Instelbaar tussen -10..+10

Nadere informatie

EM2 Microcontroller Project. LED cube

EM2 Microcontroller Project. LED cube EM2 Microcontroller Project LED cube Door: Dennis Koster Klas: Tc202 Studentnummer: 536496 Docent: Jan Derriks & Ruud Slokker Versie 1.0 (12-1-2009) Inhoudsopgave Inleiding 3 De onderdelen 4 t/ m 6 Het

Nadere informatie

Hoofdstuk 4: Gestabiliseerde voedingen

Hoofdstuk 4: Gestabiliseerde voedingen Elektronica: Tweede kandidatuur industrieel ingenieur 1 Hoofdstuk 4: Gestabiliseerde voedingen 1: Inleiding Een spanningsstabilisator (= gestabiliseerde voeding) is een elektronische schakeling welke een

Nadere informatie

-24VDC. Alle Integratech ledstrips werken volgens het constant voltage principe = spanningsgestuurd.

-24VDC. Alle Integratech ledstrips werken volgens het constant voltage principe = spanningsgestuurd. Opbouw ledstrip Een ledstrip is opgebouwd uit een aantal secties. Elke sectie is een aparte schakeling op zich, en de hoeveelheid en grootte van deze secties is afhankelijk van het vermogen van de ledstrip

Nadere informatie

PCB-ontwerp. Het EMC-Event Patrick Dijkstra

PCB-ontwerp. Het EMC-Event Patrick Dijkstra PCB-ontwerp Het EMC-Event 2019 Patrick Dijkstra Agenda in bekabeling I/O filtering en voedingsfiltering Indeling van PCB halfgeleiders Uitvoeren van metingen Ongemoduleerd signaal Zelfcertificering Modulatie

Nadere informatie

Hoofdstuk 4: De gelijkrichting

Hoofdstuk 4: De gelijkrichting Hoofdstuk 4: De gelijkrichting 4.1. Inleiding: De gelijkrichting is een toepassing op het gebruik van de diode. Elektronische en elektrische apparatuur maken gebruik van de netspanning. Niettegenstaande

Nadere informatie

GEINTEGREERDE PROEF DE COMPUTER ALS TV AFSTANDSBEDIENING

GEINTEGREERDE PROEF DE COMPUTER ALS TV AFSTANDSBEDIENING 7 IC De Computer als TV afstandsbediening - 1 - KTA-Gent GEINTEGREERDE PROEF DE COMPUTER ALS TV AFSTANDSBEDIENING Arnoud De Kemel Industriële Computertechnieken Schooljaar 2004-2005 7 IC De Computer als

Nadere informatie

Terugmeld module in combinatie met andere merken 13. Aansluiten van de meldingangen 14. In gebruik nemen en testen van de terugmeld module 16

Terugmeld module in combinatie met andere merken 13. Aansluiten van de meldingangen 14. In gebruik nemen en testen van de terugmeld module 16 06/2009 Etecmo Alle rechten voorbehouden. Niets uit deze documentatie mag worden vermenigvuldigd opgeslagen en/of openbaar gemaakt, zonder voorafgaande schriftelijke toestemming van Etecmo. Technische

Nadere informatie

Pajottenlandse Radio Amateurs. De multimeter

Pajottenlandse Radio Amateurs. De multimeter Pajottenlandse Radio Amateurs De multimeter ON3BL 05/03/2013 Wat is een multimeter of universeelmeter? Elektronisch meetinstrument waar we de grootheden van de wet van ohm kunnen mee meten Spanning (Volt)

Nadere informatie

MURRELEKTRONIK IO-LINK, EN NU? Roel Janssen

MURRELEKTRONIK IO-LINK, EN NU? Roel Janssen MURRELEKTRONIK IO-LINK, EN NU? Roel Janssen MURRELEKTRONIK Onze systemen en waar u deze kan tegenkomen. Elektronica in de schakelkast I/O-Systemen Automotive Interfaces Aansluittechniek Werktuigmachine

Nadere informatie

Spanningdriver LEDVD5CH20A-V11 WiFi interface met LCD display

Spanningdriver LEDVD5CH20A-V11 WiFi interface met LCD display Spanningdriver LEDVD5CH20A-V11 WiFi interface met LCD display Spanningdriver met WiFi en LCD display De Spanningdriver kan draadloos aangestuurd worden voor als deze in een ruimte geplaatst is waarbij

Nadere informatie

Spanningdriver LEDVD5CH20A-V8 0-10V interface met display

Spanningdriver LEDVD5CH20A-V8 0-10V interface met display Spanningdriver LEDVD5CH20A-V8 0-10V interface met display Spanningdriver met 0-10V / 1-10V interface met display Dit is een Spanningdriver met 5 ingangen voor 0-10V / 1-10V. Via het optionele display en

Nadere informatie

Inleiding Vermogenversterkers en de Klasse A versterker

Inleiding Vermogenversterkers en de Klasse A versterker Inleiding Vermogenversterkers en de Klasse A versterker Jan Genoe KHLim Universitaire Campus, Gebouw B 3590 Diepenbeek Belgium http://www.khlim.be/~jgenoe In dit hoofdstuk situeren we eerste in het algemeen

Nadere informatie

LABO 2 : Opgave oscilloscoopmetingen DC

LABO 2 : Opgave oscilloscoopmetingen DC Opgave oscilloscoopmetingen 1 / 13 LABO 2 : Opgave oscilloscoopmetingen DC 1. Doelstellingen Na het uitvoeren van de proeven : ken je de massaproblemen bij de scoop. kan je de grootte van een spanning

Nadere informatie

AP40 Display Controller

AP40 Display Controller Datasheet AP40 Versie 03-2010 / NL AP40 Display Controller Toepasbaar als: Display voor positie en snelheid Nokkencontroller Signaalomvormer Toerentalbewaking Procestijdmeting (1/f) 48 mm ca. 150 mm 96

Nadere informatie

AP22 Analoog Display

AP22 Analoog Display Datasheet AP22 AP22 Analoog Display Toepasbaar als: Display voor positie en snelheid Grenswaardebewaking met hysterese Display voor niet lineaire bewegingen 48 mm ca. 90 mm 96 mm Voor sensoren met analoge

Nadere informatie

Inleiding elektronica Presentatie 1

Inleiding elektronica Presentatie 1 Inleiding elektronica Presentatie 1 2 Versie: 18 augustus 2014 Inleiding Elektronica Presentatie 1 16-9-2013 Praktische Elektronica, talk of the day! 2 1 Doel van deze module Herkennen van de algemene

Nadere informatie

Hoofdstuk 5 : SCHEMA'S

Hoofdstuk 5 : SCHEMA'S Hoofdstuk 5 : SCHEMA'S 5.1. Inleiding. In dit hoofdstuk worden de eigenlijke ontwerpen besproken. We vertrekken van de volledige schakeling, om dan telkens iets dieper in detail te gaan. Zo komen we uiteindelijk

Nadere informatie

Spanningdriver LEDVD5CH20A-V12 ZigBee interface met LCD display

Spanningdriver LEDVD5CH20A-V12 ZigBee interface met LCD display Spanningdriver LEDVD5CH20A-V12 ZigBee interface met LCD display Spanningdriver met user interface print met ZigBee met LCD display De Spanningdriver kan draadloos aangestuurd worden voor als deze in een

Nadere informatie

IDAgeChecker BDX118T11xx Manual V02.00

IDAgeChecker BDX118T11xx Manual V02.00 XLN-t bvba Hoogstraat 52 B 2580 Putte-Beerzel Belgie - Belgium tel +32 (0) 15 24 92 43 fax +32 (0) 15 25 10 58 RPR Mechelen BTW BE 423 212 087 Bank 733-2011497-38 IDAgeChecker BDX118T11xx Manual V02.00

Nadere informatie

Inhoudsopgave. - 2 - De condensator

Inhoudsopgave.  - 2 - De condensator Inhoudsopgave Inhoudsopgave...2 Inleiding...3 Capaciteit...3 Complexe impedantie...4 De condensator in serie of parallel schakeling...4 Parallelschakeling...4 Serieschakeling...4 Aflezen van de capaciteit...5

Nadere informatie

Klasse B output buffer voor een Flat Panel Display Kolom aansturing

Klasse B output buffer voor een Flat Panel Display Kolom aansturing Gevalstudie 1 Klasse B output buffer voor een Flat Panel Display Kolom aansturing IEEE Journal of Solid-state circuits, Vol 34, No 1, Januari 1999, pp 116-119 Jan Genoe KHLim Flat Panel display kolom driver

Nadere informatie

Spanningdriver LEDVD5CH20A-V9 DALI interface met LCD display

Spanningdriver LEDVD5CH20A-V9 DALI interface met LCD display Spanningdriver LEDVD5CH20A-V9 DALI interface met LCD display Spanningdriver met DALI interface en display Dit is een Spanningdriver met DALI interface voor home automation. Het bevat onder meer een LCD

Nadere informatie

Handleiding HCS VB5248

Handleiding HCS VB5248 Handleiding HCS VB5248 Analoge Uitgangsmodule met 8 uitgangen HCS Building Automation Kompasstraat 7a, 2901AM Capelle a/d IJssel Postbus 182, 2900AD Capelle a/d IJssel Tel. +31(0)10 458 00 00 Fax +31(0)10

Nadere informatie

Spanningsdriver LEDVD5CH10A-V5 0-10V en DALI

Spanningsdriver LEDVD5CH10A-V5 0-10V en DALI Spanningsdriver LEDVD5CH10A-V5 0-10V en DALI Spanningsdriver met user interface print waarop de 0-10V en DALI interface is aangebracht (zonder display) Speciaal voor home automation kan aan de Spanningsdriver

Nadere informatie

Harmonischen: remedies

Harmonischen: remedies Harmonischen: remedies Harmonischen: remedies - De verbruiker - 12 en 24 pulsige gelijkrichters - Active Front End - Passieve filters - Actieve filters - Hybride filters - Het elektrisch net De verbruiker

Nadere informatie

Handleiding voor demonstratie multimeter

Handleiding voor demonstratie multimeter Handleiding voor demonstratie multimeter 24.06.18 3867.70 Omschrijving: Deze demonstratie multimeter is special ontworpen voor educatieve doeleinden en kan de volgende eenheden meten: spanning, stroom.

Nadere informatie

Elektronica bouwen met M.T.S. LEGEO modulen

Elektronica bouwen met M.T.S. LEGEO modulen 1 Elektronica bouwen met M.T.S. LEGEO modulen Door PE1KTH Deel 1. Datum 15-10-2015 Elektronica componenten worden steeds kleiner van afmeting en in SMD gemaakt. Het is dan lastiger om een complete ontvanger,tranceiver

Nadere informatie

PIC Callgever Door PA1RUM

PIC Callgever Door PA1RUM PIC Callgever Door PA1RUM Aanleiding Tijdens de radiokampweek 2008 is deze callgever met veel enthousiasme gebouwd. Niet alleen omdat het een zeer eenvoudig en veelzijdig ontwerp is, maar ook omdat het

Nadere informatie

Hoofdstuk 1: De OPAMP

Hoofdstuk 1: De OPAMP Elektronica: Tweede kandidatuur industrieel ingenieur 1 Hoofdstuk 1: De OPAMP 1: Definitie Een opamp (= operational amplifier = operationele versterker) is een versterker met twee ingangen en (meestal)

Nadere informatie

Versterking Principe van de versterking

Versterking Principe van de versterking 6. 6.1.a Versterking Principe van de versterking Signalen worden versterkt door lampen of halfgeleiders. Halfgeleiders worden gemaakt van halfgeleidende materialen ( bv. silicium of germanium ) waar onzuiverheden

Nadere informatie

Snel aan de slag met de Peak Atlas SCR100 thyristor en triac analyser

Snel aan de slag met de Peak Atlas SCR100 thyristor en triac analyser Snel aan de slag met de Peak Atlas SCR100 thyristor en triac analyser Vego VOF Postbus 32.014, 6370 JA Landgraaf (NL) Telefoon: 045-533.22.00 Fax: 045-533.22.02 E-mail: vego_vof@compuserve.com Internet:

Nadere informatie

P ow er Quality metingen: Harmonischen

P ow er Quality metingen: Harmonischen P ow er Quality metingen: n Focus Power Quality is een begrip dat de laatste decennia enorm aan belangstelling heeft gewonnen. Power Quality behelst het garanderen van een sinusvormige spannings en stroomgolfvorm,

Nadere informatie

Spanningsdriver LEDVD5CH10A-V11 WiFi interface met LCD display

Spanningsdriver LEDVD5CH10A-V11 WiFi interface met LCD display Spanningsdriver LEDVD5CH10A-V11 WiFi interface met LCD display Spanningsdriver met WiFi en LCD display De Spanningsdriver kan draadloos aangestuurd worden voor als deze in een ruimte geplaatst is waarbij

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 5: Timers/counters & Interrupts Timers/counters Hardware timers/counters worden in microcontrollers gebruikt om onafhankelijk van de CPU te tellen. Hierdoor kunnen andere

Nadere informatie

Duurzame energie. Aan de slag met de energiemeter van LEGO

Duurzame energie. Aan de slag met de energiemeter van LEGO Duurzame energie Aan de slag met de energiemeter van LEGO LEGO, het LEGO logo, MINDSTORMS en het MINDSTORMS logo zijn handelsmerken van de LEGO Group. 2010 The LEGO Group. 1 Inhoudsopgave 1. Overzicht

Nadere informatie

Opgave 1 Opbouwen van een stappenmotor-systeem

Opgave 1 Opbouwen van een stappenmotor-systeem Opgave 1 Opbouwen van een stappenmotor-systeem Leerdoelen Na het voltooien van deze opgave: Ben je bekend met het veilig opbouwen van een stappenmotor systeem Ben je bekend met de basisprincipes van schema

Nadere informatie

10 kω stappenverzwakker als audio volumeregelaar

10 kω stappenverzwakker als audio volumeregelaar 10 kω stappenverzwakker als audio volumeregelaar Inleiding Volumeregelaars voor stereoweergave worden meestal van twee gelijklopende potentiometers gemaakt. Die gelijkloop laat nogal eens te wensen over,

Nadere informatie

GEBRUIKSAANWIJZING HD-9022. Microprocessor Volledig vrij instelbare controller

GEBRUIKSAANWIJZING HD-9022. Microprocessor Volledig vrij instelbare controller GEBRUIKSAANWIJZING HD-9022 Microprocessor Volledig vrij instelbare controller HD9022 MICROPROCESSOR CONFIGURATIE CONTROLLER De microprocessor gestuurde controller HD9022 is een aflees- en regelunit met

Nadere informatie

Figuur 1. Rabo bank Lekkerkerk nr. 3357.90.267 Handelsregister nr. 24345002 K.v.K. te Rotterdam

Figuur 1. Rabo bank Lekkerkerk nr. 3357.90.267 Handelsregister nr. 24345002 K.v.K. te Rotterdam AM PLL zender De AM PLL zender is eenvoudig te bouwen, en eenvoudig in gebruik (behoeft geen afregeling) De schakeling is zeer stabiel (stabiliteit is het kristal) De frequenties zitten exact op het kanaalraster

Nadere informatie

Hoofdstuk5. 1 Hoofdstuk5: Praktische realisatie van logische schakelingen. Peter Slaets () Digitale en analoge technieken October 6, 2005 1 / 19

Hoofdstuk5. 1 Hoofdstuk5: Praktische realisatie van logische schakelingen. Peter Slaets () Digitale en analoge technieken October 6, 2005 1 / 19 Hoofdstuk5 1 Hoofdstuk5: Praktische realisatie van logische schakelingen Inleiding Bestaande poortschakelingen Hoog- en laagactieve signalen Poorten en hun waarheidstabel Praktische realisaties Ingangsschakelingen

Nadere informatie

TENTAMEN MEETTECHNIEK (EE1320) Woensdag 3 juli 2013, 9:00u 12:00u

TENTAMEN MEETTECHNIEK (EE1320) Woensdag 3 juli 2013, 9:00u 12:00u TENTAMEN MEETTECHNIEK (EE1320) Woensdag 3 juli 2013, 9:00u 12:00u Dit tentamen bestaat uit 3 vraagstukken met elk een aantal deelvragen. Alle deelvragen tellen in principe even zwaar. Bij dit tentamen

Nadere informatie

Digitale remmodule. Installatiehandleiding. Modellspielwaren GmbH Am Bahnhof 1 D Hatzfeld Vertaling: Koen Vaganée 1

Digitale remmodule. Installatiehandleiding. Modellspielwaren GmbH Am Bahnhof 1 D Hatzfeld  Vertaling: Koen Vaganée 1 Digitale remmodule 5232 Installatiehandleiding Modellspielwaren GmbH Am Bahnhof 1 D- 35116 Hatzfeld www.viessmann-modell.de Vertaling: Koen Vaganée 1 Belangrijke informatie! Lees deze gebruikershandleiding

Nadere informatie

Een Simpele RF Ontvanger

Een Simpele RF Ontvanger Een Simpele RF Ontvanger Een eenvoudige schakeling rond de RRFQ1 module Samenvatting De hierbij gepresenteerde schakeling vormt een eenvoudige ontvanger voor het ontvangen van seriële data over een smalband

Nadere informatie

KABELTESTER en DIGITALE MULTIMETER. Turbotech TT1015

KABELTESTER en DIGITALE MULTIMETER. Turbotech TT1015 KABELTESTER en DIGITALE MULTIMETER Turbotech TT1015 CABLE TESTER CABLE IDENTIFIER Vcheck CABLE TESTER CABLE IDENTIFIER OP ON - 2 - INHOUDSTAFEL 1. ALGEMENE TOEPASSINGEN------------------------------------3

Nadere informatie

Klasse B versterkers

Klasse B versterkers Klasse B versterkers Jan Genoe KHLim Universitaire Campus, Gebouw B 359 Diepenbeek Belgium http://www.khlim.be/~jgenoe In dit hoofdstuk bespreken we de Klasse B en de klasse G versterker. Deze versterker

Nadere informatie