STM32 ADC mit Offset

OP #3168246
Lesenswert?
• ▲
▼
Hallo,

ich nutze einen STM32F103CB und schreibe für meine Masterarbeit 
Software.

Ich habe eine Spannung am AD-Wandlereingang, die zwischen 0 und 3,3V 
(entspricht 4095 beim 12-Bit-AD-Wandler des Cortex) schwankt und eine 
Mittenspannung von 1,65V, wie im Bild zu sehen. (Sensorsignal hinter 
Verstärker und OPVs mit 1,65V-Bezug).

Ich möchte das Signal ins 1Q15-Format überführen (quasi 
vorzeichenbehaftete 16-Bit-Variable). 3,3V soll etwa dem größten 
positiven Wert im signed word entsprechen (0x7FFF, quasi 32767) und 0 
etwa dem größten negativen Wert, d.h. dem kleinsten Wert im signed word 
entsprechen (0x8000, quasi -32768).

Nun kann man das natürlich in Software machen (sollte mit Leftshift des 
12-Bit-Werts vom AD-Wandler um 4,dann Addition von 0x8000 gehen), aber 
der Cortex kann das auch in Hardware, was ich gerne nutzen möchte.

In 
http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf 
auf Seite 215 ist beschrieben, dass vom AD-Wandler-Wert ein Offset 
abgezogen und das Ergebnis linksbündig ausgerichtet werden kann (siehe 
untere Figure 28, "injected group"), wobei es ein Vorzeichen-Bit gibt. 
Hiermit sollte die Umwandlung demnach in Hardware möglich sein.

Ich verstehe im Manual allerdings nicht, wie das Ergebnis berechnet und 
ins Register geschrieben wird. Wird der Offset zuerst vom 12-Bit-Wert 
des AD-Wandlers abgezogen und das Ergebnis dann um 4 Stellen geschoben 
(bezogen auf rechtsbündige Ausrichtung) oder wird das Ergebnis nur um 3 
Stellen geschoben, und welche Rolle spielt das Vorzeichenbit SEXT (Bit 
15 in Figure 28)?

Meine Überlegung war, dass ich 0x800, also 2048 als Wert einstelle, der 
vom Ergebnis abgezogen wird und linksbündige Ausrichtung nutze. Würde 
das so funktionieren, sich also oben genannte Werte ergeben?




Vielen Dank und viele Grüße
T. Linz
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.