STM32 liest zu langsam ein

OP #2070549
Lesenswert?

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.
Angehängte Dateien:
OP #2071619
Lesenswert?

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.
OP #2071776
Lesenswert?

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 ..... :(
#2071843
Lesenswert?

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.
OP #2071865
Lesenswert?

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.
#2072013
Lesenswert?

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.
OP #2072327
Lesenswert?

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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren