myAVRmyAVRmyAVRmyAVR
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Projekt
myFunkuhr
myFunkuhr Inhalt Einleitung ........................................................................................................................ 3 Eigenschaften Hardware................................................................................................. 3 Entwicklungsumgebung .................................................................................................. 3 Grundlagen ..................................................................................................................... 4 Hardware myFunkuhr...................................................................................................... 5
myAVR Board MK2 USB, bestückt.............................................................................. 5 myAVR LCD Add-On................................................................................................... 5 DCF Funkmodul .......................................................................................................... 6
Schaltpläne ..................................................................................................................... 7 myAVR Board MK2 USB............................................................................................. 7 myAVR LCD Add-On................................................................................................... 7 Funkuhr Add-On.......................................................................................................... 8
Stückliste......................................................................................................................... 9 Programmieren und Testen .......................................................................................... 10
Initialisierung ............................................................................................................. 10 Synchronisation......................................................................................................... 10 Ausgabe .................................................................................................................... 10
Quellcode für den Test auf Synchronisation ................................................................. 11 Quellcode von der Behandlung der Synchronisation in der Mainloop........................... 12 Quellcode für die Sekundenbestimmung ...................................................................... 14 Quellcode Ausgabefunktionen für LCD und UART ....................................................... 18 Anwendungsbeispiel ..................................................................................................... 19
Seite: 2/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Waren-namen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen wer-den. Die Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgend-eine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind die Autoren dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hardware- und Softwarebezeichnungen, die in diesem Dokument erwähnt werden, sind gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden. © Laser & Co. Solutions GmbH Promenadenring 8 02708 Löbau Deutschland www.myAVR.de
Tel: ++49 (0) 358 470 222 Fax: ++49 (0) 358 470 233
Projektbeschreibung myFunkuhr Seite: 3/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Einleitung Eine Funkuhr ist eine Uhr, die von einem Langwellen-Zeitzeichensender per Funk ein ausgestrahltes Zeitsignal empfan-gen kann und dessen Uhrzeit selbständig übernimmt. Vorteile einer Funkuhr sind, dass die Uhrzeit dadurch immer sehr genau ausgegeben wird, es ist kein Nachstellen von Hand nötig und die Umstellung zwischen Sommer- und Winterzeit erfolgt automatisch. Das DCF77-Signal ist die Definition der „richtigen Zeit Deutschlands“ und wird auf 77,5 kHz (Langwelle) in kodierter Form ausgestrahlt. Das D bedeutet das Ausstrahlungsland Deutschland, C kennzeichnet den Langwellensender, F ist die Nähe für Frankfurt und 77 ist die Sendefrequenz von 77,5 kHz. Das Signal ist auch außerhalb Deutschlands zu emp-fangen und wird dreimal stündlich als Morsezeichen gesendet. Weiterhin wird das Signal auch durch das Satellitensys-tem GPS und einen Telefondienst verbreitet. Neben Funkweckern und Funkuhren dient das Signal auch der Industrie und Wirtschaft als zentrale Zeitinformation, um Prozesse in unterschiedlichen Systemen zeitsynchron ablaufen zu lassen.
Eigenschaften Hardware • myAVR Board MK2 USB, bestückt mit ATmega8 der Firma ATMEL, Taktfrequenz 3,6 MHz • USB-Programmer mySmartUSB MK2 ist bereits auf dem Board integriert • Spannungsversorgung 5 V • DCF Funkmodul • LCD mit Hintergrundbeleuchtung und 2x16 Zeichen • einfache Kommunikation mit dem PC oder Notebook über die USB-Schnittstelle (virtueller COM Port)
Entwicklungsumgebung • Programmiersoftware: myAVR Workpad PLUS, SiSy AVR • Programmertyp AVR910/AVR911, mySmartUSB MK2 • Anschluss: USB Port (virtueller COM Port)
Buchsenleiste
DCF1-Modul
Stiftleiste
Daten- und Aktivierungspin
Seite: 4/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Zeit t (ms)
High
Low 0 100 200
Signalpegel
0
1
1000
Grundlagen Die Erzeugung des Signals erfolgt durch 3 voneinander unabhängige Atomuhren, die sich in der Sendeanlage in Mainflin-gen befinden. Diese unterliegen einer Überprüfung der drei Signale gegeneinander. Wird dabei eine Abweichung der Hauptsteuereinheit von einer der Reserveeinheiten festgestellt, so wird auf eine Reservesteuereinheit umgestellt. Wenn alle Signale voneinander abweichen, unterbricht die PTB die Ausstrahlung des Zeitsignals bis zur Wiederübereinstim-mung der 3 Atomuhren. Die bitweise Übertragung des DCF-Signals erfolgt mittels der amplitudenmodulierten Trägerfrequenz von 77,5 kHz. Die Bits werden dabei als Absenkung der Trägeramplitude auf 25 % realisiert. Das passiert 58 Sekunden lang. In der 59. Sekunde wird nicht abgesenkt, was die Minutenmarke kennzeichnet. Der Zustand des Bits wird dabei durch die unter-schiedliche Länge der Absenkung übertragen. Eine binäre Null entspricht dabei einer Absenkung von 100 Millisekunden. Bleibt das Signal weitere 100 ms abgesenkt, so entspricht dies einer binären Eins. Das Signal wird seit 1973 BCD-kodiert (auch 8-4-2-1-Kode) ausgestrahlt. Dabei handelt es sich um ein Kodierungsverfah-ren, das jede Ziffer einer Dezimalzahl einzeln, in einem Halbbyte, mit den Wertigkeiten 8-4-2-1 dualkodiert. Im folgenden DCF77-Zeittelegramm ist die Bedeutung der einzelnen Bits festgelegt und dargestellt.
Kalender-jahr
Kalender-monat
Wochen-tag
Kalender-tag
StundeMinute
Flaggen
CodierungnachBedarf der PTB
M
1
24
810
2040 80 P3
10
8
4
2
1
4
2
1
20
10
84
21
P220 10 8 4 2 1 P1 40
2010
84
21
SA2
Z2
Z1
A1
R
R = ReserveantenneA1 = SchaltstundeZ1 = Sonnenzeit, MEZZ2 = Winterzeit, MEZA2 = SchaltstundeS = Standbit
Projektbeschreibung myFunkuhr Seite: 5/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Hardware myFunkuhr
myAVR Board MK2 USB, bestückt Das myAVR Board MK2 USB ist ein Lern- und Experimentierboard und besitzt folgende Struktur: USB-Programmer, Peripherie zum Testen von Anwendungen, Erweiterungsbuchse.
myAVR LCD Add-On Das myAVR LCD Add-On ist ein anschlussfertiges LC-Modul für das myAVR Board. Es ist ausgestattet mit einem hoch-wertigen LC-Display (2 Zeilen, 16 Zeichen pro Zeile, Hintergrundbeleuchtung), Kontrastreglung, Anschlüsse für das myAVR Board sowie Jumper für die Einstellung des R/W Signals.
Ausgabegeräte
Eingabegeräte
µTaster/Schalter (digital)
Potenziometer (analog)
RISC µController
USB Anschluss ISP Interface
Externe Spannungsversorgung
Frequenzwandler
LEDs (digital/analog)
Erweiterungsbuchse
Jumper
Kontrastregler
Buchsenleiste zum An-schluss anderer Add-Ons
Jumper
Stiftleiste zum Anschluss anderer Add-Ons
USB Programmer
Seite: 6/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
DCF Funkmodul Die Spannungsversorgung von 5 V erfolgt direkt durch das myAVR Board. Die Signalpegel von 4 V (H-Pegel) und 1 V (L-Pegel) verarbeitet der verwendete Mikrocontroller ATmega8. Als Anschlüsse besitzt das Modul 4 Pins.
• Pin 1 mit der Bezeichnung VDD für die Spannungsversorgung (+5 V) • Pin 2 (GND) für die Masse • Pin 3 (DATA) als Signalausgangsleitung und • Pin 4 (PON) als Aktivierungspin
Lediglich die zwei Pins für die Spannungsversorgung wurden festgelegt. Dadurch können die Ponleitung und die Signal-leitung frei verdrahtet werden. Ein Stabilisierungskondensator gleicht eventuelle Schwankungen des Moduls aus. Dafür wurde ein 100 nF Keramikkondensator (Kerko) verwendet, der zwischen VCC und GND geschalten wurde.
Layout
Platine Oberseite
Platine Unterseite
Projektbeschreibung myFunkuhr Seite: 7/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
47µ
F/2
5V
100
nF
47µ
F
100
nF
22 pF
22 pF
100n
F
100n
F
100n
F
MEGA8-P
7806
10µ
H
1,2K
1,2K
1,2K
1,2K
10K
10K
Speaker
STROMSTECKER
PH
OT
O
+5V
0V
0V
0V
0V
0V
0V
+5V
0V+5V
0V
+5V
0V
+5V
+5V
+5V
0V
0V0V
0V
+5V
0V
0V+5V
0V
+5V
0V
B2
D1
AGND22
AREF21
AVCC20
GND8
PB0(ICP)14
PB1(OC1A)15
PB2(SS/OC1B)16
PB3(MOSI/OC2)17
PB4(MISO)18
PB5(SCK)19
PB6(XTAL1/TOSC1)9
PB7(XTAL2/TOSC2)10
PC0(ADC0)23
PC1(ADC1)24
PC2(ADC2)25
PC3(ADC3)26
PC4(ADC4/SDA)27
PC5(ADC5/SCL)28
PC6(/RESET)1
PD0(RXD)2
PD1(TXD)3
PD2(INT0)4
PD3(INT1)5
PD4(XCK/T0)6
PD5(T1)11
PD6(AIN0)12
PD7(AIN1)13
VCC7
GND
INOUT
LED1
LED2
LED3
LED4
1 2 3 4 5 6 1 2 3 4 5 6
1 2 3 4 5 6
12
3POT1
12
3POT2
Q1
34
12
S1
34
12
S2
1 2SG1
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
12345678910
12345678910
12
1 2 3
1 2 3 4 5 6
1 21 2
1 21 2
1 21 2 1 2
1 2
1 2
1 2
1 2
11
22
1 2
1 2
++
myAVR Board MK2 V2.10www.myAVR.de
Schaltpläne
myAVR Board MK2 USB
myAVR LCD Add-On
Seite: 8/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Funkuhr Add-On
Projektbeschreibung myFunkuhr Seite: 9/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Stückliste
Bezeichnung im Schaltplan Bauteil Artikelnummer, Shop
Suchbegriff Anzahl
myAVR Board MK2 USB Board MK2 USB (http://shop.myavr.de)
1
myAVR LCD Add-On LCD Add-On http://shop.myavr.de
1
DCF1 DCF1-Modul Fachhändler 1
Schaltdraht ca. 20 Zentimeter (Farbsortiment)
Patchkabel (http://shop.myavr.de)
4
USB-Kabel USB-Kabel (http://shop.myavr.de)
1
Seite: 10/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Programmieren und Testen
Initialisierung Als erstes müssen die Komponenten initialisiert werden. Da das Funkmodul zur Inbetriebnahme eine fallende Flanke von high nach low auf der Ponleitung benötigt, wird in der Initialisierungsfunktion init () der Port des Mikrocontrollers, an dem die Ponleitung des Funkmoduls angeschlossen ist (hier PORTB, 5), kurzzeitig auf high gesetzt. Erreicht wird dies mit der set Bit-Anweisung. sbi (PORTB, 5). Dieser High-Zustand wird mithilfe einer Zählschleife für 10.000 Takte gehal-ten, bevor die clear Bit-Anweisung cbi (PORTB,5) den Port wieder auf low setzt. Damit wird das DCF1-Modul aktiviert. Die Initialisierungen und Grundfunktionen für die UART-Schnittstelle und das LCD Add-On, sowie benötigte Timer und Wartefunktionen werden durch das myAVR Workpad generiert.
Synchronisation Um die auszuwertenden Daten erfassen zu können, muss die Datenaufzeichnung mit der Empfangsfolge zeitlich auf-einander abgestimmt werden. Dies nennt man Synchronisation. Es ist ein software-seitiges Abwarten der Minutenmar-ke, das den Beginn einer neuen Minutenmarke kennzeichnet. Dies kann sehr gut identifiziert werden, da an dieser Stelle die Absenkung der Amplitude für eine volle Sekunde ausbleibt. Mit einer if-Anweisung wird geprüft, ob nach einer Änderung von einem Low auf einen High-Pegel die Anzahl der durch den Mikrocontroller abgetasteten Low-Pegel größer als 40 war. Ist dies der Fall, war die Synchronisation erfolgreich und es beginnt die Datenaufzeichnung. In dem Acht Bit Integer status wird ein Synchronisationsbit SYNC durch eine bit-weise ODER-Verknüpfung gesetzt. Das für die Sekundenzählung verantwortliche offset wird ebenso wie das cur-rentByte Null gesetzt, um eine unbeabsichtigte Vorbelegung durch das Betriebssystem zu verhindern. Der Zählerva-riablen offsetBit wird der Wert Eins zugewiesen. Durch das Synchronisationsbit in der Status-Variable wird in der Mainloop durch die clear Bit-Anweisung cbi (PORTB, 1) die an diesem Port angeschlossene LED ausgeschalten. Dadurch wird die erfolgreiche Synchronisation angezeigt.
Ausgabe Die Ausgabe der ermittelten Daten erfolgt mithilfe des myAVR LCD Add-Ons sowie dem myAVR Controlcenter und myAVR Workpad bzw. SiSy AVR. Sie übernehmen die Funktionen lcd_write und uartPutString. Diesen Funktionen werden mit ihrem Aufruf die Argumente bufZ1 sowie bufZ2 übergeben, um diese grafisch darzustellen. Der Aufruf geschieht direkt in der Mainloop.
Projektbeschreibung myFunkuhr Seite: 11/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Quellcode für den Test auf Synchronisation
Seite: 12/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Quellcode von der Behandlung der Synchronisation in der Mainloop
Projektbeschreibung myFunkuhr Seite: 13/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Seite: 14/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Quellcode für die Sekundenbestimmung
Projektbeschreibung myFunkuhr Seite: 15/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Seite: 16/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Projektbeschreibung myFunkuhr Seite: 17/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Seite: 18/19 Projektbeschreibung myFunkuhr
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Quellcode Ausgabefunktionen für LCD und UART
Projektbeschreibung myFunkuhr Seite: 19/19
www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com
Anwendungsbeispiel
Viel Erfolg und Spaß beim Programmieren und Testen!
myAVR Board MK2 USB
Funkuhr Add-On
myAVR LCD Add-On