Neuer STK500 und ATmega8

Gast #1099838
Lesenswert?

Hallo,

sry, hatte den Tread mit falscher Betreff geschrieben, ist wohl nicht 
ganz rumgekommen.
Ich bin ganz frisch was AVR und habe nun endlich mein STK500 bekommen, 
die deutsche Hardwarebeschreibung hab ich auch hier aus dem Forum.
Zusätlich hab ich noch einen ATmega8L-8PU.
Hab den mitgelieferten ATmega8515 rausgenommen und den mega8
eingesteckt, weil ich halt den programieren möchte (wegen Platzgründen 
usw.).
Ich benutze AVRStudio 4 und habe versucht das kleine Testprogram 
"leds.asm" (aus dem Tutorial)zum laufen zu bringen, aber gescheitert.
Meine Vorgehensweise:
1. STK500 ISP6PIN mit SPROG2 verbunden (6 adrige Flachbandkabel)
2. STK500 PORTD mit Switches und PORTC mit LEDS verbunden.
3. AVRStudio 4 leds.asm assembliert "leds.hex"
4. AVRStudio 4 das Programmierfenster (STK500 in ISP Mode with ATmega8)
   geöffnet und übertragen
   (s. Screenshot)

Hab ich was falsch gemacht was fehlt noch, denn das Programm läuft nicht
(die Leds bleiben dunkel).
An den Fusebits und Lockbits hab ich nichts verstellt.

Ich bin für jede hilfe dankbar.

MfG Rufus
Gast #1099887
Lesenswert?

Hallo,

Flash:
Getting isp parameter.. SD=0x0a .. OKOK
Reading FLASH input file.. OK
Entering programming mode.. OK!
Erasing device.. OK!
Programming FLASH ..      OK!
Reading FLASH ..      OK!
FLASH contents is equal to file.. OK
Leaving programming mode.. OK!

EEPROM:
Getting isp parameter.. SD=0x0a .. OKOK
Reading EEPROM input file.. OK
Entering programming mode.. OK!
Programming EEPROM ..      OK!
Reading EEPROM ..      OK!
EEPROM contents is equal to file.. OK
Leaving programming mode.. OK!

Die Fuse kann ich lesen, bei mir:
Entering programming mode.. OK!
Reading fuses address 0 to 1.. 0xE1, 0xD9 .. OK!
Leaving programming mode.. OK!

Alles scheint OK zu sein, aber LEDs immernoch dunkel.


@Peter Dannegger
Ich wollte deinen Bootloader draufspielen, beim assemblieren tritt ein 
Fehler auf.
C:\..\m8def.inc(345): error: Attempt to redefine keyword 'or'
woran liegt das?


MfG Rufus
#1099888
Lesenswert?

du musst die programmierfrequenz erstmal ganz runter stellen, dann die 
fuses auf die richtige frequenz (intern, 4mhz oder 8 oder was auch 
immer) danach sollte es gehn. du kannst dann auch die 
programmierfrequenz wieder hochstellen.

die avr's haben von haus aus ne sehr langsame frequenz eingestellt, und 
die programmierfrequenz muss immer 1/4 der taktfrequenz sein.
Gast #1099906
Lesenswert?

Christoph Weidenhaupt wrote:
> die avr's haben von haus aus ne sehr langsame frequenz eingestellt, und
> die programmierfrequenz muss immer 1/4 der taktfrequenz sein.

Wenn ich Deine Aussage mal eben korrigieren dürfte:

Die Programmierfrequenz darf 1/4 der Taktfrequenz nicht überschreiten.
Gast #1099915
Lesenswert?

danke für die hilfe,

aber es geht immernoch nicht.
LOW=0xC4 HIGH=0x99
Bezugsquelle: Engbedded AVR® Fuse Calculator aus dem Netz.

>die avr's haben von haus aus ne sehr langsame frequenz eingestellt, und
>die programmierfrequenz muss immer 1/4 der taktfrequenz sein.

Meinst du damit die Baudrate am COM1 (9600Baud)?

Müssen anschließend die Jumper umgestellt werden? Wie Reset...usw.?

Wenn ich ehrlich sein soll, hab ich auch nicht verstanden wo das 
Programm (leds.hex) geschrieben werden soll. In Flash oder EEPROM oder 
beide?

MfG Rufus
#1099952
Lesenswert?

Die Kalibrierung des internen Oszillators hat nichts mit der ISP 
Frequenz zu tun.

Im ersten Reiter (Main) klickst du auf "Settings" und kannst dann die 
Frequenz auwählen.
Lass den Bootloader für die ersten Versuche besser weg (Häkchen weg bei 
"BOOTRST" in den Fuses).

Dein Programmcode kommt in den Flashspeicher. EEPROM ist nur zum 
Speichern von Daten gedacht.
Gast #1100514
Lesenswert?

hallo,

habe beide versucht, Flash und EEPROM.

Kann mir denn keiner einen Beispiel geben? Die Verbindungen sollten doch 
korrekt sein, oder? Siehe Anfang des Treads.

1. STK500 ISP6PIN mit SPROG2 verbunden (6 adrige Flachbandkabel)
2. STK500 PORTD mit Switches und PORTC mit LEDS verbunden.

Die Jumper sind alle unberührt.
-VTARGET (Spannungsversorgung) gesetzt
-AREF (Referenzspannung)       gesetzt
-RESET                         gesetzt
-XTAL1 (Board Quarz)           gesetzt
-OSCSEL               Pin 1&2  gesetzt
-BSEL2 (?)                     gesetzt
-PJUMP (HV-Programmirung)   n. gesetzt (beide)

Mega8 in Sockel SCKT3200A2 (grün) sonst kein anderer µC auf dem Board.

Kann mal bitte jemand bei sich gucken wo alles normal läuft und mit mir 
abgleichen? Bitte.
ISP Frequenz?
Clock generator?
Oscilator calibration byte?

Ich würde mich echt freuen, danke.

MfG Rufus
Gast #1100607
Lesenswert?

Hi,

das ist der Code aus dem Tutorial.
1
.include "m8def.inc"         ; Definitionsdatei für den Prozessortyp einbinden
2
 
3
         ldi r16, 0xFF       ; lade Arbeitsregister r16 mit der Konstanten 0xFF
4
         out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB ausgeben
5
 
6
         ldi r16, 0b11111100 ; 0b11111100 in r16 laden
7
         out PORTB, r16      ; r16 ins IO-Register PORTB ausgeben
8
 
9
ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife


Auf dem Simulator läuft es.

MfG Rufus
#1100611
Lesenswert?

Rufus wrote:
> Auf dem Simulator läuft es.
Läuft mit großer Wahrscheinlichkeit auch im µC. Man muss nur wissen, 
dass die LEDs beim STK500 invertiert angeschlossen sind. Dein Programm 
schaltet die LEDs also aus und nicht ein.

Sehe allerdings grad, dass eigentlich die beiden LEDs an PB0 und PB1 
leuchten sollten, wenn alle Stecker richtig angeschlossen sind.
Gast #1106060
Lesenswert?

Hi,

ich habe jetzt ein anderes Problem, wo ich nicht durchsteige.
Alles was ich mache bezieht sich auf den Tutorial 
http://www.mikrocontroller.net/articles/AVR-Tutorial

Nun, es soll bei 
http://www.mikrocontroller.net/sourcecode/tutorial/leds+buttons.asm

Button 0..5 (PD0-PD5) bezogen auf LED 0..5 (PB0-PB5) funktioniert.
PB6 & PB7 wollen nicht leuchten. PD7 & PD7 (buttons) werden aber 
eingelesen. PB6 und PB7 sind ja optional XTAL1 & XTAL2 um PB6&7 als 
I/O's nutzen zu können habe ich die Fuses so gesetzt, dass der Mega8 
seinen internen Takt nutzt.
Woran liegt das nun, das die LED's an PB6 & PB7 nicht leuchten?

MfG Rufus
#1106066
Lesenswert?

Hallo,

schau mal in den Schaltplan des STK500. Mir ist so, als ob PB6 und PB7 
beim Mega8-Sockel nicht an den STK-Pins von PortB ankommen sondern 
irgendwo bei XTAL oder so.

Es gibt bei solchen Experimentiernoards immer irgendwelche 
Besonderheiten, weil man eben nicht für alle AVR gleichzeitig alle Pins 
sinnvoll überall hinverbinden kann...

Gruß aus Berlin
Michael
Gast #1106084
Lesenswert?

Hallo Michael,

was PB6 und XTAL1 (Jumper) betrifft hast du Recht (von XTAL1 eine Brücke 
nach LED6 -> leuchtet), PB7 scheint nirgenswo rausgeführt zu sein.

Ich werde mal EPAND0 probieren.

MfG Rufus
Gast #1106103
Lesenswert?

hi,

habe gerade in die STK500 Beschreibung geguckt.
Laut Beschreibung sind PB6 (Pin24) & PB7 (Pin23) auf EXPAND1 
(Erweiterungsanschluß 1) geführt. Ich habe also Pin 23 & 24 auf die LED 
6 & 7 (mit Draht) geführt -> keine Funktion.
Als ich die Drahtbrücken direkt zwischen LED 6&7 und an die Pins 9 & 10 
des Mega8's geführt hatte funktionierte es. Sprich LED's leuchten bei 
den jeweiligen betätigten Tastern.

D.h. PB6 & 7 können nicht wirklich mit dem STK als I/O's genutzt werden.

MfG Rufus
Gast #1106111
Lesenswert?

>D.h. PB6 & 7 können nicht wirklich mit dem STK als I/O's genutzt werden.

Kleine korrektur: XT1/XT2 auf PORTE/AUX entsprechen PB6 $ PB7.
Was allerdings nicht in der Beschreibung den Mega8 einschließt.

MfG Rufus

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