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
intmain(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 :)
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
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?
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.
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.... -.-
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 =)
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
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