Forum: Mikrocontroller und Digitale Elektronik TCM3105 an AVR


von manu (Gast)


Lesenswert?

Hi,

ich möchte eine kleine Funkübertragung basteln. Habe bei mir noch
einige TCM3105 ICs gefunden, diese würden sich aufgrund der minimalen
beschaltung wirklich gut eignen. Möchte mich nicht lange mit
dem modulieren/demodulieren eines AFSK Signals per SW rumärgern.
Das Signal wird dann einfach auf den MIC eingang eines TRX gelegt,
am Empfänger am SPK abgegriffen.

Kann mir jemand bei der Beschaltung vom TCM3105 an den µC helfen?
Braucht dieser auch noch ein Taktsignal, oder kann man diesen
einfach an den UART anschließen und dann einfach loslegen?

Danke!

von ...HanneS... (Gast)


Lesenswert?

Such mal in AFU-Kreisen oder auch CB-Kreisen nach PR-MODEM
(Packet-Radio), da wird der TCM3105 am PC verwendet.

Ein Anlaufpunkt könnte http://www.dbo812.de sein.

...

von manu (Gast)


Lesenswert?

Ja, das Packet-Modem ist mir auch schon unter die Augen gekommen.

Könnte ich da einfach die DTR und CTS Leitung am Modem Eingang auf die
TXD und RXD Leitung am UART des µC legen, für die Kommunikation?
Für die PTT usw. kann man dann ja einen Port Pin opfern!

An der PC Seite kann man dann ja ein vollwertiges Baycom-Modem
verwenden.

von ...HanneS... (Gast)


Lesenswert?

Schau dir mal die Schaltung des TNC2 an, da wird der TCM3105 von einem
Z80-Prozessor (mit SRAM und EPROM mit Nordlink-Firmware) angesteuert.
Ein AVR müsste das auch schaffen. Allerdings braucht er schon etwas
RAM, denn es müssen Frames nach AX25-Protokoll gebildet und
entschlüsselt werden. Und hüte dich vor hohen Baudraten, die 1200 Baud
vom CB-PR (früher auch bei AFU auf 10m) sind schon kritisch genug.

...

von manu (Gast)


Lesenswert?

hi HanneS,

ich möchte ja kein "richtiges" AX25 fahren, mir genügt es,
einzelne byte's zu übertragen. Die richtigkeit der Übertragung
könnte man ja mit einer Checksumme realisieren.

Was macht der TCM3105 denn genau? Ich lege vorne einen Pegel an,
logische 0 bzw. 1, und der TCM3105 generiert mir daraus die 1200Hz oder
die 2200Hz, oder?
Dann sollte es ja direkt über den UART gehen, oder?

von ...HanneS... (Gast)


Lesenswert?

Neee... Nicht ganz...
Den das Timing des Rechners muss genau stimmen, sonst wird das nix. Die
RS232 des PC wird von einem MODEM-Treiber "missbraucht", indem der
Treiber die Leitungen selbst steuert, also nix dem BIOS oder OS
überlässt. Deshalb funktionieren PC-PR-MODEM-Treiber wie TFPCX oder
FlexNet-Ser12 nicht unter Multitasking-OS sondern nur unter DOS. Selbst
ein unsauberer Maustreiber (davon gibt es verdammt viele) kann die Sache
scheitern lassen.
Die 1200/2200 Hz liegen ja nicht als echte Frequenz vor sondern nur als
eine Halbwelle, also als die Zeit bis zum nächsten Nulldurchgang.

Ich habe eben nochmal nach Schaltungsunterlagen gesucht, habe aber nix
mehr. Denn mit (CB-) PR mach' ich nix mehr. Ich hatte bis vor einem
Jahr eine PR-Station mit Mailbox und (Funk-) Gateway auf 2 Kanälen
(gleichzeitig) laufen.

Auf www.dbo812.de findest du auf alle Fälle Links zu weiteren
Informationen. Oder mal nach TNC2 suchen, da gab es mal einen Bausatz
(könnte von LANDOLD gewesen sein), also müssten auch
Schaltungsunterlagen verfügbar sein. Wenn ich mich nicht irre, hatte
ich auch mal den ASM-Quelltext (Z80) der Firmware ("TF") von
Nordlink. Auch bei BAYCOM und FLEXNET könntest du fündig werden.
Vielleicht auch auf der HP der Zeitschrift Funkamateur.

...

von manu (Gast)


Lesenswert?

Aber auf der µC Seite sollte es doch am Uart funktionieren, oder
nicht?

Auf der PC Seite kann ich mir dann ja ein kleines Programm stricken,
mit dem ich dann die Daten Sende, bzw. empfange. Timing's sollten
somit vermeidbar sein.

von ...HanneS... (Gast)


Lesenswert?

Mit Einzelheiten kann ich dir leider nicht (mehr) dienen. Aber so
einfach wird das nicht. Weder auf der PC-Seite noch auf der MC-Seite.

Aber wenn du meinst, ein kleines gestricktes Programm reicht, dann tu
es. Ich halte mich da raus. Ich weiß nur, dass der Treiber auf der
PC-Seite so zeitkritisch ist, dass er nicht mehr in
Multitasking-Umgebung funktioniert. Und das schon bei 1200 Baud.

Viel Erfolg...
...HanneS...

von manu (Gast)


Lesenswert?

Hallo HanneS,

ja, das Problem mit dem TFX, TFPCX usw. unter Win9x ist mir bekannt,
liegt aber mit Sicherheit auch an der Programmierung des Treibers.
Dieser ist eben nicht für Win9x ausgelegt.

von OldBug (Gast)


Lesenswert?

Kann er auch nicht sein, weil er -- wie HanneS das beschrieben hat --
den DIREKTEN Zugriff auf die Schnittstelle braucht. Das FSK Signal wird
über nen Schmitt-Trigger auf die Pins der RS232 gegeben und der
TFPCX-Treiber dekodiert die Bitfolge. Und dazu muss er -- für ein
PC-Programm -- verdammt schnell auf die RS232 zugreifen können.
Das geht unter Multitasking-OS aber überhaupt nicht. Weil einem halt
mitten im Bit-Strom die Rechenzeit entzogen wird. Das FSK-Signal liegt
aber weiterhin an, es hört nur niemand mehr zu!

Ich habe damals eine "Brechstangenlösung" verwendet :)
Zweiter PC (damals ein 286er, der irgendwo rumflog) mit zwei RS232.
An die eine kam das "Modem", an die zweite kam der PC, auf dem das
Windows-fähige PR-Programm lief. Software auf dem 286er: DOS (glaub
6.22 o.ä.), TFPCX und ein kleines, einfaches BASIC (Asche auf mein
Haupt!) Progrämmchen, welches die eingehenden Bytes von der zweiten
RS232 an den TFPCX schickt. Im PR-Programm dann "TNC2" oder sowas in
der Richtung (darf halt kein KISS oder sowas sein) einstellen und
freuen.

von OldBug (Gast)


Lesenswert?

Nachtrag: ich konnte mir damals als Schüler kein TNC95, oder wie das
auch immer hiess, leisten ;-)

von manu (Gast)


Lesenswert?

Okay, auf der PC Seite sollte es also kein Problem darstellen,
wobei es glaub auch 1k2 Modem Treiber (also für PC-COM und konsorten)
für Felxnet oder AGW-Packet gibt, mit denen dass dirket
gehen sollte...

Und auf der µC Seite? Einfach an die Uart klemmen?

von OldBug (Gast)


Lesenswert?

...und eine Firmware dazu schreiben, die dem TFPCX ähnlich ist.
Ein AX.25 En/Dekoder halt...

Ob Du da noch nen Pegelwandler brauchst, weis ich grad auch nicht.

von ...HanneS... (Gast)


Lesenswert?

SER12 von FlexNet läuft aus oben genannten Gründen auch nicht unter
einem Multitaskingsystem. Und WIN ist ein Multitaskingsystem, was die
Verteilung der Ressourcen betrifft, sogar ein verdammt schlechtes.

Meine PR-Station lief mit einem 486er unter DOS622 mit FlexNet, zwei
(Flexnet-) Ser12-Treibern für 2 Funkgeräte, Flexdigi (also Node mit
Gateway zwischen beiden Kanälen) und dem Treminalprogramm TE. Über
Parallelkabel war ein zweiter 486er (am gleichen Netzteil) verlinkt auf
dem unter DOS622 und Flexnet die BCM-Mailbox lief. Über ein
Nullmodemkabel und einen Flexnet-Treiber für WIN hatte der WIN-Rechner
mit dem Terminal PAXON Zugriff auf die Box, was ich nur für
Binärtransfer mit der Box nutzte. QSOs (auch Conversrunden) führte ich
von dem PR-Rechner, wo die MODEMs angeschlossen waren, dann konnte ich
auf dem Monitorschirm die gesamte Traffic beider Kanäle verfolgen. War
'ne schöne Zeit, hatte einige Jahre lang auch meine (textbasierten)
E-Mails darüber abgewickelt, Dank nochmal an Jonas und sein CB-PR <-->
E-Mail-Gateway in dbo812 (München-Pasing).

Für LINUX gab es einen PR-MODEMtreiber, der mit ins Kernel compiliert
wurde. Ich selbst nutzte ihn nie, musste aber feststellen, dass die
Anlagen aller PR-Freunde die PR-MODEM unter LINUX betrieben stocktaub
wurden. Die bretterten überall dazwischen und verstanden kaum ein
Frame. Multitasking-OS können nunmal nur mit einem TNC
(Terminal-Node-Controller) umgehen, und ein TNC ist ein
(TCM3105-basierendes) MODEM mit einem eigenen Rechner. Beim TNC2 ist
das ein Z80-System, beim TNC3 ist das ein 68000-System, als (gute, aber
stromfressende) Billiglösung gab es den PC (286er reicht) mit DOS622,
TFPCX (2.0, die anderen waren recht taub) und PCTNC.EXE. Dies verhielt
sich am WIN-Rechner wie ein TNC, wurde also textorientiert über
serielle Schnittstelle angesprochen, wobei das Timing vom I/O-Chip
(vergleichbar mit UART) geregelt wurde. Aber dies ist ja nur eine
einfache Kommunikation zwischen zwei Rechnern und damit nix
Besonderes.

Aber wenn du meinst, du knüpperst mal schnell einen TCM3105 an die
Serielle deines XP-Rechners und schreibst ein kleines Progrämmchen
dazu, dann mach das... - Erfolg wirst du damit nicht haben.

Versteigere lieber deine (inzwischen überall knapp gewordenen) TCM3105
und kauf dir davon moderne preiswerte Funkmodule. Das hat wenigstens
eine Chance zu funktionieren...

...

von ...HanneS... (Gast)


Lesenswert?

Garnicht dran gedacht:
Die TCM3105 braucht keiner mehr, im AFU wird (fast) kein 1k2 mehr
gefahren, das Netz ist auf (mindestens) 9k6 umgestellt. Und im
CB-Bereich haben sich LINUX und TNCs unter XNET durchgesetzt, bzw. TNCs
unter WIN und Flexnet, teils mit modifizierter Firmware (6pack).

...

von OldBug (Gast)


Lesenswert?

Da sieht man mal, wie die Zeit vergeht...
Mein Wissen ist etwa zehn Jahre alt. Das war so meine PR-Zeit, leider
nur im CB.
Meine Anlage konnte Zeitweise BPQ, was ich aber nachher für ziemlich
oversized angesehen habe. Nachher habe ich die Mailbox DBX548
übernommen (kurz nachdem die Rufzeichenpflicht für PR rauskam). Die
Mailbox-Software war anfangs TSTHOST (örks) und nachher FBB.

War ne Höllenarbeit, die nie honoriert wurde. Was nicht zuletzt zur
Aufgabe des eigentlich schönnen Hobbies führte. Ich habe zwar noch
sämtliche Geräte, mache aber kein bißchen Betrieb (weder PR noch
Sprache). Allerdings sitze ich mittlerweile (mal wieder) am
Fragenkatalog für die Klasse 2...

Mal sehen, was der Frühling so bringt ;)

von ...HanneS... (Gast)


Lesenswert?

@OldBug:

Nun könnten wir uns raufen... - Hab' ich aber keine Lust zu...
Denn die Rufzeichenpflicht gab es nie. Das war eine Intrige des Franz
Ahne und den anderen Gaunern das DAKfCBNF. Das BMPT wurde zur RegTP
umstrukturiert, es gab viel Hektik wegen der Querelen der Telekom und
ihrer Mitbewerber, da legte denen Franz Ahne seinen Amtsblattentwurf
vor und irgend ein Dussel hat den ungelesen unterschrieben und
weitergeleitet. Es wurde ja schließlich stillschweigend wieder
zurückgenommen und dann so getan, als ob es das nie gab. Die
eingenommenen Gelder wurden übrigens vom DAK (besonders von Franz) für
Reisen verbraucht, wobei man nun streiten könnte, ob das als
Privatvergnügen zu sehen ist. Naja egal, ich habe mir kein Call
gekauft. Aber diese Aktion hat viel kaputt gemacht, da sie die Leute
aufeinander gehetzt hatte.

Aufgehört hatte ich, weil mit der Gründung des DL-NET (und deren
Apartheit) das gesamte Backbone des Netzes zusammengebrochen ist. Die
Boxen im Raum Magdeburg wurden vom DLNET vom S&F abgehängt ("wer nicht
mit uns ist, ist gegen uns"), worauf meine S&F-Partner abgebaut haben.
Dann bauten ein paar Neulinge ein Nodenetz mit stocktauben Anlagen auf,
wo schon die Router-Frames bis zu 10 mal wiederholt werden musste.
Dieses müllte den gesamten Raum Magdeburg auf der 24 zu. Und als dann
noch einige QSO-Partner abgebaut hatten bzw. wegen Arbeit gen Westen
zogen, dann habe ich auch abgeschaltet. Sollen sie machen was sie
wollen, für mich ist es Geschichte. Ein gutes Jahr lang habe ich
gelegentlich reingehört (Anlage steht noch betriebsbereit), ist nur
noch Müll. Daher lasse ich das jetzt sein und behalte lieber die guten
Zeiten in Erinnerung.

Aber davon wird Manu's Technik auch nicht funktionsfähig... ;-(

Gruß...
...HanneS...
(o54mgb)

von OldBug (Gast)


Lesenswert?

Ja stimmt.
Hatte das ganz verdrängt, aber ich habe damals erst das Personen- und
danach das Mailboxbezogene Rufzeichen gekauft.
Egal, für mich ist das auch Geschichte. Ich habe mal vor ein paar
Monaten auf 24/25 reingehört, und hier ist NICHTS mehr zu hören ;)
Die haben wohl alle abgeschaltet.
In den "guten Zeiten" hatten wir hier ein Gemeinschaftsprojekt aus
privaten Spenden (einer das Kabel, einer die Antenne etc, pp)
aufgezogen: ein FlexNet-Node auf ca. 640müN. Die Antenne stand dabei
auf einem 15m hohen Silo eines Bauern...
Da gibts schon nette Reichweiten mit.
Naja, wie gesagt: Geschichte.
Jetzt erst mal fleissig lernen, bevor wieder irgendwo "rumgefunkt"
wird :-)

von manu (Gast)


Lesenswert?

Hallo nochmal ihr zwei,
danke für euren Geschichtlichen einblick .. ;-)

Leider habe ich vergessen anfangs zu erwähnen, wozu ich die
Übertragung Nutzen möchte. Es werden vorrausichtlich alle 15min.
max. 5 Bytes an Daten übertragen.. Die TRXe sind bereits vorhanden,
läuft über Betriebsfunk auf 2Meter. Antennen usw. sind bereits
an allen zukünftigen Standorten vorhanden, auch eine Solar gespeiste
Spannungsversorung!

Die Funkmodule, die du erwähnt hast HanneS, wie teuer würden die in
etwa kommen? Kann ich diese dann "einfach" per UART ansprechen,
und das (A)FSK Signal auf den MIC Eingang bzw. am SPK Ausgang meiner
TRXe abgreifen?

von OldBug (Gast)


Lesenswert?

Da fällt mir noch was ein!
In der Ausbildung haben wir die "Modulatoren/Demodulatoren" der
Datasetten des MFA-Systems für die Datenübertragung missbraucht.
Vielleicht wäre so eine Lösung ja auch völlig ausreichend.
Ein kleines Protokoll mit Checksumme ist schnell gezaubert...

von manu (Gast)


Lesenswert?

Ohje, habe gerade geschaut, die Easy-Radio kosten bei abnahme von
100 Stück ca. 28€ .. ;-) Kommt glaube ich nicht in Frage!

Aber dort ist eben auch der TRX mit eigebaut, mir würde ja eigentlich
ein "inteligentes" Modem reichen, gebrauchte TNC's kommen leider
auch nicht in Frage, die werden ja z.B. bei eBay übertrieben teuer
gehandelt...!

Da wäre die Datasette schon ne günstigere Lösung! ;-)

von ...HanneS... (Gast)


Lesenswert?

@Manu...

Ich selbst habe die noch nicht verwendet. Aber hier im Forum habe ich
schon oft darüber gelesen. Musst dich mal umschaun hier. Bei ELV und
manchmal auch in der "Apotheke" soll es die Teile halbwegs preiswert
geben. Preise weiß ich nicht, da ich mom. kein Bedarf habe.

Wenn so wenig übertragen werden muss und dann vielleicht nur in eine
Richtung, könnte DTMF dein Freund sein. Das Erzeugen der Signale ist
bei ATMEL in einer AppNote beschrieben, zum Decodieren gibt es einen
Decoderchip mit Binärausgabe (4 Bit + "Signal da"). Weiß jetzt nicht
wie der heißt, hab' den mal für CB-Selektivruf (eigentlich
Anrufbeantworter mit Bandaufnahme) verwendet, später auch mal für die
Steuerung des ATV-Relais DB0WTB, wo ich die Software und die
DTMF-Decoder verbrochen habe.

@OldBug: Ich mach kein AFU, mach aber gelegentlich für einige AFUler im
Feundeskreis die Lötarbeiten bzw. die Software...

'73...
...HanneS...

von manu (Gast)


Lesenswert?

Hi HanneS,

DTMF möchte ich eigentlich nicht verwenden, da der Dekoder IC "nur"
ca. alle 150ms ein Signal "empfangen" kann. Auf der QRG findet auch
noch Phonie Verkehr statt, den ich nicht all zu arg beeinträchtigen
möchte...!

von manu (Gast)


Lesenswert?

Aber kann man ja etwas mehr speed erwarten, wenn man die signale
dirket mit dem AVR de- bzw. encodet!?

von Stefan Seegel (Gast)


Lesenswert?

Tach,

der Thread ist zwar schon etwas alt, möchte aber dennoch meinen Senf
dazu geben.
Es sollte eigentlich ohne Probleme möglich sein, einen TCM3105 (mit
Pegelwandler) an den PC zu hängen und "mal schnell ein Programm zum
dekodieren schreiben".
Wie hier bereits geschrieben wurde bekommt man unter Multitasking
Betriebssystemen wie WIN nicht die Performance zusammen, solche Daten
an der seriellen Schnittstelle zu dekodieren. Das ist nicht ganz
richtig. Wenn man die Handshake-Leitungen benutzt (wie bei diversen
TCM3105 Ansteckmodems für Flexnet, TFPCX etc etc) trifft dies zu, aber
man kan einfach das digitale Empfangssignal eines TCM3105 an den RXD
Eingang der seriellen Schnittstelle legen und dann die Dekodierung
dieses asynchronen Signals der UART Hardware überlassen (wozu diese
auch da ist und i.d.R. bei allen seriellen Verbinungen genutzt wird).

Warum das so bei den angesprochenen Ansteckmodems nicht gemacht wurde
hat den Grund, dass man dann keine ordentliche "Busy" Erkennung mehr
hat (wann ist der Kanal frei so dass gesendet werden darf). Aber zum
einen kann man die Kanalerkennung per Hardware realisieren (XR2211) und
dann z.B. am CTS Pin einspeisen, oder man braucht sie erst garnicht,
weil durch bestimmte Gegebenheiten die Kanal-Frei-Erkennung nicht
gebraucht wird - z.B. weil das Signal an einem Sprechfunkgerät händisch
ausgesendet wird. Benutzt man keine Kanal-Frei-Erkennnung auf der
Empfangsseite, empfängt aber die serielle Schnittstelle ständig Müll,
erzeugt durch das Rauschen. Da könnte man sich helfen in dem man
einfach jedem zu übertragende Frame eine "Starterkennung"
voranschickt, und man sollte auf der Sendeseite bevor die eigentlichen
Daten übertragen werden mindestens eine Byte-Zeit lang 0 schicken,
damit sich die empfangende UART auf das Startbit vorbereiten kann.

AAAlso, blabla, lange rede kurzer Sinn, zusammengefasst:
Gegeben:
-Zwei Sprechfunkgeräte mit MIC/Lautsprecher Anschluss
-Man möchte ein paar Bytes Daten darüber übertragen.

Möglichkeit 1:
AVR (Erzeugt die Daten) -> TCM3105 (moduliert die Daten auf einen
Audio-Subtonträger (1500Hz +/-) -> MIC Eingang -> Sender -> Empfänger
->TMC3105 (demoduliert die Daten) -> Pegelwandler (TTL/RS232) -> PC
(RXD Pin)
Kanalbelegt-Erkennung muss dann wie oben beschrieben mit einem
Protokoll erledigt werden.

Möglichkeit 2:
PC/Terminal (serielle Daten) -> Pegelwandler -> AVR (erzeugt Präambel,
evtl CRC, Datenframing) -> TCM3105 -> Mic Eingang -> Sender ->
Empfänger -> TCM3105 -> AVR ("Deframing") -> Pegelwandler ->
PC/Terminal

Baut man bei Möglichkeit 2 die Strecke Vorwärts und Rückwärts auf eine
Platine hat man ein fertiges bidirektionales Datenfunkmodem, das
einfach zwischen ein serielles Gerät (PC/Terminal/Palm/PocketPC etc
etc) und den Sender/Empfänger/Funkgerät gesteckt wird, mit anderen
Worten ein TNC für arme :-). Natürlich könnte man diese Möglichkeit mit
Software noch etwas aufstocken und hätte dann sogar ein richtiges TNC.
Ich vermute mal dass es tatsächlich schon ein TNC auf AVR Basis gibt,
wenn nicht wirds mal Zeit sowas zu bauen, insofern jemand noch
Interesse an 1200 bd Geschichten hat.

Und wenn ich grad schon so schön am labern bin:
Falls man den TCM3105 nicht mehr auftreiben kann und das ganze nur
unidirektional braucht, kann man auf der Sendeseite einen XR2206
(Funktionsgenerator, mit dem sich auch einfach ein FSK Modulator bauen
lässt) und auf der Empfangsseite einen XR2211 (PLL, als FSK
Demodulator) nehmen. Beide gibts günstig z.B. bei Reichelt.

Und noch ein wenig "Kluggescheisse":
FSK wurde in diesem Thread nur bedingt richtig benutzt;

FSK = Frequenz Shift Keying = Frequenzumtastung des HF-Trägers: heisst
dass man die Trägerfrequenz hin- und her schaltet, wenn man z.B. auf
7,010 Mhz Daten überträgt, bedeutet eine 1 z.B. dass ein Träger auf
7,010 Mhz - x Hz gesendet wird, eine 0 dass ein Träger auf 7,010 MHz +
x Hz gesendete wird. Im Empfänger muss man so ein Signal mit dem eines
Hilfsträgers Mischen (BFO) um wieder die 2 unterschiedlichen Töne zu
bekommen. Die Modulationsart FSK wird z.B. auf Kurzwelle z.B. zum
Funkfernschreiben benutzt.

AFSK = Audio Frequency Shift Keying = Frequenzumtastung eines
Hilfträgers = Es wird ein Audiohilfsträger (z.B. 1700 Hz +/- 500 Hz)
auf ein HF-Träger Signal z.B. in Frequenzmodulation aufmoduliert. Das
ist genau das was im CB&Amateurfunk für 1200bd Packet Radio verwendet
wird. So kann man leicht Sprechfunkgeräte für Datenfunk benutzen, da
man den modulierten Hilfsträger einfach ans Mikrophon anklemmen kann.
Wird so ein Audiohilfsträger im SSB (Single Side Band mit unterdrücktem
Träger) Modulationsverfahren aufmoduliert kommt aus der Antenne wieder
ein FSK Signal herraus, d.h. mit einem TCM3105 Modem kann man AFSK
(Sender auf FM oder AM Stellen) aussenden oder FSK (Sender auf SSB
Stellen) aussenden.

MfG

Stefan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.