www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32 DAC Beispielcode


Autor: FlipFlop (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: FlipFlop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat niemand eine Idee, sitze schon 2 Tage an dem Problem.

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht 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.
  /* DAC channel1 Configuration */
  DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
  DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bits8_0;
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
  DAC_Init(DAC_Channel_1, &DAC_InitStructure);

  /* Enable DAC Channel1: Once the DAC channel1 is enabled, PA.04 is
     automatically connected to the DAC converter. */
  DAC_Cmd(DAC_Channel_1, ENABLE);

  /* Set DAC Channel1 DHR12L register */
  DAC_SetChannel1Data(DAC_Align_12b_L, 0x7FF0);

  DAC_SetChannel1Data(DAC_Align_8b_R, 123);


Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: FlipFlop (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: 900ss (Gast)
Datum:

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

Autor: FlipFlop (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: FlipFlop (Gast)
Datum:

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

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Trekki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.