Pic: Numerically controlled Oscillator als Timer?

Gast #6320348
Lesenswert?

Daniel schrieb:
> Ich frage mich, warum man ihn nicht einfach Timer nennt, so wie üblich.

Weil bei einem NCO gegenüber einem einfachen, als Zähler aufgebautem 
Timer, insbesondere bei hohen Frequenzen ein kräftiger Jitter der 
Taktflanken dazu kommt. Bei Steuerung zur Abtastung eines Signals wird 
dadurch die Anzahl der effektiven Bits reduziert. Guck dir das 
Funktionsprinzip an.
#6320375
Lesenswert?

So ein NCO arbeitet meist auf dem Prinzip der DDS. Dessen 
Grundeigenschaft ist es, daß die Periodendauer des Ausgangssignals in 
den allermeisten Fällen um 1 Zählertakt schwankt (Jitter). Ein einfacher 
Zähler macht das nicht, dort ist die Periodendauer konstant.

DDS: deutlich höhere Frequenzauflösung, dafür aber Jitter
Zähler: deutlich kleinere Frequenzauflösung, dafür jitterfrei
Gast #6320383
Lesenswert?

Daniel schrieb:
> was spricht dagegen ihn als Timer zu verwenden?
>
> Ich würde ihn zum Abtasten eines Signals benutzen wollen.

Wenn du das NCO Signal nach aussen führst, tiefpass filterst
(damit der Jitter weg ist) und dann der Abtastung zuführst
dann geht das.

Sonst:

Falk B. schrieb:
> Dessen
> Grundeigenschaft ist es, daß die Periodendauer des Ausgangssignals in
> den allermeisten Fällen um 1 Zählertakt schwankt (Jitter)
Gast #6320584
Lesenswert?

sparfux schrieb:
> Mit einem Tiefpass bekommt man den Phasenjitter nicht weg.

Bekommt man schon. Ein Jitter ist spektral gesehen nichts anderes
als eine zusätzliche Frequenz neben der Hauptlinie. Im Falle eines
DDS ist der Jitter hauptsächlich die Spektrallinie des DAC-Taktes.
Und dieser/diese lässt sich durch Tiefpassfilterung unterdrücken.

Manchen Leute sagen zu diesem Tiefpass auch Rekonstruktionsfilter.

sparfux schrieb:
> Wenn du keine Ahnung hast dann halt die Finger still.

Das fragt man sich wer da keine Ahnung hat.
Gast #6320610
Lesenswert?

Falk B. schrieb:
> Und genau das ist DDS.

... nee, dafür totaler Unsinn!
Dann erklär mal bitte du Schlaumann, warum der NCO ein DDS sein soll.
Und all die anderen Schlauen können auch mal erklären, wie bei dem NCO 
Prinzip ein Jitter entstehen soll!

Ich würde zuerst mal nachlesen , wie NCO aufgebaut ist und was DDS 
konkret bedeutet.
#6320616
Lesenswert?

merciMerci schrieb:
> Falk B. schrieb:
>> Und genau das ist DDS.
>
> ... nee, dafür totaler Unsinn!

Wenn du das sagt, muss es wohl so sein.

> Dann erklär mal bitte du Schlaumann, warum der NCO ein DDS sein soll.

Ein NCO KANN auf DDS basieren.

NCO numeric controlled oscillator

Das ist ein allgemeiner Begriff, der KEINE spezifische Implementierung 
beschreibt. So wie Auto keine spezifische Marke oder Modell!

> Und all die anderen Schlauen können auch mal erklären, wie bei dem NCO
> Prinzip ein Jitter entstehen soll!

Es ging um den NCO in einigen PIC-Mikrocontrollern, der Wolfgang hatte 
einen Link gesetzt, und auf der Seite sieht man ein Blockschaltbild, 
welches klar als DDS identifiziert werden kann. Natürlich ein DDS ohne 
Sinustabelle und DAC! Nur der reine Akkumulator und das Register. Das 
MSB wird als Takt verwendet. Das reicht aber für viele Anwendungen.

> Ich würde zuerst mal nachlesen , wie NCO aufgebaut ist und was DDS
> konkret bedeutet.

In der Tat, das solltest du tun ;-)
Gast #6320650
Lesenswert?

merciMerci schrieb:
> NCO könnte eine Funktionsgruppe einer DDS sein, aber sicher kein DDS
> selbst.

Grob gesprochen fehlt dem NCO einfach nur die Analog-Schnittstelle,
also der DAC der aus dem digitalen (NCO-) Datenstrom ein analoges
Signal macht.

Also Krümelkacker oder Erbsenzähler haben Recht, aber trotzdem
ist das Syntheseprinzip eines DDS ein NCO. Und damit lässt
sich vereinfacht sagen: NCO = DDS.
Gast #6320665
Lesenswert?

merciMerci schrieb:
> Wo soll bei dem NCO/vereinfachten DDS der Jitter entstehen?

https://en.wikipedia.org/wiki/Direct_digital_synthesis
At offsets far removed from the carrier, the phase-noise floor of a DDS 
is determined by the power sum of the DAC quantization noise floor and 
the reference clock phase noise floor.

Hier ja dann wohl nur der ref clock Jitter, den das Signal schon 
mitbringt?!
Gast #6320669
Lesenswert?

merciMerci schrieb:
> Wo soll bei dem NCO/vereinfachten DDS der Jitter entstehen?

Dadurch dass die Periode des synthetisierten Ausgangssignals
(je nach eingestelltem Frequenzwert) nicht einem ganzzahligen
Teilungsfaktor des Systemtaktes entsprechen muss. Eine Bit-
Änderung der Synthese kann in diesem Fall +- einer Periode
des Systemtakts verschoben auftreten.
Gast #6320679
Lesenswert?

merciMerci schrieb:
> Ich würde zuerst mal nachlesen , wie NCO aufgebaut ist und was DDS
> konkret bedeutet.

Hast du den Link auf die MCP-Seite wenigstens mal angeklickt?
Genau so sieht ein DDS-Generator aus. Von einem Oszillator ist der 
übrigens weit entfernt - der Takt muss extern zu geführt werden.
Ohne den läuft da gar nichts - k.A. wie die auf das "O" in "NCO" kommen.
Gast #6320685
Lesenswert?

merciMerci schrieb:
> At offsets far removed from the carrier, the phase-noise floor of a DDS
> is determined by the power sum of the DAC quantization noise floor and
> the reference clock phase noise floor.

Es geht hier um die Erzeugung eines digitalen Taktes mit einer 
bestimmten Frequenz. Den DAC kannst du ganz schnell wieder vergessen - 
falscher Film.
Gast #6320686
Lesenswert?

merciMerci schrieb:
> https://en.wikipedia.org/wiki/Direct_digital_synthesis
> At offsets far removed from the carrier, the phase-noise floor of a DDS
> is determined by the power sum of the DAC quantization noise floor and
> the reference clock phase noise floor.
>
> Hier ja dann wohl nur der ref clock Jitter, den das Signal schon
> mitbringt?!

Wenn man es so macht wie im Wiki-Artikel beschrieben - also eine 
sinusförmige Spannung erzeugt und ein analoges Rekonstruktionsfilter 
nachschaltet, und dann meintwegen einen Komparator auf den Nulldurchgang 
des Sinus schalten lässt - dann stimmt die Betrachtung. Aber wenn nicht 
den Umweg über eine Sinus-Erzeugung und eine analoge Filterung geht, 
dann stimmt sie nicht.

Der TO spricht von einem NCO als Timer-Ersatz. Er hat sein Vorhaben zwar 
nicht ganz eindeutig beschrieben, aber es ist zumindest naheliegend, 
dass er einfach den Überlauf des Phasenakkumulators nutzen will, um 
seine Abtastpulse zu generieren. Dann kommt zusätzlicher Jitter dazu, 
weil die Abtastperiode mit dem µC-Takt quantisiert sind.

Würde er direkt einen Timer nutzen, dann könnte er nur solch 
Abtastperioden einstellen, die sich direkt aus dem Prozessortakt 
herunterteilen lassen - es gibt keinen zusätzlichen Jitter.

Der NCO hat aber eine höhere Frequenzauflösung. Mit ihm lassen sich auch 
Abtastfrequenzen einstellen, die sich nicht direkt aus dem Prozessortakt 
teilen lassen. Und dann entsteht der Jitter.

Ein Rechenbeispiel: die Grundtakt des Prozessors sei meintwegen 10MHz, 
eine Periode also 100ns. Mit einem Timer lässt sich dann z.B. eine 
Abtastfrequenz von 1Mhz einstellen (10 Grundtakte, 1µs) oder eine von 
909,09kHz (11 Grundtakte, 1,1µs). Beide Frequenzen könnten vom Timer 
jitterfrei erzeugt werden, aber Zwischenfreuqenzen wären nicht möglich.

Mit dem NCO und seiner höheren Frequenzauflösung lassen sich dagegen 
auch Zwischenfrequenzen erzeugen. Bei passender Wahl des 
Phaseninkrements lässt sich eine Abtastfrequenz von 952,38kHz einstellen 
(also 10,5 Perioden des Grundtakts 1,05µs). Dann erzeugt der "einfache" 
NCO abwechselnd Perioden von 1µs und von 1,1µs. Im Mittel werden die 
gewünschten 1,05µs erreicht, jede einzelne Periode jittert aber um 0,5µs 
hin und her.
Gast #6320853
Lesenswert?

> was spricht dagegen ihn als Timer zu verwenden?
> Nichts.

Der NCO kann keine PWM und hat auch sonst nichts extra
was eigentlich zu einem richtigen Timer gehoert.

Wenn einem eine immanent jitternde Taktquelle reicht,
dann mag das reichen.
Gast #6321189
Lesenswert?

Erstmal danke dem TE für den Hinweis, kannte das Teil noch nicht

sparfux schrieb:
> Wenn einem eine immanent jitternde Taktquelle reicht,
> dann mag das reichen.

Wenn ich das richtig verstanden habe dann ist das ein Timer bei dem dem 
Vorteiler und Zähler durch einen 2x20 bit Addierer ersetzt wurden

Das Ding teilt eine Frequenz nicht in 1,2,8 usw auf sondern mit einer 
Auflösung von max. 2^20 = 1.xx Mio. DDS sehe ich da nicht.

Da ist natürlich (wie bei jede digitalen Verarbeitung) ein Jitter von 
einem 1/2 LSB Bit (oder 1 Bit bin nicht so theoriefest). Wird das Teil 
voll ausgenutzt dann sind das 0,5 ppm (1ppm). Kenne Anwendungen wo das 
akzeptabel ist ;-).
Gast #6321277
Lesenswert?

Wer einen Phasenakkumlator nicht sieht

> DDS sehe ich da nicht.

braucht eine Brille.

Und es ist kein Timer, sondern ein Oszillator.
Steht ja auch schon im Namen.

Fuer manches mag das reichen, einen Timer mit allen
Bells & Whistles ersetzt der NCO eben nicht.
Gast #6321632
Lesenswert?

sparfux schrieb:
> Wer einen Phasenakkumlator nicht sieht

Da sehe ich einen Addierer wie er auch im Akku eines DDS Systems 
verwendet wird. Den gibt es aber auch in einer ALU.


sparfux schrieb:
> Und es ist kein Timer, sondern ein Oszillator.

Kommt vielleicht darauf an wie man Oszillator definiert. Bei dem NCO 
schwingt nichts, das Teil braucht einen externen Takt und geht auch bei 
null Hertz los.

Kann ja sein das ich falsch liege, aber ich sehe einen Teiler der durch 
einen Addierer realisiert ist. Das hat Microchip gemacht um sehr feine 
Teilschritte erzeugen zu können wie das auch bei DDS gemacht wird.

Meinetwegen kann man das auch DDS nennen, hat dann halt nur 2 
Phasenlagen (nur ein Carry bit).

Den Namen finde ich etwas unglücklich, auch die Darstellung im 
Datenblatt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren