Forum: Mikrocontroller und Digitale Elektronik Mega-8 in Industrieumgebung


von thkais (Gast)


Lesenswert?

Hi,
ich bin heute Dinge gefragt worden, auf die ich keine Antwort weiß -
vielleicht kann einer von euch weiterhelfen.

1. Wie "sicher" ist der interne Watchdog?
Meines Erachtens sollte da nichts passieren, so lange der Takt läuft
und der Watchdog eingeschaltet ist. Gibt es irgendeine Indikation, daß
ein zusätzlicher externer Watchdog vorgesehen werden sollte?

2. Was genau machen die Port-Pins während des Einschaltens?
Die Port-Pins sind vom Einschalten weg als Eingang geschaltet, bis man
das Datenrichtungsregister programmiert. Ist es möglich, daß während
des Einschaltens kurzzeitig ein Portpin Spikes aussenden können, d.h.
für den Bruchteil einer Sekunde als Ausgang geschaltet sind?

Gruß
thkais

von Stefan Kleinwort (Gast)


Lesenswert?

>1. Wie "sicher" ist der interne Watchdog?
>Meines Erachtens sollte da nichts passieren, so lange der Takt läuft
>und der Watchdog eingeschaltet ist. Gibt es irgendeine Indikation,
daß
>ein zusätzlicher externer Watchdog vorgesehen werden sollte?

Der Watchdog läuft mit einem separat erzeugten Takt. Selbst wenn der
Haupttakt steht, läuft die Watchdog weiter. Meiner Meinung nach ist der
interne WDOG ein vollwertiger Ersatz für einen externen Chip.

Übrigens kann man den Watchdog auch benutzen, um den Controller aus dem
PWDN aufzuwecken. Das ist zwar nur über einen Reset möglich, aber es
gibt ein Flag, an dem erkannt werden kann, dass der Reset vom WDOG
kommt. Interessant für Systeme, die wenig Strom verbrauchen sollen,
aber trotzdem regelmässig was tun müssen.

Stefan

von Oryx (Gast)


Lesenswert?

Hallo thkais,

"schöne" Fragen.

zu 2:
was bei unterschiedlichen Spannungen passiert, wird dir wohl kaum
jemand sagen können. Bei 1 bis 2 Volt kann nach meinem dafürhalten
alles mögliche passieren. Du kannst aber versuchen, dies mit pullups
oder pulldowns zu minimieren. Dann noch die nachfolgende Elektronik so
auslegen, das da nichts schief geht.
Alternativ bleibt noch ein Resetbaustein, der garantiert bei 1 bis 2
Volt arbeitet und deine Ausgangstreiber disabled.

Bei und in der Firma hat immer derjenige verloren, bei dem beim
Einschalten/Ausschalten irgendwelche LEDs oder gar Relais usw.
schalten. Mindestens ein Bier für alle.

Bin mal auf weitere Antworten gespannt.

Oryx

von thkais (Gast)


Lesenswert?

Danke zunächst mal.

Die Sache mit den einschaltenden Relais kann einen manchmal zur
Verzweiflung bringen... Bei einem Bus-Expander hatte ich mehrere
74xx574 im Einsatz, die direkt nach dem Einschalten zufällige
Ausgangszustände hatten. Der Controller brauchte ca. 1/10 Sekunde, bis
alles initialisiert war - zu lange. Zum Schluß habe ich völlig entnervt
einfach die Versorgungsspannung der Relais verzögert zugeschaltet.
Etwas unorthodox, aber es funktioniert.

Bei den PortPins gehts mir darum, ob sie während des Einschaltvorgangs
durch irgendeinen Umstand als "Output" (über das
Datenrichtungsregister) geschaltet sein könnten. Aus den Datenblättern
kann man zwar entnehmen, daß die Datenrichtungsregister bei
Controllerstart auf "0" = Eingang gesetzt sind, aber was passiert
wirklich direkt nach dem Einschalten des Controllers? Kann man wirklich
garantieren, daß die PortPins nicht kurzzeitig als Ausgang geschaltet
werden? Hat irgendjemand Erfahrungen damit?

von ---- (Gast)


Lesenswert?

An deinem RelaistreiberEINgang entweder einen Pull-up oder Pull-down
hängen (soll heissen auf einen definierten Pegel ziehen, damit
herumfloatende Eingänge nicht das Relais kurz anziehen lassen können),
der für den Einschaltmoment (bis die Software gestartet ist) die
richtigen Pegel an den Treiber anlegt. Danach kann dieser dann vom µC
"überschrieben" werden.

----, (QuadDash).

von Matthias (Gast)


Lesenswert?

Hi

wenn der interne BOD aktiviert ist sollte eigentlich nichts passieren
da der Chip ja bis zum erreichen eines bestimmten Spannungslevels im
Reset ist. Ist der aber nicht aktiviert kann dir wohl keiner so genau
sagen was der Chip unterhalb von 2,5V Betriebsspannung macht. Deine
nachfolgende Schaltung sollte halt nicht empfindlich auf irgendwelche
Spikes reagieren. Denn die kannst du dir in industrieller Umgebung auch
noch anderst einfangen als durch einen Controller der nicht sauber
hochkommt.

Matthias

von Aleksej (Gast)


Lesenswert?

Ich verstehe nicht, wieso es 1/10 Sekunde dauern sollte bis alles
initialisiert wird. Eigentlich geht´s bei mir viel schneller. Aber ich
mach es am meistens mit Assembler. Aber mit C sollte es auch nicht so
schlimm sein vermute ich. Es kann natürlich sein, dass der Compiler zu
viele Aktivitäten am Start unternehmen will, aber das kann man doch
einstellen, mindestens bei CodeVision.

von OldBug (Gast)


Lesenswert?

Sorry, aber das hat rein gar nichts mit Compilern und Assemblern zu
tun!
Eher mit Gatterlaufzeiten, Flankensteilheiten etc. pp...

Gruß,
Patrick...

von Matthias (Gast)


Lesenswert?

Hi

100ms ist je nach Fusebits-Stellung durchaus realistisch bis der erste
Maschinenbefehl ausgeführt wird. Defaulteinstellung für die SUT sind
schonmal 65ms. Hinzu kommt dann noch die Zeit bis an Vcc ausreichend
Spannung erreicht (Laden evtl. Primärelkos usw.)

Wird dann Reset noch extern beschaltet (was ich(tm) in industrieller
Umgebung tun würde) kommt die Zeit auch noch dazu bis RESET inaktiv
wird.

Man kann das zwar optimieren, ab Werk liegt man aber da bei duetlich
jenseits von 50ms.

Matthias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.