Hallo erstmal, ich versuche schon seit Tagen das DCC-Protokoll zu decodieren. Auf der Seite "Gerards Homepage" ( http://bahn-in-haan.de/_decoder.html ) ist ja wirklich eine gute Beschreibung (auch dafür ein DICKES LOB) vorhanden. Ich wollte mich nun auch mal mit dem DCC-Protokoll beschäftigen und bekomme bald eine Krise. Ich gebe hiermit auch bekannt, das ich in Punkto MC totaler Newbie bin und mit Assembler (noch) nicht´s am Hut habe. Bin ebend Visual Basic vorbelastet, und versuche mich deshalb auch mit BASCOM. Hat das schon jemand geschafft (ausser der Autor der oben genannten Seite)??? Mein Prg liefert leider nur Mist, wo ich denke, das es nicht sein kann. Wenn Interesse besteht, stelle ich auch gerne meinen Code (Versuch) ins Forum. Bitte aber darum, das die Experten sich mit dem Gelächter zurückhalten. Danke Raimond
Hi Raimond... Beim MC ist es wichtig, die Architektur zu verstehen. Nur so kannst du alle Möglichkeiten nutzen. Eine Hochsprache wie BASCOM nimmt dir Vieles ab, worum du dich dann nicht mehr kümmern brauchst. Das birgt aber auch die Gefahr, dass du den MC (AVR?) nur halb kennst. Daher meine ich, dass Assembler für den Anfänger besser geeignet ist. Denn Assembler zwingt dich, das Datenblatt genau zu lesen und zu verstehen. Das damit erlangte Wissen kannst du dann auch in einer Hochsprache gebrauchen. Auch ich bin QBASIC und VB vorbelastet, habe mich aber für den Anfang bewusst für Assembler entschieden. Ich habe noch eine alte Version der genannten Decoder-Baubeschreibung (leider nur auf Papier), die neue Version muss ich erstmal in Ruhe lesen. Da ist der Algorithmus der Biterkennung gut beschrieben. Heute würde ich aber statt des 2313 einen Tiny26 oder Mega8 einsetzen, die haben Brown-Out-Detektor on Chip. Demnächst wird ja auch der Tiny2313 verfügbar sein, der auch über BOD verfügt. ...HanneS...
Wenn Raimond ein Modellbahner ist der sich einen Decoder selber bauen will, ist es doch in Ornung wenn er mit leicht anwendbaren tools arbeitet. Fürs wirklich seriöse Programmieren muss ich aber HanneS recht geben, die Architektur und HW-nahen Funktionen des uP lernt man in Assembler am schnellsten (wenn man mal die Einstiegshürden von Assembler geschafft hat). Aber nun zum Decoder: Ich habe das Protokoll jetzt nur überflogen, aber Bitzeiten um die 100us entsprechen 9600Baud und die sollten auch in Basic beherrschbar sein. @Raimond: welchen uP willst du einsetzen (bzw. verwendest du derzeit) und was soll dein uP steuern (nur Magnetartikel oder Motorsteuerung)? Hast du auch eine email-adresse? grüsse leo9
Hallo Ich habe hier einen 2313 und möchte damit später die Beleuchtung von Häusern etc steuern, die damit z.B. zuffällig ein und aus geschaltet werden. Es gibt bestimmt noch viele andere Ideen, die man umsetzen kann. Bei mir happert es aber schon am DCC-Protokoll. Ich habe auch schon einen Decoder von "Gerards Homepage" ( http://bahn-in-haan.de/_decoder.html ) nachgebaut und der funktioniert auch. Ich möchte aber schon gerne selber das DCC-Protokoll decodieren, da einem dann bestimmt noch einige Sachen einfallen werden, die man dann umsetzen kann. Gruss Raimond
Hallo... @Leo9: Da gebe ich dir völlig recht... Allerdings wenn Raimond keinen Einstieg in die AVR-Technik sucht, dann kann er ja auch die Hexfiles von der genannten Webseite benutzen, die müssten mit dem 2313 funktionieren. Was die Einsteiger-Hürden von Assembler bzw. AVR-Studio betrifft, so wird hier in diesem Forum sehr geholfen. Nun glaube ich allerdings nicht, ob ein DCC-Decoder das ideale Erstlingswerk ist. Die AVR-Geschichte (nicht nur Assembler) hat genügend Fallstricke, die man erstmal erkennen muss. Ein Windows-Programmierer muss da erstmal "Disziplin" lernen. Unter WIN kümmert es mich nicht, was ein Compiler aus meinem Code macht, beim AVR schon. Und da ist man mit Assembler "am dichtesten dran" (am ausführbaren Maschinencode)... Nochmal zu DCC. Mit einer "Baudrate", wie bei Datenübertragung üblich, wird das nicht so einfach, denn eine "0" ist nicht einfach nur die doppelte Breite einer 1, sondern kann (asymmetrisch) bis zu etwa 1ms lang werden (das ermöglicht den Betrieb einer Gleichstrom-Lok auf dem Digitalgleis, man verlängert dazu nur die positiben oder nur die negativen Anteile der Nullbits). Zur Bit-Erkennung ist also nur wichtig, ob der Impuls kleiner als 84µs ("1") oder größer ("0") ist. Naja, die Bits müssen dann gesammelt werden, zu Bytes organisiert werden (Trennbits ausfiltern), Checksumme überprüft werden... Nach dem Ermitteln der Adresse (Vorsicht, ein Teil davon wird invertiert übertragen) wird dann entschieden, ob das Kommando ausgeführt wird oder nicht (dann war es für einen anderen Decoder). Dass ich etwas gegen BASCOM bin, hat nix mit BASCOM oder BASIC allgemein zu tun, sondern mit der Tatsache, dass ich hier im Forum immer wieder lese, dass Anfänger damit Probleme haben. Besonders, wenn ihr Programmierstil (durch PC-Programmierung bedingt) extrem resourcenverschwenderisch ist. Da werden unbekümmert Fließkommazahlen oder Long verwendet (wo ein Byte reichen würde), ohne sich Gedanken darüber zu machen, was der Controller damit zu tun hat. Da hat man noch nicht begriffen, wie man eine LED an/aus schaltet, schimpft aber schon, dass LCD und serielle Schnittstelle zum PC nicht klappt. Oder es wird ein Zeitraster von 1µs verlangt, das auch noch extrem genau sein soll. Und so weiter und so fort... Deshalb rate ich dem Anfänger von BASCOM ab. Bit- & Bytebruch... ...HanneS...
Hi... Wieder mal zu langsam getippt, das kommt davon, wenn man zwischendurch ans bimmelnde Telefon geht... ;-)) ...HanneS...
Hi, ich hab mir einen DCC Decoder auf Tiny 15 gebastelt. Bin aber über den Probetrieb mit einem DIP noch nicht hinausgekommen. Die SMD Version ist mir bis jetzt zu schwierig zum löten. Außerdem komme ich mit der Größe an gekaufte Decoder nicht heran. Ich wollte das ganze nämlich für Spur N. Den Code in Assembler finde ich gerade nicht, muß ich aber noch irgendwo haben. mfg
hallo, ich möchte ebenfalls einen dcc-dekoder bauen. der umgang mit mc ist nicht das problem (würde hierzu einen avr-mega8 verwenden und möchte diesen in c programmieren). jedoch fehlt mir deine brauchbare testumgebung. - wo bekomme ich ein brauchbares steuersignal her? - welche steuereinheiten sind zu empfehlen? - ist eine steuerung über pc möglich? weiters wäre eine steuerschaltung für den lokmotor interessant (robust bei geringem platzbedarf). da "analoge" schaltungen nicht so meine stärke sind, wäre ich sehr dankbar für ein paar tips. lg max
Auf http://www.amhamberg.de gibt es die Source für einen DCC Decoder für den AT90S2313 ;) Grüsse, Manfred
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.