Forum: Mikrocontroller und Digitale Elektronik Starthilfe (ISP-Programmer) flashen auf ATMEGA8


von Sercan S. (disaster35)


Angehängte Dateien:

Lesenswert?

Hallo

ich bin derzeitig dabei den AVR-Tutorial zu lesen, zuletzt hat mein 
AVR-Studio rumgesponnen und kein .HEX Datei erstellt. Nach einem 
Neustart war der Hex-File plötzlich da -.-

Informationen zur Hardware: Ich habe mir den gleichen ATMEGA8 wie im 
Tutorial geholt (2 Stk. Sicher ist Sicher). Als Programmer habe ich den 
nachbau "AVR-ISP-MK2" von DIAMEX geholt. Da ich schon Vorkentnisse in 
Programmierung habe, habe ich etwas Programmiert, was in Sekundentakt 
ein LED anschaltet und wieder ausschaltet. Ich habe es in Atmel Studio 7 
auch erfolgreich builden können (ein Fehlermeldung war da: recipe for 
target 'GccProject1.elf failed' <-- Muss ich das beachten?)

Nun habe ich den Atmega 8 auf ein Breadboard (Steckplatine) gesteckt die 
Verbindungen mit den ISP-Programmer (natürlich habe ich auch alle 
Schritte im Handbuch durchgeführt und in Gerätemanager wird mein 
ISP-Programmer als solches erkannt und belegt den COM-Port 5) habe ich 
auch gesteckt  (VCC,GND,MOSI,MISO,SCK,RESET). Nun weiß ich nicht wie ich 
mein Hex-File auf den Mikrocontroller Flashen kann :O

Es gibt auch 2 Schalter auf den ISP-Programmer, die Spannung liegt wenn 
diese nicht an sind c.a. bei 2,6V. Wenn der erste Schalter ON ist, liegt 
3,3 V Spannung und sind beide Schalter auf ON sind es ~5V (5,03). Was 
für mich vernünftig aussieht, da es im Produktbeschreibung auch so steht 
:D

Wie mache ich das beim Flashen? Welches Programm nutze ich? Ich dachte 
an einem Programm wo ich mein Mikrocontroller auswähle, dieser mein 
ISP-Programmer erkennt, anschließend mit einem HEX-Datei füttern muss 
und auf einem Button geklickt Flasht es den ganzen Zeugs was ich 
veranstaltet habe auf den Mikrocontroller? Oder liege ich da falsch? Wo 
finde ich so ein Programm? Welches nutzt Ihr? Welches würdet Ihr mir 
empfehlen? Welche Spannung muss eingestellt sein, während ich es Flashe 
? 3,3V oder 5V ?

Fragen über Fragen... Nur leider keine Antworten in meinem Kopf.

Ich hoffe ihr könnt mir weiterhelfen und bedanke mich im Voraus.

Liebe Grüße :)


EDIT: so sieht es gerade auf dem Breadboard aus (siehe Anhang) :D

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Im Kleingedruckten steht AVRDUDE - die eierlegende Wollmilchsau für 
nahezu alle Programmer, die es so in der AVR-Welt gibt.
http://www.nongnu.org/avrdude/

avrdude wird am besten mit einem Batchfile gestartet, in dem die 
Optionen für den Programmer drinstehen. Ich bin da kein Spezi, weil ich 
das Atmel Original benutze, da gibt es hier aber auch Experten.

Du musst aber unbedingt an deinem Mega8 auch AVCC (Pin 20) an Plus 
anschliessen und alle GND Pins (Pin 22 und Pin 8) mit Masse verbinden, 
sowie mindestens einen 100nF Kondensator zwischen VCC und GND legen - 
direkt am Chip.

: Bearbeitet durch User
von Sercan S. (disaster35)


Angehängte Dateien:

Lesenswert?

Hey, ich habe mir jetzt nun AVRDude GUI geholt und da mein 
ISP-Programmer STK500 unterstützt diese ausgewählt zudem habe ich den 
COM-Port auf den COM-Port 5 gestellt. Als Controller habe ich den 
AtMega8 ausgewählt. Anschließend habe ich den HEX-File ausgewählt und 
auf Programmieren geklickt.

Für mich sah das so aus als hätte er es alles erkannt und darauf 
gespielt.
Im Anhang ist ein Auszug der Konsolenausgabe.

Anschließend habe ich den VCC mit 5V Spannung und die beiden GND (PIN 22 
und 8) auf GND gezogen und ging davon aus, dass es laufen sollte aber 
leider passiert da nichts...

Ich freue mich über jede Antwort und Hilfeversuch.

Liebe Grüße :)

von tommy (Gast)


Lesenswert?

Matthias S. schrieb:
> sowie mindestens einen 100nF Kondensator zwischen VCC und GND legen -
> direkt am Chip.

Hast Du das gemacht?

Zeig mal Dein Programm.

von Sercan S. (disaster35)


Lesenswert?

Ja das mit den Kondensator habe ich gemacht

Das Programm soll an PB6 ein LED eine Sekunde lang anschalten und wieder 
für eine Sekunde lang ausschalten und das in Folge... Muss ich AVCC auch 
auf Spannung ziehen damit der Mikrocontroller überhaupt an geht.

Mein Programm sieht so aus:
1
#define F_CPU 8000000
2
#include <asf.h>
3
#include <avr/io.h>
4
#include <util/delay.h>
5
6
void _myMetro(void)
7
{
8
  PORTB |= (1<<PB6);
9
  _delay_ms(1000);
10
  
11
  PORTB &= ~(1<<PB6);
12
  _delay_ms(1000);
13
}
14
int main (void)
15
{
16
  /* Insert system clock initialization code here (sysclk_init()). */
17
18
  board_init();
19
20
  /* Insert application code here, after the board has been initialized. */
21
  DDRB |= (1<<PB6);
22
  while(1)
23
  {
24
    _myMetro();
25
  }
26
}

Danke das du so aktiv versuchst mir zu helfen.

Liebe Grüße :)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sercan S. schrieb:
> Anschließend habe ich den VCC mit 5V Spannung

Und auch AVCC - muss immer mit gepowert werden. Ein Betrieb ohne 
Betriebsspannung an AVCC ist auch lt. Datenblatt nicht erlaubt.

von Sercan S. (disaster35)


Lesenswert?

Okay also VCC & AVCC auf 5V Spannung und die beiden GND's auf GND ziehen 
und das ganze sollte anfangen zu laufen, sofern es richtig geflasht 
wurden ist?
Muss ich den Kondensator auch beim Betrieb zwischen VCC und GND haben?

von David R. (dave234)


Lesenswert?

Ja, der Kondensator muss auch im Betrieb vorhanden sein. Und ein 10k 
pullup Widerstand von Reset auf VCC wäre auch nicht falsch.

Gruß

David

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

David R. schrieb:
> Und ein 10k
> pullup Widerstand von Reset auf VCC wäre auch nicht falsch.

Wobei der wirklich optional ist. Alle AVRs, mit denen ich bisher zu tun 
gehabt habe, leben auch gut ohne.

Sercan S. schrieb:
> Okay also VCC & AVCC auf 5V Spannung und die beiden GND's auf GND ziehen
> und das ganze sollte anfangen zu laufen, sofern es richtig geflasht
> wurden ist?

Ja, du musst aber auch fürs Flashen das alles so haben, also nicht nur 
im Betrieb.

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.