STM32 liest zu langsam ein. Unsicher, ob ich als Interpunktion ein Ausrufezeichen, oder ein Fragezeichen setzen soll. :) STM32F103VE @ 72MHz Eingangssignal: 5VDC Eingansteiler 1:15 Verstaerkung : 10x Ausgangsignal: 3,3VDC Wenn ich Port A0 als digitalen Eingang beschalte (GPIO_Mode_IPD, GPIO_Mode_IPU oder GPIO_Mode_IN_FLOATING aendert nichts am Problem), kann ich das Eingangssignal nur dann eindeutig einlesen, wenn ich nach dem Umschalten der HC4051 ca. 20usec warte. Tue ich das nicht, meint die Software: - dass an keinem Eingang das Signal anliege - oder dass an einem falschen Eingang das Signal anliege - oder dass an 2 benachbarten Eingaengen gleichzeitig das Signal anliege Die MUX werden via SPI (8Mbps) und 74HC595 angesteuert. Die Verbindung der Testkarte mit der STM32-Karte erfolgt durch ein 50cm langes Flachkabel, wobei SPI (MOSI & CLK) durch eine getrennte RS485 Leitung übertragen wird. Alle Signale kommen astrein daher. Die Rechnerei dauert sehr lange (es werden mehrere Testkarten ausgewertet). Wenn es mir gelingen würde, diese 20usec zu eliminieren, könnte ich mehrere Sekunden einsparen. SPI laeuft mit DMA und mit 8Mbps, obwohl das Datenblatt der RS485 Bausteine nur 5 MBps erlaubt. :) Also von der Hardware her kann ich nichts mehr machen. Wieso ich diese 20usec einlegen muss, kann ich mir einfach nicht erklaeren. Hat jemand von Euch dafür eine Erklaerung? Dank im voraus.
Diese MCP6G01 wurden nicht für Wettrennen gebaut. Eine 3dB-Bandbreite von 350kHz (~3µs) bei 10facher Verstärkung... Und wenn du deren GSEL auch noch dynamisch schalten solltest, dann sind 10-12µs fällig.
Servus A.K. Der MCP6G01 war anfaenglich auch bei mir der Kandidat, auf den ich misstrauisch blickte. Aber ich komme zu keinem endgültigen Urteil, weil ich weit unter den Limits des Datenblatts arbeite (oder zu arbeiten glaube, weil ich irgendwas im Datenblatt missinterpretiere). Die GSEL werden nicht dynamisch geschaltet. Sie werden bei der Initialisierung gesetzt und bleiben bis zum Schluss des Scans in dieser Einstellung.
Habe nochmals (weiss gar nicht mehr zum wievielten Male) nachgemessen: Der Scan, ob ein Signal an einem der 128 Eingaenge vorliegt, wird in 4ms durchgeführt. Davon entfallen für die Warteschleife ca. 2,5ms. Wenn auf diese verzichte, komme ich auf eine Scan-Dauer von 1,5ms. 1,5ms / 128 -> ca. 85kHz. Also weit unter dem Limit des MCP6G01. Irgendwo mache ich irgendwas falsch ..... :(
Kleiner Nachtrag: 85kHz kommen nur dann zustande, wenn an allen Eingaengen ein Signal anliegt. Wenn nur an einem Eingang ein Signal anliegt, liegt die Frequenz natürlich noch viel tiefer. Aber auch hier habe ich dasselbe Problem.
Wie sieht denn die Ansteuerung des HC595 aus? Der braucht ja einen Latch-Takt. Gelten die 20µs Wartezeit ab diesem Taktsignal? Einen Oszi hast du keinen? Denn das schreit geradezu danach.
Mehmet Kendi schrieb: > Wenn nur an einem Eingang ein Signal anliegt, liegt die Frequenz > natürlich noch viel tiefer. Aber auch hier habe ich dasselbe Problem. Diese Rechnung bringt dich nicht weiter, denn im Grunde ist die Bandbreitenangabe im Datasheet für dein Problem nicht entscheidend. Entscheidend ist vielmehr die Pulsantwort auf ein sich änderndes Eingangssignal, aber die steht nur für GSEL und CS drin, nicht für das Analogsignal. Wenn sich nach der Messzeit ewig nichts rührt, dann sinkt die Grundfrequenz des Signals zwar, aber dafür kannst du dir nichts kaufen. Zur Pulsantwort gibt es als Indiz die Slewrate, mit 0,5V/µs bei G=1 und 2,3V/µs bei G=10. Wenn deine kaskadierten MCPs zusammen G=10 haben, dann hat einer davon G=1 und braucht für einen Spannungshub von 3V immerhin solide 6µs. Wobei dabei auch noch offen ist, auf welchen Spannunghub sich dieser SR-Wert bezieht. Bei der Bandbreitenangabe steht es dran, 100mVpp am Ausgang. Die hier interessantere Grosssignalbandbreite könnte OPA-typisch weit darunter liegen.
Hoppla, da steht sie ja, in Table 4-1. Die full swing Bandbreite bei G=1 liegt bei nur 29kHz bei Vdd=5,5V. Bei Vdd=3,3V CMOS-typisch wahrscheinlich entsprechend weniger.
A. K. schrieb: > Gelten die 20µs Wartezeit ab diesem Taktsignal? Yep, nachdem alle HC595 ihre Werte ausgegeben haben, muss ich 20us Daeumchen drehen. A. K. schrieb: > Zur Pulsantwort gibt es als Indiz die Slewrate, mit 0,5V/µs bei G=1 und > 2,3V/µs bei G=10. Wenn deine kaskadierten MCPs zusammen G=10 haben, dann > hat einer davon G=1 und braucht für einen Spannungshub von 3V immerhin > solide 6µs. Stimmt. Du hast recht. Au Backe, das tut weh .... Ich muss nochmals über die Bücher; herzlichen Dank für den Fingerzeig.
Bei AD und Port A0 gehen bei mir immer die Alarmglocken, da steht doch was im Errata?
A.K. ich mach für heute Schluss. Ich gebe Dir morgen 'ne Antwort. Danke nochmals für Deine Hilfe.
Nun ist der Kram ja analog konzipiert, warum betreibst du ihn digital, mit grenzwertiger Aussteuerung einer kaskadierten analogen Verstärkerstufe, trotz 5Vpp am Eingang und 3,3Vpp am Ausgang? Die Dinger sind ja gegengekoppelte Verstärker, keine Komparatoren. Ist das Szenario ein realistisches, oder ist das ein erster Test unter vereinfachten extremen Bedingungen, d.h. mit digitalem Testpattern statt den späteren Analogsignalen an den Eingängen? Aus der bisherigen Analyse ergibt sich ja, dass dein Problem im Grosssignalverhalten der MCPs zu suchen ist. Bei kleiner Amplitude sind sie schneller. Wenn du also sicherstellen kannst, dass der Ausgang des zweiten MCPs im Bereich weniger 100mVpp bleibt, vorzugsweise um Vdd/2 herum, dann ist die Sache möglicherweise zu retten. Es sieht ja sowieso so aus, als ob du eigentlich per ADC messen wolltest. Aber zum Bild: Ohne Test gleich in die Massenproduktion zu gehen ist zwar ein moderner vollendet rationalisierter Ansatz - aber nur wenns auch so funktioniert wie geplant.
A. K. schrieb: > Ohne Test gleich in die Massenproduktion zu gehen ... Zu meiner Verteidigung: Ist keine Massenproduktion, mehr eine Kleinserie. Desweiteren musste das Projekt innerhalb von 3 Monaten umgesetzt werden. Da hatte ich keine Zeit um gross angelegte Tests durchzuführen. Hinzufügen muss ich noch, dass ich bis heute bei solchen Sprüngen ins kalte Wasser noch keine grösseren Vögel abgeschossen habe. Vermutlich mehr Glück als Verstand :) A. K. schrieb: > Nun ist der Kram ja analog konzipiert, warum betreibst du ihn digital Gute Frage. Eine (ehrliche) Antwort darauf habe ich nicht. Vermutlich habe ich vor Uebermüdung und lauter Baeumen den Wald nicht mehr gesehen. Das Geraet hat in der Menü-Führung überall die Wahl zwischen analog und digital, wobei die Software auch tatsaechlich dementsprechend misst. Wieso ich Depp überhaupt eine digitale Möglichkeit eingefügt habe und mich erst noch auf die Digitale festgebissen habe ... ich weiss es nicht. Jetzt, wo ich analog mit 1x Verstaerkung messe, dauert die Messung einer Testkarte nicht mehr 700ms, sondern nur noch 20ms. A.K. wenn Du mir ein Bild von Dir schickst, will ich gerne in meinem Office einen kleinen Schrein einrichten, wo ich Dein Bild jeden Tag mit frischen Blumen, Früchten und Raeucherstaebchen schmücken will. :) Nochmals Danke, vielen Dank!
Die Clamping-Dioden gehören bestimmt auf die andere Seite des Längswiderstandes.
Heute das Geraet beim Kunden abgegeben. Nach 2 Stunden Dauertest: rundum laechelnde Gesichter. Fehlen zwar noch so "Kleinigkeiten" wie Ethernet-, VGA Monitor- und USB-Anschluss ... aber was soll's.
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.