Gast
#108969
Hallo, für eine Testschaltung benötige ich einen RS232-steuerbaren Rechteckgenerator. Dieser soll 20kHz bis etwa 80kHz, einstellbar möglichst auf 10Hz genau, bei einer variablen Pulsbreite von ca. 5%-60% erzeugen. Dazu möchte gern einen ATmega verwenden. Im Anbetracht der feinen Frequenzeinstellung dachte ich zunächst an Software DDS. Das Problem bei DDS mit direktem digitalem Ausgang (also einfach das MSB des Phasenakkus ausgeben) ist ja bekanntlich der Jitter um plus/minus eine DDS-Taktzeit. Wenn ich jetzt mal von 500kHz "Taktrate" für den DDS ausgehe (oder ist mehr in Software realistisch?) würde man das ja schon ziemlich stark merken. Die sauberste Methode, zuerst einen Sinus, daraus Rechteck, daraus Dreieck, Vergleich mir Analogwert (mit zweitem DAC), wäre mir zu umständlich. Eine etwas abgespeckte Lösung, am DDS-DAC schon einen Dreieck auszugeben, ist leider immer noch viel umständlicher als einfach einen digitalen Ausgang am Controller zu nehmen. Nun hab ich mir überlegt, ob man nicht einfach den einen 16-Bit-Timer in PWM-Betreibsart nehmen kann, und bei jedem Erreichen des Vegleichswerts diesen neu setzen kann (indem man DDS-mäßig die Zeit zum nächsten Umschalten berechnet). AFAIK kann doch beim Erreichen des Vergleichswerts ein Interrupt ausgelöst werden. Somit hätte ich die Taktfrequenz meiner DDS auf die des Controllers erhöht -> geringerer Jitter bei direktem Digitalausgang. Meint ihr das wäre so realisierbar? Stefan