Hallo ! In einer Anwendung verwende ich zum Schalten von Relais und LEDs (natürlich nicht direkt) einen MCP23017 (I2C Porterweiterung). Dieser hat hat einen Reseteinang. Jetzt stellt sich mir die Frage, ob der Reset als optional anzusehen ist (Laut Datenblatt wird ja ein Power-On-Reset durchgeführt). D.h. was ich suche sind Erfahrungswerte: Hat der MCP vielleicht Probleme mit dem POR, so daß beim Start gelegentlich ein zusätzlicher "händischer" Reset notwendig wird ?? Hängt sich das Teil vielleicht sogar mal auf ??? Grundlos werden sie das ja nicht vorsehen. Der gute alte PCF8574 hatte keinen Reseteingang und hat bei mir eigentlich immer einwandfrei funktioniert. Schöne Grüße, Thomas
Dass ein Reseteingang vorgesehen ist, ist kein Indiz für ein schlechtes Design, sondern sehr vernünftig. Auch wenn man ihn nicht immer braucht. Es gibt Anwendungen, wo man nach extern initiiertem Reset nicht darauf warten kann, bis der Controller im Rahmen seiner Initialisierung den Baustein per Software in den Grundzustand versetzt. Denk auch an einen Spannungsüberwachungs-Baustein, der das Reset-Signal erzeugt. Wenn der zuschlägt, ist der Prozessor weg, aber ohne Reset-Anschluss verbreitet der Portbaustein weiterhin soviel Unfug wie er möchte.
Danke für die Antwort ! > Es gibt Anwendungen, wo man nach extern initiiertem Reset nicht darauf > warten kann, bis der Controller im Rahmen seiner Initialisierung den > Baustein per Software in den Grundzustand versetzt. Naja, der MCP verfügt ja über einen POR, bei dem alle Register in den Grundzustand gebracht werden. So gesehen macht für mich ein externer Reset hier nur dann Sinn, wenn beim POR etwas schiefläuft (muss ja nicht schlechtes Design sein - es reicht ja eine "schlechte" Spannungsversorgung, könnte ja sein, daß der MCP hier besonders empfindlich ist) > > Denk auch an einen Spannungsüberwachungs-Baustein, der das Reset-Signal > erzeugt. Wenn der zuschlägt, ist der Prozessor weg, aber ohne > Reset-Anschluss verbreitet der Portbaustein weiterhin soviel Unfug wie > er möchte. Hm, da hast Du natürlich recht mit dem externen Resetbaustein. Allerdings: Wenn die Relais direkt (mit nachgeschaltetem Treiber) von den Portpins des Prozessors aus betrieben werden würden, wäre das Problem meiner Meinung nach eigentlich das selbe. Wenn nicht vielleicht noch schlimmer, da ja die Zustände der Ports vom Prozessor dann nicht definiert sind. Über den Portexpander (ohne Reset) behalten die Relais im Idealfall ihren Zustand so lange bis der Prozessor wieder da ist und die Kommunikation wieder aufnimmt. Sollte sich der MCP dabei "aufgehängt" haben macht der Reset natürlich wieder Sinn. Wobei ich aber nicht weiß, wie oft so ein Aufhängen praktisch überhaupt vorkommt, da ja in dem Teil eine Statemachine werkelt. Ich vermute mal, dass zu dem Zeitpunkt wo die Register ihren Wert verlieren würden auch schon ein POR durchgeführt wird ...
Thomas B. wrote: > Naja, der MCP verfügt ja über einen POR, bei dem alle Register in den > Grundzustand gebracht werden. Es gibt nicht nur den Power-On-Reset. Es gibt auch andere Resets. Vielleicht willst du ja nicht, dass der Portbaustein wild rumspukt, während der Programmer grad mit dem Controller rumspielt. > daß der MCP hier besonders empfindlich ist) Weiss ich nicht. Das ist aber definitiv nicht der Grund für diese Leitung. Im Gegenteil: es ist in meinen Augen ein grosses Manko des PCF8574, dass er keine hat. > Allerdings: Wenn die Relais direkt (mit nachgeschaltetem Treiber) von > den Portpins des Prozessors aus betrieben werden würden, wäre das > Problem meiner Meinung nach eigentlich das selbe. Nein, denn der Prozessor gibt bei angelegtem Reset sofort seine eigenen Pins frei. > Wenn nicht vielleicht > noch schlimmer, da ja die Zustände der Ports vom Prozessor dann nicht > definiert sind. Im Gegenteil, sie sind sehr klar definiert. Ein Treiberbaustein wie der ULN2003 braucht zum schalten Strom, und bei hochohmigem Pin (alle ausser 8051) kriegt er den nicht => abgeschaltet.
> Es gibt nicht nur den Power-On-Reset. Es gibt auch andere Resets. > Vielleicht willst du ja nicht, dass der Portbaustein wild rumspukt, > während der Programmer grad mit dem Controller rumspielt. Ja gut, aber wenn ich den externen Reset vom MCP23017 nicht verwende, bewirkt der Programmer am Prozessor nicht wirklich was. Und selbst wenn ich einen Portpin zum Reset schalte, "spukt" das Ding höchstens einmal - mehr als die Ausgänge zurücksetzen kann er beim Reset ja nicht machen. Oder seh ich da was falsch ? >> Allerdings: Wenn die Relais direkt (mit nachgeschaltetem Treiber) von >> den Portpins des Prozessors aus betrieben werden würden, wäre das >> Problem meiner Meinung nach eigentlich das selbe. > > Nein, denn der Prozessor gibt bei angelegtem Reset sofort seine eigenen > Pins frei. Ja da hast natürlich recht. Hatte das falsch im Kopf. Beim M16C den ich hier verwende, sind die Port-Register nach einem Reset nicht definiert. Die Direction-Register werden nach einem Reset aber definiert als Eingang geschaltet. Auf jeden Fall hast du mich überzeugt, dass der Reset am MCP sinnvoll ist und ich ihn wenn möglich auch verwenden werde. :) Schöne Grüße, Thomas
Wenn ihr mir jetzt noch sagt, wie ich den Reset statisch beschalten muss wenn ich ihn nicht verwenden will, dann wäre das Thema "RESET" am MCP23017 / MCP23S17 vollständig abgehandelt. Das Datenblatt gibt mir diesbezüglich keine Sauber Antwort... Viele Dank
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.