Forum: Mikrocontroller und Digitale Elektronik STM32 DAC Beispielcode


von FlipFlop (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich versuche gerade den DAC1 in einem STM32F103 zu nutzen, dazu verwende 
ich die Lib von ST, leider klappt es nicht, andere Dinge wie USART,GPIO 
und so funktionieren. Hat jemand ein funktionierendes Programm, dass er 
mir zeigen könnte oder eine Quelle in der der DAC ausführlicher 
beschrieben wird als im Reference Manual. Hoffe, dass ich hier im 
richtigen Forum bin. Im Anhang die Funktion, die ich aus der Beispiel 
Lib zusammengeklickt habe, die nicht funktioniert :( , natürlich rufe 
ich diese Funktion auch auf, kann auch den kompletten Code posten wenn 
es hilft.

von FlipFlop (Gast)


Lesenswert?

Hat niemand eine Idee, sitze schon 2 Tage an dem Problem.

von 900ss (900ss)


Lesenswert?

Lass das SW-Trigger Cmd weg. Einfach den Wert schreiben reicht aus.
Beim initialisieren auch nicht SW Trigger einstellen. So hat es bei mir 
funktioniert. Weiß nur nicht mehr, ob es der Code unten war.
Must du probieren.
1
  /* DAC channel1 Configuration */
2
  DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
3
  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
4
  DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bits8_0;
5
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
6
  DAC_Init(DAC_Channel_1, &DAC_InitStructure);
7
8
  /* Enable DAC Channel1: Once the DAC channel1 is enabled, PA.04 is
9
     automatically connected to the DAC converter. */
10
  DAC_Cmd(DAC_Channel_1, ENABLE);
11
12
  /* Set DAC Channel1 DHR12L register */
13
  DAC_SetChannel1Data(DAC_Align_12b_L, 0x7FF0);
14
15
  DAC_SetChannel1Data(DAC_Align_8b_R, 123);

von 900ss (900ss)


Lesenswert?

Ich sehe gerade, dass du auch

DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_Noise;

eingestellt hast. Möchtest du Noise erzeugen? Sonst ist das auf 
jedenfall falsch.

Es gibt auch funktionierenden Beispielcode, der der Lib von ST beiliegt. 
Den hatte ich als Grundlage benutzt.

Gruß 900ss

von FlipFlop (Gast)


Lesenswert?

Hallo,
wenn ich Zuhause bin werde ich den Code testen, den Code, den ich 
geposted habe, habe ich aus der Lib von ST, deshalb wundere ich mich ja, 
dass es nicht funktioniert.

von 900ss (Gast)


Lesenswert?

Der Code der Lib, den du gepostet hast, erzeugt ein Noise-Signal.
Da hast du ein Beispiel für Noise-Erzeugung gewählt.

von FlipFlop (Gast)


Lesenswert?

Das weiß ich, ich habe das Beispiel genommen, in dem der Noise erzeugt 
wird, weil es am kürzesten ist. Zuerst habe ich alles(Clock und GPIO) 
ohne die Lib von ST programmiert, in dem ich per #define und dem 
Reference Manual die einzelnen Register definiert habe. So habe ich es 
auch für den DAC gemacht, das klappt aber nicht, also habe ich es per 
Lib versucht. Um es überschaubar zu halten, habe ich das kürzeste 
Beispiel aus der Lib genommen. Da ich auf dem Oszi nichts sehe gehe ich 
davon aus, dass es nicht funktioniert.

von FlipFlop (Gast)


Lesenswert?

endlich gelöst, der verwendete µC hat gar kein DAC, manchmal bin ich zu 
blöd, aber trotzdem danke für die hilfe.

von 900ss (900ss)


Lesenswert?

FlipFlop schrieb:
> endlich gelöst,

immerhin ;-)
> der verwendete µC hat gar kein DAC, manchmal bin ich zu
> blöd, aber trotzdem danke für die hilfe.

Manchmal schaltet die Gier nach einem Ergebnis einfach das Hirn aus ;-)

von Trekki (Gast)


Lesenswert?

Sry, wenn ich den Thread wiederbelebe, aber ich hätte eine Frage zu dem 
DAC. Hat jemand Angaben zur Temperaturgenauigkeit bzw. zum 
Temperaturkoeffizienten des DAC gefunden? Bisher habe ich nur den 
Eintrag für V_Ref (100ppm/°C) gefunden. Gibt es so eine Angabe auch für 
den DAC? Oder hat jemand Erfahrung damit? Würde jetzt spontan annehmen, 
dass der DAC nicht genauer sein wird, als V_Ref - also auch mindestens 
die genannten 100ppm/°C hat. Oder liege ich da eher falsch?

Danke für Eure Mühe!

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
Noch kein Account? Hier anmelden.