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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sercan S. (disaster35)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.