PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ersatzschaltung für Mikrocontroller?



StackDaniels
11.10.2007, 20:55
salve
Es gibt ja diverse Schaltungssimulatoren wie z.B. Spice oder qucs (Quite Universal Circuit Simulator, http://qucs.sourceforge.net/ ), die man u.a. benutzen kann, um zu testen, ob eine Schaltung korrekt ist. Allerdings weist zumindest der qucs den Nachteil auf, dass man keine Microcontroller in diese Schaltungen einfügen kann (ist zumindest mir nicht bekannt). Meine Frage ist daher, wie man im Allgemeinen vorgehen kann, um das elektrische Verhalten eines IC mit einer Ersatzschaltung zu beschreiben. Mein naiver Ansatz wär jetzt, im Datenblatt den Innenwiderstand des Chips zu bestimmen und dafür dann im Schaltbild einen entsprechenden Widerstand einzufügen. Wie geht ihr da vor?

~StackDaniels

Vitis
12.10.2007, 08:27
um einen µC zu simulieren müsste man die Funktion desselbigen simulieren, sprich das enthaltene Programm in Logikbausteine zerlegen und die dann entsprechend in die Simulation einbauen. Das erste problem ist mal ist der Pin den man einfügt auf Ein- oder Ausgang konfiguriert, dann Pullup aktiviert, ist der Pin Symmetrisch, sprich kann er gleich viel sinken und sourcen oder asymmetrisch etc. etc. ...

H.A.R.R.Y.
12.10.2007, 09:29
Vitis stimme ich zu, wenn es darum geht die komplette Funktion des µC zu emulieren.

Es gibt aber auch den Fall, daß man nur mal einen Portpin im Zusammenspiel mit der externen Schaltung simulieren möchte. Dann bildet man den Pin durch eine Ersatzschaltung nach - z.B. ideale Spannungsquelle zzgl. realem Innenwiderstand und evtl. noch die ESD-Schutzdioden nach Vcc und Gnd und Pull-Up, parasitäre Kapazitäten usw. Im Datenblatt finden sich meist alle diese Werte. Meist mache ich mir mehrere Ersatzschaltungen, die dann nachbilden ob der Port Hi-Z, '0' oder '1' abliefert. Dann wird das je einmal simuliert und fertig. Wechsel von '0' nach '1' und zurück macht man mit einer idealen AC-Quelle und den zusätzlichen Elementen.

Für Eingänge finden sich meist auch Angaben, so daß man die mit einem entsprechen Last-Netzwerk (z.B. R nach Gnd) nachbilden kann.

Störungen auf Vcc und Gnd sind meist im Takt des µC-Clocks und lassen sich mit Rechteckgenerator und RC-Hochpaß modellieren. Damit belastet man dann die Entkoppelnetzwerke.

Brauchst Du komplexe Abläufe, dann mußt Du meist ziemlichen Aufwand treiben oder ein Modell schreiben, was den µC vertritt.

Noch etwas wichtiges:
Üblicherweise sind die Schaltelemente der Simulatoren (besonders R, C, L und die Leitungen(!)) ideale Elemente. In der Schaltung sind aber reale Elemente vorhanden. Für reale Elemente sind eigentlich Netzwerke erforderlich oder die entsprechenden parasitären Parameter in entsprechend komplexen Modellen. Simulierst Du Deine Schaltung also mit idealen Elementen, dann wird das Ergebnis unter Umständen nicht dem tatsächlichen Verhalten der Schaltung entsprechen. Daher sind die Simulationsergebnisse immer mit entsprechender Vorsicht zu bewerten.

Mal ein Beispiel: eine (Luft-)Spule, bei der man die Induktivität gemessen hat.
Gemäß der Theorie ist X_L = 2 * pi * f *L
Das ergibt im Diagramm X_L = Funktion(f) eine Gerade mit Steigung 2*pi*L aus dem Ursprung heraus. Ein Simulator liefert das üblicherweise auch so ab.
Eine praktische (Luft-)Spule hat aber zwischen den Wicklungen kleine Kapazitäten - das ist aufbaubedingt und unumgänglich! Und dann ist da ja noch der Widerstand der Kupferwicklung...
Wenn man so eine reale Spule nun mit einem Frequenzsweep am Labortisch durchmißt, dann sieht man eine deutliche Parallel-Resonanzkurve mit Maximum bei
f0 = 2 * pi * wurzel(L * C_wicklung)
Das ist doch ein erheblicher Unterschied zum Simulator. Dem muß man dann also die reale Spule beibringen, indem man entsprechende zusätzliche Elemente aufnimmt (entweder mit ins schematic reinmalen, oder das Spulenmodell um R und C ergänzen) - natürlich müssen deren Werte so abgestimmt werden, daß sie mit der realen Spule möglichst gut übereinstimmen.

Ein weiterer Hinweis ist mir wichtig: (einfache) analoge Simulatoren ermitteln zu Beginn einen Arbeitspunkt, der dann beibehalten wird (Kleinsignalmodell und Rechenzeit). Damit kann man keine Schaltungen simulieren, die von der Variation des Arbeitpunktes lebt (z.B. Verstärkungsänderung am Transistor durch ändern des Basisstromes). Wegen des Kleinsignalmodells sind auch diverse nichtlineare Effekte im Simulator dann nicht zu sehen.

Sollte es tatsächlich notwendig werden logische Abläufe (µC, FPGA usw.) mit analogen Elementen zu verkoppeln, wird bei komplexen Systemen der digitale Simulator mit dem analogen Simulator gekoppelt, das heißt dann mixed mode simulation - im Hobbybereich kenne ich da allerdings nichts. Das ganze ist auch sehr rechenintensiv und für 1ms Simulationszeit gehen im Profibereich durchaus auch mal 3-4Tage Rechenzeit drauf...

Schluß: Für den Hausgebrauch eignet sich eine Simulation um abzuschätzen, ob es überhaupt so funktioníeren kann, und - entsprechende Modelle vorausgesetzt - wie und wo optimiert werden kann. Den Praxistest ersetzt eine Simulation nicht. Einen Mikrocontroller zu simulieren ist möglich, der Aufwand richtet sich nach den Ansprüchen an das Simulationsergebnis.

Gruß H.A.R.R.Y. (ich glaube das war jetzt schon ein bißchen zu ausführlich, oder?)

StackDaniels
12.10.2007, 11:36
Hui, man merkt, du kennst dich aus :)
Vielen Dank für die ausführlichen Antworten. Ich hätte den Simulator auch nur dazu genutzt um zu testen ob eine Schaltung prinzipiell funktioniert (und dabei nicht meine Bauteile brutzelt) bevor ich sie real umsetze, aber danke für die Tipps bezüglich detaillierter Modellierung. Ich werde es im Hinterkopf behalten.

pctoaster
12.10.2007, 18:37
@StackDaniels,
so einen Simulator für MCs gibt es nicht. Selbst für einfache Bauteile gibt es keine (bezahlbare) Simulationssoftware, die das "schmurgeln" der Bauteile mit einbezieht.
Für MCs gibt es Simulatoren, die aber nur die Software des MCs nachbilden.
Wenn Du also eine Schaltung mit einem MC erstellen möchtest, bleibt Dir nichts anderes übrig, als das Datenblalt zum MC zu lesen. Dies sollte man im übrigen auch für andere Bauteile machen, wenn man nicht auf Erfahrungswerte zurückgreifen kann.
Simulationssoftware ersetzt halt kein Fachwissen. Hart, aber wahr. ;-)

@H.A.R.R.Y.
ich widerspreche Dir hier nicht, aber ich denke, das ist nicht das, was @StackDaniels beabsichtigt.

Gruß
pctoaster

StackDaniels
12.10.2007, 18:47
Doch, H.A.R.R.Y. hat mir schon sehr geholfen, denn es ging mir ja auch darum, wie ich Mikrocontroller schaltungstechnisch behandle (und damit auch ggf. im Kontext einer Schaltung in nem Standardsimulator untersuchen kann)