Forum: Mikrocontroller und Digitale Elektronik Sinus mit PWM und tiny2313 - suche Codebeispiel


von ChristophK (Gast)


Lesenswert?

Ich möchte einen Sinus mittels PWM erzeugen, derart, daß ich mit etwa 
20Khz bis 30KHz schalte (Sollte das menschl. Gehör nicht stören). Ich 
überlege, ob ich dies selber programmiere oder auf ein Codebeispiel 
aufsetze, das ich entsprechend modifiziere.

Ich möchte möglichst geringen Klirrfaktor haben bei einem Sinus von 
50Hz.
Filtern werde ich mit einem LC-Glied (Drossel aus einem 
Computer-Schaltnetzteil). Stelle mir vor, daß ich einen Quadranten als 
Lookup-Tabelle vorliegen habe mit den Startwinkeln und den 
Einschaltzeiten.
Das ganze müßte dann gespiegelt und geklappt werden.

Einsetzen wollte ich den Atmel Tiny2313.

von Matthias L. (Gast)


Lesenswert?

>LC-Glied (Drossel aus einem Computer-Schaltnetzteil)
>auf ein Codebeispiel aufsetze, das ich entsprechend modifiziere.
>suche Codebeispiel

Warum nimmst du nicht IRGENDEIN anderes Programm?
Das wurde zwar nicht geschrieben um 50Hz Sinus mit PWM zu generieren, 
aber das macht ja nix. Weil bei der Drossel gehts ja auch, die wurde ja 
auch für was anderes dimensioniert

von Troll B. (blaubeer)


Lesenswert?

Naja, wenn die Drossel schon vom PC stammt, dann dürfte irgendein 
PC-Programm auch passen....

Spaß beiseite, hier wurde mal eine Art Türklingel (einfacher 
Melodiegenerator mit Sinus-Tabelle) mit Tiny15 vorgestellt, dann auch 
auf ein noch besseres Projekt mit Tiny45 verwiesen, das glaube FFT 
nutzte. Spiele doch mal ein wenig mit der Suchfunktion dieses Forums.

MfG, BlauBär

von ChristophK (Gast)


Lesenswert?

Danke, Blaubär,

ich hatte schon gesucht aber nichts so richtig geeignetes gefunden.

Ich will einen Powersinus erzeugen. Ich muß schnell schalten (MOSFETS 
oder IGBT) und wollte eben auch erst mal mangels eines anderen 
preiswerten Bauelements so eine ca. 20mH Induktivität eines 
Computerschaltnetzteils verwenden.

Ausgangsleistung etwa 20-50W.

Also Klingeltöne sind zwar theoretisch ganz nett aber ich muß andere 
Überlegungen einfließen lassen: Schaltzeiten, max. Tastverhältnis, etc.. 
Erreichbare Schaltfrequenz mit einem Tiny2313 (weil ich da noch ein paar 
von habe) Würde auch einen anderen Typ nehmen, aber ich denke, der 
sollte reichen.

von Michael W. (wiebel42)


Angehängte Dateien:

Lesenswert?

Ich schick dir mal meinen letzten Sinus asm code, wenn du ihn verstanden 
hast kannst du ihn auch nachprogrammieren, wenn es exakt 50Hz sein 
sollen musst du eben die anzahl der Samples anpassen, ansonsten kann ich 
dir auch noch einen Code mit Phasenraum Frequenzanpassung geben, dann 
aber nichtmehr für Sinus.

Ein Wort zu IGBTs:
Was immer du vorhast vergiss IGBTs sofort, die Dinger machen sinn ab 
>200V bei etlichen Ampere, die verlierst IMMER min 2V über die Emitter 
Kollektor Strecke und das auch erst dann wenn du die vernünftig 
getrieben bekommst. Bei einem unserer Institute haben die eine IGBT 
Treiberschaltung die nichts anderes tut als einen Einzelnen (zugegeben 
sehr grossen) IGBT zu schalten und selbst dafür haben die IIRC mehr als 
einen uC verwendet. Tu dir einen grossen gefallen und vergiss die 
Dinger, FETs sind super, IGBTs sind auch von der Techologie nur Krüken 
die auf ihre Ablösung warten, ein Elektronenlochplasma ist etwas was 
eigentlich völlig ungnädig ist und man nur benutzt weil man nix besseres 
grade zur Hand hat, und das dann auch noch im kHz schalten zu wollen, da 
brauchst du mindestens eine Halbbrücke mit FETS und ne negative 
Hilfsspannung oder Ladungspumpen mit richtig wums. Du musst das Plasma 
förmlich ausräumen und dann hoffen das es auch weg ist. Nein das sind 
keine schönen Bauteile, solange du kannst lebe ohne sie. Ich weiss die 
klingen verlockend mit hui Werten und allem aber imho sind das fiese 
Biester. -wiebel

von ChristophK (Gast)


Lesenswert?

Danke, Michael. Klasse! Damit werde ich mal anfangen. Ich werde einen 
IR2110 mit IRF730 einsetzen.

von ChristophK (Gast)


Lesenswert?

Versuche gerade, Dein Programm auf tiny2313 umzustricken. (Du benutzt 
anscheinend ATmega169).

Was machst Du mit dem ADC in Deinem Programm?

von Michael W. (wiebel42)


Lesenswert?

ChristophK wrote:
> Was machst Du mit dem ADC in Deinem Programm?
Oh, hab ich vergessen zu erwähnen das der Code extrem unaufgeräumt ist. 
schäm
Ja der m169 ist Teil des Butterfly DevKits und, da auf diesem ein LDR 
draufklebt nutz ich den ganz gern um sachen zu steuern, in dem Fall die 
Frequenz. Kannst du aber natürlich auch einfach ersatzlos streichen. 
-wiebel

von ChristophK (Gast)


Lesenswert?

Hallo Wiebel und andere,

ich habe ein bißchen gegrübelt und fand es nun doch besser, selbst mal 
zu rechnen und zu versuchen, eine PWM-Pulsfolge hinzukriegen, die den 
Sinus approximiert.

Kennt sich jemand in PSPICE aus? Ich würde die Pulsfolge gerne mal 
simulieren und gucken, was nach einem Tiefpaß danach herauskommt. Weiß 
jemand auf die schnelle, wie man PSPICE eine Rechteckfunktion aufdrückt?

von Snt O. (snt-opfer)


Lesenswert?

Weiss jetzt nicht welche PSpice Umgebung Du hast, aber bei OrCad gibts 
diverse Möglichkeiten eigene Simulus-Dateien zu erzeugen.
Oder DSTM, dort kann man in zeitlichen (zum selber angeben) Abständen 
logisch schalten, als Pulsfolge.

von ChristophK (Gast)


Lesenswert?

Ja, ich habe die Orcad Demoversion. Ich hatte schon mal eine 
Analog-Stimulus Datei erzeugt, aber im Moment fehlt mir das Wissen, wie 
ich eine Signalquelle mit einer Rechteckfunktion beaufschlage 
(Stimulus).

von ChristophK (Gast)


Lesenswert?

bzw. welche V Source nimmt man? Nimmt man einen FILESTIM1 oder 
irdendeine der VSRC?

von ChristophK (Gast)


Lesenswert?

Laßt mal, ich gehe mal ins Orcad-Forum. Will dieses Forum jetzt nicht 
mit eigentlich sachfremden Themen "verseuchen".

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.