mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega 8515 defekt?


Autor: neu hier (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo!

bin "microcontroller-newbie".

habe schaltung mit atmega, externem quarz(8mhz)+2*22pf kondi´s gegen
masse
und pin 9 - reset über 10k auf 5v + 100nf gegen masse,
blockkondensator 100nf unter ic-sockel,
und an port c 8-fach dip-schalter gegen masse...

verdrahtung sollte soweit ok sein.
programmiert wird der mega über ein externes universalprogrammiergerät
(galep3) und dann in die schaltung eingesetzt.

bekomme den controller nicht zum laufen, das einzige was funktioniert
ist die umschaltung (cksel 0001) takt intern auf (cksel 1111) takt
extern.
sowie der externe takt eingeschalten ist, kann ich mit dem oszi an xtal
1 und xtal 2 die schwingungen sehen was mich nur wundert, die amplitude
beträgt so ca. 1V.

jedoch funktioniert mein kleines testprogramm nicht(siehe anhang)
keine bewegungen auf den ports.
habe den code mit avr-studio 4 erstellt und dann das hex-file übner den
galep in den chip geschrieben.

wo könnte mein fehler liegen???
ist der chip noch zu retten?
was hab ich nicht beachtet?

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur mal so als Anreiz: Stackpointer sollte am Programmstart
initialisiert werden. Siehe unter WICHTIG!
Ansonsten glaubst Du anscheinend, das der Inhalt von r16 nach jedem out
VERLOREN geht da Du r16 immer wiederholt mit dem selben Wert (0xFF oder
IN r16,PINC) füllst.
Es reicht auch nur einmal setzen und X-mal ausgeben.
Ansonsten setze CKSEL mal wieder zurück auf 0001 und prüfe, ob der 8515
auch mit den internen 1MHz läuft.
Wenn ja, dann ist CKSEL für den 8MHz-Quarz falsch gesetzt oder Du mußt
aufpassen, das Programmed = 0 und Unprogrammed = 1 ist.
Also statt für CKSEL 1111 setzt Du 0000 (externer Takt) oder statt 0001
eben 1110 für internen Takt.

.include "m8515def.inc"
;****interrupt vectors
 rjmp los             ;reset vector address
 .....
los:    ;WICHTIG! Stackpointer initialisieren
    ldi zl,low(RAMEND)
    out SPL,zh
    ldi zh,high(RAMEND)
    out SPH,zh
  cli        ;schaltet interrupts ab
    ldi r16, 0x00
    out DDRC, r16   ; port c -->eingang
    ldi r16, 0xFF
    out PORTC, r16  ; schaltet die internen pull-ups
    out DDRE, r16   ; portrichtung e  schreiben
    out DDRA, r16
    out DDRB, r16   ; schreibe port
    out DDRD, r16
loop:    in r16, PINC  ;lese port c ein
    out PORTE, r16  ;gib port c an port e aus
    out PORTA, r16  ;gib port c an port a aus
    out PORTB, r16  ;gib port c an port b aus
    out PORTD, r16  ;gib port c an port d aus
    rjmp loop

MfG
Andi

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...grrrr...
immer dieser Copy->Paste-Teufel!
Stackpointer initialisieren sollte so sein:
    ldi zl,low(RAMEND)
    out SPL,zl
    ldi zh,high(RAMEND)
    out SPH,zh

MfG
Andi

Autor: neu hier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke, andi für deinen hinweis mit dem register, dachte mir schon das
das so wie du es geschrieben hast richtig ist, nur wei der controller
absolut nicht reagierte, hab ich die register jedesmal neu geladen.
du weißt sicherlich, was mann alles versucht um fehler
auszuschließen...

die sache mit dem stackpionter war mir neu, allerdings brachte auch
dies keinen erfolg.

die sache mit dem cksel-
scheint auch ok zu sein, da im auslieferungszustand die fuse ja 0001
gesetzt ist.
wie geschrieben, fängt der externe quarz an zu schwingen, wenn ich
cksel von 0001 auf 1111 setze.
das ist aber die einzigste aktion, die ich zur zeit dem m8515 entlocken
kann.
die ports kommen mir als hochohmig geschaltet vor(tristate).
es ist also keine spannung zwischen gnd oder vcc zu messen.

nun steh ich mal wieder dumm da...

mfg
marcel

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.