Verzweifelung:Atmega über PonyProg beschreiben

Gast #2164626
Lesenswert?

Hallo zusammen,

habe das Forum schon durchstöpert, aber ich bekomme es nicht hin:

Folgendes Problem:

Habe mit AVR-Studio folgendes Programm geschrieben:

/[code]
#include <avr/io.h>          // (1)

int main (void) {            // (2)

   DDRD  = 0xFF;             // (3)
   PORTD = 0xFF;             // (4)
   DDRB = 0xFF;
   PORTB = 0xFF;
   DDRC = 0xFF;
   PORTC = 0xFF;
   while(1) {                // (5a)
     /* "leere" Schleife*/  // (5b)
   }                         // (5c)

   /* wird nie erreicht */
   return 0;                 // (6)
}
/[code]

Wie kann ich eigentlich die Hex-Datei erzeugen? AVR? Win Avr?

Die Hex-Datei möchte ich nun mit PonyProg 2000 übertragen.

Habe bei PonyProg Atmega32 und AVR-Micro eingestellt.
Des Weiteren habe ich wie folgt die Fusebits gesetzt.

Benutze ein 1:1 Kabel am Notebook.
Habe das Polinboard und greife über die ISP-Schnittstelle zu.

Calibrationtest wird mit ok, angezeigt.

Im Portsetup bei Pony habe ich serial-port angewählt mit com1.
Bei Probe wird ok angezeigt, aber das Schreiben ist trotzdem fehlerhaft.

Warum?

Weiß nicht mehr weiter.

Gruß
Angehängte Dateien:
Gast #2164638
Lesenswert?

flocki schrieb:

> Wie kann ich eigentlich die Hex-Datei erzeugen? AVR? Win Avr?

> Bei Probe wird ok angezeigt, aber das Schreiben ist trotzdem fehlerhaft.

Äh, ich bin jetzt etwas verunsichert. Du weißt nicht, wie Du das 
AVR-Studio dazu bringst, eine .hex Datei zu erstellen und wunderst Dich 
dann, daß Du genau diese nicht erstellte .hex nicht übertragen kannst?

Welche Fehlermeldung bekommst Du denn?

42m
Gast #2164662
Lesenswert?

>Sollte ja automatisch durch avr-studi geschehen wenn ich compiliere.

Das HEX-File wird nicht erstellt, wenn compiliert wird, sondern wenn 
"build" angefordert wird. Das sind zwei unterschiedliche Sachen. Es mag 
zwar sein, das "gewöhnlich" das bauen als compilieren bezeichnet wird 
und damit dennoch das bauen gemeint ist, aber da wir nicht wissen, wie 
erfahren Du bist, kann es sein, das Du da was falsch einschätzt.

>Leider wird die HEX-Datei nicht upgedatet. Denn das Erstelldatum steht
>immer noch auf gestern
Das HEX-File wird nur dann neu erzeugt, wenn sich im Quellcode was 
geändert hat.

Aber ich bin auch irritiert. Erst fragst Du wie das HEX-File erzeugt 
wird, dann aber weisst Du sogar wo es gespeichert ist, denn sonst könnte 
Dir das mit dem Datum ja nicht auffallen.

Bitte versuche Dein Problem etwas klarer zu beschreiben.
Gast #2164669
Lesenswert?

>so habe es mit der Hex geschafft, avr hatte mir die in default-Ordner
>abgelegt.

Nun, letzteres ist das Standard-Verhalten. Was ist daran so 
verwunderlich?

Und ich möchte Dich nochmal bitten Dich klar und verständlich 
auszudrücken. Warum erwartest Du, dass da eine LED leuchtet? Soweit ich 
den Code verstehe, sollte da garkeine LED leuchten.
Gast #2164674
Lesenswert?

Ok. tut mir leid wenn es gerade alles ein wenig verwirrend klingt.

Sie haben Recht, das die HEX-Datei über Build erstellt wird.

Hatte mich da Falsch Ausgedrückt.

Arbeite das erstemal mit AVR , Pony Prog.

Wie gesagt habe mir eine HEX-Datei mit folgenden Code erstellt:

#include <avr/io.h>          // (1)

int main (void) {            // (2)

   DDRD  = 0xFF;             // (3)
   PORTD = 0xFF;             // (4)
   DDRB = 0xFF;
   PORTB = 0xFF;
   while(1) {                // (5a)
     /* "leere" Schleife*/  // (5b)
   }                         // (5c)

   /* wird nie erreicht */
   return 0;                 // (6)
}

Nach Build, wird mir eine Hex-Datei erstellt.

Diese öffne ich mit PonyProg2000.

Anschließend führe ich write all aus.

Dann läuft der Ladebalken bis 100%.
Dann erscheint die Meldung. Write OK.

Aber man sieht das die LED nicht brennt.

Woran könnte das liegen?

Wie gesagt hatte das Pollinboard schon mal in Betrieb. Funktioniert 
also.
Gast #2164678
Lesenswert?

Ich werde das jetzt zum letzten Mal schreiben. Drücke Dich (wir Duzen 
uns hier) klar und verständlich aus.

>Aber man sieht das die LED nicht brennt.
>Woran könnte das liegen?

Es ist immer noch unklar, warum, mit welcher Begründung Du erwartest, 
das da eine LED leuchtet. Zu dieser Begründung gehört eine Beschreibung 
des entsprechenden Programmteils in Verbindung mit dem entsprechenden 
Teil des Schaltplanes.
Gast #2164682
Lesenswert?

>Auf der Pollinplatine ist eine LED angebracht, die genau am PIN des µC
>(PortD) liegt.

Das ist schon mal ein guter Ansatz.
Aber die LED hat ja zwei Anschlüsse. Wie ist der andere Anschluss 
belegt? Nicht nur klar schreiben bitte, sondern auch vollständig.
Gast #2164707
Lesenswert?

Gut. Du hast einen Schaltplan. Schön. Wenn Du ein Messgerät hast, dann 
prüfe doch einfach mal nach, ob an dem Portpin 5V, herauskommen und ob 
an der LED 5V ankommen.

Ich sehe im Moment nicht das Problem. Du hast Doch alle Informationen. 
Warum benutzt Du die nicht?
Gast #2164741
Lesenswert?

Guru schrieb:

> Das HEX-File wird nicht erstellt, wenn compiliert wird, sondern wenn
> "build" angefordert wird. Das sind zwei unterschiedliche Sachen. Es mag

Es ist sogar so - zumindest beim AVR-Studio 5 - und ich bin mir fast 
sicher, daß es beim Studio 4 auch so ist - daß die .hex nicht mal dann 
erstellt wird, wenn man einen Build macht, zumindest, so lange man nicht 
in den 'Project Properties | Build' .hex als zu erzeugendes File 
angekreuzt hat.

Das hat mich in den ersten Tagen auch einiges an Nerven gekostet :D

42m
Gast #2164820
Lesenswert?

so habe nun mal ein bißchen was gemessen und eine alternative LED mit 
Vorwiderstand mal als Überprüfung hinzu genommen.

Das Problem ist, dass die Platine schon von hinten leichte Korosion 
aufweist.

Habe das mal so gut es geht entfernt. Darüber können Fehler auftreten 
oder?

Das Problem ist, das wenn ich die Ausgänge setze, keine 5V am Pin des µC 
anstehen.

Woran kann das liegen?

Kann das durch falsche Fusebit entstehen?
Beschreiben kann ich laut Pony noch den µC.

Hat jemand eine Übersicht,wie man die Einstellung der Fusebit und die 
Einstellung für das Beschreiben des µC bein Pony einstellen muss?

Möchte erst sicherstellen, das es wirklich nicht an den Einstellungen 
liegt.

Gruß
Gast #2164832
Lesenswert?

flocki schrieb:

> Kann das durch falsche Fusebit entstehen?
> Beschreiben kann ich laut Pony noch den µC.
>
> Hat jemand eine Übersicht,wie man die Einstellung der Fusebit und die
> Einstellung für das Beschreiben des µC bein Pony einstellen muss?

Ich verstehe ganz ehrlich nicht, was Du mit den Fuses treibst.

Ich bin noch sehr neu im µC-Bereich, aber eines habe ich sehr schnell 
begriffen: Fuses fasse ich nicht an. Und wenn ich sie anfassen muss, 
dann lasse ich es bleiben und überlege mir, wie ich es vermeiden kann, 
sie zu verändern. Sowas kann sehr schnell sehr eklig werden.

Ich verwende zwar keinen nackten µC sondern ein Arduino-Board und 
programmiere den µC per ISP, aber ich vermute mal, daß man auch die 
nackigen Chips im Auslieferungszustand bzw. in einem Pollin-Board 
verwenden kann, ohne an den Fuses zu schrauben. Zumal Du irgendwie noch 
gar nicht erklärt hast, warum Du an die Fuses musst. Oder ich habs nicht 
begriffen :)

42m
#2164850
Lesenswert?

Hallo Michael,

erst die Fuse-Bits lassen die volle Funktionalität einen Atmel AVR 
'erblühen'.

Ich verwende immer den "Engbedded Atmel AVR® Fuse Calculator"

http://www.engbedded.com/fusecalc/

Da ich mit avrdude und usbasp oder usbtiny meine AVRs beschreibe, kann 
ich direkt die Ausgabe unter "AVRDUDE arguments" nutzen.

Ich denke eine PonyProg Nutzer hat nicht eine so klare Darstellung der 
Möglichkeiten die FuseBits zu nutzen und vertut sich da schneller. Ein 
Blick ins Datenblatt hilft auch eine richtige Einstellung für ein 
Problem zu finden.

Auch schreibe ich auf fast alle AVRs einen seriellen Bootloader von 
Peda. Der läuft in den oberen 512 Byte des AVRs und selbst in einem 
kleinen atTiny85 oder atTiny45 ist das machbar !

Dann nutze ich immer die Brown-Out Funktionalität, so kann der AVR 
richtig resetten und auch das EEPROM ist bereit !

Versuch es mal selbst und mach die schlau !.
Gast #2164863
Lesenswert?

Uwe S. schrieb:
> Hallo Michael,

Hallo Uwe,

> erst die Fuse-Bits lassen die volle Funktionalität einen Atmel AVR
> 'erblühen'.

Das glaube ich gerne, aber ich für meinen Teil bin noch gaaanz weit am 
Anfang, und von einem Versuch, Debug-Wire per JTAGICE-Clone zu 
aktivieren (ging im AVR-Studio5 ganz toll, das deaktivieren hat dann 
aber nur in Studio 4 funktioniert) bin ich erst mal von 
Fuses-Spielereien kuriert. Um eine LED leuchten oder gar blinken zu 
lassen sollten Fuses nicht notwendig sein. Und darum gehts dem TO IMHO. 
Deswegen meine Frage, was er mit den Fuses eigentlich vor hat. Für ein 
paar Bitmanipulationen in DDR und PORT sollte das eigentlich nicht 
notwendig sein, oder?

Klar werden Fuses irgendwann mal interessant; aber bis ich meinen AVR in 
seiner Blüte defloriere ... naja, das hat noch n bisschen Zeit, bis ich 
weiß, wie es geht :D

42m

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren