AVRISP

Gast #584925
Lesenswert?

Hallo zusammen,

hab mir einen AVRISP selbergebaut.
Leider tut das Ding nicht so wie es soll.
Ich kann zwar ein Programm auf den ATTINY2313 schreiben, aber wenn ich 
versuche damit ein ATMEGA8-Board zu flashen, dann geht das nicht.

Die Fuses sind korrekt gesetzt und auch sonst finde ich keinen Fehler.
An der Software kanns auch nicht liegen, weil ein bekannter das gleiche 
Teil hat und bei Ihm funktionierts.

Wäre klasse, wenn ihr mal den Schaltplan anschauen könntet.

Mfg

Gnipfel
Angehängte Dateien:
Gast #584941
Lesenswert?

Hallo Steven,

der ist nur im Schaltplan so beschrieben, weil die beiden Pinkompatibel 
sind.
Als Firmware verwende ich AVR910.
Hab im Anhang mal das ASM-File drin.

Habe zwei AVRISP. Einen mit 14,745MHz und einen mit 7,3728MHz.
Bei beiden funktioniert das flashen des ATMEGA8 nicht, weil ich keine 
Verbindung aufbauen kann.
Angehängte Dateien:
Gast #584950
Lesenswert?

Gnipfel wrote:
> Sorry war das falsche .asm

Probiere mal mein angepasstes. Das sollte für den Atiny funktionieren. 
AN910 geht nicht.

http://steven-wetzel.de/atmel/doc/an910_neu_source.zip

Deine Source scheint schon angepasst zu sein, jedoch mit dem falschen 
Include.

Ich habe noch etliche Leerplatinen (glaub 9 Stück) für einen USB-AVRISP, 
die ich eh nicht mehr benötige. Falls da jemand was möchte. Schaltplan 
ist hier dazu:
http://steven-wetzel.de/atmel/doc/an910_neu.pdf
Gast #584952
Lesenswert?

Ich bin kein experte.

Aber solltest du hir nicht etwas auskommentieren um deine Baudrate fest 
zu
legen?

;**** Constant declarations Data Rate ****

;******** Chrystals for maximum Baudrates
;.equ  XTAL = 14746    ; XTAL frequency, Khz (14.746 Mhz)
;********
;.equ  BAUD = 115200    ; Data rate, bauds
;.equ  N = 7        ; for 7.3728 Mhz/115.200Baud
;********
;.equ  BAUD = 38400    ; Data rate, bauds
;.equ  N = 11        ; for 7.3728 Mhz/38.400Baud
;********
;.equ  BAUD = 19200    ; Data rate, bauds
;.equ  N = 23        ; for 7.3728 Mhz/19.200 Baud
;*********



;******** Chrystals for maximum Baudrates
.equ  XTAL = 7373      ; XTAL frequency, Khz (7.3728 Mhz)
;********
.equ  BAUD = 115200    ; Data rate, bauds
.equ  N = 3        ; for 7.3728 Mhz/115.200Baud
;********
;.equ  BAUD = 38400    ; Data rate, bauds
;.equ  N = 11        ; for 7.3728 Mhz/38.400Baud
;********
;.equ  BAUD = 19200    ; Data rate, bauds
;.equ  N = 23        ; for 7.3728 Mhz/19.200 Baud
;*********

;**** definitions for different chrystals and 115.200 baud ****
;.equ  XTAL = 3686      ; XTAL frequency, Khz (3.6864 Mhz)
;*********
;.equ  BAUD = 115200    ; Data rate, bauds
;.equ  N = 1        ; for 3.6864 Mhz/115.200Baud
;*********
;
;********* Baudrates for 8 Mhz Chrystal
;.equ  XTAL = 8000      ; XTAL frequency, Khz (8.000 Mhz)
;*********
;.equ  BAUD = 38400    ; Data rate, bauds
;.equ  N = 12        ; for 8.00 Mhz/38.400 Baud
;*********
;.equ  BAUD = 19200    ;Data rate, bauds
;.equ  N = 25        ; for 8.00 Mhz/19.200 Baud
;*********
;.equ  BAUD = 9600      ; Data rate, bauds ! Not valid for AVRProg, use 
for avrdude only !
;.equ  N = 51        ; for 8.00 Mhz/9.600 Baud
;*********

;********* Baudrates for 4 Mhz Chrystal
;.equ  XTAL = 4000      ; XTAL frequency, Khz (4.000 Mhz)
;*********
;.equ  BAUD = 19200    ; Data rate, bauds
;.equ  N = 12        ; for 4.00 Mhz/19.200 Baud
;*********
;.equ  BAUD = 9600      ; Data rate, bauds ! Not valid for AVRProg, use 
for avrdude only !
;.equ  N = 25        ; for 4.00 Mhz/9.600 Baud
;*********
Gast #584959
Lesenswert?

Im mom ist glaub ich das eingestellt

;******** Chrystals for maximum Baudrates
.equ  XTAL = 7373      ; XTAL frequency, Khz (7.3728 Mhz)
;********
.equ  BAUD = 115200    ; Data rate, bauds
.equ  N = 3        ; for 7.3728 Mhz/115.200Baud

vielleicht ist die Baudrate zu hoch

Probier doch mal ne kleinere
Gast #584965
Lesenswert?

Von der Seite
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html#ATTiny2313

der Hinweis:

>Achtung! Nicht alle haben einen 7,3728 Mhz Quarz herumliegen und einige 
>Programmer bzw. einige PCs (selten) machen offenbar Probleme mit den >115200 
Baud. Im Sourcefile habe ich deshalb einige Zeilen mit >alternativen Quarzen und 
Baudraten eingefügt. Einfach die passenden >Zeilen auskommentieren, (die anderen 
dann wieder kommentieren) und den >Code compilieren.

aber wie gesagt bin kein experte und beschäftige mich auch erst seit ein 
paar Tagen damit
Gast #584966
Lesenswert?

OMG
Sorry

Nochmal

>Achtung! Nicht alle haben einen 7,3728 Mhz Quarz herumliegen und einige
>Programmer bzw. einige PCs (selten) machen offenbar Probleme mit den
>115200 Baud. Im Sourcefile habe ich deshalb einige Zeilen mit
>alternativen Quarzen und Baudraten eingefügt. Einfach die passenden
>Zeilen auskommentieren, (die anderen dann wieder kommentieren) und den
>Code compilieren.
Gast #585000
Lesenswert?

Gnipfel wrote:
> @Steven: Vielen Dank für den Code, aber leider funktioniert es immernoch
> nicht.

Hast du das mit dem mitgelieferten include probiert?
Was für einen Quarz verwendest du?
Die Quellen müssen natürlich auf den richtigen Quarz abgestimmt werden.
Gast #585124
Lesenswert?

Denk ich mir auch. Teste gerade noch verschiedene Einstellungen.
Mir ist aufgefallen, dass beim übersetzen von Deinem Programm eine 
Warnung
ausgegeben wird:

"Register r28 already defined by the .DEF directive"
"Register r29 already defined by the .DEF directive"
Gast #585169
Lesenswert?

Gnipfel wrote:
> Denk ich mir auch. Teste gerade noch verschiedene Einstellungen.
> Mir ist aufgefallen, dass beim übersetzen von Deinem Programm eine
> Warnung
> ausgegeben wird:
>
> "Register r28 already defined by the .DEF directive"
> "Register r29 already defined by the .DEF directive"

Ja, ist eine doppelte Definition. Im inlcudefilee wird r28 und r29 YL 
bzw YH zugewiesen. Im asm-File wird diese Definition überschrieben. YL 
wird ja als Name nie verwendet.

Du kannst im asm-File alle addrl und addrh durch YL und YH ersetzen oder 
einfach diese Zellen im include auskommentieren (wäre aber unsauber) 
oder einfach die Warnung ignorieren.

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