Forum: Mikrocontroller und Digitale Elektronik Programmierung eines Attiny2313 für einen DMX-Demultiplexer


von Josef S. (nobo01)


Angehängte Dateien:

Lesenswert?

Liebe Forenmitglieder,

ich hatte bis Dato noch wenig mit Mikrocontroller und deren 
Programmierung zu tun.
Als Einstieg möchte ich ein bereits bestehendes Projekt umsetzen, 
welches aus 2005 ist.
Leider sind die im Projekt angegebenen Tools und der SB-Programmer nicht 
mehr mit der aktuellen PC-Hardware(Win10) zu betreiben.

http://www.digital-enlightenment.de/demux.htm

Es geht um die Programmierung eines Attiny2313 welcher in einem 
DMX-Demultiplexer seinen Dienst verrichten soll. Der 
Quellcode(Assembler) sowie eine Hex-Datei sind vorhanden wobei das 
Hex-File kein Intel HEX ist.  Ich habe weder die Möglichkeit den 
Quellcode zu Kompilieren noch das Firmware.hex in ein für Atmel Studio 7 
funktionierendes Format zu bekommen.
Ich habe mit der Boardsuche bereits einen anderen User gefunden der am 
gleichen Projekt mehr oder minder gescheitert ist.

In die Welt der Mikrocontroller habe ich mich schon etwas eingelesen und 
werde auch damit weiter machen. Aber nachdem ich bereits alle Bauteile 
vorrätig habe und das Projekt erfolgreich abschließen möchte, hoffe ich 
mir wird hier von den Profis geholfen und nicht nur auf die einschlägige 
Hilfe verwiesen.

Als Programmer habe ich einen Diamex Programmieradapter AVR All-AVR 7203 
welcher als AVRISP MKII im Atmel Studio angezeigt wird.
Den Attiny2313 kann ich auch auslesen, somit sollte eine Programmierung 
funktionieren, vorausgesetzt der Code passt.

Auch die im Projekt angegebenen Fuses sind mir ein Rätsel, da im 
Projektbild(Fuses) viel mehr angegeben sind als im Atmel Studio 
vorhanden sind.
Das Assembler-File sowie die HEX-Datei und das Bild der Fuses lade ich 
hier am besten mal hoch.

Würde mich sehr über Hilfe freuen.

Vielen Dank schon mal im Voraus

Grüße
Josef

von Jim M. (turboj)


Lesenswert?

Josef S. schrieb:
> Auch die im Projekt angegebenen Fuses sind mir ein Rätsel, da im
> Projektbild(Fuses) viel mehr angegeben sind als im Atmel Studio
> vorhanden sind.

Das ist die bei Atmel übliche Invertierung. Gesetzte Fuse hat den 
Bit-Wert 0(Null).

Es ist im Bild nur die SPIEN Fuse gesetzt, die IIRC für ISP nötig ist.

Josef S. schrieb:
> Ich habe weder die Möglichkeit den
> Quellcode zu Kompilieren noch das Firmware.hex in ein für Atmel Studio 7
> funktionierendes Format zu bekommen.

Hast Du Dir das Hex File mal in 'nem Text Editor angeschaut? Das ist 
einfach

Word-Addresse:Hex_wert(16-Bit)

und sollte für einen Programmierer eine Fingerübung sein, das in ein 
Binary zu verwandeln.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Josef S. schrieb:

> Leider sind die im Projekt angegebenen Tools und der SB-Programmer nicht
> mehr mit der aktuellen PC-Hardware(Win10) zu betreiben.
>
> http://www.digital-enlightenment.de/demux.htm

Da gibt es passende aktuelle, auch preiswert.

> Es geht um die Programmierung eines Attiny2313 welcher in einem
> DMX-Demultiplexer seinen Dienst verrichten soll. Der
> Quellcode(Assembler) sowie eine Hex-Datei sind vorhanden wobei das
> Hex-File kein Intel HEX ist.  Ich habe weder die Möglichkeit den
> Quellcode zu Kompilieren noch das Firmware.hex in ein für Atmel Studio 7
> funktionierendes Format zu bekommen.

Ich schon ;-)

> Ich habe mit der Boardsuche bereits einen anderen User gefunden der am
> gleichen Projekt mehr oder minder gescheitert ist.

Ohje. Vielleicht hätte der mal fragen sollen?

> Als Programmer habe ich einen Diamex Programmieradapter AVR All-AVR 7203
> welcher als AVRISP MKII im Atmel Studio angezeigt wird.

Gut!

> Den Attiny2313 kann ich auch auslesen, somit sollte eine Programmierung
> funktionieren, vorausgesetzt der Code passt.
>
> Auch die im Projekt angegebenen Fuses sind mir ein Rätsel, da im
> Projektbild(Fuses) viel mehr angegeben sind als im Atmel Studio
> vorhanden sind.

Naja.

> Würde mich sehr über Hilfe freuen.

Siehe Anhang. Das compilierte Hex-File und des ELF-File, dort sind die 
Fuses auch gleich mit drin.

von Falk B. (falk)


Lesenswert?

Jim M. schrieb:

> Hast Du Dir das Hex File mal in 'nem Text Editor angeschaut? Das ist
> einfach

Aber sinnlos.

> Word-Addresse:Hex_wert(16-Bit)
>
> und sollte für einen Programmierer eine Fingerübung sein, das in ein
> Binary zu verwandeln.

Er ist kein Programmierer! Und warum liefert jemand so ein exotisches 
Format ab? Ist der Standard zu einfach?

von Josef S. (nobo01)


Lesenswert?

WOW....ihr seit schon der Hammer :)

Erst mal vielen Dank für die Hilfe!!
Aber ich bin ja auch etwas doof, Atmel Studio kann ja auch Assembler 
Code.
Ich habe den Code in ein neues Projekt eingefügt und kompiliert, prompt 
hatte ich ein Hex-File mit dem es funktionieren könnte.

Ich habe nun das ELF-File auf den Attiny geschrieben und es scheint 
alles ok zu sein, zumindest keine Fehlermeldung. Das Teilchen ist auch 
noch im Programmer sichtbar.
Sobald ich die Schaltung fertig aufgebaut habe, berichte ich hier, ob 
alles funktioniert.

Vielen Dank nochmals für die super Unterstützung!!

Viele Grüße
Josef

von Karl M. (Gast)


Lesenswert?

Hallo,

ein ELF-File (?) wie geht das ?

von Falk B. (falk)


Lesenswert?

Karl M. schrieb:
> Hallo,
>
> ein ELF-File (?) wie geht das ?

Praktisch genau so wie ein .hex File. Im Atmelstudio gibt es dafür einen 
eigenen Tab "Production File". Dort kann man entweder eins in den 
Controller schreiben oder eines aus diversen Teilen (Flash, EEPROM, 
Fuses, Lock bits) erstellen.

von Karl M. (Gast)


Lesenswert?

Danke Falk,

ich kenne kein Atmelstudio.

Man über das GCC ELF Kompilat zu den diversenen Ausgabeformaten, .bin/ 
.hex. oder .epp kommt, ist klar.

Ich hatte Verstanden der TO schreibt direkt ein ELF Datei auf den AVR.

von Axel S. (a-za-z0-9)


Lesenswert?

Karl M. schrieb:
> Ich hatte Verstanden der TO schreibt direkt ein ELF Datei auf den AVR.

Im Endeffekt: ja. Da man ja sowieso nicht direkt auf den AVR schreiben 
kann, sondern ein Programm wie z.B. avrdude dafür verwendet, läuft es 
genau darauf hinaus. avrdude kann das Flash- und EEPROM-Image auch 
selber aus dem .elf extrahieren. Das muß man nicht mehr als extra 
Schritt machen. Angenehmer Nebeneffekt: man kann auch die Fuses mit in 
das .elf packen - das ging vorher gar nicht.

Unter dem Strich braucht man so nur noch avrdude, einen davon 
unterstützten Brenner und das .elf File.

von Karl M. (Gast)


Lesenswert?

Danke Axel S.,

für die Erläuterungen, mal lernt ja nie aus :-)

von c-hater (Gast)


Lesenswert?

Falk B. schrieb:

> Er ist kein Programmierer!

Dann sollte er keine Software-Projekte zu realisieren versuchen!

Übrigens: Niemand wurde als Programmierer geboren, man kann das schlicht 
LERNEN. Selbst Arten ohne Intelligenz sind lernfähig, der homo sapiens 
ist es in hohem Maße. Wenn nicht die pure FAULHEIT siegt...

> Und warum liefert jemand so ein exotisches
> Format ab? Ist der Standard zu einfach?

Eher: zu kompliziert. Ein Intel-Hex ist schon deutlich komplexer als das 
gezeigte Format. Und im Übrigen nichtmal wirklich ein "Standard" im 
engeren Sinne, sondern höchstens ein Quasi-Standard, wie man allein 
schon daran erkennen kann, dass es z.B. auch "Motorola-Hex" gibt, was 
zwar recht ähnlich, aber eben nicht identisch ist.

Allerdings: das gezeigte Format führt gegenüber einem simplen binären 
Image keinerlei Vorteile ein. Es ist also wirklich ziemlich hyperfluid. 
Ein entsprechendes *.bin wäre sofort verarbeitbar gewesen.

von Josef S. (nobo01)


Lesenswert?

Hallo zusammen,

ich hatte ganz vergessen das Ergebnis zu posten.
Die Schaltung(DMX-Demultiplexer) ist mittlerweile aufgebaut und 
funktioniert super.
Nochmals vielen Dank an die hilfsbereiten Leute, die mir als Neuling den 
richtigen Weg gezeigt haben, auch wenn es der ein oder andere anders 
gesehen hat.

alles Top

Viele Grüße
Josef

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.