Forum: Mikrocontroller und Digitale Elektronik DAC am XMega


von Peter S. (covalin)


Lesenswert?

Hallo,

ich habe ein Verständnisproblem beim Refresh des DACs beim Xmega. In 
2.2.2 der Application Note AVR1301 wird ausgesagt, dass der Wert 
zyklisch refreshed werden muss. Soweit alles OK. Im Absatz darunter 
heißt es dann, dass dies automatisch durchgeführt wird, wenn im TIMCTRL 
das REFRESH-Bitfeld entsprechend gesetzt wird.

Baut man nun den Beispiel-Source von Atmel so um, dass nur ein Wert 
ausgegeben wird, sieht man zwar auf dem Oszi den Peak, aber ein 
Auto-Refresh findet nicht statt und somit hat man auch keinen stabilen 
Ausgangswert.

Nachfolgend die geänderte Funktion:

void Example8a (void)
{

  /*  Given 2 MHz CPU speed, this is configured to 2µs separation time 
and
   *  16µs refresh time.
   */
  DAC_DualChannel_Enable( &DACA,
                          DAC_REFSEL_INT1V_gc /*DAC_REFSEL_AVCC_gc*/,
                          false,
                          DAC_CONINTVAL_4CLK_gc,
                          DAC_REFRESH_32CLK_gc );


    while ( DAC_Channel_DataEmpty( &DACA, CH0 ) == false )
    {
      /* Blocking code waiting for empty register. */
    }
    DAC_Channel_Write( &DACA, 0x0FFF, CH0 );


  while (1)
  {
  }

Irgendwie widersprechen sich diese beiden Aussagen in der APP-Note. Gibt 
es nun einen automatischen Refresh oder bin ich gezwungen zyklisch das 
DAC-Register immer neu zu beschreiben?  Wenn es den automatischen 
Refresh gibt, was mache ich dann falsch?

Gruß covalin

von Klaus (Gast)


Lesenswert?

Mit dem DAC habe ich auch schon mal herum geärgert. Hier ist eine 
Diskussion mit Code Beispiel:

Beitrag "XMEGA/ AVR-EXPLAIN code examples und Diskussion"

von Klaus (Gast)


Lesenswert?

Mal eine andere Frage: Hast Du es schon mal geschafft, das Flash 
anzusteuern?

Gruß,
Klaus

Beitrag "AVR XPLAIN 8MB Flash ansteuern ?"

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.