mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik langsames Sinussignal generieren


Autor: Thomas "s." (kyma)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin Neuling in µC und C,habe zunächst viele treats, das tutorial und 
div. gegoogelte pages gelesen. Möchte aber das Rad nicht neu erfinden. 
Aufgabe:

gegeben ist ein TTL Rechtecksignal (high 6ms) mit variabler 
Periodenlänge zwischen 0.5Hz und 2.5 Hz.
1.die Periodenlänge soll möglichst genau gemessen werden.
2.ich benötige als Ausgabe ein Sinussignal von +- 65Hz nach der Funktion 
y=65x^-1, (wobei x die gemessene Frequenz ist;-))
Mit dem Sinussignal wird ein (Vibrations-)Aktor betrieben, der neben der 
Frequenz y auch fast alle Subharmonischen produziert.
Sinn der Übung ist es, eine Interferenz (je nach Phase destruktiv oder 
konstruktiv)zwischen den Obertönen der zu messenden Frequenz x und den 
Subharmonischen der erzeugten Frequenz y zu erreichen.
Das bedeutet, dass y immer ein ganzzahliges Vielfaches von x sein muss.
y soll andauernd laufen und durch die gemessenen Veränderungen in x 
immer aktualisisert werden.
Die Messergebnisse möchte ich währenddessen per Uart an ein PC 
TerminalProg loggen.

Jetzt die Fragen:
Wie ich die Sache bislang verstanden habe, kann ich das nicht mit EINEM 
Bauteil ( zB Tiny, Mega) erreichen, da allein schon die Generierung 
einer PWM als Sinus über Lut den µC so beschäftig, dass er währenddessen 
keine anderen Operationen wie Messen und Berechnen durchführen kann.

Ist es richtig, dass für eine solch niedrige Frequenz DDS mit einem 
ADxxx oversized wäre?

Ist die Idee, einen µC zum Messen, Rechnen und UART zu nehmen und einen 
zweiten µC zur Generierung des PWM Signals zu nehmen völlig nebendran?

Ich würde mich über einen oder mehrere Tipps freuen!

Thomas

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ist die Idee, einen µC zum Messen, Rechnen und UART zu nehmen und einen
>zweiten µC zur Generierung des PWM Signals zu nehmen völlig nebendran?

Ja, weil diese Annahme

>Wie ich die Sache bislang verstanden habe, kann ich das nicht mit EINEM
>Bauteil ( zB Tiny, Mega) erreichen, da allein schon die Generierung
>einer PWM als Sinus über Lut den µC so beschäftig, dass er währenddessen
>keine anderen Operationen wie Messen und Berechnen durchführen kann.

nicht stimmt. Eher begeht der µC aus Langeweile Suizid.

MfG Spess

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Thomas "s." (kyma)

>gegeben ist ein TTL Rechtecksignal (high 6ms) mit variabler
>Periodenlänge zwischen 0.5Hz und 2.5 Hz.
>1.die Periodenlänge soll möglichst genau gemessen werden.

Das geht einfach per ICP Funktion.

>2.ich benötige als Ausgabe ein Sinussignal von +- 65Hz nach der Funktion
>y=65x^-1, (wobei x die gemessene Frequenz ist;-))

Also y = 65/x, macht bei dir Frequenzen von 26-130 Hz.

>Das bedeutet, dass y immer ein ganzzahliges Vielfaches von x sein muss.

Kriegt man hin.

>Die Messergebnisse möchte ich währenddessen per Uart an ein PC
>TerminalProg loggen.


Hmm.

>Wie ich die Sache bislang verstanden habe, kann ich das nicht mit EINEM
>Bauteil ( zB Tiny, Mega) erreichen, da allein schon die Generierung
>einer PWM als Sinus über Lut den µC so beschäftig, dass er währenddessen
>keine anderen Operationen wie Messen und Berechnen durchführen kann.

Stimmt nicht. So ein AVR hat schon mächtig Power. Ausserdem kann man der 
Einfacheit halber auf einen R2R DAC zurückgreifen, das entspannt die 
Sache zusätzlich. Damit wird die Sinuserzeugung zu Kinderspiel.

>Ist es richtig, dass für eine solch niedrige Frequenz DDS mit einem
>ADxxx oversized wäre?

Ja.

>Ist die Idee, einen µC zum Messen, Rechnen und UART zu nehmen und einen
>zweiten µC zur Generierung des PWM Signals zu nehmen völlig nebendran?

Mehr oder weniger. Das macht am Ende mehr Aufwand als ein AVR.

Deinen Sinus kann man leicht per Software-DDS machen, siehe Artikel, 
dort gibt es ein paar nette Projekte. Für max. 130 Hz reichen Pi mal 
Daumen 1-5kHz Samplingrate + Filter. Die Messung und das bissel 
UART-Gedöns macht der AVR nebenbei und pfeift noch La Paloma, auch mit 
nur ein paar MHz Takt.

MFg
Falk

Autor: Thomas "s." (kyma)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..vielen Dank! Dass der µC Suizid macht, möchte ich nicht;-) Habe dann 
wohl das ein oder andere noch nicht so richtig verstanden.....

Autor: seennoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Normalerweise müsste das kein Problem sein wegen deiner 
Leistungbedenken. Weil du das Zählen der Periodendauer sowieso mit 
Interrupts machst. PWM sind auch in HW realisiert also dürftest du mit 
einem µC auskommen.

Mfg Patrick

Autor: Thomas "s." (kyma)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@falk
Danke, werde mich mit den von Dir angeregten Lösungsansätzen 
auseinandersetzen....

>Also y = 65/x, macht bei dir Frequenzen von 26-130 Hz.

Was meine x / y Sache angeht dachte ich folgendermaßen:

Wenn x beispielsweise 1.24 Hz wäre, dann rechne ich y= 65/1,24=52,4193.. 
ergibt Faktor 52, 52x1.24Hz ergäbe dann 64,48Hz

oder in ms:1.24Hz = 0,8064ms
y=65 x 0,8064516 = 52,419354 ergibt ebenfalls Faktor 52 / 0,806451 = 
64,480049 Hz

Thomas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.