Forum: Mikrocontroller und Digitale Elektronik ISP-Programmer & AVRDude (GUI)


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 so langsam am verzweifeln und versuche mein Problem kurz und 
informativ zu halten. Vorerst gesagt, ich benutze die Schnittstelle von 
DIAMEX im Anhang findet Ihr auch ein Datenblatt dazu.

Ich programmiere in C und benutze Atmel Studio 7.0, hier ist mein Code, 
welches an dem PB6 von Atmega8 ein LED zum Blinken bringen soll.

Ich habe folgende PINS angeschlossen

Mikrocontroller & ISP
SCK               SCK
MISO              MISO
MOSI              MOSI
RESET             RESET
VCC & AVCC        VCC
GND & GND         GND

(Zwischen VCC und GND habe ich ein 100 nF Kondensator angeschlossen)
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
}


Da mein ISP-Programmer AVRDude unterstützt habe ich es mit AVRDudeGUI 
versucht. Beim ersten mal hat es auch geklappt, bzw. ich ging davon aus, 
dass es geklappt hat. Im Anhang findet Ihr ein Auszug aus dem AVRDudeGUI 
Konsolenausgabe. Ich als Laie habe es zumindest so interpretiert, dass 
etwas auf den Flash Speicher geschrieben wurden ist. Mit den Multimeter 
nachgemessen bekomme ich auf PB6 ein durchgängige Spannung von 4,8V. In 
AVRDudeGUI habe ich STK500v2 als Programmer ausgewählt, da mein 
Programmer ja mit den Protokoll arbeitet.

Seit dem neuesten bekomme ich nun ein Fehlermeldung welches Ihr 
ebenfalls im Anhang findet (weißes Hintergrund).

Meine Fragen an euch:
1. Hat es beim ersten mal wirklich geklappt? Wurde es auf den Flash 
Speicher geschrieben?
2. Was genau bedeuten die Fehlermeldungen, die kommen? Wie kann ich 
diese beheben so dass ich auch endlich mal in den Flashspeicher 
schreiben kann?
3. Sind in dem Code irgendwelche Fehler oder warum kriege ich aus dem 
Port PB6 durchgängig 4,8V (falls das Schreiben in den Flashspeicher 
erfolgreich war)?
4. Nehme ich den Mikrocontroller evtl. falsch in Betrieb (Ich habe VCC 
und AVCC an +5V und beide GND PINS ebenfalls an Masse)?


Ich habe versucht es so kurz zu halten wie möglich. Ich hoffe jemand 
macht sich die Mühe und hilft mir dabei. Ich wäre auch bereit, wenn 
jemand mit Erfahrungen mir dabei über TeamViewer hilft, mit ein kleinen 
Betrag entgegenzukommen...

Liebe Grüße :)

von Felix F. (wiesel8)


Bewertung
0 lesenswert
nicht lesenswert
Welchen Programmer (DIAMEX) benutzt du? Den ALL AVR? Der gibt sich als 
AVRISP MKII aus und wird wunderbar vom AS7 untersützt. Unter Linux 
verwende ich auch avrdude und hier übergebe ich als Programmer auch 
avrispmkii.

Entweder hat dein Aufbau einen Wackelkontakt oder du hast die Fuses im 
µC falsch gesetzt, weshalb er jetzt nicht mehr Ansprechbar ist.

Poste mal ein Bild vom Aufbau etc.

mfg

von Waldemar Z. (waldemar_z)


Bewertung
0 lesenswert
nicht lesenswert
Hast du den Abschnitt mit den abweichenden Übertragungsfrequenzen 
befolgt?

von Sercan S. (disaster35)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Felix F. schrieb:
> Welchen Programmer (DIAMEX) benutzt du? Den ALL AVR? Der gibt sich als
> AVRISP MKII aus und wird wunderbar vom AS7 untersützt. Unter Linux
> verwende ich auch avrdude und hier übergebe ich als Programmer auch
> avrispmkii.

Ich denke mal du hast die teurere Variante, ich habe die ganz normale 
ISP-Programmer. Im Anhang ist auch ein Datenblatt zu.

> Entweder hat dein Aufbau einen Wackelkontakt oder du hast die Fuses im
> µC falsch gesetzt, weshalb er jetzt nicht mehr Ansprechbar ist.

Ich habe keine Fuses gesetzt. Ich dachte als Anfänger sollte man die 
Fuses so lassen wie sie sind und damit nicht rumspielen? oder müssen da 
bestimmte Einstellungen durchgeführt werden?

> Poste mal ein Bild vom Aufbau etc.
>
> Mit freundlichen Grüßen

Siehe Anhang

@waldemar_z
>Hast du den Abschnitt mit den abweichenden Übertragungsfrequenzen
>befolgt?

Inwiefern kann ich das in avrdude einstellen? Muss ich in den Befehl 
angaben machen? Ich habe jetzt nun alles von vorne beschaltet, jetzt 
meckert AVRDude wohl, dass mein Datei ein falschen Format hat? Bitte 
schau im Anhang, da ist die Fehlermeldung da. Das mein Device nicht 
gefunden werden konnte, lag glaube ich daran, dass in avrdude.conf als 
default_serial = com1 eingestellt war, obwohl mein Programmer auf COM5 
läuft, nach der Änderung versucht der es glaube ich wenigstens 
raufzuflashen und meckert nun über mein Hex-Datei?

von Georg G. (df2au)


Bewertung
0 lesenswert
nicht lesenswert
Was ist daran missverständlich, wenn AVRDude meckert, dass dein File 
metro.hex nicht_ _existiert, zumindest nicht an der Stelle, wo AVRDude 
es vermutet? Die Meldung über "falsches Format" kommt erst später.

: Bearbeitet durch User
von Sercan S. (disaster35)


Bewertung
0 lesenswert
nicht lesenswert
Georg G. schrieb:
> Was ist daran missverständlich, wenn AVRDude meckert, dass dein File
> metro.hex nicht existiert, zumindest nicht an der Stelle, wo AVRDude es
> vermutet?

ich glaube ich weiß auch wieso... Es ist eigentlich ein Mac und avrdude 
läuft auf eine virtuelle Maschine. In der Fehlermeldung steht, dass 
UNC-Pfade nicht unterstützt werden und avrdude daher den C:/Windows als 
aktuelles Verzeichnis setzt und da mein metro.hex Datei auf dem Desktop 
liegt, liegt es ja in der Hand warum es nicht gefunden wird.... -.-

von Sercan S. (disaster35)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So nun hat es glaube ich geklappt oder (siehe Anhang)? :O

Ich habe den metro.hex Datei einfach ins C:\Windows Ordner reingetan und 
mein Batch-File gestartet. Was mich nun wundert, warum es 112 Bytes 
geschrieben hat obwohl mein Hex-File 328 Bytes groß ist.

Kann ich nun den Mikrocontroller in Betrieb setzen indem ich an VCC & 
AVCC an 5V schalte und beide GND-PINs an GND anschließe? :O


EDIT: Ehhm... Ich habe die Steckpins so gelassen wie ich auch geflasht 
habe,sprich im Programmiermodus (Wenn beide Schalter auf 0 gesetzt sind 
und es +2.6V auf VCC liegen) des ISP-Programmierers.

Nun kann ich an PB6 (ich vermute mal es ist in Sekundentakt) eine 
Spannung von 2.6V und 0V messen =)

: Bearbeitet durch User
von Georg G. (df2au)


Bewertung
0 lesenswert
nicht lesenswert
Sercan S. schrieb:
> Was mich nun wundert, warum es 112 Bytes
> geschrieben hat obwohl mein Hex-File 328 Bytes groß ist.

Im Intel-Hex Format wird jedes Datenbyte durch zwei ASCII Zeichen 
dargestellt. Dazu kommen Infos über den Ladepunkt und eine Prüfsumme. 
Deshalb sind HEX-Files immer mehr als doppelt so groß wie die Binär 
Files

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.