Fernschreib- und Morse-Telegrafie mit den
AVR-MicroControllern ATtiny2313 und ATtiny4313
Stand: 2019-03-10
 

Der Telegrafie-"Decoder":




Die Telegrafie-Bake:

Bild 1
Aktueller Firmware-Stand:
RCrx1.54 vom 2012-02-10
        Bild 2
Aktueller Firmware-Stand:
RC.1.43 vom 2011-07-14

Link zum Telegrafie-Decoder

Der Telegrafie-Decoder gibt in (Baudot-Code, CCITT2) Fernschreib-
oder Tastfunk-Telegrafie (Morse-Code) empfangene
Nachrichten/Funksprüche in Klartext an einem LC-Display aus.
Die Firmware dient nicht zum Entschlüsseln codierter Nachrichten!

Link zur Telegrafie-Bake

Die Telegrafie-Bake sendet zyklisch einen Text
in Fernschreib-Telegrafie oder im Morse-Code.

Beschreibung der Elektronik
Das hier von mir vorgestellte Projekt ist als Demonstration zu betrachten. Zum praktischen Einsatz des Telegrafie-"Decoder's" wäre das Display wirklich zu klein. Es kann jedoch durch ein größeres 2-zeiliges HD47780-kompatibles Display ersetzt werden. Dazu wäre der im EEPROM befindliche Wert für die Anzahl der im Display sichtbaren Zeichen pro Zeile entsprechend anzupassen. (s. Telegrafie-"Decoder", Abschnitt "Das EEPROM des Controller's").

Die hier vorgestellten Projekte basieren auf einer relativ einfach aufgebauten Schaltung eines Bausatzes der Firma Pollin. Er war dort unter der Artikel-Nummer  810148  für weniger als EUR 8,00 erhältlich, unter der Bezeichnung "Pollin Spiel I" (oder "Braintraining") und konnte zu verschiedenen Einsatz- und Experimentier-Zwecken dienen.
Der Bausatz ist inzwischen nicht mehr lieferbar, aber dessen Schaltung läßt sich wirklich super-einfach selbst aufbauen, z.B. auf einer kleinen Lochraster- oder Streifenleiter-Platine. Der Schaltplan dazu befindet sich auf Seite 6 der Anleitung, die derzeitig noch als Download unter https://www.pollin.de/productdownloads/D810148B.PDF verfügbar ist. Ich habe den Microcontroller ATtiny2313 meines Bausatzes umprogrammiert sodaß die Schaltung als Telegrafie-"Decoder" oder als Telegrafie-Bake arbeitet. Ferner läßt sich auch der pin-kompatible ATtiny4313 in dieser Schaltung nutzen. Dieser bietet doppelt so viel Flash, SRAM und EEPROM gegenüber des ATtiny2313.


Die neue Firmware (Ein bißchen Assembler-Theorie):

Die Firmware für den RTTY/CW-"Decoder" und für die Bake habe ich in Assembler geschrieben, und zwar aus folgendem Grund:
Zumindest beim RTTY/CW-"Decoder" hätte die Größe des Kompilats eines in BASIC (BASCOM) oder in C geschriebenen Programms, die Größe des Flash's überschritten und somit nicht mehr in einen ATtiny2313 gepaßt. Erst war auch mein Assembler-Programm um 8 Byte größer als der Flash-Speicher des ATtiny2313. Es ließ sich jedoch in soweit optimieren, indem ab dem RCALL die nachfolgenden Sprünge zu weiteren Sub-Routinen jeweils in RJMP geändert wurden, um erst zum Abschluß der zuletzt aufgerufenen Subroutine mit einem RET die Rücksprung-Adresse vom Stack zu holen, um das Programm nach dem RCALL fortzusetzen.
Bild 1
(Abb. 1) Vorher: Das Original

Der Bausatz:

Der Bausatz enthielt alle - für das ursprünglich als Spiel konzipierte Gerät - nötigen Teile inklusive Batteriekasten für 3 AA-Zellen, sowie eine ausführliche Anleitung mit Schaltplan. Die Schaltung war gemäß der beiliegenden Anleitung simpel aufzubauen. 4,5V Gleichspannung waren zur Versorgung nötig. Zur Steuerung diente ein ATtiny2313 der Firma Atmel der in die dem Bausatz beiliegende IC-Fassung gesteckt wurde. Das Spiel war in C geschrieben und als Compilat in den Micro-Controller geflasht worden. Der Source-Code sowie die Anleitung stehen bei Pollin derzeitig noch zum Download http://www.pollin.de/shop/dt/MTU4OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_Pollin_Spiel_I.html bereit. Zur eigenen Programmierung kann die ISP-Schnittstelle verwendet werden oder der Chip der Fassung entnommen werden um diesen auf einem anderen Board zu flashen.

Die Schaltung:

Der ATtiny2313 nutzt seinen integrierten 1MHz-Oszillator. Als Eingabe-Einheiten werden 5x Taster (hier in blau) an den Controller-Pins PD0-PD4 verwendet (leider etwas schlecht entprellt). Zwei davon befinden sich an den Controller-Pins INT0 und INT1. Sie bieten damit die Möglichkeit externe (und auch Software-) Interrupts auszulösen.
Im "Decoder" und in der Bake wird der Interrupt INT0 genutzt um jederzeit den Empfang oder die Sendung zu unterbrechen.

Als Ausgabe-Einheiten dienen 5x LEDs (ebenfalls mit den Controller-Pins PD0-PD4 verbunden) und ein LC-Display. Pollin verwendet hier ein HD47780-kompatibles LCD-Modul vom Typ C0802-04. Es stellt zwei Zeilen á 8 Zeichen pro Zeile dar.
Über PB0-PB3 steuert der ATtiny2313 das Display über dessen Datenleitungen D4-D7, RS liegt an PA1 und E an PA0. Der Display-Anschluß RW liegt an GND (keine Auswertung des Busy-Flag's möglich). Der Micro-Controller steuert den Kontrast über einen Spannungsteiler an PB4 und die Versorgungsspannung des Displays (VDD) über PD6. Mit PD5 gibt der ATtiny2313 Töne an den Buzzer aus. Das Signal aus PD5 wird der Frequenz entsprechend getaktet, da der Buzzer ein Piezo-Schallwandler und kein Summer ist, wie auch beim Pollin-Evaluations-Board! (Den "Schnibbel" über dem Buzzer habe ich nur deshalb auf ihm belassen weil er mir sonst zu laut wäre.)

Quellen:
Der Bausatz Pollin Spiel I
Das Datenblatt zum ATtiny2313 und ATtiny4313
Das Display: C0802-04 ist ebenfalls nicht mehr lieferbar, kann aber durch ein anderes HD47780-kompatibles Display ersetzt werden, wobei der im EEPROM befindliche Wert für die Anzahl der im Display sichtbaren Zeichen pro Zeile anzupassen wäre, und auch ggf. gem. Datenblatt des verwendeten Displays entsprechend, die Schaltung! (s. Telegrafie-"Decoder", Abschnitt "Das EEPROM des Controller's").


Änderung der Firmware zum Telegrafie-"Decoder" oder zur -Bake für RTTY & CW
Für einen ersten Test ist keinerlei Umbau der Elektronik nötig. Alle Ein- und Ausgabe-Einheiten funktionieren einfach nur. Der ATtiny2313 läßt sich zwar in der Schaltung über den ISP programmieren, aber zum Testen und Flashen nutze ich von Pollin-Electronic das ATMEL Evaluations-Board (auch als Bausatz erhältlich) mit dem ATMEL AddOn-Board. Als Entwicklungsumgebung und Cross-Compiler dient mir das Atmel AVR-Studio. Zum Flashen nutze ich PonyProg2000. (beides steht im Internet zum kostenlosen Download bereit).
Das Programm habe ich in Assembler geschrieben, sonst hätte ich den Umfang nicht in den 2kB-kleinen Flash des ATtiny2313 bekommen. Somit ergaben sich keine Probleme mit den zeitkritischen Anteilen innerhalb des Programms. Da der Flash-Speicher des ATtiny2313 relativ klein ist, habe ich nur das Nötigste in ihm untergebracht.

Die hardware-seitige Entwicklungs-Umgebung:
Das kostengünstige Atmel-Evaluations-Board von Pollin-Electronic nutze ich zum Flashen der Controller. Es dient mir aber auch zusammen mit dem AddOn-Board als Test-Umgebung, (s. Abb. 2).

Die Programme habe ich so entwickelt daß sie wahlweise auf einem ATtiny2313, ATtiny4313 oder einem ATmega8 "laufen". Die INCLUDE-Anweisung zu Beginn des Source-Code's bestimmt für welchen MicroController das Programm kompiliert wird.

Den ATmega8 habe ich im Atmel-Evaluations-Board verwendet, da ich zum Testen ein bißchen mehr Speicher brauchte und weil es einfach bequemer für mich war. Nur der ATmega8 funktioniert daher mit dem AddOn-Board!
Die Ports der ATtinys habe ich passend zur Pollin-Spiel-Elektronik programmiert, daher funktionieren diese nicht mit dem AddOn-Board!

Erst nach erfolgreichem Abschluß der Programmier-Arbeiten habe ich den ATmega8 dem Evaluations-Board entnommen und den ATtiny2313 in die dafür vorgesehene IC-Fassung des Pollin-Spiels gesteckt, jedoch nur um diesen mit PonyProg2000 zu flashen. Anschließend habe ich ihn in das Pollin-Spiel gesteckt.
Bild 3
(Abb. 2) Das Evaluations- und ADD-On-Board im Testbetrieb

Anschluß-Belegung des Atmel Evaluations- & Addon-Board's:

Erfahrungsbericht & Praxis-Test zum Pollin Atmel Evaluations-Board:

Vertrauen ist gut, Kontrolle ist besser!
Die Überprüfung der Fernschreib- und Tastfunk-Signale der Telegrafie-Bake wurden von mir mit dem kommerziell gefertigten Telereader CD670 durchgeführt: Bild 4
(Abb. 3) Signal-Auswertung mit einem Comax Telereader CD670



Zum Telegrafie-Decoder

Zur Telegrafie-Bake

Bild 1         Bild 2


Bild 16



Letzte Änderungen/Neuigkeiten bezüglich der Firmware:

... am Tefegrafie-Decoder (Demodulator)

DatumVersionBemerkung
2012-02-10v1.54Auswertung der CW-Kombination SK und des Buchstaben ß als sz
2011-10-17:Bereitstellung der HEX-Files für ATtiny2313, ATtiny4313 und ATmega8.
2011-10-16v1.53Source-Anpassung auch für den ATtiny4313.
2011-10-09v1.52Wechsel zwischen BU- und ZI-Ebene während des Fernschreib-Empfangs (RTTY).

... an der Tefegrafie-Bake:

Seit Firmware-Version RC.1.43 vom 2011-07-14:
  • Zum Einen wurde der Source-Code der LCD-Routinen geändert.
  • Weiterhin kann nun, ursprünglich für interne Testzwecke vorgesehen, PB6 als FSK-Ausgang am ISP-Anschluß genutzt werden. So braucht man nicht an der Platine herumzulöten. Die PTT (falls benötigt) ist jedoch weiterhin an (ATtiny2313-Pin7) PD3 abzugreifen. Nur auf Wunsch wird die Programmierung zur Ausgabe der PTT am ISP gern vorgenommen.


In eigener Sache

Auf den folgenden Seiten biete ich zum Download die von mir selbst geschriebenen Source-Codes und HEX-Files an. Weder die Source-Codes noch die HEX-Files sind verkäuflich, und dürfen nur im Rahmen des HAM-Spirit's kostenlos weitergegeben werden!
Die weitere Elektronik zum Empfangen bzw. Senden möge man sich ausdenken. Wer möchte, kann mir ja seine Vorschläge dazu per eMail senden. Nur auf Wunsch werde ich diese gerne veröffentlichen bzw. anpassen, falls erforderlich.

Wer sich bei Veröffentlichung seiner Source-Codes derartig "outet" macht sich angreifbar. So wird es mich lehren des Leser's konstruktive Ratschläge zu beachten aber auch über dessen abfällige Bemerkung zu stehen. Daher ist meinerseits sachlich-positive wie auch -negative Kritik erwünscht! Bei Interesse bin ich gerne bereit weitere Informationen zu geben (eMail: DL8OAS@GMX.DE).

Weitere MicroController-Projekte folgen: Ein RTTY/CW/ASCII-Sender mit ATmega8, Editor, Anschluß einer PC-Tastatur und LC-Display sind bereits in Arbeit. Dies soll einmal eine Erweiterung für das IC-7000 werden, da dieses Gerät "nur" RTTY demoduliert.

Vorerst könnte nur ein RTTY-Sender mit -Demodulator und Editor kreiert werden. - Interessenten mögen sich per eMail an dl8oas@gmx.de wenden.



Dies ist eine private Internet-Seite. Für diese Veröffentlichung übernehme ich keine Gewähr bzgl. Inhalte anderer Seiten/Server die über hier aufgeführte Links erreichbar sind.
Es können sich Fehler in den Inhalt dieser Seite, aber auch in meine Programme einschleichen, daher übernehme ich weder eine Gewähr ob der Korrektheit der von mir hier veröffentlichten Inhalte der Source-Codes, .HEX-Files, PDF- und HTML- Dateien sowie etwaig hier veröffentlichten Schaltplänen!

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!


73, de Jens Sieler-Hornke (DL8OAS)
eMail: dl8oas@gmx.de