Hallo Sebastian,
Ich habe das Eagle File noch mal überarbeitet und eine
Version entwickelt die nur mit dem DCC Signal auskommt oder
die man Stationär mit Spannung versorgt und das DCC Signal
( nur das Plus ) zum ansteuern nimmt.
Bei Einbau in Loks oder Wagons mus das DCC Signal auf die
mit < 20 ~ Bezeichneten Pole gelegt werden.
Ansonsten den auf dem Bild mit R1 bezeichneten 220K Widerstand auf R2
löten, dann das DCC Kabel auf den mit " DCC bei Ext. V " bezeichneten
PAD löten. Den Gleichrichter an den mit " < 20 ~ " Bezeichneten Polen an
einen Trafo anschließen. So wird Digitalspannung gespart.
Ich habe bei meinen Wagons bis zu 15 LED´s eingebaut,
da hat die Schaltung so um die 7,4 mA verbraucht.
Die Ausgänge habe ich noch mal Bezeichnet mit F1 bis F4
dann ist es Leichter bei dem Anlöten die richtigen PAD´s zuzuordnen.
Der Plus von den LED´s kommt auf den gemeinsamen Pol der mit " VCC "
gekennzeichnet ist, der Minus wird jeweils geschaltet PAD F1 bis F4.
Die Wiederstände sind so berechnet das LED´s dort direkt angeschlossen
werden können ( paralell )möchte man mit Glühbirnchen arbeiten muss
der Wiederstand verringert werden, in der vorhandenen Schaltung beträgt
er 1,5K.
So jetzt hast Du alles auf dem neusten Stand.
Weiter bin ich noch nicht gekommen.
Gruß Muetze
Hallo,
ich bin auf der Suche nach einem Funktionsdecoder mit folgenden
Eigenschaften:
- Kurze und Lange Adresse (CV1, CV17/18)
- Functionmapping, also die F-Tasten beliebig den Ausgängen zuordnen
- fahrtrichtungsabhängig (FL/FR)
- Dimmen der Ausgänge
- Leuchtstoffröhren Effekt bei F1-Fx konfigurierbar
- ggf. auch Analogbetrieb
Erfüllt das evtl. schon einer oder hat so einen jemand in Arbeit?
Andi
Hallo,
Entschuldigung das ich den alten Beitrag wieder rauskrame.
Ich möchte gern das Programm von Muetze mit Tiny15 zu Versuchszwecken
auf einen ATmega32 spielen.
Ich habe dazu die Timer und das Programm geändert, so das ich in der
Ausgabe keine Fehler erhalte. Lediglich 4 Warnungen bezüglich der
Verwendung der Register ab R26 bis R29.
Ich vermute das es ein Problem mit dem Takt des µC gibt. Der Tiny15 hat
ja 1,6MHZ internen Takt welcher im Programm für die Timer verwendet
wird.
Wie passe ich dies am Besten an für ATMega32 oder gibt es ein generelles
Problem bei der Verwendung eines ATM32.
Vielen Dank
MFG
Robert
Hi,
erst mal ein Frohes neues Jahr 2011 ;-)
so ich wollte mal horchen ob sich hier schon einer einen Kopf darum
gemacht hat das der Tiny15 jetzt vom Tiny25 quasi abgelöst wurde.
Welchen Tiny25 sollte man nehmen den mit 10MHz oder mit 20MHz?
Und hat sich schon wer daran gemacht das Programm anzupassen?
MfG
Sebastian
Sebastian G. schrieb:> Hi,>> erst mal ein Frohes neues Jahr 2011 ;-)
Jou, Frohes und Gesundes...
> so ich wollte mal horchen ob sich hier schon einer einen Kopf darum> gemacht hat das der Tiny15 jetzt vom Tiny25 quasi abgelöst wurde.> Welchen Tiny25 sollte man nehmen den mit 10MHz oder mit 20MHz?
Ist diese Frage Dein Ernst?
Welche Taktfrequenzen kann der Tiny25 ohne externen Taktgeber?
Welche Rolle spielt es dann, ob der Tiny25 10 oder 20 MHz Takt verträgt?
> Und hat sich schon wer daran gemacht das Programm anzupassen?
Nicht schwätzen, sondern machen.
>> MfG> Sebastian
...
Hallo,
ich bin über einen 5V Regler im SOT-23 Gehäuse gestolpert. Damit lassen
sich evtl. noch ein paar mm^2 einsparen:
TA 78L 05F TOSHIBA (z.B. €0.53 bei C... )
Noch hab' ich den Thread nicht durchgeackert. Wird für die
Signalübertragung die Versorgungsspannung umgepolt oder kurz
ausgeschaltet?
Her(t)zliche Grüße
Harald
Hi,
ich habe jetzt mal Mützes Multifunktiondecoder Programm versucht etwas
um zubauen. Und zwar will ich das beim schreiben der CV 8 diese zwar
weiterhin beibehalten wird aber alle CV's in den 'Auslieferungszustand'
zurückgesetzt werden. Dazu habe ich folgendes geändert:
cp ByteB, TEMP1 ; vergleiche ByteB und TEMP1 ob gleich / auf Schreib-Adresse CV Hersteller ID
30
breq CVRESET ; wenn ByteB und TEMP1 gleich , dann springe zu CVRESET / CV in Auslieferungszustand wenn gleich ;PRGACK ; wenn ByteB und TEMP1 gleich , dann springe zu PRGACK / beende Schreiben wenn gleich
out TIFR, TEMP1 ; Lade Abbild von TEMP1 nach Timer Counter InterruptFlag
106
clr TEMP1 ; lösche TEMP1
107
out PortB, TEMP1 ; lade Abbild von TEMP1 nach PortB / lösche Motorausgang
108
sei ; alle Interrupts wieder einschalten / auf 1
109
rjmp MAIN ; springe zu Main / Endlosschleife
Neu ist dabei Hauptsächlich das Label CVRESET und der zugehörige Aufruf
im Label PRGWRITE.
Mein Problem ist nur, dass nach dem CVRESET kein Acknowledge erzeugt
wird und ich nicht genau weis warum.
Ein anderes Problem ist noch das ich beim lesen der CV's ebenfalls kein
Acknowledge bekomme.
Kann mir da wer weiter Helfen?
MfG
Sebastian
@Mütze
Kannst du mir bitte sagen was ich tun muss damit ich den
Reversierbetrieb wieder ins Programm bekomme, um im Steuerwagenbetrieb
die beiden Ausgänge für FL zu tauschen?
Und ob es eine einfache Möglichkeit gibt das Neonflackern nicht nur beim
ersten Start des Dekoder bei schon betätigte Funktion gibt, sondern auch
beim einschalten der jeweiligen Funktion im laufnden Betrieb?
Gruß
Sebastian
Sebastian G. schrieb:> @Mütze>> Kannst du mir bitte sagen was ich tun muss damit ich den> Reversierbetrieb wieder ins Programm bekomme, um im Steuerwagenbetrieb> die beiden Ausgänge für FL zu tauschen?
so das habe ich schon wie folgt gelöst:
Die Auskommentierung hier bei den letzten beiden Code-Zeilen enfernt
1
RESET:
2
3
[...]
4
5
ldi TEMP1, EELongADR ; Lade EELongADR in TEMP1 / Lange Adresse
6
rcall readEEProm ; Springe zu readEEprom
7
bst Temp2, 5 ; Lade aus TEMP2 BIT 5 / Lange Adresse ( CV29 )
8
bld DCCReg, LongADR ; schreibe T-Bit in DCCReg, LongADR ( BIT 7 )
9
bst Temp2, 0 ; Lade aus TEMP2 BIT 0 für Reversierbetrieb ( CV29 )
10
bld DCCReg, RevDir ; schreibe T-Bit in DCCReg, RevDir ( BIT 6 )
11
12
[...]
und das Label Steuerw um die Überprüfung des DCCReg auf Reversierbetrieb
wie folgt ergänzt
1
Steuerw:
2
3
cbr Temp1,0b00000011
4
sbrc stop,7 ; wenn das Bit 6 auf 1 ist
5
rjmp pc+16 ; springe im Programm Counter 15 vor
6
sbrs DCCReg,FL ; Wenn Fahrtlicht Bit = 1 dann
7
rjmp PC+14 ; springe im Programm Counter 13 vor
8
sbrs stop,6 ; wenn das Bit 6 im Sopregister auf Null steht
9
rjmp pc+12 ; springe im Programm Counter 13 vor
10
sbrc DCCReg,DIR ; Wenn Fahrtrichtung Bit Rückwärts 1 dann
;********* FL Aus ****************************************************************************
24
ret ; springe zu Main / Endlosschleife
So nun habe ich aber noch fesgestellt das der Betrieb mit langer Adresse
noch nicht so richtig funktioniert, werd mir das noch mal anschauen, bin
aber auch hier weiterhin für Hilfe dankbar ;-)
MfG
Sebastian
Sebastian G. schrieb:> So nun habe ich aber noch fesgestellt das der Betrieb mit langer Adresse> noch nicht so richtig funktioniert, werd mir das noch mal anschauen, bin> aber auch hier weiterhin für Hilfe dankbar ;-)
Das Problem lag wohl nicht am Programm als mehr an meinem duseligen
Twin-Center das es nicht gebacken bekommt ordentlich lange Adressen zu
Programmieren.
Gruß
Sebastian
Hallo
Sebastian G. schrieb:
> Mein Problem ist nur, dass nach dem CVRESET kein Acknowledge erzeugt> wird und ich nicht genau weiß warum.> Ein anderes Problem ist noch das ich beim lesen der CV's ebenfalls kein> Acknowledge bekomme.> Kann mir da wer weiter Helfen?
Sebastian G. schrieb:
> Und ob es eine einfache Möglichkeit gibt das Neonflackern nicht nur beim> ersten Start des Dekoder bei schon betätigte Funktion gibt, sondern auch> beim einschalten der jeweiligen Funktion im laufenden Betrieb?
Kann mir da keiner weiter helfen
Gruß
Sebastian
Hallo,
Sebastian G. schrieb:> Sebastian G. schrieb:>> Mein Problem ist nur, dass nach dem CVRESET kein Acknowledge erzeugt>> wird und ich nicht genau weiß warum.
ich meine gelesen zu haben, daß hier das ACK vor dem Beschreiben der
EEPROM-Zellen erfolgen muß und angenommen wird, daß die Werte erst nach
einem Neustart des Dekoders übernommen werden. Das Beschreiben der
vielen CVs/EEPROM-Zellen dauert einfach zu lang.
Gruß
Volkmar
Volkmar schrieb:> ich meine gelesen zu haben, daß hier das ACK vor dem Beschreiben der> EEPROM-Zellen erfolgen muß und angenommen wird, daß die Werte erst nach> einem Neustart des Dekoders übernommen werden. Das Beschreiben der> vielen CVs/EEPROM-Zellen dauert einfach zu lang.
Gibt es denn entweder eine Möglichkeit den Vorgang zu beschleunigen oder
eine andere Möglichkeit eine Reset der CV-Werte in den
"Auslieferungszustand" zu bewältigen.
Gruß
Sebastian
Hallo,
habe den Code erfolgreich auf einem ATTINY45 zum Laufen gebracht.
Ich möchte aber die Ausgänge invertieren - sprich Outputs sind low wenn
eingeschaltet.
Frage: Hat das schon jemand probiert?
Vorab mal ein großes DANKESCHÖN!
Eine Frage: Warum hast Du für den Funktionsdecoder 1206er Widerstände
genommen? Wg der Last?
Überlege mir einen Schwung dieser Decoder zu bauen. Die Platinen werde
ich dann wohl doppelseitig ausführen und herstellen lassen. Daher halt
die Frage, ob man die Widerstände nicht auch in 0805 nutzen kann. Zum
löten ist das ja nicht viel komplizierter :)
Muss gestehen, dass ich nicht den ganzen Thread gelesen habe -
vielleicht war das schon mal diskutiert worden :/
Danke & Gruß,
Torsten
ach ja - und dann noch eine Frage: Wie testet ihr die Decoder? Gibt es
dafür spezielle Tools mit der man eine DCC-Zentrale "steuern" kann?
Ich hatte mal vor einiger Zeit selbst mal versucht einen Dekoder zu
programmieren. Leider hat das dann im realen Betrieb nicht richtig
funktioniert. Hatte seinerzeit aber auch "nur" eine Lenz-Zentrale,
welche nun bei meinem Vater verbaut ist und fleißig genutzt wird :)
Danke & Grüße,
Torsten
Hallo
gibt es eigentlich schon neuigkeiten zu dem projekt vom Siegfried
Saueressig
"DCC-Decoder m8lok"
Hat die Umsetzung funktioniert.
Danke für eine Antwort
Hallo,
ich habe den Dekoder auf Basis eines Attiny45 plus L272 nachgebaut und
bekomme leider keine Rückmeldung, wenn ich ihn an meine Roco Multimaus
anschließe und ansteuere.
Ich möchte gerne ausschließen, dass die von mir kompilierte hex Datei
Fehler beinhaltet. Kann mir jemand die hex Datei für den Attiny45
bereitstellen?
Welche Fusebits müssen im Vergleich zum Auflieferungszustand geändert
werden?
Sind eigentlich im Quellcode Standard CV gesetzt?
Vielen Dank,
Niklas
Nachtrag zu vorigem Post:
Die von mir kompilierte hex Datei basiert auf dem angehängten Quellcode,
der hier weiter oben im Thread bereitgestellt wurde, siehe Anhang.
Ein Vergleich mit der Version für den AT15 zeigt, dass nur Registernamen
und Ports getauscht worden sind. Die erhöhte Frequenz des At45 im
Verlgeich zum At15 wurde nicht berücksichtigt. Deshalb habe ich auf
Grundlage des weiter oben geposteten PDF (ATtiny15zu25.pdf) den At45 in
den Kompatibilitätsmodus versetzt. Das Ergebnis ist, dass ich den At45
nicht mehr mittels Programmer ansprechen kann.
Kann mir jemand helfen? Hat jemand Erfahrung mit dem Umstieg von
Attiny15 zu Attiny25/45?
Bg,
Niklas
Niklas Freeman schrieb:> Kann mir jemand helfen?
Ich versuche es, obwohl ich es für sinnfrei halte, diese uralte auf
Tiny15 optimierte Software auf einem Tiny45 laufen zu lassen. Denn unter
Nutzung der Features des Tiny25/45/85 (zweiter Timer, bessere
Hardware-PWM, höherer Controllertakt, ...) ließe sich das durch
Neuprogrammierung bedeutend effizienter umsetzen.
Niklas Freeman schrieb:> Das Ergebnis ist, dass ich den At45> nicht mehr mittels Programmer ansprechen kann.
Ich vermute mal, Du hast die CKDIV8-Fuse nicht rausgenommen, nun
klappert der Tiny45 im Kompatiblitätsmodus zu langsam für Deinen
ISP-Takt. Du müsstest also mal mit dem ISP-Takt Deines Programmers auf
unter 1/4 des Controllertaktes runter gehen. Ich kann mich da aber auch
irren, habe zwar schon viele Tiny85 für Gartenbahn-Soundmodule
(Dampf/Diesel) benutzt, aber noch keinen im T15-Kompatiblitätsmodus.
Niklas Freeman schrieb:> Sind eigentlich im Quellcode Standard CV gesetzt?
Hast Du eigentlich in den von Dir geposteten Quelltext geschaut???
Was meinst Du, was das hier ist?:
1
;** hier beginnt das EEProm **
2
.ESEG
3
.ORG $0000
4
5
.db 0x01, 0x00 ; CV1 Adresse und CV2 StartSpeed
6
.db 0x80, 0x80 ; CV3 IncVAL und CV4 DecVal
7
.db 0x80, 0x71 ; CV5 MaxSpeed und CV6 OSCCAL
8
.db 0xFF, 0x01 ; CV7 Hersteller und CV8 Typ ID
9
.db 0xFF, 0xFF ; CV9 Frei und CV10 Frei
10
.db 0xFF, 0xFF ; CV11 Frei und CV12 Frei
11
.db 0xFF, 0xFF ; CV13 Frei und CV14 Frei
12
.db 0xFF, 0xFF ; CV15 Frei und CV16 Frei
13
.db 0x00, 0x02 ; CV17 HI-Byte und CV18 LO-Byte
14
.db 0x00, 0xFF ; CV19 Consist und CV20 Frei
15
.db 0xFF, 0xFF ; CV21 Frei und CV22 Frei
16
.db 0xFF, 0xFF ; CV23 Frei und CV24 Frei
17
.db 0xFF, 0xFF ; CV25 Frei und CV26 Frei
18
.db 0xFF, 0xFF ; CV27 Frei und CV28 Frei
19
.db 0x00, 0xFF ; CV29 Configuration Data und CV30 Frei
Musst natürlich auch die EEP-Datei mit in den Controller übertragen...
...
Guten Morgen,
Danke für die Antwort.
Die CV Standardwerte habe ich mittlerweile auch gefunden, sie stehen
halt ganz am Ende vom Code. Allerdings wird bei mir keine eep Datei beim
Kompilieren erstellt.
Die CKDIV8-Fuse ist definitiv nicht das Problem, denn wenn ich nur diese
Fuse ändere gibt es kein Problem.
Gruß,
Niklas
Niklas Freeman schrieb:> Allerdings wird bei mir keine eep Datei beim> Kompilieren erstellt.
Wenn der Quelltext ein Eeprom-Segment enthält, sollte auch eine
EEP-Datei assembliert werden. Ist dies nicht der Fall, dann bedienst Du
Dein AVR-Studio falsch.
Niklas Freeman schrieb:> Die CKDIV8-Fuse ist definitiv nicht das Problem, denn wenn ich nur diese> Fuse ändere gibt es kein Problem.
Na denn ist's ja gut...
...
Nik schrieb:> Ich werde mal mein Projektordner nach einigen anschaulichen Dateien> durchforsten, muss aber noch anmerken, dass ich in diesem Forum wohl ein> bisschen ein Exot bin, da ich in C programmiere und> Silabs-Mikrocontroller (z.B. den C8051F310, siehe> http://www.silabs.com/public/documents/tpub_doc/dsheet/Microcontrollers/Small_Form_Factor/en/C8051F31x.pdf)
> verwende. Diese Chips sind extrem leistungsfähig (bis zu 25 MIPS) bei> bloss 5mA, verfügen selbst bei winzigen Massen (ab 3 x 3 mm) über ein> grosses Repetoire an integrierter peripherer Hardware (PWM, ADC, SPI> etc.) und können dank JTAG built-in-programmiert und debugged werden.>> Doch bevor ihr fragt: nein, ich werde nicht von Silabs gesponsert! :)> Ich bin nur sehr begeistert von den kleinen Chips, das ist alles. Aber> ich muss auch zugeben, dass ich noch nicht allzu viele andere Mikros> genauer unter die Lupe genommen habe; ich lasse mir also gerne die> Vorzüge der Amtel-Chips erklären. :)>> Gruss, Nik
Erst einmal bitte ich um Entschuldigung diesen Thread zu exumieren, aber
mich würde interessieren ob NIK (Gast) hier noch zu erreichen ist.
Mich würde interessieren ob aus der Erfahrung mit den Silabs 8051
Derivaten in Hinsicht auf DCC etwas erstanden ist auf dass man
zurückgreifen könnte.
Leider überschneided sich DCC stark mit dem C-Compilerenvironment SDCC
womit unter der Fülle an Links zu letzterem mögliche Spuren auf eine DCC
Protokoll ziemlich untergehen...
Alle Sachdienlichen Hinweise werden mehr oder weniger vertraulich
behandelt ;)
Gruß aus LA(ndshut)
Bergy
Moin aus Hamburg,
Ich bin auch ein Freund von Parsic.
Gibt es schon einen Encoder also ein kleines Programm welches DCC schon
"lesen"kann.? Ich hätte es gern in Parsic um es besser verstehen zu
können.
Danke für eine Rückmeldung.
Tschüß Lemmi