Forum: Compiler & IDEs atXmega 128 A3 - DAC


von Johannes L. (megatron)


Angehängte Dateien:

Lesenswert?

Liebe µC Freunde,

ich stehe wieder mal vor einem Problem und brauche eure Hilfe.
Folgende Situation:


Ich habe ein AtXmega 128A3 und nutze AVR Studio (Version 4.19)
Für verschiedene Bastelein habe ich den Xmega schon verwendet.
Nun möchte ich den DAC verwenden und ausprobieren und bin auf folgendes 
Problem gestoßen, der DAC Ausgang will nicht senden!
1
// Programm für DAC TEST
2
3
#include <avr/io.h>   
4
#include <math.h>
5
#include <Seriell.h>
6
#include <util/delay.h> 
7
#include <dac_adc.h>
8
9
10
void clock_init(void);
11
12
void dac_init(void);
13
14
15
int main(void){
16
17
18
  int i,b=0;
19
  int sample = 4095;
20
  int sample_end = 0;
21
  char wert1[10];
22
23
24
  init_RS232 (F0, 115200); // Schnittstelle konfigurieren RS232    
25
  clock_init();
26
  dac_init();
27
   // sende daten
28
  while (1){
29
   for (i = 0; i < sample ; i++) {
30
31
     DACB.CH0DATA = i;
32
    b=DACB.CH0DATA;
33
34
35
    sprintf(wert1,"\rb: %d\t\n",b);
36
    serial_puts(wert1,F0);
37
38
   
39
     //warte bis sendung fertig
40
    while (!DACB.STATUS & DAC_CH0DRE_bm) ;
41
   }
42
    i=0;
43
   
44
45
46
  }
47
  return 0;
48
}
49
50
51
void clock_init(void)
52
{
53
  //Oszillator auf 32Mhz stellen
54
  OSC.CTRL |= OSC_RC32MEN_bm;
55
  // Warten bis der Oszillator bereit ist
56
  while(!(OSC.STATUS & OSC_RC32MRDY_bm));
57
  CCP = CCP_IOREG_gc;
58
  CLK.CTRL = (CLK.CTRL & ~CLK_SCLKSEL_gm) | CLK_SCLKSEL_RC32M_gc;
59
}


Zur visuellen Darstelllung lasse ich mir seriell DACB.CH0DATA ausgeben, 
um zu sehen ob der erstellte Sägezahn richtig umgesetzt ist vom Code 
her.
Die Ausgabe habe ich per Screenshot angehängt (i wird bis 4094 
hochgezählt und danach springt i auf 0 zurück > Sägezahn Spannung).

Ich vermute mache einen Fehler bei der Initialisierung des DACs.
Die adc_dac.h Datei habe ich auch mal angehängt.
Ich messe Single Endes an folgenden PINS ohne Erfolg:

PB2
PB3

habe auch schon verzweifelt an Port A gemessen mit meinem Oszi.
(siehe AtXmega Datenblatt Seite 51)

Ich hoffe Ihr kennt die Lösung und helft mir bei meinem Versuched den 
DAC zu testen.

von Basti M. (counterfeiter)


Lesenswert?

Hallo Johannes...


Bitte installier dir das Atmel Studio 6 mit der ASF und schau dir an, 
wie Atmel das Problem löst. Du musst ja die ASF nicht benutzen, wenn du 
es "alleine tun willst"... aber abschauen geht da immer...

von Johannes L. (megatron)


Lesenswert?

Hallo Basti,
was genau meinst du`?
Ich kenne AVR Studio 6 nicht, daher stehe ich auf dem Schlauch.
Kannst du mir erklären wie AVR 6 mein Problem lösen soll?
Ich brauche jemanden der sich mit dem Xmega auskennt und mit beim DAC 
hilft.

Gruß
Johannes

von Basti M. (counterfeiter)


Lesenswert?

Es heißt auch Atmel Studio 6... google verrät dir alles...

von MWS (Gast)


Lesenswert?

Wie wär's mit der klassischen Vorgehensweise bei Atmel vorbeizuschauen, 
unter dem Prozesortyp die Documents zu wählen und dort nach "AVR1301: 
Using the XMEGA DAC" zu schauen ? Da gibt's ein Pdf und Beispieldateien 
dazu. Ein- und Ausatmen nicht vergessen :D

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.