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?)
Lesezeichen