Gast
#6092184
Der Mikrocontroller meiner Wahl (STM32L433, 80MHz) soll an einem Sample and Hold ein relativ kurzlebiges Signal messen, bzw. die Hold-Time möglichst kurz lassen. Nun hat ST in einer App-Note aufgezeigt, das der ADC im "Normalbetrieb" extrem ungenau ist. Biespielsweise 16.28% bei 5 MSPS und 3V Eingangsspannung. Das ist natürlich sehr unschön. Nun empfielt ST den Wert zu mitteln und gibt an das der Fehler bei Mittelwert über 6 Samples 0.13% und bei 8 Samples 0.006% ist. Macht man 8 Samples und löscht die 4 die am meisten daneben sind, erreicht man 0.04% was erheblich besser ist als die 0.38% von 4 Sampels. Also bevorzuge ich die Variante mit 8 Samples. Nun kenne ich nur die Auswertung des ADC mit dem DMA. Bei 5MSPS würde es aber ja bedeuten das der DMA alle 200ns etwas tun muss, und vorallem wird er für die meiste Zeit garnicht bentöigt, denn es braucht nur gesampelt werden, wenn ein Triggersginal ansteht. Kann der ADC auch anderst ausgewertet werden? Also z.b. mit einer Funktion? Ich habe schon gesucht, aber ich finde nicht welche funktion der DMA aufruft, dann könnte man die ja direkt auswerten. Das ganze sollte natürlich auch ziemlich schnell sein. Gibt es irgendwo Tipps/Anleitungen wie man in Fällen von schnellen Abläufen Programmiert? Ich habe auch schon Code-Fragemente gesehen wo z.b. die I/O anderst angesprochen werden, weil die ST Bibliothek scheinbar "zu langsam" war.