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
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.