19
myAVR myAVR myAVR myAVR 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

myFunkuhr - SiSy

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: myFunkuhr - SiSy

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

Page 2: myFunkuhr - SiSy

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

Page 3: myFunkuhr - SiSy

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

Page 4: myFunkuhr - SiSy

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

Page 5: myFunkuhr - SiSy

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

Page 6: myFunkuhr - SiSy

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

Page 7: myFunkuhr - SiSy

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

Page 8: myFunkuhr - SiSy

Seite: 8/19 Projektbeschreibung myFunkuhr

www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com

Funkuhr Add-On

Page 9: myFunkuhr - SiSy

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

Page 10: myFunkuhr - SiSy

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.

Page 11: myFunkuhr - SiSy

Projektbeschreibung myFunkuhr Seite: 11/19

www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com

Quellcode für den Test auf Synchronisation

Page 12: myFunkuhr - SiSy

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

Page 13: myFunkuhr - SiSy

Projektbeschreibung myFunkuhr Seite: 13/19

www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com

Page 14: myFunkuhr - SiSy

Seite: 14/19 Projektbeschreibung myFunkuhr

www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com

Quellcode für die Sekundenbestimmung

Page 15: myFunkuhr - SiSy

Projektbeschreibung myFunkuhr Seite: 15/19

www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com

Page 16: myFunkuhr - SiSy

Seite: 16/19 Projektbeschreibung myFunkuhr

www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com

Page 17: myFunkuhr - SiSy

Projektbeschreibung myFunkuhr Seite: 17/19

www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com

Page 18: myFunkuhr - SiSy

Seite: 18/19 Projektbeschreibung myFunkuhr

www.myAVR.de © Laser & Co. Solutions GmbH – 02/2010 www.myAVR.com

Quellcode Ausgabefunktionen für LCD und UART

Page 19: myFunkuhr - SiSy

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