Forum: Mikrocontroller und Digitale Elektronik AVR Anfang / Flash geht aber Programm scheint nicht zu laufen


von Frank G. (frankg)


Angehängte Dateien:

Lesenswert?

Ich bin dabei von R8C13 nach AVR umzusteigen. Gebaut habe ich folgendes 
-> Schaltplan. Ich habe ein ALL-AVR / USB Adapter von Reichelt.
Da der ATMega8 nur ISP kann, hätte man wohl mit was anderem beginnen 
sollen (z.B. Mega16). Ich arbeite auf Linux da geht der Burn-O Mat und 
ich kann aber auch aus Code::Blocks heraus flashen. --> Bild avrdude

Elektrisch habe ich alle Verbindungen ohne Mega8 ausprobiert, sind alle 
da.

Mein erstes Programm ist ganz einfach
/*
 */

#include <avr/io.h>

void main ()
{

        uint8_t cnt = 0;
        DDRC = 0xFF;
        DDRD = 7;

        while (1)
        {
            cnt++;
            PORTC = cnt;
        }
}
Bei den Fuses bin ich mir auch keiner Schuld bewußt -> Bild Fuses
Ich bin der Meinung am Port C von C0 an immer langsamere Rechtecksignale 
sehen zu müssen.... Aber zu sehen ist NIX habe hier aus einen Oszi.
PIN23 und PIN27 ca. 2Volt Pin 24,26,28 0Volt??
Habe keine Erklärung...

von Amateur (Gast)


Lesenswert?

>DDRC = 0xFF;
>DDRD = 7;

Einige Fehler:
Ich unterstelle mal, dass Du D17 zappeln lassen willst.
Wenn ich das Schaltbild richtig lese hängt diese an PC4.
Wozu dann DDRD = 7?

Der Rechner ist relativ schnell. Also ist zu erwarten, dass die LED so 
schnell blinkt, dass Du es nicht siehst.
Optisch: Etwas trüber als 100%.

Ich mag delay nicht, für diesen Test wäre es aber ideal.

von Frank G. (frankg)


Lesenswert?

Ich hatte auch andere Tests gemacht. Davon war DDRD .. ein Rest. Ich 
habe das jetzt schon gesehen und das entfernt.
Für diesen Test habe ich dann den ganzen Port C nehmen wollen, weil das 
ja wirklich alles Ausgänge sind. Wo ich mir nicht sicher bin DDRC = 0xFF 
denn da sind ja nur Port C0 bis Port C5 also DDRC = 0x3F aber auch dann 
ändert sich nichts. Zur Frequenz, habe Oszi hier, der kann bis 30MHz da 
ist nicht los auf den Ports ;-(((

von Helmut H. (helmuth)


Lesenswert?

Frank G. schrieb:

> PIN23 und PIN27 ca. 2Volt Pin 24,26,28 0Volt??


Welche Spannung liegt denn an Pin 1 (RESET) und Pin 4  (VCC)?

: Bearbeitet durch User
von Frank G. (frankg)


Lesenswert?

genau 5V

von Helmut H. (helmuth)


Lesenswert?

Sorry meinte Pin 7, das ist die 5V Versorgungsspannung, 20 ist 
Analog-Versorgung

: Bearbeitet durch User
von Frank G. (frankg)


Lesenswert?

5 Volt

von Amateur (Gast)


Lesenswert?

Default läuft der ATMega mit unteränderten Sicherungen.
Ich bin mir nicht ganz sicher - zu lange nicht mehr in der Mache gehabt 
- mit 8MHz (DIV 8) also 1 MHz.

DDRC = 16 (10h) oder auch FF ist egal. (ein Pin als Ausgang oder alle 8)
bei
DDRC = 0b00010000; oder 0b11111111
"sieht" man aber mehr.

Zum Schaltbild: Der große Kondensator, parallel zu den "Vorwiderständen"
Soll wohl den Spulen den richtigen Einschaltkick geben.
Können die Widerstände denn auch die Verlustleistung ab?
Im Übrigen könnte hier ein kleiner, keramischer auch nicht schaden.

Toll finde ich Deine Werkzeugpallette mitten im Schaltbild;-)

Das ganze sollte aber gehen. Da ich immer mit dem Studio gearbeitet 
habe, kann ich Deine Fuses leider nicht interpretieren.

von Theor (Gast)


Lesenswert?

Helmut H. schrieb:
> Sorry meinte Pin 7, das ist die 5V Versorgungsspannung, 20 ist
> Analog-Versorgung

Du weisst das sicher, und es ist Dir sicher nur kurz entschlüpft, aber 
dem TO ist das vielleicht nicht bekannt:

Sowohl an Pin 7 als auch an Pin 20 müssen jeweils 5V anliegen. Der AVCC 
Pin versorgt nicht nur den Analogteil sondern auch Port C, Bits 0 bis 3.


TO: Kannst Du bestätigen, dass an Pin 7 UND Pin 20 jeweils 5V anliegen?

von Frank G. (frankg)


Lesenswert?

Danke.... die Palette hatte ich übersehen ;-))
Der große Kondensator soll einen Spannungsanstoß geben. Da Magnetventile 
so ganz sicher ziehen und das 12V Magnetventil geht bis ca 3V
Ich habe das so gebaut, daß kurz 15V anliegen und dann so 7Volt, da ich 
mir noch nicht sicher bin ob diese Magn-ventile die richtigen sind oder 
ich doch 24 V nehmen muss.
Habe zwischen PIN 7/8 ein 100n Tantal C und auf der Leiterbahn rechts 
und links vom Meag8 je ein Scheiben C von 47n

von Frank G. (frankg)


Lesenswert?

Digitalmultimeter PIN 7 und PIN 20 je 5,03 Volt
Was mir noch nicht klar ist
Ich habe den PorgAdapter drann der hat alle Jumper so wie geliefert,das 
heißt er würde auch die Schaltung versorgen (Relais gehen dann eben 
nicht)
Aber ich sehe ja mit meinem Oszi direkt an den Mega8 Pins nach, dann ist 
das doch egal

Ist es richtig das der Prog Adaper einfach steck bleibt und nach dem 
Flash das Programm von alleine startet?

von Georg G. (df2au)


Lesenswert?

Frank G. schrieb:
> Ist es richtig das der Prog Adaper einfach steck bleibt und nach dem
> Flash das Programm von alleine startet?

So sollte es sein. Aber was ist so kompliziert daran, einfach mal den 
Stecker nach dem Flashen abzuziehen und es auszuprobieren? Da du 5V an 
Reset gemessen hast, sollte alles in Ordnung sein. Aber Kontrolle ist 
besser.

: Bearbeitet durch User
von Frank G. (frankg)


Lesenswert?

Habe ich gemacht; kein Unterschied
mein Oszi zeigt PIN 23-27 an wie beschrieben und PIN 13 (LED unten im 
Schaltplan) so vielleicht ein 2Hz Signal; warum auch immer??

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
> Digitalmultimeter PIN 7 und PIN 20 je 5,03 Volt

Das soll so sein. Richtig.

> Was mir noch nicht klar ist
> Ich habe den PorgAdapter drann der hat alle Jumper so wie geliefert,das
> heißt er würde auch die Schaltung versorgen (Relais gehen dann eben
> nicht)
> Aber ich sehe ja mit meinem Oszi direkt an den Mega8 Pins nach, dann ist
> das doch egal
>
> Ist es richtig das der Prog Adaper einfach steck bleibt und nach dem
> Flash das Programm von alleine startet?

Davon würde ich in diesem Fall eher abraten.
Die Diode über den 5V Regler und den 15V Regler wird leiten, die 
Kondensatoren aufladen (hoher Einschaltstrom) und die erste LED zum 
leuchten bringen wollen, deren Vorwiderstand für eine hohe 
Eingangsspannung berechnet ist.
Mit Deinem Testprogramm werden auch die Relais von diesen 5V, des 
Programmieradapters immer mal kurz zucken wollen. Vor allem dieser 
letzte Punkt scheint mir problematisch zu sein.

Also: Programmieradapter abklemmen und die Stromversorgung anschalten, 
wäre mein Rat.

von Theor (Gast)


Lesenswert?

@ TO:

Magst Du mal einen Schaltplan mit doppelter Auflösung posten, bitte? Ist 
ein wenig klein geraten.

Ich würde ohnehin so eine Schaltung nicht vollkommen aufgebaut in 
Betrieb nehmen. Die Regel der Kunst ist: Schritt für Schritt.

1. Stromversorgung (was vielleicht schon getan ist)
2. uC mit minimaler Aussenbeschaltung (sämtliche Peripherie abhängen)
3. Dann, Schritt für Schritt die Peripherie - zunächst die ohmschen 
Klein-Verbraucher, sprich LEDs.
4. Zum Schluss erst die Verbraucher mit Impulsströmen bzw. hohen 
Induktiven bzw. Kapazitiven Lasten.

An sich sieht man so kein Problem.

Ich würde raten, einmal das Layout und Fotos vom Aufbau zu posten.

von Frank G. (frankg)


Lesenswert?

Gut verstehe ich, aber das habe ich gemacht und wenn man das Programm 
ansieht dann müsste doch PC0 max Takt vielleicht 200kHz
PC1 dann die Hälfte ... usw bis PC5 und am Mega8 müsste man das auch 
sehen können

Wenn ich ohne Pro Adapter die Spannung ausschalte, so leuchtet das LED 
noch 2s hell und 5s dunkler, d.h. kein hoher Stromverbrauch der 
Schaltung

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
Wem antwortest Du gerade und auf welchen Satz? Zitatfunktion benutzen 
bitte.

> Gut verstehe ich, aber das habe ich gemacht ...

Was hast Du gemacht?

> ... und wenn man das Programm
> ansieht dann müsste doch PC0 max Takt vielleicht 200kHz
> PC1 dann die Hälfte ... usw bis PC5 und am Mega8 müsste man das auch
> sehen können

Ja. Müsste! Tut aber nicht. Also ist Fehlersuche angesagt.

> Wenn ich ohne Pro Adapter die Spannung ausschalte, so leuchtet das LED ...

Welche LED?

> ... noch 2s hell und 5s dunkler, d.h. kein hoher Stromverbrauch der
> Schaltung

Ich frage mal provokativ: Was soll das beweisen? Und etwas kooperativer: 
Das sagt nur was, über das Verhalten im quasi-stationären Betrieb. Wie 
die Schaltung auf Impuls-Belastungen reagiert wird damit nicht deutlich. 
Insbesondere steuert Dein Programm auch die Relais an. Und Probleme mit 
induktiven Lasten in Verbindung mit der Stromversorgung sind schon fast 
ein Klassiker.


Falls Du nicht erfahren mit Elektronik und insbesondere solchen 
Konfigurationen bist, würde ich Dir ernsthaft empfehlen den Rat mit der 
erwähnten Schritt-Taktik anzunehmen und zunächst nicht weiter zu 
diskutieren. Soweit mir bekannt ist, neigt ein nicht unerheblicher Teil 
der erfahrenen Leute auch zu dieser Taktik; es ist sicherlich nicht die 
einzige, aber wenn eine Sichtkontrolle nicht weiterhilft, eine, die 
recht gezielt ist.

von Frank G. (frankg)


Angehängte Dateien:

Lesenswert?

Ein Foto von der Leiterplatte, Ich habe aber keine Idee wie ich den 
Schaltplan besser hin bekommen soll, denn das Bildschirmfoto war bereits 
der ganze Bildschirm, habe als PDF gedruckt, das sieht gut aus

von Frank G. (frankg)


Lesenswert?

> Ja. Müsste! Tut aber nicht. Also ist Fehlersuche angesagt.
>
>> Wenn ich ohne Pro Adapter die Spannung ausschalte, so leuchtet das LED ...
>
> Welche LED?
>
Das LED an der Eingangsspannung meinte ich

>Ich frage mal provokativ: Was soll das beweisen? Und etwas kooperativer:
>Das sagt nur was, über das Verhalten im quasi-stationären Betrieb. Wie
>die Schaltung auf Impuls-Belastungen reagiert wird damit nicht deutlich.
>Insbesondere steuert Dein Programm auch die Relais an. Und Probleme mit
>induktiven Lasten in Verbindung mit der Stromversorgung sind schon fast
>ein Klassiker.

Ich habe mal alle Magnetventile abgeklemmt und den Prog Adapter auch
-> Verhalten genau das Gleiche

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
> Ein Foto von der Leiterplatte, ...

Ja? Was ist damit?

> Ich habe aber keine Idee wie ich den
> Schaltplan besser hin bekommen soll, denn das Bildschirmfoto war bereits
> der ganze Bildschirm, habe als PDF gedruckt, das sieht gut aus

Nun, ich will nicht darauf bestehen. Man kann das PDF auch vergrössern. 
Aber es geht ja darum, dass Du es uns so leicht wie möglich machst, Dir 
zu helfen. Wenn ich den Schaltplan in einem Tab des Browsers nebenan 
sehen kann, ist das einen Tick einfacher, als wenn ich noch den 
PDF-Reader nebenbei offen haben muss.
An sich kann man das oft im Layoutprogramm einstellen, wie der 
Schaltplan genau ausgegeben werden soll.
Aber gut. Lassen wir diese Detail mal so.

Jedenfalls fehlt noch ein Foto vom Aufbau und das Layout.

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
>> Ja. Müsste! Tut aber nicht. Also ist Fehlersuche angesagt.
>>
>>> Wenn ich ohne Pro Adapter die Spannung ausschalte, so leuchtet das LED ...
>>
>> Welche LED?
>>
> Das LED an der Eingangsspannung meinte ich
>
>>Ich frage mal provokativ: Was soll das beweisen? Und etwas kooperativer:
>>Das sagt nur was, über das Verhalten im quasi-stationären Betrieb. Wie
>>die Schaltung auf Impuls-Belastungen reagiert wird damit nicht deutlich.
>>Insbesondere steuert Dein Programm auch die Relais an. Und Probleme mit
>>induktiven Lasten in Verbindung mit der Stromversorgung sind schon fast
>>ein Klassiker.
>
> Ich habe mal alle Magnetventile abgeklemmt und den Prog Adapter auch
> -> Verhalten genau das Gleiche

Was darauf hindeutet, dass das Problem, wenn es nicht in der SW oder den 
Fuses liegt (wofür ich im Moment keinen Anhaltspunkt sehe), in dem noch 
verbundenen Schaltungsteil liegt.

Du schreibst Du hast die "Magnetventile abgeklemmt". Vermutlich hängen 
also die Transistoren noch dran, oder? Falls ja, wiederhole ich: 2. uC 
mit minimaler Aussenbeschaltung (sämtliche Peripherie abhängen).
Es bleiben also lediglich, die Stromversorgung, die Kondensatoren für 
die Abblockung und der Pull-Up-Widerstand am Reset. Alles andere darf 
keine Verbindung mehr zum uC haben.
Ich weiß, dass wirft bei Dir evtl. die Frage auf, ob ich Dir denn so gar 
nichts zutraue. Aber tröste Dich, mir sind Probleme dieser Art auch 
schon untergekommen; das hat zunächst nichts mit den Fähigkeiten zu tun. 
Das kann mal ein Lötklecks sein oder sonst eine Art Unaufmerksamkeit. 
Oder auch eine Fehleinschätzung des Verhaltens von Relais oder 
Transistoren. Das passiert jedem Mal. - Ist nur Geschäft; nichts 
persönliches. ;-)

In jedem Fall immer die Schaltung von der Stromversorgung versorgen 
lassen - nicht vom Programmer.

von Frank G. (frankg)


Angehängte Dateien:

Lesenswert?

Theor schrieb:
> Frank G. schrieb:
>> Ein Foto von der Leiterplatte, ...
>
ich hoffe das ist jetzt dabei

>An sich kann man das oft im Layoutprogramm einstellen, wie der
>Schaltplan genau ausgegeben werden soll.
>Aber gut. Lassen wir diese Detail mal so

Also bei KiCad habe ich drucken -> z.B. Drucker oder PDF oder Plotten 
aber da ist nur Postscript  PDF  SVG  DXF  HPGL auswählbar
und als Bildschirmfoto kann ich dann zwar JPG oder PNG wählen aber 
?Auflösung einstellen.... wo?

von Theor (Gast)


Lesenswert?

Was diese Taktik der schrittweisen Inbetriebnahme betrifft: Das ist, wie 
das gute alte "Divide et impera".
Jedes Teil, dass Du abhängst, kann es dann schon nicht mehr sein. Wenn 
Du den Fehler dann gefunden hast, und beginnst wieder Teile 
dranzuhängen, ist das genauso: Falls dabei ein Fehler eintritt, weißt Du 
ziemlich genau, wo Du suchen musst.

Im übrigen sollte es Dich trösten, dass die Raketenbauer auch nicht erst 
alles fertigbauen und dann auf den Knopf drücken. Die gehen soweit, 
jedes Einzelteil zu prüfen. Das hat schon seinen Grund.

von Gerhard H. (oderlachs)


Lesenswert?

Probiere mal bei den Fuses nur CKSEL0 und CKSEL1 setzen...weiss nun 
nicht wie die Software das handelt ob da SET = 0 ist oder eben 1.

Dann sollte der Takt 4MHz intern sein...

Was anders, als ein verstelltes "Fuse" kann ich mir sonst nicht 
vorstellen.

Gerhard

von Helmut H. (helmuth)


Lesenswert?

Frank G. schrieb:
> PIN 13 (LED unten im
> Schaltplan) so vielleicht ein 2Hz Signal; warum auch immer??

Könnte es sein, dass das mit avrdude geladene Programm led_template 
genau das macht?

von holger (Gast)


Lesenswert?

>Könnte es sein, dass das mit avrdude geladene Programm led_template
>genau das macht?

Das wäre dann der Klassiker: Falsches HEX File geflasht;)

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
> Theor schrieb:
>> Frank G. schrieb:
>>> Ein Foto von der Leiterplatte, ...
>>
> ich hoffe das ist jetzt dabei

Ja. Ist dabei.

Aber jetzt frage Dich mal selbst, ob Du auf diesem Foto den Aufbau 
beurteilen könntest. Kannst Du Kurzschlüsse aufgrund von Berührungen 
sehen? Lötstellen?, Polungen?

Ich will mir das Foto nicht an die Wand hängen, sondern es in 
technischer Hinsicht beurteilen. :-)

Die Rückseite fehlt.

Der Bildinhalt beträgt grob geschätzt etwa ein Zehntel der verfügbaren 
Fläche bzw. Auflösung. Und jetzt poste bitte nicht einfach nur eine 
Vergrößerung des selben Fotos.

>
>>An sich kann man das oft im Layoutprogramm einstellen, wie der
>>Schaltplan genau ausgegeben werden soll.
>>Aber gut. Lassen wir diese Detail mal so
>
> Also bei KiCad habe ich drucken -> z.B. Drucker oder PDF oder Plotten
> aber da ist nur Postscript  PDF  SVG  DXF  HPGL auswählbar
> und als Bildschirmfoto kann ich dann zwar JPG oder PNG wählen aber
> ?Auflösung einstellen.... wo?

Keine Ahnung. Ich kenne KiCad nicht. Aber wenn das überhaupt möglich 
ist, dann steht es sicher in der Anleitung. Mit dem PDF geht es 
jedenfalls erst mal. Also lass es mal.

von Frank G. (frankg)


Angehängte Dateien:

Lesenswert?

>> ich hoffe das ist jetzt dabei
>
> Ja. Ist dabei.
>

Habe noch mal ein Foto gemacht von beiden Seiten

sind aber etwas größer

von Gerhard H. (oderlachs)


Lesenswert?

Ich arbeite ja fast ausschliesslich nur unter Linux, arbeite mit Geany 
oder Eclipse , mit Code:Blocks habe ich da schlechte Erfahrungen 
gemacht...egal jeder muss seinen eigenen für sich besten weg nehmen.

Auf jeden Fall würde ich das Listing etwas ändern mit einem 
_delay_ms(xx) darinnen, der Übersicht wegen..etwa so:
1
#ifndef F_CPU
2
#define F_CPU 4000000UL // 4 MHz intern
3
#endif
4
5
#include <avr/io.h>
6
#include <util/delay.h> //wird fuer _delay_ms() benoetigt
7
8
void main ()
9
{
10
11
        uint8_t cnt = 0;
12
        DDRC = 0xFF;
13
        // DDRD = 0x07;  // wird hier nicht benoetigt auskommentieren
14
15
        while (1)
16
        {
17
            cnt++;
18
            PORTC = cnt;
19
      _delay_ms(500) //500ms pause zur besseren kontrolle
20
        }
21
}
Vorraussetzung die Fuses sind auf intern. Oszillator hier 4MHz gesetzt.

Gerhard

von Frank G. (frankg)


Lesenswert?

Gerhard H. schrieb:
> Probiere mal bei den Fuses nur CKSEL0 und CKSEL1 setzen...weiss nun
> nicht wie die Software das handelt ob da SET = 0 ist oder eben 1.
>
> Dann sollte der Takt 4MHz intern sein...

In meinem Buch steht Intern 1MHz oder 8Mhz
ein MHz hatte ich 8Mhz ging CK3 1 2 auf 1 und CK2 0
das ging, hat aber nichts geändert

habe jetzt mal CK2 auf 0 gesetzt und jetzt spricht der Mega8 nicht mehr 
mit mir   "reset to default geht auch nicht"  ;-(((
>
> Was anders, als ein verstelltes "Fuse" kann ich mir sonst nicht
> vorstellen.
>
> Gerhard

von Frank G. (frankg)


Lesenswert?

>
> In meinem Buch steht Intern 1MHz oder 8Mhz
> ein MHz hatte ich 8Mhz ging CK3 1 2 auf 1 und CK2 0
> das ging, hat aber nichts geändert
>
> habe jetzt mal CK2

das muss CK3 heißen    auf 0 gesetzt und jetzt spricht der Mega8 nicht 
mehr
> mit mir   "reset to default geht auch nicht"  ;-(((

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
>>> ich hoffe das ist jetzt dabei
>>
>> Ja. Ist dabei.
>>
>
> Habe noch mal ein Foto gemacht von beiden Seiten
>
> sind aber etwas größer

OK. Sehr viel besser die Fotos.

Leider ein Aufbau, der die Untersuchung per Foto so gut wie unmöglich 
macht. Jedenfalls mir.

Also: Dann hänge mal, wie oben beschrieben alles ab, was nicht 
unmittelbar für die Funktion des uC nötig ist. Schritt 2.

Ich habe jetzt zu tun, gucke aber am späten Abend wieder rein.

Vielleicht willst Du ja auch Gerhards Vorschläge probieren. Vielleicht 
ein Glückstreffer - auch wenn ich daran nicht glaube. Ich bin eher der 
systematische Typ.

von Frank G. (frankg)


Lesenswert?

Vielen Dank erst einmal allen....

Wie gesagt ich steige gerade von R8C13 um,  würde auch Eclipse nehmen
Geany kenn ich nicht

Werde alles abklemmen / Andere Programmieroberfläche nehmen und (evtl 
neuen Mega8) und mich dann noch mal melden.

Wenn jemand ein schönen Tutorial LINK zum einrichten Eclipse hat, wäre 
das bestimmt hilfreich
Falsches HEX Format.... ist ja ein Alptraum  ;-(((

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
>>
>> In meinem Buch steht Intern 1MHz oder 8Mhz
>> ein MHz hatte ich 8Mhz ging CK3 1 2 auf 1 und CK2 0
>> das ging, hat aber nichts geändert
>>
>> habe jetzt mal CK2
>
> das muss CK3 heißen    auf 0 gesetzt und jetzt spricht der Mega8 nicht
> mehr
>> mit mir   "reset to default geht auch nicht"  ;-(((

OK. Am besten erstmal feststellen, was effektiv die letzte 
Fuse-Einstellung war. Poste am besten die Kommandozeile, die Du benutzt 
hast und, falls noch verfügbar, die Ausgabe von avrdude.

von Frank G. (frankg)


Lesenswert?

> OK. Am besten erstmal feststellen, was effektiv die letzte
> Fuse-Einstellung war. Poste am besten die Kommandozeile, die Du benutzt
> hast und, falls noch verfügbar, die Ausgabe von avrdude.
Das kommt wenn ich Fuses READ drücke und eine Fehlermeldung "Error 
reading fuses"

/usr/bin/avrdude -C /etc/avrdude.conf -p m8 -P usb -c avrispmkII -F -U 
hfuse:r:/tmp/hfuse472806980280245719.hex:r -U 
lfuse:r:/tmp/lfuse3428303221410835919.hex:r

avrdude: stk500v2_command(): command failed
avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: 
Unknown status 0x00
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x88468d
avrdude: Expected signature for ATmega8 is 1E 93 07

avrdude done.  Thank you.

von Helmut H. (helmuth)


Lesenswert?

Frank G. schrieb:
> Falsches HEX Format.... ist ja ein Alptraum  ;-(((

nicht falsches Format, falsche Datei. Der Name klingt ja irgendwie nach 
LED-Blink-Beispiel. Bist du sicher, dass Dein C-Programm in genau diese 
Datei kompiliert wurde? Prüfe mal das Dateidatum.

von Frank G. (frankg)


Lesenswert?

> nicht falsches Format, falsche Datei. Der Name klingt ja irgendwie nach
> LED-Blink-Beispiel. Bist du sicher, dass Dein C-Programm in genau diese
> Datei kompiliert wurde? Prüfe mal das Dateidatum.
Gute Idee  also die main.c ist genau jetzt entstanden
Im Code::Blocks kommt dann der Ordner bin/da drinn DEBUG oder Release
Ich habe DEBUG in der Oberfläche ausgewählt und in diesem Ordner heißen 
alle Dateien led_template

NUR die .lss ist aktuell ???? die HEX Datei ist von gestern

von Frank G. (frankg)


Lesenswert?

Habe auf Release umgestellt

nach Build sind die Dateien sig lss lock hex fuse eep  neu und
map elf alt
beim flashen (neuer Mega8) kein Unterschied

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
>> OK. Am besten erstmal feststellen, was effektiv die letzte
>> Fuse-Einstellung war. Poste am besten die Kommandozeile, die Du benutzt
>> hast und, falls noch verfügbar, die Ausgabe von avrdude.
> Das kommt wenn ich Fuses READ drücke und eine Fehlermeldung "Error
> reading fuses"

Klar, kannst Du die Fuses nicht mehr auslesen.

Gehe mal mit der Cursor-Taste hoch in der Konsole (ich denke, Du benutzt 
Linux). Oder gib "history | grep avrdude" ein. Die Zeile, mit der Du 
avdrude zuletzt benutzt hast, um die Fuses zu ändern, bevor gar nichts 
mehr ging. Wenn Du hochscrollst, kannst Du evtl. noch die Ausgabe genau 
dieses Aufrufs von avrdude sehen.

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
> Habe auf Release umgestellt
>
> nach Build sind die Dateien sig lss lock hex fuse eep  neu und
> map elf alt
> beim flashen (neuer Mega8) kein Unterschied

Was hast Du verglichen? Die Ausgabe von avrdude oder das Verhalten der 
Schaltung? An sich müsste das flashen schon schieflaufen, wenn Du den 
AVR verfust hast.

Bitte sei jetzt möglichst detailliert und klar in Deinen Aussagen.

von Frank G. (frankg)


Lesenswert?

> Gehe mal mit der Cursor-Taste hoch in der Konsole (ich denke, Du benutzt
> Linux). Oder gib "history | grep avrdude" ein. Die Zeile, mit der Du
> avdrude zuletzt benutzt hast, um die Fuses zu ändern, bevor gar nichts
> mehr ging. Wenn Du hochscrollst, kannst Du evtl. noch die Ausgabe genau
> dieses Aufrufs von avrdude sehen.

Das ist die Ausgabe vom Buro o mat

von Frank G. (frankg)


Lesenswert?

Das sind die Dateien (Endungen) mit Build Verzeichnis:
>> nach Build sind die Dateien sig lss lock hex fuse eep  neu und
>> map elf alt
>> beim flashen (neuer Mega8) kein Unterschied
im Verhalten der Schaltung

Ich würde darauf tippen, dass in dem Code::Blocks Programm was falsch 
eingestellt ist
Der ALL-AVR Flasher scheint zu gehen sonst wären die Fuse Bit unsinnig 
und auch verify würde nicht funktionieren.
Ich werde wohl Eclipse probieren

von Frank G. (frankg)


Lesenswert?

Ich bedanke mich noch mal recht herzlich und muss jetzt schlafen 
gehen....
stehe morgen 4:30 Uhr auf.... Melde mich nach Eclipse

Eine letzte Frage..... bei Code::Blocks war die Datei das Endergebnis 
von Build immer eine Datei ...hex (ich denke das ist OK so)
Das sollte das "Maschinenformat von AVR sein.

Wenn man den Flasher von Code::Blocks aus startete (also nicht den Burn 
O-Mat) wollte der immer eine ...elf.hex  Datei haben, die aber nicht 
erzeugt wurde
Ich habe das dann hin bekommen, kann mir das mit dem ...elf.hex evtl 
jemand erklären?

von Helmut H. (helmuth)


Lesenswert?

Hier ist eine Beschreibung wie man avrdude einbinden kann:

https://www.mikrocontroller.net/articles/Code::Blocks#Erstellung_eines_AVR-Projekts

von Theor (Gast)


Lesenswert?

Frank G. schrieb:
> Ich bedanke mich noch mal recht herzlich

Es ist nicht notwendig, von Code::Blocks nach Eclipse zu wechseln.
Das Problem liegt in den Details und wie damit umgegangen wird. Anders 
herum kann man das so ausdrücken, dass Du mit Eclipse inhaltlich die 
selben Probleme haben wirst.

Die Fuses, wie sie im Eröffnungspost gezeigt wurden, waren völlig in 
Ordnung - das allerdings habe ich leider nicht ausdrücklich gesagt. Mein 
Fehler.


Jetzt aber haben wir, aus meiner Sicht folgende Situation:

Es ist, zumindest mir, unklar, ob sich der AVR noch flashen lässt oder 
nicht. Zuerst einmal, ob die Kommunikation überhaupt funktioniert.

Dieses Posting 
Beitrag "Re: AVR Anfang / Flash geht aber Programm scheint nicht zu laufen" 
bedeutet, dass es nicht geht.
Dieses 
Beitrag "Re: AVR Anfang / Flash geht aber Programm scheint nicht zu laufen" 
hingegen, dass es geht; zumindest das Verifying.

Was trifft jetzt zu?

Am besten versuchst Du einfach mal die Fuses auszulesen. Entweder mit 
Burn-O-Mat oder direkt auf der Kommandozeile mit avrdude. Je nachdem, 
zeigst Du uns die Ausgabe im Fenster von Burn-O-Mat (einfach 
Copy-N-Paste, keinen Screenshot) oder die von avrdude auf der Konsole.


Zur Information:
Das Programm Burn-O-Mat ist nur eine Benutzeroberfläche für avrdude 
(Siehe: 
http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_avrdude_gui_en.php) Es 
leitet die Konsolenausgabe in sein eigenes Fenster um und die kann dann 
nicht mehr im Scroll-Buffer der Konsole stehen.

von Gerhard H. (oderlachs)


Lesenswert?

So ich habe mal für Frank, oder auch andere hier eine kleine Anleitung 
erstellt, wie man mittels Geany unter Linux AVR programmiert, bzw. Code 
dafür schreibt:

http://oderlachs.de/forum/avr/Geany_AVR_Linux.pdf

MfG

Gerhard

von Frank G. (frankg)


Lesenswert?

Hallo, also zu dem ganzen:: ich habe (da ich 3 dieser Schaltungen 
brauche) alles noch einmal Minimal aufgebaut und dann

avr-gcc -g -Os -mmcu=atmega8 -c led.c
avr-gcc -g -mmcu=atmega8 -o led.elf led.o
avr-objcopy -j .text -j .data -O ihex led.elf led.hex

/usr/bin/avrdude -C /etc/avrdude.conf -p m8 -P usb -c avrispmkII  -U 
flash:w:led.hex:a

es geht alles, bei beiden Schaltungen ABER

da ich das in einer Oberfläche testen und bearbeiten möchte habe ich 
damit weiter probiert und wirklich Probleme // Ich mache dazu einen 
neuen Artikel auf
Geany hat nicht so funktioniert

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.