730 likes | 1.26k Views
Geïntegreerde Proef: DCF77-klok met PIC microcontroller. Van Hoylandt Roel 2007 - 2008 6EE - 4. Hoofdmenu. Inhoud Presentatie 1:. Inhoud Presentatie 2:. Omschrijving. Blokschema. Motivatie. Herhaling: DCF77. Blokschema. PIC µC. DCF77. Software. Ontvanger. Extra. Voeding. Display.
E N D
Geïntegreerde Proef:DCF77-klok met PIC microcontroller Van Hoylandt Roel 2007 - 2008 6EE - 4
Hoofdmenu Inhoud Presentatie 1: Inhoud Presentatie 2: Omschrijving Blokschema Motivatie Herhaling: DCF77 Blokschema PIC µC DCF77 Software Ontvanger Extra Voeding Display Schema en printontwerp Behuizing Stand van zaken Extra Voorstelling beëindigen
Omschrijving Presentatie 1 > • Haalt uit zichzelf de juiste tijd en datum op doormiddel van het DCF77 signaal • Gebruikt een PIC microcontroller voor alle berekeningen • HD44780 compatibel PLED-display • 7805 Spanningsregelaar als voeding Gebruiksvriendelijk, Geen instellingen nodig, geen knoppen, enkel aansluiten van voeding en ontvanger ⃔ ⃕
Motivatie Presentatie 1 > • Microcontrollers zijn boeiende dingen • Een klok die altijd juist staat is handig om te hebben • Ik vindt het leuk om er achter te komen hoe iets werkt • Combinatie van elektronica/computers/programmeren • Ik had basiskennis van zaken voor ik er aan begon ⃔ ⃕
Blokschema Presentatie 1 > Voeding DCF77 Antenne Display PIC µC DCF77: AM-Signaal met tijd en datum informatie Antenne: Ontvangt het DCF77 signaal en zet het om naar een bruikbaar signaal PIC µC: Hart van de schakeling, ontvangt, decodeert de informatie, laat de tijd en datum zien op het display Display: Maakt de tijd en datum zichtbaar Voeding: Zorgt ervoor dat elke onderdeel een correcte spanning krijgt ⃔ ⃕
DCF77 Presentatie 1 > Voeding DCF77 Antenne Display PIC µC Algemeen Informatie in het signaal Bitstructuur AM Protocol Pariteit ⃔ ⃕
Mainflingen Algemeen DCF77 > Deutschland C Kenteken lange golf Frankfurt (op 25 km van Mainflingen) 77 Freq. uitgezonden signaal (77,5 kHz) Signaal is zo goed als constant te ontvangen (99.87 % van de tijd) Als tijdbasis worden er 3 atoomklokken gebruikt ⃔ ⃕
Informatie in het signaal DCF77 > • Dag van de week (1-7) • Maand (1-12) • Jaar (bv: 2008) • Meteotime (Licentie verplicht) • Reserve/hoofd antenne in gebruik • Zomertijd/wintertijd • Minuten (0-59) • Uren (0-23) • Dag van de maand (1-31) ⃔ ⃕
Bitstructuur DCF77 > Elke seconde wordt er 1 bit uitgezonden, behalve op seconde 59 → 59 bits per minuut ⃔ ⃕
AM DCF77 > Het DCF77-signaal wordt uitgezonden als een AM-signaal • Freq. signaal = constant • Amplitude signaal afhankelijk van inkomend signaal ⃔ ⃕
Willekeurige moment Minuutovergang Protocol DCF77 > Gemoduleerd tot 25% gedurende: • 100 ms: ontvangen bit is een 0 • 200 ms: ontvangen bit is een 1 ⃔ ⃕
Pariteit DCF77 > Pariteit is dient voor controle van de ontvangen data DCF77 maakt gebruik van even pariteit Aantal ontvangen énen is altijd even 0110 1011 1→ Even → Juist 0110 1010 1 → Oneven → Fout ⃔ ⃕
Ontvanger Presentatie 1 > Voeding DCF77 Antenne Display PIC µC Ontvangstmodule Open collector uitgangen Principe werking ⃔ ⃕
Ontvangstmodule Ontvanger > Massa Voedingsspanning DCF77 uitgang (open collector) Geïnverteerde DCF77 uitgang (open collector) Uin = 1,2 - 15 V DC Iin gebruik = 3 mA Iuit max = 1 mA Uuit max = 30 V ⃔ ⃕
Open collector uitgangen Ontvanger > 5 V 0 V “H” “L” → 10 kOhm → Imax = 0,5 mA ⃔ ⃕
Principe werking Ontvanger > Amplitude verzwakt tot 25 % → Uu = 5 V Signaal is uitleesbaar door de microcontroller ⃔ ⃕
Voeding Presentatie 1 > Voeding DCF77 Antenne Display PIC µC Schema Afvlakcondensatoren Spanningsregelaar 7805 Zenerstabelisatie Spanningsstabbelisatie ⃔ ⃕
Schema Voeding > • Diode • Afvlakcondensatoren • Spanningsregelaar ⃔ ⃕
Afvlakcondensatoren Voeding > Laagfrequente afvlakking Richtlijn: 2200 µF per opgenomen Ampère Hoogfrequente afvlakking Typische waarde: 100 nF ⃔ ⃕
Spanningsregelaar 7805 Voeding > Maakt van een variabele spanning een stabiele 5 Volt spanning Eigenschappen: • TO220 behuizing • Stroombegrenzing (1 A) • Temperatuurbegrenzing (150 °C) Opgewekt vermogen: ⃔ ⃕
Zenerstabbelisatie Voeding > Te grote belasting haalt de zener uit stabelisatie ⃔ ⃕
UR5 Ub1 Ub2 UZ Spanningsstabbelisatie Voeding > Stel Uuit stijgt: • Ub2 stijgt • T2 gaat meer in doorlaat • UR1 stijgt • Ub1 daalt • T1 gaat meer is sper • Uuit daalt Stel Uuit daalt: • Ub2 daalt • T2 gaat meer in sper • UR1 daalt • Ub1 stijgt • T1 gaat meer doorlaat • Uuit stijgt Stel Iuit wordt te groot: • UR5 > 0.7 Volt • T3 gaat (meer) in doorlaat • UR1 stijgt • Ub1 daalt • T1 gaat meer sper • Uuit daalt ⃔ ⃕
Display Presentatie 1 > Voeding DCF77 Antenne Display PIC µC Algemeen Aansluitpinnen HD44780 controller DDRAM CGROM Instructies ⃔ ⃕
2 Karakters 16 Karakters Algemeen Display > PLED (Polymer Light Emitting Diodes) display: Laag verbruik, Helder LCD (Liquid Crystal Display): Groot verbruik (achtergrond verlichting), van ver moeilijk leesbaar 32 karakters x 40 pixels = 1280 pixels → Onmogelijk om aan te sturen met µC → Aparte controller voor display ⃔ ⃕
Aansluitpinnen Aansluitpinnen Display > Deze pinnen dienen voor: • Aansluiten voeding • Regelen Helderheid • Communicatie met display controller Pinfunctie: 1: Massa (0 V) 2: Power Supply (+ 5 V) 3: Contrast/Brightness 4: Function Select(IR/DR) 5: Read/Write 6: Enable 7-14: Databus 15-16: No connection ⃔ ⃕
HD44780 controller Display > Deze controller van Hitachi is zeer populair, een bekende kloon is KS0066 (van SEC). Eigenschappen: • Kan displays van verschillende groottes aansturen (1 x 8, 2 x 8, 1 x 16, 2 x 16, …) • Kan displays met verschillende karaktergroottes aansturen (5 x 8 of 5 x 10 pixels) • Laag verbruik (batterijvoeding) • Simpel aan te sturen • 4 of 8 bits mode Er zijn verschillende versies verkrijgbaar • HD44780A00 (met Japaneese karakters) • HD44780A02 (met Europeese karakters bv: ç, è, é, ê, ë, ù, ú, û en ü ) ⃔ ⃕
DDRAM Display > Display Data Random Acces Memory Houdt bij welke en waar de karakters op het display staan. Elke geheugenplaats: • Heeft een eigen nummer (adres) • Is 1 byte groot (kan 1 karakter opslaan) • Kan op elk moment beschreven worden • Kan op elk moment uitgelezen worden Een cursor duidt het actieve adres aan ⃔ ⃕
HD44780A02: Europees HD44780A00: Japanees CGROM Display > Character Generator Read Only Memory Vanuit het DDRAM wordt er naar dit geheugen verwezen Het CGROM vertelt hoe een karakter wordt opgebouwd De tabel volgt zoveel mogelijk de ASCII code bv: (65) 10 =(0100 0001) 2= “A” De eerste 8 geheugenplaatsen kunnen zelf beschreven worden → CGRAM ⃔ ⃕
Clear Display Return home Entry mode set Display on/off control Cursor or display shift Function set Set CGRAM address Set DDRAM address Write data to CGRAM or DDRAM Instructies (1) Display > Datalijnen (juist) wijzigen → Instructie uitvoeren Er zijn twee soorten instructie’s: • Instructies die schrijven naar het display • Instructies die uitlezen van het display Uitlezen van het display is overbodig in deze schakeling, → Read/Write lijn is met de massa verbonden → Er kunnen nog 9 verschillende instructie’s worden uitgevoerd ⃔ ⃕
Instructies (2) Display > Clear Display Maakt het volledige display leeg en zet de cursor op positie 0. Return home Zet de cursor op positie 0 en maakt alle schuif acties ongedaan. Entry mode set Stelt in, in welke richting de cursor beweegt na het schrijven van data naar het display en of het schuiven ingeschakeld is. I/D=0:cursor telt afS = 0:schuiven niet toegestaan I/D=1:cursor telt opS = 1:schuiven toegestaan ⃔ ⃕
Instructies (3) Display > Display on/off control Zet het hele display, cursoraanduiding (lijn) of pinkende cursoraanduiding (blok) aan of uit. D = 0:Display uitC = 0: Cursoraanduiding (lijn) uitB = 0: Cursoraanduiding (blok) uit D = 1:Display aanC = 1: Cursoraanduiding (lijn) aanB = 1: Cursoraanduiding (blok) aan ⃔ ⃕
Instructies (4) Display > Cursor or display shift Verplaatst de cursor en schuift display naar links of rechts. S/C = 0: Verplaats cursorR/L = 0: Schuif naar links S/C = 1:Schuif displayR/L = 1: Schuif naar rechts Function set Stelt in of er met 8 of 4 bits communicatie wordt gewerkt, hoeveel lijnen het display bestaat en uit hoeveel pixels 1 karakter bestaat. DL=0: 4 bits communicatie N = 0: Display met 1 lijn DL=1: 8 bits communicatieN = 1: Display met 2 lijnen F = 0: Karakters opgebouwd uit 5 x 8 pixels F = 1: Karakters opgebouwd uit 5 x 10 pixels ⃔ ⃕
Instructies (5) Display > Set CGRAM address Stelt het CGRAM adres in, de CGRAM data moet verzonden worden achter deze instructie. ACG: CGRAM adres Set DDRAM address Stelt het DDRAM adres in, de DDRAM data moet verzonden worden achter deze instructie. ADD: DDRAM adres Write data to CGRAM or DDRAM Schrijft data in het GGRAM of DDRAM D7-D0: Te verzenden byte (data) ⃔ ⃕
Protocol Display > De display kan aangestuurd worden in 4 of 8 bits modus. • 8 Bits modus: Verstuur instructie/data per byte • 4 Bits modus: Verstuur instructie/data in twee halve byte’s Er wordt gebruik gemaakt van de 4 bits modus: → datalijnen 0-3 blijven ongebruikt (pull-up weerstanden in de controller) ⃔ ⃕
Schema: voeding Schema > ⃔ ⃕
Schema: microcontroller Display > ⃔ ⃕
Schema: extern Schema > ⃔ ⃕
Printontwerp Printontwerp > ⃔ ⃕
Behuizing Extra > ⃔ ⃕
Stand van zaken Extra > Reeds af: • Schema • Printontwerp • Prototype • Print • Software (grootste deel) Nog te doen: • Print solderen • Behuizing maken • Software afwerken • Dossier verder afwerken ⃔ ⃕
Extra Extra > FM-AM Uitbreiding op zenerstabbelisatie Opstarten display Tekst schrijven naar het display Zelf ontworpen karakters ⃔ ⃕
FM-AM Extra > De meeste storingen (bv: bliksem) hebben invloed op de amplitude van het signaal, FM is storingsongevoeliger AM is te ontvangen met kleine goedkope ontvangers ⃔ ⃕
Uitbreiding op zenerstabbelisatie Extra > ⃔ ⃕
Opstarten display Extra > • Voedingsspanning • Wacht (controller reset zich zelf) • RS lijn laag → er volgens instructies • “Function set”: 4 bits modus • Herhaal de vorige stap 3 keer • “Function set”: 4 bits modus, 2 lijnen, 5 x 8 pixels • “Clear Display” • “Entry mode set”: cursor optellen, niet schuiven • “Display on/off control”: display aan, cursoraanduidigen uit ⃔ ⃕
Tekst schrijven naar het display Extra > • “Set DDRAM address” met adres A bv: A = ( 64 )10 = ( 0100 0000 )2 • “Write data to CGRAM or DDRAM” met data D bv: D = ( 68 )10 = ( 0100 0100 )2 = “D” • “Write data to CGRAM or DDRAM” met data D bv: D = ( 67 )10 = ( 0100 0011 )2 = “C” • “Write data to CGRAM or DDRAM” met data D bv: D = ( 70 )10 = ( 0100 0110 )2 = “F” ⃔ ⃕
Zelf ontworpen karakters Extra > Splits op in 5 bytes: Byte 0: 00010101 Byte 1: 00010110 Byte 2: 01111100 Byte 3: 00010110 Byte 4: 00010101 • “Set CGRAM address” met adres A bv: A = ( 0 )10 = ( 0000 0000 )2 • “Write data to CGRAM or DDRAM” met byte 0 … • “Write data to CGRAM or DDRAM” met byte 4 ⃔ ⃕
Blokschema Presentatie 2 > Voeding DCF77 Antenne Display PIC µC DCF77: AM-Signaal met tijd en datum informatie Antenne: Ontvangt het DCF77 signaal en zet het om naar een bruikbaar signaal PIC µC: Hart van de schakeling, ontvangt, decodeert de informatie, laat de tijd en datum zien op het display Display: Maakt de tijd en datum zichtbaar Voeding: Zorgt ervoor dat elke onderdeel een correcte spanning krijgt ⃔ ⃕
100 ms = 0 200 ms = 1 Herhaling: DCF77 Presentatie 2 > ⃔ ⃕
Algemeen PIC microcontroller 16F648A Blokschema: 16F648A Aansluitpinnen Interrupts TMR0 Oscillator RA5/MCLR/Vpp -pin PIC µC Presentatie 2 > Voeding DCF77 Antenne Display PIC µC ⃔ ⃕
Zelfde basispijlers dan bij een PC Algemeen PIC µC > Een µC steunt op de volgende basispijlers: • Invoer, • Geheugen, • Verwerking, • Uitvoer. µC (microcontroller) ↔ µP (microprocessor) Invoer, geheugen, verwerking en uitvoer in één IC. Enkel verwerking (= processor) in één IC. Weinig (tot geen) extra randcomponenten nodig. Geheugenchips en invoer-, uitvoer schakelingen zijn nog nodig. ⃔ ⃕