Total Ratlos: Controller läuft nicht

Gast #394009
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
Angehängte Dateien:
Gast #394010
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)
Gast #394011
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.

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