Total Ratlos: Controller läuft nicht

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 26 12 2025  15:24:15      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( 1 | 2 Nächste Seite )      


Autor
Total Ratlos: Controller läuft nicht
Suche nach: controller (3563)

    







BID = 360578

robodriver

Stammposter

Beiträge: 217
 

  


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:



Code :


$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

BID = 360592

Ltof

Inventar



Beiträge: 9386
Wohnort: Hommingberg

 

  

Da fehlt noch ein Schaltplan.

Eine recht wahrscheinliche Ursache für so ein Verhalten sind beispielsweise fehlende Blockkondensatoren.

Gruß,
Ltof

_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)

BID = 360603

robodriver

Stammposter

Beiträge: 217

Hallo,

also mit dem Schaltplan häng ich zur Zeit etwas hinterher, den ersten Controller mit allem drum herum hab ich schon fertig gehabt...

Die anderen beiden habe ich jetzt noch schnell mit allen wichtigen Bauteilen angefügt... (nicht wundern, die I/Os sind eigentlich alle belegt, habs nur aus Zeitgründen erstmal weg gelassen
mit den Blockkondensatoren ist ne gute Idee wo soll ich die hin machen? direckt am Controller zwischen + und - ?
so wie beim erten uC ?



BID = 360609

robodriver

Stammposter

Beiträge: 217

so, hab jetzt noch zwei Abblockkondensatoren bei den anderen beiden uC angelötet... (zwischen Vcc und GND)

jetzt wird beim Einschalten IMMER der Port B auf &B01000000 gesetzt (also 64) ich denke aber mal, das sind die 64 die bei der Initialisierung oben gesetzt werden.
Die Hauptschleife wird allerdings nach wie vor nicht ausgeführt...
Port B bleibt immer unverändert auf &B01000000 stehen.

Woran könnte es noch liegen?

BID = 360611

Jornbyte

Moderator



Beiträge: 7345

Wie hast du die Schaltung aufgebaut, Lochraster? Die Taktleitung muss so kurz wie möglich sein und sollte sich nicht mit anderen Leitungen kreuzen.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 360612

robodriver

Stammposter

Beiträge: 217

also die Taktleitung vom ersten Controller zu den anderen beiden ist in etwa 20cm lang.
Könnte es vielleicht sein, dass das ankommende Taktsignal einem ATMega8 gerade so ausreicht um zu laufen, während ein AT90S2313 schon streikt?
Das währe etwas was ich mir vorstellen könnte...

Wenn ja, was kann ich dagegen machen? Vielleicht 2 Leitungen verlegen, damit sich der Leitungsquerschnitt verdoppelt? die 20cm, kann ich leider nicht verkürzen...

BID = 360619

Jornbyte

Moderator



Beiträge: 7345

20 cm kannst du vergessen. Wie hoch ist der Takt? 4 MHz? Warum verwendest du nicht den internen Takt? Da bist doch auf der sicheren Seite.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 360630

robodriver

Stammposter

Beiträge: 217

Interner Takt? wie meinst des? irgendwo muss der Takt doch her kommen...

also ich hab jetzt mal das einfachste gemacht: ich habe dem 2313er einen eigenen Quarz mit Kondensatoren gegeben.

Resultat: PortB wird ebenfalls immer auf &B01000000 gesetzt, das Programm läuft aber trotzdem nicht.
Der Schwingkreis funktioniert einwandfrei. Das habe ich wieder mit einem ATMega8 über den Adapter getestet...
Also sieht es jetzt doch wieder nach einem Software-Problem aus oder?

BID = 360631

Jornbyte

Moderator



Beiträge: 7345

Ach so, ja, 2313. Ist der Reseteingang richtig beschaltet?

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 360633

robodriver

Stammposter

Beiträge: 217

also der Reset lieg über einen Pull-Up auf 5 Volt.
(hab ich auch nachgemessen, der Pin hat wirklich 5 Volt)

und in den High-Fuses ist der Pin auch als Reset Konfiguriert und nicht als I/O Pin

BID = 360648

DonComi

Inventar



Beiträge: 8604
Wohnort: Amerika

Bist du dir sicher, dass der Takt 4MHz beträgt? Wenn nein, dann kann es sein, dass der Aufruf von waitms 500 einfch zu lange dauert. Bascom rechnet anhand der Taktfrequenz aus, wieviele Zyklen verzögert werden müssen, um auf die (sehr ungefähre...) Verzögerungszeit von 500ms zu kommen. Beträgt der Takt tatsächlich mehr oder weniger, dann schwanken auch die Zeiten später stark.



_________________

BID = 360650

Jornbyte

Moderator



Beiträge: 7345

Du verwirsst mich etwas. Ist es ein 90S2313 oder ein Tiny2313?

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 360652

robodriver

Stammposter

Beiträge: 217

Es ist ein AT90S2313.

Also auf dem Angeschlossenen Quarz steht : 4,0000
Also sind es 4 MHZ. Bei dem ATMega8 haut die Zeitverzögerung ja ungefähr hin und der häng am gleichen Takt...

BID = 360654

DonComi

Inventar



Beiträge: 8604
Wohnort: Amerika

Dann ist die Strecke einfach zu lang!

Der Quarz sollte möglichst nahe an den Pins liegen (XTL1 und XTAL2). außerdem müssen da 2 Kondensatoren ran, steht alles im Datenblatt. (zw. 12pf und 27pf)

_________________

BID = 360660

robodriver

Stammposter

Beiträge: 217

wie gesagt, mittlerweile hab ich dem AT90S2313er einen eigenen Quarz gegeben. So das er jetzt einen eigenen Takt hat.
Und wie gesagt, der Takt wird auch richtig erzeugt, denn ein ATMega8 den ich über den Adapter an die Stelle gesteckt habe, läuft einwandfrei. nur der AT90S2313er zuckt kein Bisschen

woran kann das nur liegen?


      Nächste Seite
Gehe zu Seite ( 1 | 2 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag       heute wurden bisher 6 Beiträge verfasst
© x sparkkelsputz        Besucher : 187964103   Heute : 22557    Gestern : 18748    Online : 290        26.12.2025    15:24
18 Besucher in den letzten 60 Sekunden        alle 3.33 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.054801940918