Starthilfe (ISP-Programmer) flashen auf ATMEGA8

OP #4888720
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
Angehängte Dateien:
(Firma: matzetronics) #4888765
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.
OP #4889178
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 :)
Angehängte Dateien:
OP #4889361
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 :)
(Firma: matzetronics) #4890125
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.

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