mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Total Ratlos: Controller läuft nicht


Autor: Enrico Schulz (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich bin mittlerweile total am Verzweifeln... ich habe eine Schaltung
mit 3 uC aufgebaut.

Ein uC ist ein ATMega8 mit externem Quarz angeschlossen

der zweite uC ist auch ein ATMega8 der seinen Takt über den XTAL1-Pin
vom ersten Controller bekommt

der dritte uC ist ein AT90S2313 der ebenfalls seinen Takt über den
XTAL1-Pin vom ersten Controller bekommt.

nun das Problem:
uC 1 und 2 laufen ohne Probleme.
uC 3 läuft aber irgendwie gar nicht.

hier erstmal der Quellcode des 3. Controllers:

------------------------------------------------------------------

$regfile = "2313def.dat"
$crystal = 4000000
'DDR = &B76543210   ; 0=Eingang  ; 1=Ausgang
Ddrb = &B11111111
Ddrd = &B11101111
Portb = &B01000000
Portd = &B01000001

Do
Waitms 500
Portb = 64
Waitms 500
Portb = 8
Waitms 500
Portb = 16
Waitms 500
Portb = 104
Waitms 500
Portb = 0
Waitms 500
Portb = 80
Waitms 500
Portb = 96
Loop

End
-------------------------------------------------------------------


Ist ja soweit ein einfaches Programm. Wenn ich die Spannung einschalte,
dann setzt der Controller den PortB manchmal auf 0, manchmal auf 96 und
manchmal auf 64. (nur diese 3 varianten sind bisher aufgetreten) Aber
ändern tut sich an dem Port-Status gar nichts... Eigentlich sollte er
ja nach 0,5 Sekunden wechseln, aber es tut sich auch nach 5 Minuten
nix.
Was mir aufgefallen ist: der PortD wird immer richtig gesetzt, was ja
darauf schließen lässt, das zumindest die ersten Zeilen ordnungsgemäß
ausgeführt wurden.

Um einen Hardware fehler bei der Schaltung auszuschließen, habe ich
auch über einen Adapter einen ATMega8 an den Steckplatz des 2313er
gesteckt und siehe da, der Mega8 läuft dort ohne Probleme. Warum klappt
das also nicht mit dem 2313er?
Kaputt ist der 2313er auf keinen Fall, habs schon mit mehreren
Probiert, die in einer anderen Schaltung mit einem anderen Programm
Fehlerfrei laufen...

Bitte helft mir so schnell wie möglich...

vielen Dank

Robodriver


PS: wen es interessiert, im Anhang noch der entsprechende Assamblercode

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde den 2313 mal alleine mit externem Takt probieren um einen
Prog-Fehler auszuschließen.
Möglicherweise ist dem der Takt zu schlecht (welche Frequenz?), längere
Leitung auf der Platine? Was ist wenn du den 2. Mega8 abziehst?(wenn
gesockelt)

Autor: Enrico Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles schon probiert...

den zweiten Mega8 abgezogen.

Jetzt hab ich die Schaltung auch schon so weit geändert, das der 2313er
seinen eigenen Takt bekommt...
Aber alles ist bisher zweglos.
Die Erzeugung des Taktes funktioniert auf alle Fälle, denn wenn ich
einen Mega8 über einen Adapter an die stelle des 2313er stecke, dann
läuft der tadellos.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier wurden Sie geholfen:
http://forum.electronicwerkstatt.de/phpBB/topic596...

...nur dass nicht hier alles nochmals geschrieben werden muss. ;-)

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und im allgemeinen ist XTAL2 der Ausgang des internen Oszillators beim
mega8. Dort sollten weiterführende Clocksignale angeschlossen werden.
Zusätzlich sollte dann noch die CKOPT Fuse aktiviert werden um ein
besseres Schwingverhalten zu gewährleisten.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CKOPT ist nicht für externen Ozzilator sondern fürn Quarz wenn ich das
recht erinnere

Autor: Enrico Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, leute, ich habe das Problem nun gelöst indem ich einfach einen Mega8
anstelle des AT90S2313 benutzt habe....

siehe hier ganz unten:

http://forum.electronicwerkstatt.de/phpBB/topic596...

(Das selbe gilt auch für euch)

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke zwar nicht, daß das Problem damit gelöst ist, aber solange es
(zuverlässig) geht...

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.