Forum: Mikrocontroller und Digitale Elektronik Avr->R2R->Sinus


von Trunes P. (trunes)


Lesenswert?

Hallo,

Ich möchte mit einem AVR ein Sinus signal erzeugen -> über ein R2R 
Netzwerk.
Meine Frage: Wie kann ich die Amplitude bzw. die Frequenz des Sinus 
verstellen?
Ich habe gelesen, dass es mit Tabellen funktioniert -> Da kann aber die 
Spannung nicht verändert werden!
-> Kann der Sinus auch mit einer Formel ez. erzeugt werden?

MFG Trunes

von STK500-Besitzer (Gast)


Lesenswert?

>Wie kann ich die Amplitude bzw. die Frequenz des Sinus
>verstellen?

Unterschiedliche Werte in regelmässigen Abständen ausgeben.

>Da kann aber die Spannung nicht verändert werden!

Wenn man die Tabellenwerte vor der Ausgabe noch mit einem Faktor 
multipliziert sollte auch das möglich sein.

von Trunes P. (trunes)


Lesenswert?

Versteh ich leider nicht :-(
Hier meine Tabelle:

.DB 64,65,67,68,70,72,73,75
.DB 76,78,79,81,82,84,85,87
.DB 88,90,91,92,94,95,97,98
.DB 99,100,102,103,104,105,107,108
.DB 109,110,111,112,113,114,115,116
.DB 117,118,118,119,120,121,121,122
.DB 123,123,124,124,125,125,126,126
.DB 126,127,127,127,127,127,127,127
.DB 128,127,127,127,127,127,127,127
.DB 126,126,126,125,125,124,124,123
.DB 123,122,121,121,120,119,118,118
.DB 117,116,115,114,113,112,111,110
.DB 109,108,107,105,104,103,102,100
.DB 99,98,97,95,94,92,91,90
.DB 88,87,85,84,82,81,79,78
.DB 76,75,73,72,70,68,67,65
.DB 64,62,61,59,58,56,54,53
.DB 51,50,48,47,45,44,42,41
.DB 39,38,36,35,34,32,31,30
.DB 28,27,26,25,23,22,21,20
.DB 19,18,17,15,14,13,13,12
.DB 11,10,9,8,8,7,6,5
.DB 5,4,4,3,3,2,2,2
.DB 1,1,1,0,0,0,0,0
.DB 0,0,0,0,0,0,1,1
.DB 1,2,2,2,3,3,4,4
.DB 5,5,6,7,8,8,9,10
.DB 11,12,13,13,14,15,17,18
.DB 19,20,21,22,23,25,26,27
.DB 28,30,31,32,34,35,36,38
.DB 39,41,42,44,45,47,48,50
.DB 51,53,54,56,58,59,61,62

von STK500-Besitzer (Gast)


Lesenswert?

Wenn du jetzt den auszugebenden Wert mit 2 multiplizierst, sollte die 
doppelte Spannung am Ausgang erscheinen (in diesem Fall wird der DAC 
vermutlich nur noch "clippen").

von Mike Winter (Gast)


Lesenswert?

Suche nach DDS, da wird das gemacht.
Nannte sich früher auch Wavetable (in PC-Soundkarten)

Eine mögliche Tabelle

sine:    ; 256 step sinewave table
  .byte 
0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0x 
ab,0xae
  .byte 
0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0x 
d5,0xd8
  .byte 
0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0x 
f3,0xf5
  .byte 
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0x 
ff,0xff
  .byte 
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0x 
f8,0xf7
  .byte 
0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0x 
de,0xdc
  .byte 
0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0x 
b6,0xb3
  .byte 
0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x 
86,0x83
  .byte 
0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x 
54,0x51
  .byte 
0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x 
2a,0x27
  .byte 
0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x 
0c,0x0a
  .byte 
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x 
00,0x00
  .byte 
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x 
07,0x08
  .byte 
0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x 
21,0x23
  .byte 
0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x 
49,0x4c
  .byte 
0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x 
79,0x7c

Amplitude kannst Du mittels nachfolgendem OP und Tiefpass regeln, per µC 
nur die Frequenz

von StinkyWinky (Gast)


Lesenswert?

Allenfalls käme auch eine Näherung mittels Taylor-Reihe in Frage.

von Lothar L. (lole)


Lesenswert?

Hallo,
schau mal unter Funktionsgenerator, da wird das Prinzip in einem 
digitalen Funktionsgenerator beschrieben.

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.