Hallo, ich habe ein mir nicht erklärliches Verhalten beim experimentieren festgestellt. Das Problem liegt nach meiner Einschätzung beim Microcontroller und äussert sich wie folgt: Beim "durchfahren" des Wertebereichs des 12 bit AD-Wandlers ergeben sich hohe Wertesprünge bei folgenden Werten: von 511 nach 568 bleibt der Wert bei 511 von 1023 nach 1099 bleibt der Wert bei 1023 von 3000 nach 3027 bleibt der Wert bei 3027 die Wert die bei ca. 4000 liegen müssten kann ich mit mein Hardware nicht erreichen. Es sind auch noch zwischendrin kleinere Bereiche die das selbe Verhalten zeigen. Festgestellt habe ich es bei der Auswertung eines resistiven Toutchpanels, wo ich jeden gedrückten Punkt auf dem Display anzeigen lasse. Dabei ergeben sich Streifen die nicht gefüllt werden können wie im Anhang zu sehen ist. Es sieht zwar so aus, als würde der Fehler beim Display oder beim Toutchpanel liegen, aber dies würde ich ausschließen; Das Toutchpanel weil trotz ADC-Rauschen an jeder Stelle die Abgrenzungen der Streifen auf den Punkt genau sind, das Display weil die Anzeige ansonsten(Zeichnen und Schreiben) einwandfrei ist. Sonstige Hardware(Platine, Spannungsregler usw.) würde ich auch ausschließen. Die Software (HAL) sollte auch nicht verantwortlich sein kann ich aber nicht ausschließen. Bleibt noch der Prozessor, der Bit-Fehler im ADC haben könnte. Vieleicht ist es auch nur ein einmaliger Fehler, der durch unsachgemäße Behandlung verursacht wurde. Da ich die Hardare nur einmal habe, kann ich dies zur Zeit aber nicht überprüfen. Es wäre nett, wenn jemand die eine oder die andere Variante bestätigen könnte. Vieleicht hilft es auch anderen. Zur Hardware: - STM32F373 VBT6 B HPAGF KOR HP 325 (das vermutete Problem) - resistives Toutchdisplay - selbstgeäzte Platine, alle Prozessorpinns genutzt aber noch nicht vollständig bestückt. - Recom R783.3-05 Spannungsregler Das Toutchpanel ist vollgendermaßen angschlossen: y- -> PA0 X+ -> PA1 X- -> PA2 Y+ -> PA3 direkt verbunden ohne zusätzliche externe Beschaltung. Es wird mit dem betroffenen ADC Kanal 1 und Kanal 3 ausgelesen. Viele Grüße Jürgen C.
Ein Schaltplan wäre schon hilfreich. Aber das erste was mir einfällt ist das sich resistives Touchpad nach hohen Ausgangswiderstand anhört und der ADC je nach Samplezeit eine niedrigen Ausgangswiderstand braucht. Im spzifischen Datenblatt des MCU steht drinnen wieviel Ohm der Ausgang haben darf. Das nächste ist dein Spannungswandler. Rascom das sind doch meist schaltende DC/DC Wandler, ohne LDO dazwischen kannst du mit dem nicht den ADC bzw. weil der ADC ja in deinem MCU ist deine MCU versorgen, da aufgrund des Schaltens die Versorgung sehr sehr unsauber ist.
Hallo Bergi, der Schaltregler bzw. der Widerstand des Toutch würde das durchaus vorhandene Rauschen der Werte erklären aber nicht die exakt reproduzier- baren Lücken in den ADC-Werten. Auf dem Bild(Foto vom Display) sind hunderte Wandlungen zu sehen die immer den gleichen Fehler zeigen. Senkrechte und waagrechte Unterbrechungen dar schwarzen Bereiche; Die schwarzen Bereiche entstehen durch Zeichnen auf dem Toutch Display und sollten diese exakten Unterbrechnungen nicht zeigen. Viele Grüße Jürgen
:
Bearbeitet durch User
Jürgen C. schrieb: > Das Toutchpanel ist vollgendermaßen angschlossen: > y- -> PA0 > X+ -> PA1 > X- -> PA2 > Y+ -> PA3 > direkt verbunden ohne zusätzliche externe Beschaltung. > Es wird mit dem betroffenen ADC Kanal 1 und Kanal 3 ausgelesen. ... und wo kommt die Spannung her? Widerstände mit den ADC messen geht nicht ohne Spannung .....
Das geht schon in dem man einfach die GPIO's auf Push/Pull Ausgänge umschaltet, aber der Widerstand ist ohne Puffer vorm ADC ein riesen Problem und verfälscht das Ergebniss so stark das man nicht wissen kann was rauskommt. Den ADC Toasten ist nicht so einfach möglich da jeder Eingang mit Dioden intern geschützt ist. Ein Problem kann auch noch ein zu hoher Takt am ADC sein. Das kann auch die seltsamsten Fehler verursachen aber ich tippe auf den Hochohmigen Ausgang des Displays in kombi mit der schlechten Versorgung. Häng mal statt dem Touchpanel eine Labornetzteil drauf und fahre vorsichtig den Spannungsbereich durch.
Hallo, wie Bergi sagt: GPIO Umschaltung. Das Rauschen bekomme ich mit "Entprellung" (Mehrfachabfrage) ganz gut in den Griff, aber auch bei unterschiedlicher Spannungsversorgung treten die Fehler immer Genau an der gleichen Stelle auf, ob mit oder ohne "Entprellung". Es scheint so als wollte der MC die betroffenen Werte einfach nicht ausgeben. Ich kann mir das nur durch einen Bitfehler im ADC vorstellen. Mich würde interessieren, ob dies nur eine einmalige Ausnahme ist, oder ob dieses Problem schon bei anderen auch aufgetaucht ist. Viele Grüße Jürgen
Jürgen C. schrieb: > Ich kann mir das nur durch einen Bitfehler im ADC vorstellen. Triggerst du denn den ADC und wartest dann (Statusbit) dass er mit einer Conversion fertig ist bevor du ihn ausliest? Hältst du die maximale Samplingrate (und damit Abfrage-Rate) ein?
Hast du mal versucht das Display zu entfernen und mit einem Poti den Wertebereich des ADC zu durchlaufen. Die beiden Äußeren Pins des Poti auf Versorgungsspannung und GND, den Mittelabgriff auf den ADC, dann solltest du saubere Werte erhalten
Mit einem Poti geht das nicht sauber weil der SAR-ADC bei voller Geschwindigkeit einen Eingangswiderstand unter 1Ohm haben muss damit kein Blödsinn rauskommt. Siehe Datenblatt. Deshalb meinte ich ja er soll es mit einem Labornetzteil versuchen.
Hab grad mal ins Datenblatt geschaut und gesehen das dieser F3 Mikrokontroller nur den langsamen SAR-ADC hat, der verträgt auch 400Ohm am eingang.
Bergi schrieb: > Mit einem Poti geht das nicht sauber weil der SAR-ADC bei voller > Geschwindigkeit einen Eingangswiderstand unter 1Ohm haben muss damit > kein Blödsinn rauskommt. Siehe Datenblatt. Deshalb meinte ich ja er soll > es mit einem Labornetzteil versuchen. Resitive Touchdisplays habe ich am F4 seit Jahren problemlos im Einsatz. Außer ein paar ESD-Filtern ist nichts zwischen ADC-Eingang und Touchfolie. Tatsächlich würde mich auch das Ergebnis des Poti-Tests interessieren. Gerade bei dem Job kann der ADC mit maximaler Samplezeit betrieben werden. Wenn der Potitest auch Sprünge zeigt, sollte man vielleicht endlich mal den Schaltplan anschauen und prüfen ob der Professor artgerecht gehalten wird.
Marcus H. schrieb: > Gerade bei dem Job kann der ADC mit maximaler Samplezeit betrieben > werden. Man kann einen ADC immer mit maximaler Samplefrequenz betreiben für die er spezifiziert ist, nur nicht darüber hinaus. Wie es mit der maximalen Samplezeit aussieht weiss ich allerdings nicht.
Mitlesa schrieb: > Marcus H. schrieb: >> Gerade bei dem Job kann der ADC mit maximaler Samplezeit betrieben >> werden. > > Man kann einen ADC immer mit maximaler Samplefrequenz betreiben > für die er spezifiziert ist, nur nicht darüber hinaus. > > Wie es mit der maximalen Samplezeit aussieht weiss ich allerdings nicht. Keine Angst, Du brauchst nicht dumm sterben. Schau Dir das passende Kapitel im Reference Manual an, dann weißt Du's auch. Für diese MCU sind folgende Dokumente zum groben Einstieg relevant: RM0313 Reference Manual DM00046749 Datasheet AN2834 ADC AN4207 SDADC ESO0189 Errata
Du kannst den ADC immer mit maximaler Abtastrate betreiben aber was du dann für einen ADC Wert bekommst ist eine andere Sache. Bei den ST sitzt kein Puffer vor dem ADC das bedeutet wenn der ADC sampelt dann muss er seinen internen Sampelkondensator laden und wie schnell das geht hängt stark davon ab wie hoch der Widerstand am Eingang des ADC ist. Je öfter der ADC Sampelt desto öfter ladet er seinen Sampelkondensator, desto mehr Strom fließt durch den Eingangswiderstand vor dem ADC und desto schlechter wird das Ergebniss. Einfachste Lösung um diesen Fehler auszuschließen ist die Sampelzeit hoch zu setzen. Dies ist auch alles im Produktspezifischen Datenblatt festgehalten und kann ohne weiteres am ADC-Eingang mit dem Oszi nachgemessen werden. Ich hatte mit den STM32 schon die interessantesten Fehler durch zu hohe Eingangswiderstände, leicht negative Spannungsspitzen an beliebigen GPIO's des Mikrocontrollers oder den falschen Takt am ADC. Auch eine nicht saubere Versorgung kann ein Problem sein. Deshalb wäre es einfach mal interessant wenn man eine Spannungsquelle an den ADC hängt und den gesamten ADC bereich testet. Dann kann man zumindest den Touchscreen als Fehlerquelle ausschließen. Man kann auch mal am Eingang des ADC's mitmessen wie schnell der wirklich läuft da man aufgrund des Sampelns deutlich Spannungsspitzen am Eingang des ADC messen kann.
Hallo, ich habe heute noch verschiedene Szenarien durchgespielt: -Versorgung mit Labornetzteil (ohne Recom Schaltregler) -Einspeisung der Spannung aus dem Labornetzteil in den ADC -Verschiedene ADC Abtastraten (Manche Einstellungen ergaben keine brauchbaren Ergebnisse) Es trat immer das gleiche Phänomen auf; Lücken im Werdebereich an der gleichen Stelle. Was ich nicht geändert habe: -Software -Platine mit Prozessor Wenn ich am Wochenende Zeit finde, werde ich nochmal eine Platine mit einem Neuen Prozessor anfertigen und mich dann nochmal melden. Viele Grüße Jürgen
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.