PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : programm auf AVR überspielen



zumgwadrad
27.10.2006, 13:24
Hallo!
Bin in der AVR Programmierung relativ unbedarft! Habe jetzt mal was geschrieben und würde das gerne auf meinen ATMEGA128 bringen!
Habs jetzt mit WinAvr versucht eine hex file zu erstellen die ich dann mit ponyprog flashen will! Aber irgendwie krieg ich das mit der makefile nicht hin!
da ist zwar dieses mfile prog dabei aber irgendwie will des nicht hinhauen!
denn wenn ich dort meine sorce-codes eingebe kommt immer die meldung: Oops, SRC not found.
Bin hier echt am verzwiefeln!!
Vielen Dank schonmal!

morres
27.10.2006, 14:54
Wenn du das AVR Studio nimmst und es damit kompilierst, musst du dich nicht selbst um Makefiles kümmern. Die ausgegebene Datei kannst du dann entweder direkt im AVR Studio mit nem JTAG (o.ä.) überspielen oder du nimmst PonyProg über SPI.

mfg
morres

Micro5
27.10.2006, 15:22
Hallo

wie schon gesagt wurde, wenn du das AVR Studio benutzt, dann wir das .hex- File automatisch von dem Programm erstellt. Du findest es dann in dem Ordner deines Projekts in dem Unterordner default. Dort müssten sich dann auch noch Dateien mit der Endung .o (eventuell mehrere, je nach Programm, Headerfiles und c- Dateien), .eep und .elf befinden. In AVR Studio und PonyProg musst du dann natürlich auch den richtigen Controller einstellen, ich denke, dass du das gemacht hast, oder?

Gruß micro5

zumgwadrad
29.10.2006, 18:58
Hi,
vielen Dank für die Antworten, war des we off deswegen erst jetzt die Reaktion. Dann muss ich morgen nochmal mein AVR-Studio genauer unter die Lupe nehmen!
Werde mir wohl erstmal ne neue Version ziehen, habe aktuell Ver. 3.55.
Habe mich des letzte mal vor drei Jahren mit AVRs beschäftigt muss jetzt erstmal wieder einsteigen!
Werde mich also nächste Zeit öfters mal melden!
Schönen Abend noch!

petterson
30.10.2006, 18:30
Hallo,
Da ich in etwa das selbe Problem wie 'zumgwadrad' hab dacht ich, ich schildere in diesem Thread auch mal mein Problem.

Ich bin ebenfalls AVR-Neuling und versuche gerade verzweifelt meinem AT90S2313 leben einzuhauchen.
Der Controller steckt auf einem selbstgebauten Testboard (aus "RN-Wissen: AVR-Einstieg leicht gemacht" nachgebaut) und soll über das RN AVR-ISP-Programmierkabel programmiert werden.

Für's erste wollte ich eine LED am Pin PD6 leuchten lassen, also PD6 auf "High" setzten (oder?).
Mein C-Quell-Code dazu sieht folgendermaßen aus:

--------------------------------------------
#include <avr/io.h>

int main(void)
{ DDRD = 0xff;
PORTD |= (1<<PD6); }
--------------------------------------------

Ich hab das Programm mit AVR-Studio4 compiliert (WinAVR ist ebenfalls installiert) und das ging auch problemlos, allerdings krieg ich das dabei entstehende .hex file nicht auf den AVR geschrieben.
Immer wenn ich mit PonyProg meine .hex datei in den flash des AVR schreiben möchte, oder irgendwelche anderen zugriffe auf den speicher machen will (z.B. einfach alles löschen), erscheint nach 2-3sek ein Fenster mit folgender Fehlermeldung:

"Falsches oder Fehlendes Device (-24)"

Was muss ich ändern um auf den AVR zugreifen zu können??
Wo liegt evtl. mein Fehler??

Über schnelle Hilfe würd ich mich freuen.

Gruß, Petterson

SprinterSB
30.10.2006, 18:56
Bist du sicher, daß Pony diesen Progger unterstützt?

Ich hab in dem Artikel mal nen Link dazu gemacht:
https://www.roboternetz.de/wissen/index.php/AVR-ISP_Programmierkabel#Web-Links

petterson
30.10.2006, 19:01
Hmm, also sicher bin ich mir nicht ob Pony den Programmer unterstüzt.
Der Test unter 'Hardware-Setup' hat allerdings funktioniert.

Welche Software unterstüzt den RN ISP-Programmer den auf jeden Fall?
Muss ich ausschließlich das .hex file in den flash schreiben??

SprinterSB
30.10.2006, 19:12
Ja, es ist nur das hex-File. Evtl noch ein extra File für den EEPROM, aber bei deinem Beispiel brauchts das nicht.

Keine Ahnung, welche Software du dafür brauchst... Ich hab diesen Adapter nie verwendet, ist mit zu kompliziert. Womöglich BASCOM?

Oder frag mal den Autor des Artikels. Ist ja blöd, wenn man sich die Mühe macht das Ding nachzubauen und dann passt's nicht auf die Software, weil man denkt es gibt nur ein einziges Progger-Design oder so...

Da du Windows fährst hast du wahrscheinlich ein WinWVR. Und da ist ein avrdude dabei. Der unterstützt *viele* Adapter, ist aber nicht so komfortabel wie Pony. Schau duch mal in das avrdude.conf, ob du da deinen Adapter findest. Steht in

<WINAVR_INSTALL_DIR>/bin/avrdude.conf

petterson
30.10.2006, 19:45
Also im Artikel zum RN ISP-Programmer steht, er sei zu dem von Pony unterstützten STK200 kompatibel (der steht auch in der avrdude.config).

BASCOM basiert doch auf Basic oder? Ich wollt eigentlich C programmieren.

Autor ist leider keiner angegeben.

Muss ich am parallelport vielleicht irgendwelche speziellen konfigurationen vornehmen oder sowas?

Ich bin am Überlegen ob ich vielleicht mal nen Versuch mit Bascom starten soll. Ist die Programmierung vom AVRs mit Basic (auch bei komplexeren Programmen) im Vergleich zu C deutlich nachteilhafter???

@ SprinterSB: Vielen Dank schonmal für die Mühe und die schnelle Antwort.

Also bisher funktioniert die Übertragung leider noch nicht.
Würde mich natürlich weiterhin über Tipps/ Hilfe freuen.

Hubert.G
30.10.2006, 20:07
@petterson
Der Programmer funktioniert mit PonyProg.
Den 2313 hat du eingestellt, Spannungsversorgung ist ein. Die Parallele Schnittstelle muss bidirektional eingestellt sein, ist sie standardmässig auch.
Bei komplexeren Programmen stösst man mit BASCOM schnell an die Grenzen.

petterson
30.10.2006, 20:39
Ich hab sowohl bei Pony den 2313 eingestellt als auch meine Schnittstelle auf bidirektional (hab extra im bios geschaut), spannung liegt ebenfalls an (5V geregelt).
Was mach ich falsch?

Ich werd jetzt auf jeden Fall nochmal eingehend die Schaltung checken...

petterson
30.10.2006, 21:33
Welcher Anschluss am ISP-Stecker des Programmers ist auf den äussersten Port (roter Draht am Flachband) gelegt??

Hubert.G
30.10.2006, 21:53
Das ist schwierig zu sagen, da jeder das Kabel anders auflegt. Kontrolliere es von den Pin des IC im Prog her und dann weiter zu den Pin des AVR. Am besten wenn alles zusammengesteckt ist, einfach eine Durchgangsprüfung machen. Ist etwas aufwendig, aber dann kannst du dir sicher sein das zumindest das stimmt. Auf dem IC im Prog müssen auch die 5V sein.

Cluni
31.10.2006, 07:53
"Falsches oder Fehlendes Device (-24)"
das hört sich nach einem fehlenden Eintrag im Makefile an. Hast du dort den µController eingetragen?!

Gruß, Bernd

zumgwadrad
31.10.2006, 09:50
Hi!
du musst natürlich erstmal den richtigen Port einstellen, aber unter Windows2000 z.B. kommt weiterhin der Fehler, wie auch bei mir, einfach ignorierenund dann schreibt der schon! Geht bei mir auch so!


So zurück zu meinem Problem:
Also ohne Makefile geht bei mir nix, hab mir etz mal eine gebastelt und bin aktuell bei dieser:
avr -gcc -mmcu=atmega128 -g -Wall -Wstrict-prototypes -Wa, -ahlms=main.lst -c main.c
process_easy:DuplicateHandle(In)failed(e=6)


Fehlermeldung.
Habe gerade herausgefunden das ich wenn ich meine Source-Datei in meinem AVRStudio mit der rechten Maustaste anklicke dann kann ich Compile anwählen, alles schön und gut aber dann kommt die Meldung:
Error creating process
Das System kann die angegebene Datei nicht finden
Bitte Hilfe

Simon93
31.10.2006, 15:23
Hi,
@ Petterson:
Ich habe das RN-Control und programmiere es mit
dem gleichen Programmer.
Ich habe genau das gleiche problem... :(
Schau mal hier (https://www.roboternetz.de/phpBB2/viewtopic.php?t=22966).
Ich benutze Bascom zum Fuses setzen und AVRDude gui (http://sourceforge.net/project/showfiles.php?group_id=125549) zum programmieren.

Gruß Simon

SprinterSB
31.10.2006, 17:51
Es muss heissen avr-gcc, nicht avr -gcc

zumgwadrad
02.11.2006, 07:42
Hi,
sorry hatte mich beim Fehler nur vertippt, es hieß auch avr-gcc.
Habe jetzt aus lauter verzweiflung einfach mal des Leerzeichen in der Makefile gesetzt und es kommt der gleiche fehler, also irgendwie scheint diese Zeile garnicht als Befehl erkannt zu werden.
Ich raste noch aus hier.

zumgwadrad
02.11.2006, 08:47
Hi,
ich nochmal. War nicht untätig habe jetzt unter WinAVR dei Methode von www.dirkbaumann.de/html/software.html ausprobiert. Jetzt wird wenigstens mal der compiler aufgerufen! Yay! Problem jetzt ist das er schon die AVR-Standards wie z.B. avr/io.h und stdlib.h nicht erkennt und mir dementsprechend viele Fehler ausspuckt!
Was ist hier nur los!

SprinterSB
02.11.2006, 16:00
Haste nen TAB an den Zeilenanfängen? Bei make ist TAB was anderes als SPACE.

Wenn
#include <avr/io.h> einen Fehler gibt, dann ist dein WinAVR nicht richtig installiert.

petterson
03.11.2006, 15:21
Hallo ich bin's nochmal.

Also ich hab sämtliche Ratschläge und Tipps ausprobiert und versucht den Controller in C mit PonyProg, AVR-Dude, AVR-Studio (also eigentlich auch AVR-Dude) und mit AVR-Dude gui zu programmieren.
Hat aber leider alles nicht funktioniert!

Aus lauter verzweiflung hab ich dann versucht gemäß dem RN-Wiki
"AVR Einstieg leicht gemacht" https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht
ein kleines Basic Programm mit BASCOM auf einen AT-Mega32 zu schreiben (anstatt meinem AT90s2313) und hab dafür sogar extra ein neues Controllerboard gebastelt um mögliche Hardware-Bugs ausschließen zu können.

Hab mich genau an die Anleitung gehalten und alles 5mal kontrolliert,
hat aber leider wieder nicht geklappt , weil ich (wie bei meinem ersten Board) einfach keinen Zugriff auf den Controller bekomme. :(

Mein ISP-Programmier Adapter hab ich beim RN-Shop gekauft, das müsste also theoretisch funktionieren.
Wie kann ich das Teil denn auf Fehler überprüfen (habs mal geöffnet und konnte nix offensichtliches feststellen, Spannung am IC war auch da)????

Oder ist mein Parallelport vielleicht kaputt???

Hab mittlerweile echt ne Menge Zeit und Energie da reingesteckt und würde jetzt wirklich gern mal richtig loslegen.
Hat jemand ne Idee was ich noch machen muss damit ich den Controller endlich programmieren kann???

Gruß Petterson

Cluni
03.11.2006, 16:03
Ähm - evtl. ist der Parallelport in dem BIOS deines Boards faslch konfiguriert. Denke mal, dass der auf "normal" stehen muss. Bin mir aber nicht sicher - probier einfach mal alle Möglichkeiten durch (falls du das noch nicht probiert hast...)!

Gruß, Bernd

SprinterSB
03.11.2006, 16:13
Da du schon so fit bist, selber Boards zu bauen...

Vielleicht hängts wirklich am Parallelport. Falls du einen COM-Port hast, wirst du fit genug sein, einen seriellen Progger zusammen zu stöpseln. Je weniger Bauteile, desto weniger Fehlermöglchkeiten. Du brauchst ein paar Widerstände und Zenerdionde, das wars. Und am besten ein Steckbrett, nicht billig, aber lohnend. Meine Anmerkungen in dem Artikel sind inzwischen wieder verschwunden. Mich dünkt, der Artikel dient vornehmlich der Promotion von RN-Produkten und weniger dem Informationssuchenden.
Wenn du das aufbaust verwendest du am besten avrdude und schaust im *.conf nach, ob die Portbelegung *wirklich* mit deinem Adapter übereinstimmt. Der Progger heisst dann "serial port bang" oder so, konfiguriert werden müssen 4 Signale und deren Polarität: (RESET, MISO, MOSI, SCK). Pony: Ein Schaltplan für den SI-Prog ist dabei. Den speckst du ab auf das was du brauchst, den LM2940/2936 brauchst auch net. Mit dem seriellen Billig-Adapter hatte nich noch nie Huddel. Bei langen Leitungen machst du noch 100pF zwischen die Signale und GND und gut ist. Wenn du magst geht auch ein MAX232. Wie gesagt, Probleme hatte ich noch nie damit. Ich benutz den seit ich auf AVR bin (2 Jahre oder so) und alles lebt immer noch, abwohl ich den aus Faulheit oft unter Spannung an- und abstecke und auf dem einem Röhren-Board sogar bis 200V laufen. Das mit dem Billig-Adapter=böse ist Humbug, s.o. Der COM ist kurzschlussicher. Und wenn ich ne Schaltung, egal wie sicher die auch ist, an den PC stecke und es gibt ne ESD weil einer nicht geerdet ist, zerbröselt das ebenso den Parallel.

petterson
04.11.2006, 20:07
Vielen Dank schonmal!

Hab jetzt übers Wochende leider keine Zeit, werde mich aber im Laufe nächster Woche mal dransetzten und so'n Seriellen Programmer alla Ponys' SI-Prog basteln, scheint ja wirklich kein Hexenwerk zu sein ;-).
Ich hoff mal das ich noch n paar Z-Dioden finde...

Gruß Peter

SprinterSB
05.11.2006, 13:33
Hexenwerk ist es wahrlich nicht. Das einzige was du brauchst ist nen COM-Port oder Parallel, und zwar physikalisch (nicht virtuell via USB).
Anstatt Zener gehen am COM auch ein MAX232 o.ä. wenn du einen hast und am Parallel ein Bustreiber.

FSTII
22.11.2006, 16:46
"Falsches oder Fehlendes Device (-24)"


@petterson: hast du mittlerweile schon irgendwelche Fortschritte gemacht? Wir haben nämlich zur Zeit das gleiche Problem beim flashen eines Atmega128.
Wahrscheinlich liegt der Fehler aber daran, dass die Fusebits falsch gesetzt wurden, oder durch eine falsche Einstellung geändert worden sind.
Allerdings wissen wir noch nicht genau, wie wir diesen Fehler beheben können. Falls wir auf dem falschen Weg sind, oder eine Lösung haben, sag ich bescheid.

Gruß Matthias

zumgwadrad
22.11.2006, 17:28
Hi,
schonmal mit "Ignore" versucht, des hat bei mir auch funktioniert!
Ist bei Windoof 2000 z. B. ein bekanntes Problem!
Viel Erfolg

FSTII
22.11.2006, 17:35
Hi zumgwadrad,
haben wir auch schon versucht. Ponyprog tut auch so, als würde es lesen bzw.schreiben, macht es aber nicht.

Trotzdem danke für den Tip.

zumgwadrad
22.11.2006, 17:46
Hi
wie meinst du tut so?
Rechnet des ein bisschen und dann kommt wieder die gleiche meldung?
Oder macht des nach dem Ignorieren weiter und schreibt zu 100%.
Weil wennes des macht dann sollte eigentlich was drinstehn in deinem Speicher. Kannst ja nachm schreiben nochmal auslesen und wenn dann nicht nur FF überall steht dann hats schon geklappt!
Ansonsten vielleicht mal die online-hilfe bequemen die ist nichma so schlecht, vor allem des FAQ-Zeug.
Viel Erfolg noch!

FSTII
22.11.2006, 17:59
Wenn ich was schreiben will und dann auf ignorieren gehe, rechnet des als würde es wirklich schreiben und schließt dann auch ohne Fehlermeldung ab. Will ich den Speicher aber dann auslesen kommt wieder die bekannte Fehlermeldung. Ignorieren wir auch diese, wird der Speicher "ausgelesen" steht überall nur FF.

Gruß Matthias

zumgwadrad
22.11.2006, 18:45
OK,
das ist komisch! Weil wenn der schreibt und liest nach ignore dann sollte des eigentlich schon gehen, so war des auf jeden bei mir, bevor ich auf XP umgestiegen bin da macht der nämlich keinen Alarm mehr.
Komisch komisch!!
Da fällt mir etz echt nix zu ein, ausser :MistPC