Forum: Mikrocontroller und Digitale Elektronik AVRISP


von Gnipfel (Gast)


Angehängte Dateien:

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

von S. W. (Gast)


Lesenswert?

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

Der Atiny und der AT90S sind nicht kompatibel. Oder ist der im 
Schaltplan nur so beschrieben? Welche Firmware verwendest du?

von Gnipfel (Gast)


Angehängte Dateien:

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.

von Sajuuk (Gast)


Lesenswert?

Hier mal nachschauen da gibts auch ne Beschreibung wie man den AVRISP 
auf ATtiny umrüstet.

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

von Gnipfel (Gast)


Angehängte Dateien:

Lesenswert?

Sorry war das falsche .asm

von S. W. (Gast)


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

von Sajuuk (Gast)


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
;*********

von Sajuuk (Gast)


Lesenswert?

bzw das richtige auskommentieren und was du nicht benötigst wieder 
kommentieren

von Sajuuk (Gast)


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

von Gnipfel (Gast)


Lesenswert?

Hallo Sajuuk,

da müsste schon das richtige auskommentiert sein.

von Sajuuk (Gast)


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

von Sajuuk (Gast)


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.

von Tishima (Gast)


Lesenswert?

Hallo!

Kontrolier mal die Fuse CLK/8....

gruß,
Bjoern

von Gnipfel (Gast)


Lesenswert?

PonyProg sagt, dass CLK/8 nicht gesetzt ist.

Ich versuchs jetzt mal mit ner niedrigen Baudrate.

von Gnipfel (Gast)


Lesenswert?

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

von S. W. (Gast)


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.

von Gnipfel (Gast)


Lesenswert?

Ja, hab ich eingefügt.
Bekomme aber dennoch keine Verbindung her.

von S. W. (Gast)


Lesenswert?

Gnipfel wrote:
> Ja, hab ich eingefügt.
> Bekomme aber dennoch keine Verbindung her.

Welche Software verwendest du zum Flashen? AVRPROG?

von Gnipfel (Gast)


Lesenswert?

Versuche es mit AVRProg und AVROSPII

von S. W. (Gast)


Lesenswert?

Dann muss es an der Baudrateneinstellung liegen.

von Gnipfel (Gast)


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"

von S. W. (Gast)


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.

von Holger Krull (Gast)


Lesenswert?

kommt bei mir beim assemblieren auch, aber kein Problem, der 
Assembleroutput läuft bei mir. (7,3728 MHz; 115200 Baud)

von Gnipfel (Gast)


Lesenswert?

Also der AVRISP läuft zwar immernoch nicht, aber trotzdem vielen Dank 
für die vielen Antworten und Hilfestellungen.

Werde es weiter versuchen die Fehlerquelle zu ermitteln.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.