Fernschreib- und Morse-Telegrafie-Bake mit dem AVR-MicroController ATtiny2313 |
|
Stand: 2011-12-11 (letzte Neuigkeiten bzgl. der Firmware RC.1.43 vom 2011-07-14 s.u. unterhalb des Lochstreifen's) | |
(Abb. 1) Eröffnungs-Meldung beim Start |
Die Telegrafie-BakeDie Telegrafie-Bake sendet einen Text wahlweise in Fernschreib-Telegrafie (RTTY/CCITT2/Baudot) oder in Tastfunk-Telegrafie (CW/Morse-Code). Der Text kann als Dauersendung (Delay=0) oder mit einer einstellbaren Pause (Delay=n) zum Text-Ende gesendet werden. Folgender Vorgabe-Text ist im Flash abgelegt:vvv zczcBei erstmaliger Inbetriebnahme wird dieser Text in das EEPROM kopiert. Bei der Aussendung des Textes wird dieser immer aus dem EEPROM gelesen! Daher ist er individuell vor der Aussendung im EEPROM zu ändern! Die Vorgehensweise wird weiter unten erklärt. Ebenso wie der Bakentext können auch Parameter angepaßt werden. Die gängigsten Werte können im Menü geändert werden. |
Die Bake sendet einen Text
|
Folgende Parameter können verändert werden:
|
Folgende Parameter können nicht geändert werden:
|
Anschlüsse:Die hier aufgeführten Anschlüsse sind von den Controller-Pins über einen ca. 4,7k großen Widerstand mit der Basis eines NPN-Transistors zu verbinden. Emitter an GND, sodaß der Transistor vom Collector gegen GND schalten kann.(ATtiny2313-Pin7) PD3 = PTT (ATtiny2313-Pin8) PD4 = FSK (Signal für RTTY & CW) Für meine internen Testzwecke lasse ich das FSK-Signal synchron an PB6 ausgeben sodaß über Pin9 des ISP-Anschlusses daß FSK-Signal abgreibbar ist. Sicher wäre es hier vorteilhaft auch die PTT am ISP abzugreifen, aber das kommt später da der Code dann nicht mehr in den Flash des ATtiny2313 passen würde und eine neue Optimierung vorzunehmen wäre. (ISP-Pin9) PB6 = FSK (Taktung synchron zu PD4) |
Die Steuerung (allgemein):
|
(Abb. 5) Die Eröffnungsmeldung |
||||||||||||||||||||||||||||||||||||||||||||
Die Bedienung der Telegrafie-Bake: |
|||||||||||||||||||||||||||||||||||||||||||||
Der Controller startet mit einer Eröffnungsmeldung am LC-Display (s. Abb. 5). Nach ca. 1s erscheint der Status:
MenuMode/RTTY45N (s. Abb. 6). Der Controller befindet sich jetzt im Menümodus, und ist bereit für
Parameter-Änderungen oder zur Sendung in RTTY (170Hz Shift), 45,45 Baud mit normaler Signal-Polarität. Alle Meldungen im Display folgen der Kompatibilität halber in englischer Sprache. |
(Abb. 6) Der erste Start (Voreinstellungen RTTY, 45,45Bd, Normal) |
||||||||||||||||||||||||||||||||||||||||||||
Der Menü-Modus (MenuMode): |
|||||||||||||||||||||||||||||||||||||||||||||
Die Parameter Geschwindigkeit, Signal-Polarität oder Länge der Sendepause können nur im Menü-Modus verändert werden.
Die Veränderungen werden unmittelbar durchgeführt. Eine Bestätigung ist nicht erforderlich. Der neue Wert wird sofort
am Display angezeigt. Alle Parameter-Einstellungen werden im EEPROM abgelegt
und stehen zur nächsten Sitzung weiterhin zur Verfügung, auch der Modus (Menü- oder Sendung) wird wieder aufgenommen, falls
ein Stromausfall eintritt.
Der Menü-Modus beseht aus 2 Ebenen:
|
|||||||||||||||||||||||||||||||||||||||||||||
|
(Abb. 7) RTTY mit veränderten Parametern: 75Bd, Reverse |
||||||||||||||||||||||||||||||||||||||||||||
|
(Abb. 8) CW mit Voreinstellung 20 WpM |
||||||||||||||||||||||||||||||||||||||||||||
|
(Abb. 9) Veränderte Sendepause: 10 Minuten |
||||||||||||||||||||||||||||||||||||||||||||
Aus der Delay-Ebene kann nur in CW gesendet werden !!! Soll der CW-Status dabei im Display erscheinen so ist mit Taster2 zur CW-Ebene umzuschalten! |
|||||||||||||||||||||||||||||||||||||||||||||
Der Sende-Modus (Tx....Lp): |
|||||||||||||||||||||||||||||||||||||||||||||
Der Sendemodus wird mit dem Taster "Ein" (Mitte) gestartet oder abgebrochen. Mit demselben wird die Sendung auch während
der Sendepause abgebrochen! Dabei kehrt der Controller in den Menü-Modus zurück. Es wird entweder in der RTTY-Ebene oder in der
CW-Ebene entsprechend gesendet.
Während der Sendung können keine Parameter geändert werden! In der ersten Displayzeile erscheinen dabei links "Tx" (Sendung)
und rechts "Lp" ("Loop" = Wiederholungs-Schleife) (s. Abb. 10). In der zweiten Zeile bleibt der Status sichtbar: Z.B. RTTY75R (RTTY, 75Baud, reverse Signal-Polarität). Hier gibt es nur die Möglichkeit die Sendung mit Taster "Ein" abzubrechen um in den Menü-Modus zu gelangen, oder analog erneut zu beginnen. Nach der Sendung des Textes erfolgt die Sendepause. Der Prozeß beginnt erneut bis die Dauer-Schleife durch den Taster "Ein" (Mitte) abgebrochen wird. Die Sender-Steuerung:Die Sendung erfolgt entsprechend der zuletzt anzeigten Ebene in RTTY oder CW, im Delay-Modus ebenfalls in CW (s. Absatz "Besonderheit im Delay-Modus"):
|
(Abb. 10) Bake während der Sendung in RTTY, 75Bd, Reverse |
||||||||||||||||||||||||||||||||||||||||||||
Die Sendepause:Nachdem der Text gesendet wurde stoppt die Aussendung. PTT und FSK fallen auf Low-Pegel und das NF-Signal verstummt. Entsprechend der eingestellten Sendepause (Vorgabe-Wert 1Min) bleibt der Controller in Sendebereitschaft. Er ist somit noch immer im Sende-Modus und nicht im Menü-Modus!Die Sendepause läßt sich ebenfalls mit dem Taster "Ein" abbrechen um in den Menü-Modus zu gelangen. Während der Sendepause läuft in der oberen linken Ecke des LC-Display's ein Sekunden-Countdown (s. Abb. 11. Hier sind es noch 55 Sekunden bis zum Beginn der nächsten Sendung). Wird als Delay eine Pause von 0 Minuten eingestellt wird eine Dauersendung durchgeführt. Dabei erscheint kein Sekunden-Coundown, sondern "Tx" in der linken, oberen Ecke des Display's.
|
(Abb. 11) Sendepause. Noch 55 Sekunden bis zur nächsten Sendung. |
||||||||||||||||||||||||||||||||||||||||||||
Besonderheit im Delay-Modus:Befindet sich der Controller während der Sendung in der Delay-Ebene wird in CW gesendet ohne Anzeige des CW-Status' am Display. Soll dieser angezeigt werden so ist mit dem Taster "Ein" in den Menü-Modus zurückzukehren um anschließend mit dem Taster2 den CW-Status anzuzeigen, und erneut der Taster "Ein" zu betätigen um die Sendung wieder aufzunehmen. |
(Abb. 12) Sendung aus der Delay-Ebene in CW |
||||||||||||||||||||||||||||||||||||||||||||
Das EEPROM des Controller's |
|||||||||||||||||||||||||||||||||||||||||||||
Änderungen von Parametern und Baken-Text: Der ATtiny2313 bietet zu wenig Flash-Speicher um noch einen Editor dazu zu integrieren. Daher fällt besonders die Änderung des Bakentextes hier etwas spartanisch aus. Dies ist z.B. mit dem Pollin ATMEL Evaluations-Board & PonyProg2000 möglich. Im PonyProg erfolgt die Darstellung des Speicherinhalts hexadezimal und im rechten Bereich in ASCII. Der Flash-Speicher wird in grüner und der EEPROM-Speicher in blauer Farbe dargestellt. Der Flash-Speicher darf nicht manuell verändert werden, sonst funktioniert das Programm im MicroController nicht mehr ordnungsgemäß! Vorsicht beim Editieren!
|
Zu Beginn des EEPROM-Speichers befinden sich in den Adressen $0800-$080D
Steuerungs-Parameter (Beschreibung s.u.). Der zu sendende Text befindet sich an Adresse $080E-$087E.
Wenn der Bereich leer ist ($FF) wird vom Controller folgender Vorgabe-Test-Text dort abgelegt:
vvv zczcDer Text beginnt demnach mit den Bytes (hexadezimal): 76 76 76 20 7A 63 7A 63 .... Dieser kann z.B. mit PonyProg2000 geändert werden. Wichtig ist, daß er immer mit $00 endet! (im Beispiel s. Adresse $0850). Der Text im EEPROM darf maximal bis Adresse $087E reichen, da sein letztes Byte mit $00 enden muß, welches maximal in $087F abgelegt werden kann. Im Text dürfen sich nur Zeichen befinden die sich auch in RTTY umsetzen lassen! Alle anderen Zeichen würden vom Programm mit dem Baudot-Code "ignore" (nur Transport-Lochung) übersetzt und gesendet werden, oder verursachen in CW eine kurze Pause. Zum Ändern des EEPROM-Speichers muß PonyProg2000 zuerst vermittelt werden daß der Speicher überhaupt geändert werden darf. Dazu ist im Programm der Menüpunkt Edit anzuklicken und anschließend Edit Buffer enabled zu wählen (Das Häkchen links muß dabei gesetzt sein, s. Abb. 13). |
(Abb. 13) Zuerst ist der Schreibschutz aufzuheben mit /Edit/Edit Buffer enabled ! Anschließend ist das zu ändernde Byte anzuklicken. |
||||||||||||||||||||||||||||||||||||||||||||
Anschließend ist auf das zu ändernde Byte zu klicken (s. Abb. 14). Es öffnet sich ein kleines Fenster namens Edit Buffer. Hier wird das Byte auf 3 verschiedene Weisen dargestellt und kann in den entsprechenden Eingabefeldern geändert werden. Nach Betätigung der Schaltfläche OK wird die Änderung von PonyPro2000 übernommen. Damit sind die Daten aber noch nicht im EEPROM des MicroController's! Um die Daten nun zum Chip zu übertragen ist aus dem Menü der Punkt Command zu wählen und anschließend der Menüpunkt Write Data (EEPROM). Die darauf folgende Meldung zum Überschreiben ist mit Yes zu bestätigen. |
(Abb. 14) Der neue Wert ist hexadezimal, dezimal oder als ASCII-Zeichen anzugeben. |
||||||||||||||||||||||||||||||||||||||||||||
Die Steuerungs-ParameterDie ersten Bytes des EEPROM's von $0800 bis $080D enthalten folgende abgespeicherte Parameter-Daten, immer als Lo- und Hi-Byte. Bei erster Inbetriebnahme ist der Speicher leer und enthält in allen Zellen den Wert $FF. Erst wenn in RTTY und/oder CW gesendet wurde werden die entsprechenden Parameter dort abgelegt. Zu Beginn sind es Vorgabe-Parameter z.B. $2D für die RTTY-Schrittgeschwindigkeit 45 Baud. |
(Abb. 15) Die farbig unrandeten Parameter werden im Folgenden beschrieben (s.u) |
||||||||||||||||||||||||||||||||||||||||||||
Positionen der Steuerungs-Parameter (Lo-Byte/Hi-Byte):(Die Farbe ist analog der Umrandung der Bytes in Abb. 15)
Die Werte zur Erzeugung der Frequenzen für CW, Mark und Space sind mittels folgender Formel zu errechnen: 65536 + Anzahl.Zyklen - (Taktfrequenz/(Prescaler* 2*Frequenz)) + Offset
Berechnungs-Beispiel:Zur Ermittlung des Wertes zur Erzeugung einer Frequenz von 1445 Hz ergibt sich folgende Berechnung:65536 + 13 Zyklen -(1.000.000Hz/(1* 2*1445Hz)) +1 = 65204 = $FEB4 $FEB4 ist der Wert der hier zur Erzeugung des Tones der Mark-Frequenz für RTTY nötig ist s. $0808-$0809 |
|||||||||||||||||||||||||||||||||||||||||||||
Das SemaphorDas Semaphor ist ein Byte in welchem sich der Controller folgende Zustände "merkt":
Einzelne Bits können mit PonyProg2000 nicht geändert werden sondern nur das ganze Byte! Daher ist nach Änderung der Bits das Byte zu bilden und der daraus entstandene hexadezimale Wert mit PonyProg2000 in das EEPROM des ATtiny2313 zu übertragen. |
Letzte Änderungen/Neuigkeiten bzgl. der FirmwareSeit Firmware-Version RC.1.43 vom 2011.07.14:
In eigener SacheEs geht hier nicht um die vollständige Elektronik einer Telegrafie-Bake, sondern nur um deren software-seitige Basis. Zu einer vollständigen Bake ist die Wandlung vom Rechteck- zum Sinus-Signal nötig, die hardware-seitige PTT-Steuerung und die Anbindung an einen Sender, etc.Das Programm ist sicher "nichts Dolles". Hier ist dennoch mein Assembler-Source-Code (V RC.1.43, Stand 2011-07-14) für das Hauptprogramm und die LCD-Routinen. Für diejenigen die sich nicht für den Source-Code interessieren und nicht programmieren wollen sondern lieber die Telegrafie-Bake zum "Laufen" bringen möchten steht hier das HEX-File zum Flashen in den ATtiny2313 bereit um das "Pollin-Spiel" zur Telegrafie-Bake zu ändern. Weder die Source-Codes noch das HEX-File sind verkäuflich, und dürfen nur im Rahmen des HAM-Spirit's weitergegeben werden! Die weitere Elektronik zum Senden möge man sich ausdenken. Wer möchte, kann mir ja seine Vorschläge dazu per eMail senden. Auf Wunsch werde ich diese gerne veröffentlichen. Für Schäden die mit der hier beschrieben Technik an Geräten, Personen oder der Umwelt verursacht werden übernehme ich keine Verantwortung und Haftung! Die Zeichenfolge DL8OAS innerhalb des Bakentextes dient nur zu Demonstrationszwecken. Wird diese Telegrafie-Bake an einem Sender betrieben so ist der Baken-Text entsprechend zu ändern und nicht in der Form zu senden wie im Source-Code und im .HEX-File angegeben! 73, de Jens (DL8OAS) eMail: dl8oas@gmx.de |