Forum: Mikrocontroller und Digitale Elektronik Dela/Sigma extern auswerten


von Christian S. (chris02)


Lesenswert?

Hallo zusammen,

ich spiele gerade ein wenig mit folgendem Eval Board von TI:
https://www.ti.com/tool/AMC3336EVM

Der Delta Sigma gibt ein wunderbares PWM Singal. Dieses Signal würde ich 
aber gerne extern auswerten. Ob am PC, über ein anderes Eval Board mit 
passender SW, einen µC/FPGA, LogicAnalyzer (z.B. Saleae) etc. ist mir 
egal. Hauptsache eine "Plug&Play" Lösung.

Ich hätte halt ganz gerne eine fertige Lösung, welche man kaufen oder 
aufbauen kann um das Signal aus zu werten. Was ich nicht möchte ist, das 
digitale Signal in ein analog Signal umwandeln und dann auswerten.

Leider habe ich per google nichts finden können. Habt ihr eine Lösung?

Viele Grüße

von Harald K. (kirnbichler)


Lesenswert?

Was stellst Du Dir unter "auswerten" vor?

Ein PWM-Signal ist ein digitales Signal mit genau zwei unterschiedlichen 
Pegeln - entscheidend ist hier der zeitliche Verlauf.


Wenn Du das mit irgendwas "auswerten" willst, musst Du /ausreichend 
schnell/ die Signalflanken erfassen.

Das ließe sich mit simplen Polling machen (ständig nachsehen, wie der 
Pegel gerade ist), einfacher aber ist es, auf die Hardwareausstattung 
Deines ungenannten Microcontrollers zurückzugreifen.

Hier bietet sich die Verwendung eines Timers im Zusammenhang mit einem 
Capture-Eingang an; der Timer läuft frei mit ausreichend hoher Frequenz 
und bei jeder Signalflanke wird der Zählerstand erfasst.

Wenn Du diese Zählerstände betrachtest, hast Du Dein Signal 
"ausgewertet".

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Christian S. schrieb:
> Ich hätte halt ganz gerne eine fertige Lösung, welche man kaufen oder
> aufbauen kann um das Signal aus zu werten.

Da bezweifle ich, ob's da was fertiges fuer genau diesen, deinen 
Spezialfall gibt.
TI empfehlen in ihrem Datenblatt (8.2.1.2) ihre C2000 oder Sitara 
Prozessoren, haste da schonmal geguckt, ob bei deren Evalboards evtl. 
was dabei ist?

Gruss
WK

von Peter D. (peda)


Lesenswert?

Es werden ja aus den 20MHz Takt einzelne Pulse ausgeblendet.
Man braucht also nur einen Timer im Waveform-Mode, um die 20MHz zu 
erzeugen und einen weiteren im Counter-Mode zum Zählen. Der µC sollte 
daher mit mindestens 40MHz laufen. Also irgendwas schnelleres als 8051 
oder AVR.

von Alfred P. (paaalm07)


Lesenswert?

Du musst den CLK sowieso vorgeben, minimum 9 MHz. Das könnte sogar ein 
AVR der mit 20MHz läuft. Nyquist sollte also erfüllt sein.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Christian S. schrieb:
> Der Delta Sigma gibt ein wunderbares PWM Singal.

Nur ist das kein PWM, sondern PDM 
https://en.wikipedia.org/wiki/Pulse-density_modulation

Peter D. schrieb:
> Der µC sollte
> daher mit mindestens 40MHz laufen.

und

Alfred P. schrieb:
> Du musst den CLK sowieso vorgeben, minimum 9 MHz. Das könnte sogar ein
> AVR der mit 20MHz läuft. Nyquist sollte also erfüllt sein.

Etwas Luft um den Bitstrom zu filtern usw. braucht man auch noch. Weil 
es offensichtlich ein Einzelstück oder Prototyp werden soll würde ich 
mit der Taktfrequenz deutlich höher gehen, um mich nicht mit der 
MCU-Leistung herumquälen zu müssen.

von Christoph M. (mchris)


Lesenswert?

>Der Delta Sigma gibt ein wunderbares PWM Singal.
>Dieses Signal würde ich aber gerne extern auswerten.

Im einfachsten Fall mit einem RC-Tiefpass und einem ADC-Eingang.

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> Im einfachsten Fall mit einem RC-Tiefpass und einem ADC-Eingang.

Was er EXPLIZIT NICHT wollte!

von Christoph M. (mchris)


Lesenswert?

>Was er EXPLIZIT NICHT wollte!

Hast Recht. Ich habe den letzten Satz übersehen.

von Rainer W. (rawi)


Lesenswert?

Falk B. schrieb:
> Was er EXPLIZIT NICHT wollte!

Fragt sich, was der TO an dem Signal auswerten wollte.
Soll da ein Zähler lustig hoch und runter zählen, soll die 
Frequenzstabilität bestimmt werden, soll der Flankenjitter bewertet 
werden oder was ist das Ziel?

von Falk B. (falk)


Lesenswert?


von Uwe B. (uwe_beis)


Lesenswert?

Du willst das Signal aus dem AMC3336 z. B. mit einem µC/FPGA auswerten, 
ohne noch eine weitere Hardware dazwischen zu haben?

Kein Problem, es ist nur etwas mehr Aufwand in Software. Ob ein µC den 
zusätzlichen Rechenaufwand das schafft, hängt von der Applikation und 
natürlich vom µC ab.

Wie schon mehrfach erwähnt, ist das Ausgangssignal kein PWM-Signal, 
sondern ein PDM-Signal. Der Mittelwert des PDM-Signals entspricht dem 
ursprünglichen Analog-Wert, deswegen Cristophs Hinweis auf einen 
Tiefpass. Der ist prinzipiell richtig, nur bitte nicht als analoger 
Tiefpass + ADC. Nebenbei: Die Auflösung eines PDM-Signals ist, im 
Gegensatz zu PWM oder PCM, inhärent unendlich.

Ein solcher digitaler Tiefpass ist in einem µC oder FPGA natürlich 
möglich. Ein einfacher, 1-poliger digitaler Tiefpass besteht ja daraus, 
einen kleinen Teil des Eingangssignals zu nehmen und zu einem großen 
Teil des Ausgangssignals zu addieren. (So einfach formuliert würde das 
gleichzeitig zu einer großen "Verstärkung" führen - egal, das ist hier 
nicht das Thema.)

Digitale Tiefpässe höherer Ordnung sind nicht so trivial. Wie man 
analoge Filter (Bessel, Butterworth, Chebycheff) höherer Ordnung in 
digitale Filter umrechnet und wie die aufgebaut sind, ist in 
https://beis.de/Elektronik/Filter/AnaDigFilt/AnaDigFilt.html 
beschrieben. Alles das geht prinzipiell in µC und FPGA. Ohne externe 
Hardware.

Sinc-Filter sind wohl einfacher, habe aber andere Nachteile.

von Gustl B. (gustl_b)


Lesenswert?

Rainer W. schrieb:
> Fragt sich, was der TO an dem Signal auswerten wollte.

Was will man wohl am Ende aus einem PDM Bitstrom rausbekommen der von 
einem 1 Bit ADC kommt? Ja, richtig, Abtastwerte mit mehr Bits Auflösung.

Uwe B. schrieb:
> Digitale Tiefpässe höherer Ordnung sind nicht so trivial.

FIR Filter sind bereits erfunden.

von Uwe B. (uwe_beis)


Lesenswert?

Gustl B. schrieb:
>> Fragt sich, was der TO an dem Signal auswerten wollte.
Ja, das könnte wichtig sein.

> Was will man wohl am Ende aus einem PDM Bitstrom rausbekommen der von
> einem 1 Bit ADC kommt? Ja, richtig, Abtastwerte mit mehr Bits Auflösung.
Na ja, ganz das Ende wird es nicht sein, sondern nur ein 
Zwischenschritt. Das Ende wäre vielleicht einfach nur Speichern, 
Auswertung des Signals auf bestimmte Vorkommnisse, Kompression und 
Speicherung, Anzeige des Signalverlaufs...

> FIR Filter sind bereits erfunden.
Ich muss gestehen, dass ich den Unterschied bzgl. Rechenaufwand zwischen 
IIR und FIR nicht abschätzen kann. Der hängt sicherlich auch von der 
Applikation bzw. dem Ziel ab.

von Hans-Georg L. (h-g-l)


Lesenswert?

Hallo Christian,
das sieht nur so aus wie PWM ist aber üblicherweise ein SPI Daten Stream 
getaktet durch den Clock Eingang. Es gibt auch welche die Manchester 
Code ausgeben.
Ich würde dir einen STM32H750 vorschlagen den bekommst als Board für ca. 
15€.
https://de.aliexpress.com/item/1005001567462650.htm.
Der H753 kostet etwas mehr und hat dafür mehr Flash Speicher

Die haben einen "Digital filter for sigma delta modulators (DFSDM)" 
damit hast du schonmal die Hardware erschlagen und Code-Beispiele dafür 
findest du auch im Netz...

von Christoph M. (mchris)


Lesenswert?

Christian S.
>Ich hätte halt ganz gerne eine fertige Lösung, welche man kaufen oder
>aufbauen kann um das Signal aus zu werten.
Du könntest einen PiPico und die PDM-Library verwenden, dort ist wohl 
ein Sinc3 Filter eingebaut:

https://github.com/earlephilhower/arduino-pico/tree/master/libraries/PDM

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.