Hallo, ich habe hier einen STM32F303K8 auf einem Nucleo Board und versuche den mit dem Keil Compiler direkt über die Register aus dem Referenzmanual anzusteuern. Das Ganze dient dem besseren Verständnis der Chipfamilie, im Moment ohne konkrete Anwendung. Mit kurzem Quelltext wird der ADC initialisiert, ein Wert ausgelesen und über den UART2 ausgegeben. Das funktioniert auch soweit. Dabei ist mir aufgefallen dass der ADC auch arbeitet wenn die ersten beiden Befehle ADC1->CR = 0x0000 0000; und ADC1->CR = 0x1000 0000; nicht ausgeführt werden. Im Register ADC1->CR steht dann der Defaultwert 0x2000 0000, (steht dort auch, im Debugger überprüft) laut Referenz Manual 15.3.6 ist der ADC Voltage Regulator damit deaktiviert und der ADC sollte abgeschaltet sein. 'These bits are set by software to enable the ADC voltage regulator. Before performing any operation such as launching a calibration or enabling the ADC, the ADC voltage regulator must first be enabled and the software must wait for the regulator start-up time.' Habe ich da einen Denkfehler? //init ADC1 ADC1->CR = 0x00000000; //Voltage Regulator enable step1 delayMs(1); ADC1->CR = 0x10000000; //Voltage Regulator enable step2 delayMs(1); ADC1->CR = 0x10000001; //enable while(!(ADC1->ISR && 1)){} //wait for ADC ready
:
Bearbeitet durch User
Im Errata-Sheet gibt es einen eigenen Teil zum ADC. Da habe ich zu dem Thema auf den ersten Blick nichts gefunden.
Lutz S. schrieb: > Dabei ist mir aufgefallen dass der ADC auch arbeitet wenn die ersten > beiden Befehle ADC1->CR = 0x0000 0000; und ADC1->CR = 0x1000 0000; > nicht ausgeführt werden. Was genau macht er denn? Bzw. was machst du um zu verifizieren, ob er arbeitet?
Ich lese mit dem ADC1 in einer Schleife den internen Temperatursensor aus. Und das funktioniert, egal ob ich in der Initialisisung den Voltage Regulator enable oder nicht. Das ist es, was mich wundert. Wenn ich das Referenz Manual richtig lese ist er powermässig per default deaktiviert und muss erst eingeschaltet werden damit er initialisiert und dann ausgelesen werden kann.
:
Bearbeitet durch User
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.