Forum: Mikrocontroller und Digitale Elektronik Kann jemand ATMEGA für mich programmieren/brennen?


von Markus O. (mc_oyzo) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich besitze eine Licht- und Effektesteuerung namens „Railux“ welche 
leider vor ca. 10 Jahren eingestellt wurde. Es gibt keinerlei Support 
mehr. Ich kann damit per PWM 32 Ausgänge ansteuern und diese mittels 
sogenannten Triggern fast grenzenlos nach eigenem Geschmack 
konfigurieren (bei mir teilweise komplex u.a. brennende Fabrik 
(Rauchgenerator mehr/weniger Rauch bzw. Luftzufuhr, alles zeitl. 
gesteuert))

Mein Problem:
Meine vorhandenen Prozessoren für den sogenannten "RLD Decoder" 
–freundlicherweise von einem Modellbahnkollegen für mich gebrannt- 
scheinen einen Fehler zu haben:
Diese speichern geschriebene, also geänderte Daten nicht ab. Die 
Steuerung funktioniert also nur, so lange die Stromversorgung nicht 
abgeschaltet wurde. Schalte ich auch nur für einige Sekunden ab, hat das 
System alle Daten vergessen :-(
Das darf natürlich nicht sein.

Ich als Modellbauer habe keine Kenntnisse bzgl. Prozessoren brennen und 
traue mir das auch nicht zu.

Meine Frage daher:
1.) Kann mir jemand preisgünstig (natürlich gg. angemessene 
Aufwandserstattung) die benötigten Prozessoren besorgen und 
„Programmieren/brennen“, pro Platine werden je 1 Stück ATMEGA32-16PU 
(DIL40) / ATMEGA8-16PU (DIL28-3) benötigt.
1.1.) Kann man die vorhandenen Prozessoren verwenden und „drüberbrennen“ 
oder besser gleich neue nehmen?
2.) Erstmal nur 1 Satz zum prüfen bei mir, wenn OK benötige ich je 14 
Stück

3.) Man müsste prüfen, ob die Angaben der „Fuses“ richtig sind, 
möglicherweise hat sich hier ein Fehler eingeschlichen

Die Programmdateien (Hex u. eep-Dateien), Schaltpläne, Platinenlayouts 
und Bauteillisten wurden vom Hersteller veröffentlicht (nur zum priv. 
Gebrauch versteht sich). Benötigt werden zum brennen wohl nur hex & eep 
oder?

Angabe zu „Fuses“ bereits vorab sh. Anhang.

Freue mich über Rückantworten
Markus

: Bearbeitet durch User
von Ingo Less (Gast)


Lesenswert?

Das „Brennen“ selber ist kein Problem. Aber den Fehler kann man ohne die 
originalen Sourcen (Assembler, C und was weiss ich) nicht beheben...

von Alex D. (daum)


Lesenswert?

Markus O. schrieb:
> scheinen einen Fehler zu haben: Diese speichern geschriebene, also
> geänderte Daten nicht ab. Die Steuerung funktioniert also nur, so lange
> die Stromversorgung nicht abgeschaltet wurde.

Werden die Daten denn im ATMega gespeichert, oder ist da noch ein 
externer EEPROM oder Flash auf der Platine? Es könnte sein, dass der 
Speicher schon seine Schreibzyklen erreicht hat, dann bringt ein neuer 
Controller auch nichts.

von c-hater (Gast)


Lesenswert?

Markus O. schrieb:

> 3.) Man müsste prüfen, ob die Angaben der „Fuses“ richtig sind,
> möglicherweise hat sich hier ein Fehler eingeschlichen

Das dürfte mit einiger Wahrscheinlichkeit das eigentliche Problem sein.

Vermutlich ist der BrownOut-Detektor nicht oder nicht korrekt 
konfiguriert und deswegen wird entweder bei Verlust der Versorgung oder 
bei deren Wiederkehr der EEPROM-Inhalt korrumpiert.

Es müssten also wohl nur die BOD-Fuses korrekt gesetzt werden und 
maximal sicherheitshalber noch der Inhalt der originalen *.eep-Datei 
erneut in den Controller "gebrannt" werden, um im EEPROM für einen 
definierten initialen Inhalt zu sorgen (gute Programme sollten den 
selber herstellen, wenn sie einen korrupten Inhalt erkennen, vermutlich 
passiert bei dir auch genau das).

von Chris R. (hownottobeseen)


Lesenswert?

Hallo Markus,

in welcher Region bist du?

Wenn du wirklich AVRs in mehreren Fuhren programmiert haben willst, 
amortisiert sich ein einfacher AVR-Programmer wie der USB-ASP (einfach 
auf eBay suchen, mit Versand aus Deutschland tw. unter 5 Euro) bereits 
aufgrund der Hin- und Zurück-Versandkosten.

Ich glaube, nur wenn jemand hier im Forum quasi vor deiner Haustür 
wohnt, lohnt sich "Fremdflashen" so richtig.

Die Frage nach dem Root-Cause (warum das Speichern nicht geht) ist 
sicherlich auch interessant.

HTH

Chris

von max123 (Gast)


Lesenswert?

Du brauchst wahrscheinlich einen Parallelprogrammer, wie den STK500.
GIB UNS den CODE. Denke mit CodeVisionAVR von
www.hpinfotech.ro
Products/Downloads und Evaluation Version
würde ich übersetzen und programmieren.

von HildeK (Gast)


Lesenswert?

max123 schrieb:
> Denke mit CodeVisionAVR von
> www.hpinfotech.ro
> Products/Downloads und Evaluation Version
> würde ich übersetzen und programmieren.

So wie ich das verstanden habe, hat er doch gar keine Quellen - oder?

Was noch zu klären wäre:
- hat der TO einen funktionierenden Prozessor?
Wenn ja, dann müsste dieser als Quelle herhalten, daraus den *.elf mit 
allen Inhalten (z.B. mit STK500) und auf neue / neuwertige Prozessoren 
brennen. Das geht in einem Rutsch.

- werden die NV-Daten im Prozessor (EEPROM) abgelegt oder extern? Die 
Frage gab es schon.

- müssen EE-Daten überhaupt mit initialen Daten gefüllt werden oder wird 
da nur was abgelegt, wenn der Nutzer seine Einstellungen ändert? Falls 
ersteres zutrifft, dann wird bei jedem Programmieren des Codes auch das 
EEPROM gelöscht; man muss entweder die Reihenfolge einhalten (EE als 
zweites Brennen) oder zumindest die EESAVE-Fuse setzen, nachdem das EE 
befüllt worden ist.

Markus O. schrieb:
> Meine Frage daher:
> 1.) Kann mir jemand preisgünstig (natürlich gg. angemessene
> Aufwandserstattung) die benötigten Prozessoren besorgen und
> „Programmieren/brennen“, pro Platine werden je 1 Stück ATMEGA32-16PU
> (DIL40) / ATMEGA8-16PU (DIL28-3) benötigt.
Das ist viel verlangt: Es wäre deine Aufgabe, das Rohmaterial zu 
besorgen und zur Verfügung zu stellen.

> 1.1.) Kann man die vorhandenen Prozessoren verwenden und „drüberbrennen“
> oder besser gleich neue nehmen?
Das wäre definitiv mein erster Versuch!

> 3.) Man müsste prüfen, ob die Angaben der „Fuses“ richtig sind,
> möglicherweise hat sich hier ein Fehler eingeschlichen
Sieht eigentlich richtig aus, bis auf die genannte Problematik mit 
EESAVE.

von HildeK (Gast)


Lesenswert?

HildeK schrieb:
> daraus den *.elf mit
> allen Inhalten (z.B. mit STK500) und auf neue / neuwertige Prozessoren
> brennen. Das geht in einem Rutsch.

Kleine Korrektur:
daraus den *.elf mit allen Inhalten (z.B. mit STK500) *erstellen und 
abspeichern* und auf neue / neuwertige Prozessoren brennen. Das geht 
mit dem ELF-File in einem Rutsch.

von Markus O. (mc_oyzo) Benutzerseite



Lesenswert?

Ich versuche mal die Fragen zu beantworten. Bitte habt dafür 
Verständnis, dass ich die hier zwischen Euch genannten Fachbegriffe 
nicht verstehe.

> - hat der TO einen funktionierenden Prozessor?
Ja, einen Satz funktionierende IC’s habe ich da (falls man damit die 
Daten quasi kopieren könnte)

> - werden die NV-Daten im Prozessor (EEPROM) abgelegt oder extern?

Kein externer Speicher, nur der Haupt(ATMEGA32)- und Subprozessor 
(ATMEGA8)
Deswegen macht es aus meiner Sicht auch nur Sinn, diese immer gemeinsam 
als einen Satz zu betrachten.
Wie die 2 IC’s miteinander zusammenarbeiten, entzieht sich meiner 
Kenntnis.
(Bauteil/Bestückungsplan sh. Anlage)

> - müssen EE-Daten überhaupt mit initialen Daten gefüllt werden[...]
Das kann ich mangels Kenntnis leider nicht beantworten, aus der vom 
Hersteller zur Verfügung gestellten Programmieranleitung (sh. Anlage) 
ergibt sich eine solche Vorgehensweise ("doppeltes brennen") für mich 
nicht.


Programmiert wurde seinerzeit wohl mit einem Profiwerkzeug (E-Lab) in 
Pascal und Assembler

Sofern ein "Überbrennen" der Prozessoren möglich ist, dann natürlich 
gleich alle auf einmal ;-(

Bzgl. Rohmaterialien besorgen:
Jemand von Fach wäre mir 1000x lieber, weil z.B bei Rei* gibt es keinen 
ATMEGA32-16PU, nur welche mit anderer Bezeichnung als in der 
Hersteller-Stückliste. Da bestell ich evtl. was total falsches weil ich 
mich nicht auskenne.

Hoffe, ich habe keine Frage vergessen

PS:
Es geht mir nicht darum, den letzten Euro zu sparen, DHL kostet nur € 
7,00 aber selber programmieren- echt nicht, weil in englisch & keine 
Ahnung von der Materie… das kann doch nicht gut gehen...

Noch eine kurze Funktionsbeschreibung:
Auf dem Windows PC bearbeitet man die Ausgänge/Eingänge/Modellbahnuhr 
usw im sogenannten „RLX-Explorer“ (z.B. Ausg. 1 soll PWM 204 für 3 Sek, 
dann PWM 255 für 1 Sek, Rücksprung zu Schritt 1).
Die Daten schickt man dann per RS232 Kabel an eine sogenannte 
„RLI-Zentrale“ welche diese dann zum entsprechenden „RLD-Decoder Nr.xx“ 
schickt. Dort reagiert dann eine Led am Ausgang 1 entspechend. PC & 
Explorer sind nur zum ändern erforderlich, der Decoder arbeitet quasi 
autark.

von Andreas M. (amesser)


Lesenswert?

Markus O. schrieb:
> Bzgl. Rohmaterialien besorgen:
> Jemand von Fach wäre mir 1000x lieber, weil z.B bei Rei* gibt es keinen
> ATMEGA32-16PU, nur welche mit anderer Bezeichnung als in der

Die Best-Nr. "ATMEGA 32-16 DIP" ist der ATMEGA32-16PU. Sieht man unter 
dem Punkt "Artikelnummer des Herstellers" (Das "P" steht z.B. für DIP)

> Hersteller-Stückliste. Da bestell ich evtl. was total falsches weil ich
> mich nicht auskenne.
>
> PS:
> Es geht mir nicht darum, den letzten Euro zu sparen, DHL kostet nur €
> 7,00 aber selber programmieren- echt nicht, weil in englisch & keine
> Ahnung von der Materie… das kann doch nicht gut gehen...

Ich kann Dir das machen. Gerne auch mit den vorhandenen Prozessoren. 
Alles weitere per PM/eMail.

Andreas

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.