mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Diskussion zum Artikel "Single Chip Frequenzumrichter" für den 2. MC Wettbewerb


Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier bitte ich Euch um Anregungen, Kritik und Verbesserungsvorschläge zu 
dem Beitrag:
http://www.mikrocontroller.net/articles/Frequenzum...
zum 2. Mikrocontroller Wettbewerb.
Der etwas ungeschickte Titel lässt sich leider nicht mehr editieren - 
alles andere aber schon.
Freue mich auf Eure Postings, wenn sie zur Sache beitragen :-)

Autor: Gregor B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir ist eins aufgefallen:

Die IR2110/2113 kannst Du schlicht weglassen.
Der HCPL-3120 ist ein IGBT-Treiber mit 2,5A Ausgangsstrom.
Also IR auslöten, Drähte vom HCPL-3120 zu den Gate und 
Source-Anschlüssen.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gregor B. schrieb:
> Mir ist eins aufgefallen:
>
> Die IR2110/2113 kannst Du schlicht weglassen.
> Der HCPL-3120 ist ein IGBT-Treiber mit 2,5A Ausgangsstrom.
> Also IR auslöten, Drähte vom HCPL-3120 zu den Gate und
> Source-Anschlüssen.

Theoretisch hast du natürlich recht, die IR Treiber haben allerdings 
eine interne 'Verriegelung' gegen gleichzeitiges Durchsteuern der Low 
und Highside und sie bieten den Shutdown Eingang. Man könnte den 
Shutdown mit den Optokopplern so realisieren, das ihnen im Fehlerfall 
die Vcc abgeschaltet wird, wäre also eine Möglichkeit zum 
Experimentieren.

Wenn man übrigens einen Moment drüber nachdenkt, wird die Versorgung der 
Highside Optokoppler ohne Ladungspumpe zu einem richtigen Abenteuer. 
Insgesamt sind das dann nämlich 3 DC/DC Wandler, von denen jeder einen 
Highside Koppler antreibt.

Gregor B. schrieb:
> Also IR auslöten

Hehehe, die IRs sind bei mir nach den Erfahrungen mit Halbbrücken immer 
gesockelt :-)

Autor: Anja M. (an_ja)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe die Diskussionsseite leider erst jetzt entdeckt:

Beim ersten überfliegen des Artikels hatte mich gewundert daß im Foto 
insgesamt 6 Optokoppler verbaut sind aber im Schaltplan nur 2 gezeichnet 
sind.
Bis mir dann auf den zweiten Blick klar wurde: Ja klar, ist ja Drehstrom 
und nur eine Phase der Endstufe gezeichnet.
Ist aber für jemanden der in Leistungselektronik bewandert ist sicher 
selbstverständlich. Für mich wäre es einfacher lesbar gewesen wenn da 
noch ein Hinweis im Schaltplan wäre. (Block V,W wie Block U)

Ansonsten würde ich bei Bedarf die Schaltung sofort nachbauen.

Gruß Anja

Autor: Gregor B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> die IR Treiber haben allerdings
>
> eine interne 'Verriegelung' gegen gleichzeitiges Durchsteuern der Low
>
> und Highside

Nein, haben sie nicht, sieh' Dir mal das Schaltbild an, die einzigen 
Verbindungen zwischen den beiden ist UV-Detect und Shutdown.
Wir benutzen den IR2112S, IR2113S und IR2213S und da kannst Du alle 
IGBTs gleichzeitig einschalten.
Das sind nämlich unabhängige High- und Low-Side-Treiber und keine 
Halbbrückentreiber, die die Verriegelung haben.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gregor B. schrieb:
> Nein, haben sie nicht, sieh' Dir mal das Schaltbild an, die einzigen
> Verbindungen zwischen den beiden ist UV-Detect und Shutdown.

Probiers mal aus. Ich habe hier Testschaltungen mit 3 simplen Tastern 
und auch mit MCs, die HS,LS und SD ansteuern. Wenn du gleichzeitig HS 
und LS einschaltest, passiert da kein Shoot-Through. Das Datenblatt 
erwähnt auch nicht, das nach einem Shutdown erstmal LS aktiviert werden 
muss, bevor die HS wieder aktiviert werden kann. Ausprobiert mit IR2110 
und 2113.

Autor: GVS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
der HCPL-3120 sollte nach Applikation (Avago Datenblatt S.18, Bild 25) 
mit Open-Kollektor angesteuert werden. Das verbessert das 
Schaltverhalten.

Da wir die Steuerung mit diskreter Logik (74HC) machen habe ich einen 
BC548C dafür verwendet. Der benötigt dann eine RC-Parallelschaltung auf 
seine Basis (10kOhm || 100pF) damit der richtig zackig geht (
http://www.mikrocontroller.net/articles/Pegelwandler -> Pegelwandler mit 
Transistor, invertierend).

Zum Versogen der Halbbrücken verwenden wir Recom DCDC-Wandler (5->15V) 
Typ RxxP2, jeweis 2 Stück.

Als eigentlichen Treiber verwenden wir einen TI ucc37322. Damit kommt 
man locker im Leerlauf auf Schaltfrequenzen im mittleren kHz-Bereich 
(mit reiner Zeitverriegelung).

Frage zur Schaltung:
Warum so viel L (L3) und so wenig C (Snubber über IGBT)?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GVS schrieb:
> mit Open-Kollektor angesteuert werden. Das verbessert das
> Schaltverhalten.

Kan man machen, ist aber in dieser Applikation nicht unbedingt nötig 
oder von Vorteil. Wichtig ist hier ja, das alle 6 OKs die gleiche 
Verzögerung liefern, der benötigte Vorwärtsstrom von 10mA ist jedenfalls 
kein Problem für den direkten Anschluss an den MC. Die eigentliche 
Schaltflanke wird in meiner Schaltung ja von den IR2110/13 geliefert, 
die auch noch mal interne Schmitt-Trigger am Eingang haben.
Man kann aber natürlich zwischen MC und OK noch einen Opencollector 
Buffer setzen.
Wer sich die Mühe machen will, mit den HCPL direkt die IGBTs/MOSFets 
anzusteuern und DC/DC Wandler zu nehmen, sollte das dann auf jeden Fall 
tun.
Die IR mit der Ladungspumpe vermeiden halt die recht aufwendigen DC/DC 
Wandler, die dann ja zumindest für jede Highside notwendig wären.

GVS schrieb:
> Warum so viel L (L3) und so wenig C (Snubber über IGBT)?

Das ist sehr abhängig von der benutzten Last. L3 flacht die 
Schaltflanken nur ein wenig ab, ohne sie komplett zu verrunden, Sinn ist 
hier lediglich, Störungen im KW Bereich zu verkleinern. Cs am Ausgang 
wirken sich sehr negativ auf die Verlustleistung aus und müssten recht 
schaltfest sein. Der FU ist auch nicht dafür gedacht, geglättete 
Sinusausgänge zu liefern, sondern durchaus die PWM zum Motor 
'durchzureichen'. Die Motorinduktivität sorgt für den Rest. Das wird 
übrigens in nahezu allen kommerziellen FUs auch so gemacht und erklärt 
auch, warum alle Hersteller empfehlen, isolationsfeste Motore zu 
benutzen.

GVS schrieb:
> Damit kommt
> man locker im Leerlauf auf Schaltfrequenzen im mittleren kHz-Bereich
> (mit reiner Zeitverriegelung).

Die derzeitig benutzte Schaltfrequenz im Artikel ist 31 kHz. Benutzt man 
den internen RC Oszillator des AVR, sind max. 15 kHz drin.

Autor: Tibor Stolz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Wert des Zwischenkreis-Kondensators C14 (220 μF) scheint mir zu 
klein. C14 wird ja mit jeder Netz-Halbwelle (100 Hz) aufgeladen und muss 
dann die gesamte Energie an den Motor liefern, da der Strom aus dem Netz 
nur kurzzeitig fließt.

Die pro Halbwelle benötigte Energie berechnet sich für den 
550-Watt-Motor des Autors zu:

    550 W / 100 Hz  =  550 W * 0.01 s  =  5.5 Ws

Diese Energie kommt aus dem Energieinhalt (1/2 C U²) des Kondensators, 
und dadurch senkt sich die Spannung:

    5.5 Ws  =  1/2 C (Uc_max² - Uc_min²)    auflösen nach Uc_min:

    2 * 5.5 Ws / C = Uc_max² - Uc_min²

    Uc_min = √( Uc_max² - 2 * 5.5 Ws / C )

Uc_max ist 315 V (Scheitelwert der Netzspannung), somit gilt für C = 
220e-6 F:

    Uc_min = 221.87 V

Dies bedeutet, dass der Zwischenkreis eine netzfrequente 
Spannungsschwankung von 93.13 Volt (ca. 30%) aufweist. Ist das für die 
Funktion des Umrichters noch vertretbar?
Es ist ja nicht so, dass die Spannung des Zwischenkreises konstant 
gehalten werden muss, koste es was es wolle. Große Kondensatoren 
verursachen Probleme beim Aufladen, wenn man das Gerät ans Netz 
anschließt, und abgesehen davon sind sie teurer...

Insgesamt bin ich sehr froh über diesen Artikel, denn er wird mir 
helfen, einen eigenen Umrichter mit tieferer Pulsfrequenz (<1500 Hz, wie 
bei gewissen Schienenfahrzeugen) zu bauen, um Phänomene der 
Geräuschentwicklung an Drehstrommotoren (Stichwort: Seitenbänder der 
Pulsfrequenz; Töne, die mit zunehmender Drehzahl tiefer werden) zu 
untersuchen.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tibor Stolz schrieb:
> Dies bedeutet, dass der Zwischenkreis eine netzfrequente
> Spannungsschwankung von 93.13 Volt (ca. 30%) aufweist.

Hmm, tut er aber nicht. Ich habe als C14 das genommen, was ich gerade da 
hatte, aber kann solche Spannungseinbrüche im Betrieb bei Vollast nicht 
bestätigen, ich messe max, ca. 15-20 Volt.
Übrigens hat mein kommerzieller Mitsubishi 750 W FU einen 
Zwischenkreiskondensator von gerade mal 100µF/450V.

Autor: Juergen G. (jup)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

und vielen Dank und Gratulation an Matthias.

Das hat mich ermuntert auch mal einen FU zu bauen den ich dann evtl. 
nach meinen Wuenschen ansteuern kann und mich nicht immer mit den 
Herstellerspezifischen Protokollen bei den gekauften FU's verrenken 
muss.

Ich habe auf der Lastseite einen IR2130 und 6 IRF840 verwendet.

Zur Probe habe ich 3 R's in Stern Schaltung mit C's nach "Last-GND" an 
die Ausgaenge gehaengt und die Schaltung lastseitig mit 12V betrieben.

Resultat, es kamen wunderschoene Kurven auf dem Oszi an.

Dann hab ich mich mutig an die 220V getraut, und siehe da der Motor fing 
auch an zu drehen.

Nur werden die MOSFET's sehr heiss.

Ich habe einen 0.15Ohm Shunt in der Schaltung, der mir gesagt hat, das 
der Motor ca. 1A gezogen hat.

Da sollte doch nichts warm werden oder?

Mit 3Phasen und Leistungselektronik bin ich noch ziehmlich am Anfang. 
Also nicht lachen wenn da irgendwas toerichtes von meiner Seite kommt.

Der Motor hat 40 Ohm an den Wicklungen und 270mH.
Der Atmega88 ist mit 20MHz getaktet.
Ausser der Anpassung der F_CPU an der Software keine Aenderung.

Kann mir da jemand einen Tipp geben?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Juergen G. schrieb:
> Ich habe auf der Lastseite einen IR2130 und 6 IRF840 verwendet.

Den IRF2130 habe ich noch nie verwendet, lt. Datenblatt scheint er aber 
eine fest eingestellte Totzeit zu haben. Wenn du die geeigneten 
Messmittel hast, oszillografiere doch mal die Spannungsverläufe am Shunt 
und sieh, ob da evtl. Shoot-Throughs passieren, also starke 
Spannungsspitzen am Shunt. In diesem Fall (wenn du meine Schaltung 
verwendest) würde am Shutdown Ausgang der Schutzschaltung immer wieder 
durchgeschaltet. Eine LED an diesem Ausgang zeigt dir evtl. auch an, 
wenn da Überstrom fliesst.
Zum Experimentieren kannst du auch mal die Totzeit höher drehen, ich bin 
mir allerdings nicht sicher, was der IR2130 da macht.
Der IRF840 ist ein relativ altes 'Schlachtschiff' und hat voll 
durchgesteuert immerhin noch 0,85 Ohm, wird also schon warm. Du musst 
unbedingt darauf achten, das er satt durchgesteuert wird, Vcc am IR2130 
sollte also gut bei 12 Volt oder mehr liegen. Im Zweifelsfall poste doch 
mal ein Schaltbild deiner Endstufe.

Juergen G. schrieb:
> Ausser der Anpassung der F_CPU an der Software keine Aenderung.

Es betrifft nur die Anzeige der Frequenz im Display, aber bei 
Gelegenheit kannst du auch mal 'DIVISIONEER' in vfd.h anpassen.

Autor: kabelbieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAllo bei dem übersetzten im avr studio 4.19 kommen lauter fehler
kann mir jemand helfen


reicht es konstanten daraus zu machen?

kleiner aussschnitt

In file included from ../main.c:92:0:
../vfdtables.h:35:17: error: variable 'sineTable' must be const in order 
to be put into read-only section by means of '__attribute__((progmem))'

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kabelbieger schrieb:
> HAllo bei dem übersetzten im avr studio 4.19 kommen lauter fehler
> kann mir jemand helfen

Da scheint was nicht zu stimmen, denn PROGMEM ist automatisch konstant. 
Da ich das Programm auch mit AVR Studio 4.19 kompiliere, vermute ich, 
das etwas an deiner Installation nicht stimmt. Kannst du denn 
irgendwelche anderen C Programme kompilieren?
Hast du WinAVR installiert? Was für ein Betriebssystem benutzt du?

Autor: kabelbieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Betriebsystem ist xp und winavr ist auch drauf....ich werde morgen 
erstmal neu installieren das ganze

Autor: kabelbieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So des rätsels lösung liegt darin nicht die aktuelle toolchain zu 
verwenden sondern eine ältere...klappt dann wunderbar alles...läuft 
super der umrichter

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh, cool, vielen Dank für die Mühe. Das die Jungs auch immer am Rädchen 
drehen müssen...
Wenn du da nochmal die Versionsnummern raussuchen könntest, würde ich 
den Artikel entsprechend aktualisieren.

Autor: kabelbieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die letzte funktionierende toolchain in kombination mit 4.19 ist 
folgende:  AVR Toolchain 3.3.1-1020

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr nett - vielen Dank!
Artikel aufgefrischt.

Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kabelbieger schrieb:
> ../vfdtables.h:35:17: error: variable 'sineTable' must be const in order
> to be put into read-only section by means of '__attribute__((progmem))'

Ich bin neue bei AVR und heute habe ich Atmel Studio 6.1 installiert.
Bei Compilieren bekam ich die gleichen  Fehler. Was soll ich machen?

Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach statt "PROGMEM" habe ich "const PROGMEM" geschrieben und
alles läuft...-

Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte diesen Frequenzumrichter für den Motor von meiner Drehbank 
verwenden. Der Motor ist Zweiphasig. Eine Phase wird durch einen 
Kondensator versorgt. Ich werde nur zwei Phasen vom Frequenzumrichter 
verwenden und den Kondensator eliminieren. Ich habe nur Gedanken wie es 
mit nur einer Phase und dem Kondensator wäre... Vielleicht kann jemand 
die Antwort...
Außerdem ist mir rätselhaft (sehe das Schaltbild) wie wurden die zwei 
DC/DC
CONVERTER von 300 Volt auf 5 Volt und 18 Volt realisiert.

Autor: Ezis B. (ezis_b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Motor ist Einphasig..

Autor: leser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Außerdem ist mir rätselhaft (sehe das Schaltbild) wie wurden die zwei
> DC/DC
> CONVERTER von 300 Volt auf 5 Volt und 18 Volt realisiert.

Dann lese doch erst mal den ganzen Artikel. Oder meinst du das macht 
hier jemand für dich?

Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ezis B. schrieb:
> Der Motor ist Einphasig..

Der Motor hat zwei gleichen Wicklungen.  Eine Wicklung wird über 
Kondensator versorgt. Der Motor wie in  Steinmetzschaltung:
http://de.wikipedia.org/wiki/Steinmetzschaltung
Kann man so einen Motor nicht als zweiphasig bezeichnen...?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Der Motor hat zwei gleichen Wicklungen.  Eine Wicklung wird über
> Kondensator versorgt. Der Motor wie in  Steinmetzschaltung:
> http://de.wikipedia.org/wiki/Steinmetzschaltung
> Kann man so einen Motor nicht als zweiphasig bezeichnen...?

Das ist entweder eine Steinmetzschaltung oder ein (wahrscheinlicher) 
Kondensatormotor. Diese Motore lassen sich nur sehr widerwillig und in 
einem engen Drehzahlbereich regeln, denn der Kondensator ist für die 
normale Arbeitsdrehzahl/Frequenz optimiert. Kurz: Nicht geeignet zum 
Betrieb am Frequenzumrichter.

skorpionx schrieb:
>> Außerdem ist mir rätselhaft (sehe das Schaltbild) wie wurden die zwei
>> DC/DC
>> CONVERTER von 300 Volt auf 5 Volt und 18 Volt realisiert.

Steht doch alles da: 5 Volt aus einem normalen Handynetzteil und die 18 
Volt aus einem leicht modifizierten Lichterketten-Schaltnetzteil. Wenn 
du die galvanische Trennung beachtest, geht da auch ein Trafonetzteil 
oder ein Notebook Adapter - oder was sonst gerade rumliegt.

Autor: Arne Pfäffle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein...
Die steinmetzschaltung wird an 3-phasigen Motoren eingesetzt, um diese 
an Wechselstrom zu betreiben...

Du hast einen Kondensatormotor, der hat eine Haupt und eine 
Hilfswicklung... ich denke nicht dass das an einem FU funktioniert...
Beitrag "Drehzahlregelung Kondensatormotor"

Autor: Arne Pfäffle (ob3lix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arne Pfäffle schrieb:
> nein...
> Die steinmetzschaltung wird an 3-phasigen Motoren eingesetzt, um diese
> an Wechselstrom zu betreiben...
>
> Du hast einen Kondensatormotor, der hat eine Haupt und eine
> Hilfswicklung... ich denke nicht dass das an einem FU funktioniert...
> Beitrag "Drehzahlregelung Kondensatormotor"

Ergänzung:

>Ezis B. schrieb:
>> Der Motor ist Einphasig..

>Der Motor hat zwei gleichen Wicklungen.  Eine Wicklung wird über
>Kondensator versorgt. Der Motor wie in  Steinmetzschaltung:
>http://de.wikipedia.org/wiki/Steinmetzschaltung
>Kann man so einen Motor nicht als zweiphasig bezeichnen...?

in meinen Augen nicht wirklich... es ist wie gesagt eine Hauptwicklung 
und eine Hilfswicklung, die für den Start zuständig ist, sonst müsstet 
du deinen Motor von Hand starten...

Mehr für deinen Motor lieber eine Phasenanschnittsteuerung...

 
 L1   L2    L3
 |    |     |
 |    |     |
 |    |     |
 -    -     -
| |  | |   | |
| |  | |   | |
| |  | |   | |
 -    -     -
 |    |     |
 ------------


Normaler Drehtstrommotor in Sternschaltung

 
 L1   N    
 |    |  C  |
 |    |-||- |
 |    |     |
 -    -     -
| |  | |   | |
| |  | |   | |
| |  | |   | |
 -    -     -
 |    |     |
 ------------


Drehstrommotor in Steinmetzschaltung

Der Kondensator wird zur Phasenverschiebung eingesetzt.

: Bearbeitet durch User
Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arne Pfäffle schrieb:
> in meinen Augen nicht wirklich... es ist wie gesagt eine Hauptwicklung
> und eine Hilfswicklung, die für den Start zuständig ist, sonst müsstet
> du deinen Motor von Hand starten...

Es gibt solche Motoren mit Startwicklung (und die wird nach
dem Start  abgeschaltet)und welche mit zwei gleichen Wicklungen wo eine 
Wicklung wird permanent  über Kondensator versorgt.

Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> 
http://www.google.de/imgres?imgurl=http://www.elek...

Genau. Du siehst, es ist relativ einfach, eine Steinmetzschaltung vom 
Kondensatormotor zu unterscheiden, der Steinmetz hat 3 Wicklungen, der 
Kondensatormotor nur 2. Wenn du also wirklich einen Steinmetz mit 3 
gleichen Wicklungen hast, entfernst du den Kondensator und schliesst die 
3 Phasen nun alle an den Umrichter an. Solltest du aber einen 
Kondensatormotor besitzen, bleibt dir entweder Phasenanschnitt (mit 
Brummen, wie im o.a. Thread) oder eine Wellenpaketsteuerung. Ich hab mit 
Wellenpaket mal rumexperimentiert, bin aber bezüglich Laufruhe und der 
heftigen geschalteten Leistung (Pumpe mit 1200 Watt) auf keinen grünen 
Zweig gekommen.

Übrigens gibt die Grösse des Kondensators schon einen Hinweis. Man 
rechnet bei Steinmetz mit ca. 60µF/kW, der Kondensatormotor besitzt 
wesentlich kleinere Werte.

: Bearbeitet durch User
Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werde versuchen den Motor mit zwei Phasen zu versorgen.
Der Kondensator wird selbstverständlich entfernt. Ich werde
dann auch mit der Phasenverschiebung experimentiert.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Ich werde versuchen den Motor mit zwei Phasen zu versorgen.

skorpionx schrieb:
> Ich werde versuchen den Motor mit zwei Phasen zu versorgen.
> Der Kondensator wird selbstverständlich entfernt.

Bevor du das tust, mach doch mal bitte ein Foto vom Motoranschlussfeld 
und sag uns, wie gross der Kondensator ist.

Autor: Arne Pfäffle (ob3lix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Ich werde versuchen den Motor mit zwei Phasen zu versorgen.
> Der Kondensator wird selbstverständlich entfernt. Ich werde
> dann auch mit der Phasenverschiebung experimentiert.

aber dann den FU nur mit 230V versorgen! Sonst werden deine Wicklungen 
zu kurzlebigen Heizungen ;-)

Autor: skorpionx (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> Bevor du das tust, mach doch mal bitte ein Foto vom Motoranschlussfeld
> und sag uns, wie gross der Kondensator ist.

Der Kondensator hat 50 µF Kapazität.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Der Kondensator hat 50 µF Kapazität.

Das klingt doch gut. Wenn du den Kondensator entfernt hast, miss bitte 
mal zumindest ohmsch den Widerstand der drei Wicklungen. Wenn die alle 
gleich sind, spricht nicht viel dagegen, den FU anzuschliessen, 
allerdings natürlich mit allen 3 Phasen(!). Mit nur 2 Phasen wird da 
nicht viel passieren ausser einem brummenden Motor und seiner 
Unwilligkeit, sich zu drehen.

Arne Pfäffle schrieb:
> aber dann den FU nur mit 230V versorgen!

Das ist bei der Schaltung sowieso gegeben.

: Bearbeitet durch User
Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, kann ich die IR2110 Treiber auch ohne Optokoppler direkt an den MC 
anschließen? Wenn ich VDD und VSS mit +5V und GND versorge?

MfG Philipp

Autor: Juergen G. (jup)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philipp schrieb:
> Hi, kann ich die IR2110 Treiber auch ohne Optokoppler direkt an den MC
> anschließen? Wenn ich VDD und VSS mit +5V und GND versorge?
>
> MfG Philipp

Koennen schon, aber ratsam ist das nicht.

Bedenke das an den IR's eine ziehmlich hohe Spannung anliegt. Wenn Dir 
da ein IR abraucht kann es ohne Optos auch Deine ganze 5V Schaltung 
mitnehmen.

Es ist billiger ein Optokoppler zu tauschen als alles was an den 5V 
haengt.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philipp schrieb:
> Hi, kann ich die IR2110 Treiber auch ohne Optokoppler direkt an den MC
> anschließen? Wenn ich VDD und VSS mit +5V und GND versorge?

VORSICHT!
In diesem Fall ist die gesamte Schaltung mit dem Lichtnetz verbunden, es 
gibt keine galvanische Trennung mehr. D.h. am LCD, am 
Programmieranschluss und an den Buttons liegt dann Netzspannung!

Für Niedervoltanwendungen hingegen ist das eine brauchbare Option. Wenn 
du am MC einen freien Pin findest, kannst du sogar das ShutDown Signal 
aus der Endstufe auswerten. Auch eine Strommessung wäre am Shunt 
denkbar.

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke für die Antworten. Kenn mich noch nichts so gut aus. Ich werde 
die Optokoppler 6N137 benutzen. Ich baue mir eine Spannungsversorgung 
mit +5V für den IR2110 Eingangsseite und +12V für die Ausgangsseite.

So bräuchte ich 2 Schaltungen mit einem Trafo mit Festspannungsreglern? 
Einer für die Steuerseite +5V und einer für den Leistungsteil mit +12 
und +5V, die beide mit am GNDI hängen?

Autor: Jörg B. (joerg-sh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Phillip, du solltest dir mal den Artikel genau durchlesen. Da ist alles 
genau beschrieben!

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philipp schrieb:
> So bräuchte ich 2 Schaltungen mit einem Trafo mit Festspannungsreglern?
> Einer für die Steuerseite +5V und einer für den Leistungsteil mit +12
> und +5V, die beide mit am GNDI hängen?

Da mir immer noch nicht klar ist, was du eigentlich vorhast, wäre ich 
für Aufklärung dankbar. Willst du einen Niedervoltmotor betreiben? Da 
die 6N137 normale Optokoppler sind, musst du für die auch keine extra 5 
Volt erzeugen, sondern kannst sie mit den nicht netzgetrennten 12V 
betreiben, geeignete Arbeitswiderstände für die Phototransistoren 
vorausgesetzt.

Autor: Juergen G. (jup)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> Da
> die 6N137 normale Optokoppler sind

Nicht ganz, die haben eine Treiberstufe drin die 5V Versorgung braucht.

Ich hab auch die 6N137 in meiner Schaltung.

Bei mir ist der Trafo auf der HV Seite, also
Trafo - Gleichrichter dann mit einem Simpleswitcher auf 15V und mit 
einem Linearregler auf 5V fuer die Optos.
Der Atmega wird dann von den 15V ueber einen Isolierten Brick DC-DC 
Wandler versorgt.

Autor: Interessierter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gehe ich richtig von der Annahme aus, dass die High-Side-PWM für 
Sinuserzeugung und die LOW-Side-PWM für die V/f-Regelung zuständig ist??

Ich versuche das Prinzip der Ansteuerung der FETs nachzuvollziehen, für 
jede Verbesserung oder eigene Erklärungsversuche wäre ich sehr dankbar.

Schönen Abend noch..

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. High-Side und Low-Side werden komplementär angesteuert mit einem 
PWM-Signal, das aus der Sinus Tabelle gewonnen wird und skaliert 
(mulitpliziert wird) mit der Amplitude. Es wird dann eine Totzeit 
eingefügt und dann die OC Register der Timer geladen.
Steht im Quelltext auch nochmal recht ausführlich drin. Das 
Sinusmodulierte PWM Signal findet sich also in der Ansteuerung beider 
Teile der Halbbrücke.

: Bearbeitet durch User
Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe schon CPU-Teil mit ATmega328 mit 16Mhz Quarz. Man sieht
auf dem Display Zahlen und man kann sie editieren mit Tasten. Nur die 
Anzeige ist dunkel und lässt sich nicht mit dem Kontrast Poti heller
machen. Wahrscheinlich sind fuses nicht richtig eingestellt.
Low Fuses habe ich mit 0xF7 eingestellt. Ich bin beim Atmel neue und 
bitte um Hilfe. Wie soll ich fuses einstellen?

Autor: Jörg B. (joerg-sh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Kontrast vom LCD wird mit dem Poti eingestellt und hat nichts mit 
dem Atmega zu tun. Ist doch auch gar nicht mit dem Atmega verbunden.

Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg B. schrieb:
> Der Kontrast vom LCD wird mit dem Poti eingestellt und hat nichts mit
> dem Atmega zu tun. Ist doch auch gar nicht mit dem Atmega verbunden.

Das weiß ich. Bitte schreibt nur das was zur die Lösung etwas bringt. 
Ich vermute, dass etwas mit Frequenzteilung nicht stimmt.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dafür gibt es prima Fuse Rechner im Internet, z.B. der hier:
http://www.engbedded.com/fusecalc

Dein Mega328 sollte auf Full Swing Crystal, lange Reset Zeit (ist 
eigentlich egal, aber langer Reset schadet nichts), kein CLKDIV8, und 
praktischerweise auf gesetzte EESAVE Fuse gefused werden, damit du nicht 
immer wieder den EEPROM beschreiben musst, wenn du eine andere Software 
Version reinspielst.
Der o.a. Fuse Calculator sagt:
Low: 0xD6 , High: 0xD1, Extended: 0xFC

Denke dran, das du mindestens einmal auch den EEPROM programmierst, also 
das *.eep File in den EEPROM (nicht den Flash!) schreibst.

Wenn du den AVR mit 3,3V betreibst und dein LCD das auch verträgt (siehe 
Datenblatt), kann es nötig sein, eine negative Hilfsspannung für den 
Kontrast zu erzeugen. Mit 5V liegt die beste Kontrastspannung für 
normale HD44780 Displays recht nahe an 0V.

: Bearbeitet durch User
Autor: Jörg B. (joerg-sh)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
skorpionx schrieb:
> Das weiß ich. Bitte schreibt nur das was zur die Lösung etwas bringt.
> Ich vermute, dass etwas mit Frequenzteilung nicht stimmt.

Ich finde das hat schon ne Menge mit deiner Frage zu tun.

Der Kontrast des LCD hat nun mal nichts mit dem Atmega zu tun.

Da kannst du so viel an deinen Fuses herum probieren wie du willst.

Autor: Jörg B. (joerg-sh)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
und was deine Frequenz Einstellung angeht.

Am einfachsten ist es immer mit den Atmel Studio. Da kann man die Fuses 
sehen was Sie machen und ist nicht von irgendwelchen Tools abhängig.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Jörg B. schrieb:
> Am einfachsten ist es immer mit den Atmel Studio

Es gibt aber viele Leute, die nun mal nicht mit AVR/Atmel Studio 
arbeiten, sondern eine andere Toolchain benutzen. Die Welt besteht nicht 
nur aus Windows. Sei so nett und spam den Thread nicht zu.

Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Änderung des fuses hat nichts gebracht. Mein BLAUES Display ist
weiter ziemlich dunkel. Probeweise habe ich ein grünes Display vom
meinem Transistortester gesteckt.Mit dem ist die Helligkeit ausreichend
aber Kontrast-Poti steht auf 0 Volt.  Wenn ich mein
blaues Display in Transistortester stecke dann ist Kontrast und 
Helligkeit wunderbar (sogar besser als beim grünem Display). Ich vermute 
dass das Problem  in der Timing von Ansteuerung vom Display liegt. Beim
Compilieren habe ist schon eine Warnung gesehen so ung.:
„F_CPU not defined for delay.h...“

Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Lösung ist nah... Mein Blaues Display arbeitet nur mit Hintergrund 
Beleuchtung gut. Sonst ist die Helligkeit nicht ausreichend...

Autor: skorpionx (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
CPU-Teil schon getestet. Noch Netzteil mit Filter und Endstufen. 
Dazwischen aber Ostern...

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Beim
> Compilieren habe ist schon eine Warnung gesehen so ung.:
> „F_CPU not defined for delay.h...“

Ja, das liegt daran, das man im AVR Studio die CPU Frequenz nicht per 
#define festlegt, sondern in den Projekteinstellungen. Du kannst das 
leicht hinzufügen, indem du per
#define F_CPU 16000000UL
vor dem
#include util/delay.h
die Frequenz mitteilst oder im Makefile ein '-DF_CPU 16000000' addierst.

Die Fuses werden davon nicht beeinflusst, du musst also trotzdem den AVR 
korrekt fusen, wie oben angegeben.
Auch Peter Fleurys LCD Bibliothek braucht die korrekte Angabe im lcd.h:
#define XTAL 16000000
das sollte aber schon alles korrekt eingetragen sein.

skorpionx schrieb:
> Mein Blaues Display arbeitet nur mit Hintergrund
> Beleuchtung gut.

Deswegen finde ich die blauen LCD nicht besonders. Das Foto meines 
Kontrollerteils ist ohne Hintergrund Beleuchtung gemacht und trotzdem 
gut lesbar.

skorpionx schrieb:
> CPU-Teil schon getestet.

Das sieht doch gut aus. Du hast zwar im Moment ein enormes V/Hz 
Verhältnis eingestellt, aber das kommt dann mit dem Motor...
Frohe Ostern!

: Bearbeitet durch User
Autor: skorpionx (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin nicht sicher wie ich den Motor (U,V,W...) einschließen sollte. 
Rätselhaft ist für mich Z.B. die Verbindung U1 zu U2 auf dem Schaltbild 
(sehe oben...). Jede Endstufe wird versorgt über eigenen L4 oder alle 
Endstufen werden durch einen gemeinsamen L4 ?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Ich bin nicht sicher wie ich den Motor (U,V,W...) einschließen sollte.
> Rätselhaft ist für mich Z.B. die Verbindung U1 zu U2 auf dem Schaltbild
> (sehe oben...).

Auf meinem Board sind doppelte Klemmen (siehe das Foto vom 
Endstufenteil) für die Phasenausgänge und die zweite Klemme ist ein 
reiner Messpunkt(und macht die Klemme stabiler).
Du schliesst den Motor also zwischen U,V, und W an, wie bei jedem FU, 
die V und W Endstufen sind im Schaltplan ja weggelassen. Im Foto ist das 
weisse Kabel der Ausgang zum Motor.

skorpionx schrieb:
> Jede Endstufe wird versorgt über eigenen L4 oder alle
> Endstufen werden durch einen gemeinsamen L4 ?
Ich speise (und so stehts ja im Schaltplan) die Endstufen mit VCCIO, und 
das kommt erst hinter der gemeinsamen L4. Du kannst aber gerne auch für 
jede Endstufe eine extra L4 einbauen, Vorteile gibts aber nicht viele, 
ausser das pro L weniger Strom fliesst und du etwas kleinere 
Drahtstärken wählen kannst.

: Bearbeitet durch User
Autor: Kaj (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> Ja, das liegt daran, das man im AVR Studio die CPU Frequenz nicht per
> #define festlegt, sondern in den Projekteinstellungen.
Was ist denn das für ein Blödsinn?
Atmel Studio stört sich nicht im geringsten daran, wenn ein F_CPU per 
#define gesetzt wird. Das #define im Code ist nicht die Ursache der 
Fehlermeldung, so wie du es propagierst!

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kaj schrieb:
>> Ja, das liegt daran, das man im AVR Studio die CPU Frequenz nicht per
>> #define festlegt, sondern in den Projekteinstellungen.
> Was ist denn das für ein Blödsinn?

Das ist überhaupt kein Blödsinn. Und wie kommst du schon nach einem 
Monat darauf?
Im AVR Studio 4 wird nun mal F_CPU in den Projekteinstellungen definiert 
und muss im Code nicht nochmal vorkommen. So ist das in meinem Quellcode 
gemacht. Wenn man also unter einen anderen Compiler baut (und genau das 
machte der Fragende), muss F_CPU im Code oder im Makefile definiert 
werden.

: Bearbeitet durch User
Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> Auf meinem Board sind doppelte Klemmen

Man findet auch Bezeichnung für einzelne Stränge vom Motor wie Z.B.:
http://de.wikipedia.org/wiki/Sternschaltung

Hier werden die Enden der drei Phasenstränge dann wie folgt bezeichnet:
u1 - u2
v1 - v2
w1 - w2

Und das war die Quelle meiner Unsicherheit.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

dein Thread ist zwar schon etwas älter, aber ich versuche es trotzdem 
mal.
Ich würde gern meine I2C Displays zur Anzeige verwenden. Dann könnte man 
die frei werdenden Ports vielleicht auch für Erweiterungen benutzen. 
Allerdings sind die entsprechenden Ports PC4/5 schon mit dem 
Feature-Port verbunden um analoge Werte zu lesen. Könnte man diese Ports 
anderswo hin verlegen, so dass PC4 und 5 für den I2C freiwerden? Ich 
benutze einen ATMega328P, bekomme ich Probleme mit dem verfügbaren 
Speicher wenn noch die I2C-Bibliothek hinzukommt?

Gruß und Glückwunsch nachträglich.

Michael

Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, habe noch was!
Schau dir mal bitte den Dateianhang an. Da sind im Dach so komische 
Zacken drin, die ich mir nicht erklären kann. Rot ist direkt am MCU-Port 
aufgenommen und grün hinter einem invertierenden NPN-Transistor. 
Offensichtlich kommt das "Signal" schon so aus der MCU. Ich hätte jetzt 
auf die Sinustabelle getippt, aber das wäre wohl schon jemanden 
aufgefallen. Hast du eine Erklärung dafür?

Michael

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Michael schrieb:
> Allerdings sind die entsprechenden Ports PC4/5 schon mit dem
> Feature-Port verbunden um analoge Werte zu lesen. Könnte man diese Ports
> anderswo hin verlegen, so dass PC4 und 5 für den I2C freiwerden?

Ja, das geht natürlich. In demm Moment, wo du ein I²C Display benutzt, 
werden ja auch ADC0 bis ADC3 frei, die bisher die Datenleitungen zum 
HD44780 LCD waren. Auf diese Kanäle kannst du dann die ADC ISR umbauen. 
Wenn du dir die Deklarationen in vfd.h anschaust, siehst du, das das 
recht einfach geht:
//! The ADC channel where the analog frequency control is connected.
#define ADC_CHANNEL_FREQUENCY   4

//! The ADC channel where the analog V/Hz input is connected.
#define ADC_CHANNEL_AMPLITUDE     5
Das musst du nur auf die gewünschten ADC Kanäle ändern.
Michael schrieb:
> Da sind im Dach so komische
> Zacken drin, die ich mir nicht erklären kann.

Die 'Zacken' sind normal, das sind die Dächer der 'Popo' Kurven, die zur 
Ansteuerung von Motoren etwas besser geeignet sind als reine 
Sinuskurven.
Allerdings stimmt da was mit der Abtastrate des Oszis nicht, denn ich 
kann die eigentliche PWM nicht sehen, sondern nur was gemitteltes. Die 
Güte des Oszibildes ist also nicht optimal.
Zu den 'Popokurven' findest du im Netz einige Erklärungen, und auch in 
der Application Note Atmel AVR447.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja super!

ich habe nämlich nur noch die seriellen Displays. Das, was ich gerade 
benutze ist ziemlich zerkratzt (stammt aus dem Recycling).
Das Problem mit der Kurvenform habe ich inzwischen auch erkannt. Habe 
mir in Excel aus der Tabelle ein Diagramm gemacht. Und dann dachte ich 
mir schon, dass das wohl so stimmen muss.
Wenn es dir nichts ausmacht, hätte ich da noch ein paar Fragen.
Da ich, bis auf den MC, noch keine Hardwarekomponenten habe, habe ich 
auf einem Steckbrett inkl. MC (328P, 16MHz) sechs npn-Transistoren 
(SF126D) jeweils paarweise E-C zusammengesteckt und die drei 
Motorwindungen eines Festplattenmotors daran angeschlossen. Der vierte 
Draht (niedriegster Widerstand) bleibt offen. Die sechs Basiswiderstände 
haben jeweils 220 Ohm. Ich weiß natürlich, dass das nicht so toll ist, 
aber die Transistoren werden einigermaßen durchgesteuert. Nur läuft der 
Motor nicht von selbst an. Und bei der geringsten Belastung oder wenn 
ich die Frequenz bis etwa 150 Hz hochfahre gibts einen Ruck und er 
steht. Ist das ein prinzipelles Problem mit dieser Art Motor? Bei einem 
normalen 3-Phasen-Motor, beispielsweise einer Werkzeugmaschienen, wurde 
doch früher auch nur in Dreieck-Schaltung gestartet und dann optional 
nach dem Anlauf auf Stern umgeschaltet.
Das mit meinem Oszillogramm hast du richtig erkannt. Mein richtiger Oszi 
steht im Keller. Mir ist es aber derzeit zu kalt dort und habe 
kurzerhand die Soundkarte meines PC missbraucht (Spannungsteiler etwa 50 
zu 1 und Software "Scope" von Christian Zeitnitz).

Gruß

Autor: Detlef Kahrmann (deka65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@ Michael

Michael schrieb:
> doch früher auch nur in Dreieck-Schaltung gestartet und dann optional
> nach dem Anlauf auf Stern umgeschaltet.

Genau umgekehrt. Die Art des Motoranlaufs nennt sich
Stern - Dreieck - Schaltung.
Der Motor wird in Sternschaltung angefahren und danach in
Dreieckschaltung umgeschaltet.

gehört zwar nicht direkt zum Thema, ist aber so.

Gruß
deka65

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Detlef,

Detlef Kahrmann schrieb:
> Genau umgekehrt. Die Art des Motoranlaufs nennt sich
> Stern - Dreieck - Schaltung.

natürlich hast du Recht, Sorry. Ich vermute, dass die Sternschaltung 
beim Anlaufen den Motor schützte, weil durch die Serienschaltung der 
Wicklungen weniger Strom gezogen wird. Bei Nenndrehzahl wurde dann nach 
Dreieck umgeschaltet um das Drehmoment zu erhöhen. Bei Contoller 
gesteuerten Motoren spielt dies keine Rolle, wie du schon bemerktest.
Ich frag mich aber immer noch, warum mein HD-Motor nicht anläuft. Mir 
ist klar, das im Einschaltmoment 100% Schlupf da sind und damit das 
Drehmoment sehr niedrig sein muss. Aber dass er ohne Starthilfe garnicht 
dreht?

Gruß
Michael

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Wenn der Motor 4 Anschlüsse hat, wird er vermutlich immer im Stern 
gefahren, wobei am Mittelpunkt +Motor liegt und die drei Wicklungen über 
kräftige Endstufen rundherum auf Masse gezogen werden. Diese Motoren 
arbeiten meistens mit 'sensorless' BLDC Algorithmen und sind für echten 
Drehstrom schlecht geeignet.
Application Note AVR 444 gibt Hinweise, wie ein solcher Motor 
anzusteuern ist.
http://www.atmel.com/dyn/products/app_notes.asp?fa...

Gut geeignet sind z.B. die Motoren aus DirectDrive Plattenspielern (ich 
habe hier einen wunderbaren 'Pioneer Precision Mechanics', den ich mit 
dem FU auf unter 10U/min bekomme) und natürlich 230/400V Drehstrommotore 
wie der ihm Beitrag erwähnte.

: Bearbeitet durch User
Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab das Problem gefunden. Es saß zwischen Rückenlehne und Lötkolben. 
Entgegen dem Schaltbild sind die Port-Pins H und L der Phasen in der 
vfdtables.h anders herum. Nun läuft der 3,5´´ HD-Motor (, zwar nicht von 
selbst an,) aber wenigstens hat er nach einem Anstupser ein spürbares 
Drehmoment. Nach unten bleibt er dann bei ~8Hz (120 U/min) stehen. Statt 
gleich in die Datei zu schauen, hatte ich mich an den Schaltplan 
gehalten :-(

Ich werde versuchen deine Schaltung nachzubauen. Das I²C-Display bekomme 
ich hoffentlich "reingestrickt". Ich habe vor, damit einen Fräsmotor 
anzutreiben. Wünschenswert wäre vielleicht noch die Steuerung über ein 
entsprechendes Programm vom PC aus.
So, dann werde ich jetzt mal ein paar Teile bestellen...

Danke auch noch einmal für deine nette Unterstützung.

Gruß
Michael

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Michael schrieb:
> Wünschenswert wäre vielleicht noch die Steuerung über ein
> entsprechendes Programm vom PC aus.

Das sollte klappen, wenn du die serielle Schnittstelle des Mega von den 
Buttons freiräumst. Da du jede Menge Pins mit dem I²C Display einsparst, 
sollte sich da eine alternative Belegung finden lassen.
Die Erzeugung der 3 Phasen findet ja komplett in Interrupts statt, das 
Hauptprogramm kannst du dir also so hinstricken, wie du es brauchst. 
Lediglich die PWM Pins sind fest vorgegeben und nicht veränderbar, das 
liegt in der Natur des Mega.

Allerdings rate ich dir, Schritt für Schritt vorzugehen. Also erstmal 
das Display zum laufen bringen, dann den Kommandointerpreter auf seriell 
umzubauen usw.
Viel Erfolg!

Autor: skorpionx (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Überstromschutz funktioniert falsch? Ich zeige zwei Oszi-Bilder. Kanal 2 
Spannung auf dem R7 und Kanal 1 auf dem SD-Pin. Das alles ohne Belastung 
(kein Motor)! Für bessere Übersichtlichkeit habe ich das nur für eine 
Phase aufgenommen. Als IGBT habe ich FGH40N6S2D verwendet. Was für eine 
Ursache kann das sein?..

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Was für eine
> Ursache kann das sein?..

Sieht nach Shoot-Through aus. Wenn ich das richtig interpretiere, sind 
auf dem Shunt Spitzen von über 20V, das riecht also nach Überstrom. Dreh 
die Totzeit hoch, wie im Artikel beschrieben.

: Bearbeitet durch User
Autor: skorpionx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> die Totzeit hoch

Ja alles O.K.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens danke für die Oszillogramme, die sollten einem anderen 
Nachbauer dabei helfen, solche Probleme einzugrenzen, ist ja im Artikel 
nur als Prosa beschrieben. Man kann entweder am SD Pin diese Rampe 
abfragen oder direkt am Shunt die Spitzen. Die Rampe entsteht durch den 
Elko am Eingang der Überstromerkennung.
Unter Beobachtung der Spitzen am Shunt (ohne Last) kann man nun die 
Totzeit justieren, so das die Spitzen gerade verschwinden. Ich habe noch 
eine LED am SD Eingang, die bei Überlast anfängt, zu leuchten.

Autor: skorpionx (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es scheint dass etwas mit der Wirkung von der Totzeit nicht stimmt. Oben 
habe ich zwei Oszi Bilder vom der Spannungen  auf Gates  vom High Kanal 
(CH1) und Low Kanal (CH2).Eine Zeit 0x08 (das ist Minimum...) und das 
zweite Bild mit Totzeit 0x60. Totzeit wird nur eingeführt zwischen der 
fallende Flanke vom Low Kanal und steigende Flanke vom High Kanal. Und 
das ist gefährlich...

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Miss mal bitte die Signale am Ausgang des MC. Die entsprechende Routine 
ist das hier:
/*! \brief Returns the high and low values with deadband for a given compare value.
 *
 * This function takes as argument a desired compare value and inserts a symmetric
 * deadband. The compare values for high and low side with deadband are returned
 * through the two supplied pointers.
 * The variable \ref DEAD_TIME_HALF is used as deadband, and the resulting deadtime
 * will be DEAD_TIME_HALF clock cycles times 2.
 *
 * \param compareValue desired compare value
 * \param compareHighPtr Pointer used to return high side compare value with dead band.
 * \param compareLowPtr  Pointer used to return low side compare value with dead band.
 */
static void InsertDeadband(const uint8_t compareValue, uint8_t * compareHighPtr, uint8_t * compareLowPtr)
{
  if (compareValue <= DEAD_TIME_HALF)
  {
    *compareHighPtr = 0x00;
    *compareLowPtr = compareValue;
  }
  else if (compareValue >= (0xff - DEAD_TIME_HALF))
  {
    *compareHighPtr = 0xff - (2 * DEAD_TIME_HALF);
    *compareLowPtr = 0xff;
  }
  else
  {
    *compareHighPtr = compareValue - DEAD_TIME_HALF;
    *compareLowPtr = compareValue + DEAD_TIME_HALF;
  }
}
ISR(TIMER1_CAPT_vect)
{
 /// intro and other stuff omitted

// load registers
    {
      uint8_t compareHigh, compareLow;

      InsertDeadband(tempU, &compareHigh, &compareLow);
  OCR0A = compareHigh;
  OCR0B = compareLow;

      InsertDeadband(tempV, &compareHigh, &compareLow);
  OCR1AL = compareHigh;
  OCR1BL = compareLow;

      InsertDeadband(tempW, &compareHigh, &compareLow);
  OCR2A = compareHigh;
  OCR2B = compareLow;
    }
}
Diese Routine ist biser unauffällig gewesen und wird von Atmel auch so 
verwendet (AVR447). Interessant ist also, was du für Treiber verwendest 
und wie deine Endstufe aussieht. Da die Highside bei dir überhaupt nicht 
auf die Einstellung der Totzeit reagiert, vermute ich da einen Fehler in 
der Hardware.

: Bearbeitet durch User
Autor: skorpionx (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Totzeit funktioniert. Im Anhang zwei Oszibilder. TotZeit_0x08  ist mit 
Totzeit 0x08 und TotZeit_0x30 mit Totzeit 0x30 . Masse vom Oszi hängt am 
Verbindung zwischen Q2 und Q3 (VS vom IR2110), Kanal 1 (blau) am Gate 
vom Q2 und Kanal 2 (gelb) am Gate vom Q3. (Leider beide Kanäle haben 
gemeinsame Masse...)

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Ozillogramme!
Man sieht jetzt auch gut, warum eine kleine Totzeit den Einstellbereich 
maximiert und umgekehrt eine sehr hohe Totzeit den Bereich unnötig 
einschränkt.
Wer möchte, kann MIN_DEADTIME verkleinern und mit Totzeiten nahe der 
null experimentieren, aber das ist natürlich gefährlich und erfordert 
sehr schnelle Endstufen.

Autor: skorpionx (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe Zweifeln ob Überstromsicherung richtig arbeitet. Im Zustand 
ohne Überstrom liegen SD-Pins von IR2110 „in der Luft“. Das Bild1 zeigt 
das Ergebnis. Kanal1 ist die Spannung auf SD und Kanal2 ist die Spannung 
auf Pin 10. Es scheint als ob die  interne Kapazität von SD-Pins beim 
Einschalten vom High Transistor Q2 geladen wurde. Nach dem ich SD-Pins 
über einen Resistor 1.6 K auf Masse eingeschlossen habe,hat sich das 
Oszibild etwas geändert. Das  Ergebnis zeigt  Bild2. Trotzdem sieht man 
weiter diese Picks. Das alles habe ich aufgenommen ohne Spannung auf dem 
Shuntresistor (R8 auf Masse...). Man könnte auch weiter nach unten mit 
dem Resistor   1.6 K gehen aber die Leistungsverluste auf dem Resistor 
und auf dem Transistor  T2 müssen berücksichtigen werden.
Eine Alternative wäre eine  Schmitt-Trigger Schaltung. Transistor T2 
(n-p-n)wäre dann im Unterstrom immer in der Sättigung.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
skorpionx schrieb:
> Im Zustand
> ohne Überstrom liegen SD-Pins von IR2110 „in der Luft“.

Nein. Die SD Pins (und auch HIN und LIN) verfügen über interne 
Pulldowns, wie man dem 'Functional Block Diagram' im Datenblatt 
entnehmen kann.

Autor: Günter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Schaltbild wird ein ATmega88 verwendet
im Projekt steht aber nur eine HEX Datei 14Kb für den ATmega168 zur 
verfügung
gibt es auch noch eine 8Kb Version für den ATmega88
da die 14Kb Datei nicht in den ATmega88 past.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Günter schrieb:
> da die 14Kb Datei nicht in den ATmega88 past.

Eine HEX Datei ist kein binäres File, sondern eine Dateikonvention, mit 
der die meisten Programmer zurechtkommen.
Es wird also nicht direkt die HEX Datei, sondern das daraus 
resultierende BIN in den MC geladen. Es gibt auch Tools, die HEX in BIN 
umwandeln.
Hab gerade nochmal nachgeschaut, die höchste im HEX File verwendete 
Adresse für den Mega liegt bei 0x139c und passt damit locker in den 
Mega88.

: Bearbeitet durch User
Autor: Günter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
recht vielen Dank für den Hinweis zu der HEX Datei.
Ich bin es immer gewohnt die von ATMEL Studio erzeugte HEX in den
Prozessor zu laden.
Ich benutze dazu das Programm AvrOspII und den Programmer AVR 910.
Hat bisher immer gut fungtioniert.
Beim einladen des oben genannten Programmes wurde jedoch nach Reset
nur das Displey initialisiert und der Cursor blinkt auf der ersten
Stelle ,weiter passiert nichts mehr.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Günter schrieb:
> wurde jedoch nach Reset
> nur das Displey initialisiert und der Cursor blinkt auf der ersten
> Stelle

Da muss was schief gelaufen sein (vermutlich ein LCD Pin), denn der 
Cursor wird normalerweise gar nicht aktiviert beim Initialisieren und 
direkt danach soll ein Text und die Diagnosezahlen auf dem Display 
erscheinen. Überprüfe nochmal die Anschlüsse des LCD Pin für Pin.
Die Software läuft bei den anderen Nachbauern und es gibt auch keine 
Updates oder so.
Es kann noch sein, das eine Taste dauernd gedrückt ist, das mag der VFD 
nicht beim Starten - dann sollte aber 'Reading EEPROM' auf dem Display 
einfrieren.

: Bearbeitet durch User
Autor: Günter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir die Schaltung noch einmal genau angesehen.
Bei der Verdrahtung ist mir dann aufgefallen das ich das Display
wie gewohnt am Anschluss RW auf Masse gelegt habe ,hier aber
Softwarseitig angesteuert wird.
Nach der Verbindung zu PIN 19 funktionierte die Schaltung auf
Anhieb.
Muss jetzt noch eine Leistungsendstufe bauen und hoffe das dann
alles funktioniert.
Ich bedanke mich für die schnellen Antworten.
Gruß Günter

Autor: Hans Lang (holzwurm56)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe eine integrierte Drehstrombrücke "IRAMX16UP60B" entdeckt. 
Könnte man die für das Leistungsteil nehmen und die Eingänge mit den 
ATMega Ausgängen über Optokoppler zur galv. Trennung direkt ansteuern? 
Die Bausteine haben einen Shunt und eine Temperaturüberwachung 
eingebaut.

MfG

Hans

Autor: Hans Lang (holzwurm56)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
noch eine Frage. Wenn man die Ausgabe für die Parameter über I2C 
übertragen würde, wären doch noch ein paar Pins frei. Könnte man da noch 
die Temperatur und den Strom überwachen und auf dem Display ausgeben? 
Hätte der MC genug Rechenleistung?
Die Frage soll nicht heißen das ich auch nur eine Programmzeile 
schreiben könnte, es ich nur eine Frage nach den Möglichkeiten.

MfG

Hans

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans L. schrieb:
> Könnte man da noch
> die Temperatur und den Strom überwachen und auf dem Display ausgeben?

Das wird doch im Artikel erwähnt. Wenn du einen Mega im QFP Gehäuse 
wählen würdest, hattest du noch ADC Kanal 6 und 7, die du mit sowas 
belegen könntest, ohne irgendwas am LCD rumzufummeln. Wer sich die Mühe 
macht, und eine andere Displayschnittstelle wählt, muss sich aber über 
das vom VFD geforderte Timing im Klaren sein.

Hans L. schrieb:
> Hätte der MC genug Rechenleistung?

Mit Sicherheit. Das ADC Messkonstrukt erlaubt auch eine simple 
Erweiterung um mehr Messkanäle.

Hans L. schrieb:
> ich habe eine integrierte Drehstrombrücke "IRAMX16UP60B" entdeckt.
> Könnte man die für das Leistungsteil nehmen und die Eingänge mit den
> ATMega Ausgängen über Optokoppler zur galv. Trennung direkt ansteuern?

Guckst du Datenblatt. Der MC selber liefert 0-5V Pegel, und die 
Optokoppler am Ausgang nach Wunsch. Wenn dein Baustein das schluckt und 
auch positive Logik versteht, kann das schon klappen. Wenn du da mit 
Netzstrom hantierst, setzt du dich allerlei Gefahren aus, frag jemanden, 
der sich auskennt.

Autor: Hans Lang (holzwurm56)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin leider im SMD-Löten nicht so bewandert. Könnte man als Basis 
einen Arduino Nano nehmen und als eine Art DIL-40 auf die Platine 
stecken?
Welche Möglichkeit gibt es ein Analogsignal isoliert zu übertragen?
MfG

Hans

: Bearbeitet durch User
Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans L. schrieb:
> Könnte man als Basis
> einen Arduino Nano nehmen und als eine Art DIL-40 auf die Platine
> stecken?

Scheint so. Den musst du aber über ISP programmieren, denn der Arduino 
Bootloader ist hier im Weg.  Ist übrigens nur 'DIL-30'.

Hans L. schrieb:
> Welche Möglichkeit gibt es ein Analogsignal isoliert zu übertragen?

Jede Menge, es ist aber entscheidend, was du da messen willst. Zur 
Strommessung gibt es bereits isolierte Sensoren, wie z.B. die ACS Serie 
von Allegro.
http://www.allegromicro.com/en/Products/Current-Se...

Autor: Hans Lang (holzwurm56)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,
danke für deine geduldigen Antworten. Ich habe einen ISP-Programmer das 
wäre kein Problem, aber warum ist der Bootloader im Weg. Es gibt einen 
X-Loader mit dem könnte man über den Bootloader Hexfiles laden.

MfG

Hans

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans L. schrieb:
> aber warum ist der Bootloader im Weg

Genau weiss ich das auch nicht, die VFD Firmware geht aber davon aus, 
das sie den gesamten MC für sich hat. Ich arbeite nie mit Arduino (bis 
auf die Hardware) und kann deshalb nur sagen, das der BL auf jeden Fall 
Speicher benötigt. Wenn er konfliktfrei mit der VFD Firmware läuft, umso 
besser.

Beachte aber auch, das TXD und RXD im Projekt rücksichtslos anders 
belegt sind. Glücklicherweise (nicht ganz ohne Absicht) sind da 
allerdings nur Taster dran.
Spass mit der seriellen Schnittstelle ist aber dann garantiert, wenn die 
VFD Firmware die seriellen Sächelchen als Tastendruck interpretiert :-P

Autor: Hans Lang (holzwurm56)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ,
ich habe gesehen das alle meine Arduinonanos mit ATMega 328 bestückt 
sind.
Lt. Datenblatt sind die pinkompatibel mit den 168ern. Sind die auch 
softwarekompatibel? Ohne Änderung der Software zu betreiben?

MfG

Hans

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hans L. schrieb:
> Ohne Änderung der Software zu betreiben?

Manchmal gehts, manchmal nicht. Eigentlich sollte zwischen 88 und 328 
nicht allzuviel anders sein - aber der Teufel steckt im Detail.

Ich hänge dir mal ein HEX an, das ich gerade für den 328 kompiliert 
habe.

Autor: Hans Lang (holzwurm56)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,
danke für die Hex-Datei, aber ich werde noch etwas Zeit brauchen um die 
Platine zu fräsen. Wenn die Platine funktioniert werde ich mal das 
fliegend mit dem IRAMX16 verdrahten und sehen ob bzw. wie das 
funktioniert.
Zur Info mal das Layout der des Controlteils.

MfG

Hans

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans L. schrieb:
> Zur Info mal das Layout

Ich hoffe aber, das du nicht wirklich die langsamen 4N33 zu benutzen. 
Denke daran, das die PWM Frequenz etwa bei 15kHz liegt, da kommst du mit 
den Darlington-OK (was sie nochmal langsamer macht) nicht weit.
6N137, HPCL2630 sind z.B. geeignete Typen.

Autor: Hans Lang (holzwurm56)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,
ich habe das jetzt geändert und benutze die HCPL3180 als galvanische 
Trennung. Ich würde gerne als Leistungsteil die integrierte Brücke 
IRAMX20up60a nehmen. 
http://www.irf.com/product-info/datasheets/data/ir...
Die hat aber wohl eine negative Logic ( open Emmitter pins ).
Könnte ich die trotzdem nehmen? Kann ich die Ansteuerung von den 
HCPL3180 invertieren? Würde das funktionieren?

MfG

Hans

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans L. schrieb:
> Kann ich die Ansteuerung von den
> HCPL3180 invertieren? Würde das funktionieren?

Das sollte funktionieren, wenn du die Polarität der OC Ausgänge im 
Programm umdrehst. Allerdings musst du peinlich darauf achten, das 
während der Initialisierungsphase niemals die falsche Polarität an der 
Brücke ankommt, denn dann machts Bumm.
Du musst also mit Pullups dafür sorgen, das die Ausgänge inaktiv sind, 
während der MC startet.
Ich halte von diesen All-In-One Brückentreibern nicht so viel, weil der 
Schaden bei einer Fehlfunktion gleich den kompletten Chip zerstört.

Autor: Hans Lang (holzwurm56)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,
ich versuche jetzt das Leistungsteil diskret aufzubauen. Nur zur 
Sicherheit, wenn der Shutdownanschluß auf Spannung liegt ist der IR2110 
abgeschaltet, auf Ground ist er aktiv? In ähnlichen Schaltungen mit dem 
IRFP260N sind danach noch 6 Dioden MURS360, brauchst Du die nicht?

MfG

Hans

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans L. schrieb:
> Nur zur
> Sicherheit, wenn der Shutdownanschluß auf Spannung liegt ist der IR2110
> abgeschaltet, auf Ground ist er aktiv?

So isses.

Hans L. schrieb:
> In ähnlichen Schaltungen mit dem
> IRFP260N sind danach noch 6 Dioden MURS360, brauchst Du die nicht?

Wenn du damit antiparallel zu den MOSFets geschaltete Dioden meinst - 
nö, brauche ich hier nicht, denn die von mir verwendeten IGBT vom Typ 
HGTG20N60B3D haben eine (Zitat aus dem Datenblatt) ' Anti-Parallel 
Hyperfast Diode', die extra dafür ist.

Gekauft habe ich die Dinger hier:
http://www.pollin.de/shop/dt/MzkwOTY4OTk-/Baueleme...
40A und 600V genügen auch verwöhnten Ansprüchen :-)

Auch der im Schaltplan erwähnte G20N60 ist ein sehr robuster Typ für 
Motoransteuerung und brauchte mit meinen Motoren keine extra Diode.

Je nach Geschwindigkeit und Stromtragefähigkeit der internen Bodydioden 
des MOSFet musst du externe Dioden hinzufügen - oder eben nicht.

: Bearbeitet durch User
Autor: Hans Lang (holzwurm56)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,
kann das einschalten von den Treibern so funktionieren?

Vielen Dank für deine Antwort

Hans

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans L. schrieb:
> kann das einschalten von den Treibern so funktionieren?

Wenn du dem Transistor noch einen Basisvorwiderstand spendierst, sollte 
das klappen. Ein leuchtender HCPL schaltet dann die Treiber ein. Die 
Überstromsicherung hast du damit allerdings erstmal lahmgelegt.
Per Software ist das einfacher. Wenn du die Routine 
'DisablePWMOutputs()' für deine Zwecke benutzt, ist das praktisch das 
gleiche und spart Hardware.

: Bearbeitet durch User
Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe fU-Gemeinde,

ich habe mir mal die Mühe gemacht und ebenfalls das Steuerteil des fU 
aufgebaut.
Bei mir tritt aber ein fehler im Programm auf.
Der Prozessor arbeitet wie beschrieben, zuerst mit der einschaltmeldung, 
dann die eeprom-Abfrage usw.
Leider fängt das immer wieder von vorn an, das ist eine Schleife.
Hat von euch auch schon mal jemand so einen fehler gehabt?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> Der Prozessor arbeitet wie beschrieben

Welcher Prozessor? Die Schaltung arbeitet mit Mega88, 168 und 328, aber 
sollte jeweils für den passenden Ziel-MC kompiliert werden.
Für mich klingt das so, als würdest du z.B. ein Mega88 Kompilat auf dem 
Mega328 ausprobieren.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, ich verwende den ATMEGA168 und habe das kompilierte HEX-File incl. 
EEPROM-Daten aufgespielt.
Also die Daten die im ZIP-Ordner hinterlegt sind.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Dann nimm mal das angehängte HEX File. Das ist explizit für einen 
Mega168 (ohne P und ohne A) kompiliert.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube da muß ich mir erst einen besorgen.
Habe nur ein paar von den ATMEGA168A-PU vorrätig.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> Habe nur ein paar von den ATMEGA168A-PU vorrätig.

Muss du nur sagen. Anbei ein Kompilat für den Mega168A. Sollte sich aber 
vom Mega168 nicht unterscheiden.
Du solltest auch unbedingt mal die Fuses des MC überprüfen. Ein 
aktivierter Watchdog kann auch zu solchen Resultaten führen.

: Bearbeitet durch User
Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das mit den Fuses muß ich noch einmal überprüfen. Ich habe mich da 
an die Werte  gehalten die hier schon im Forum angegeben wurden.

Zitat:
Der o.a. Fuse Calculator sagt:
Low: 0xD6 , High: 0xD1, Extended: 0xFC

Habe leider mit den ATMEGA Typen wenig Erfahrung. Hatte bisher alles mit 
8051-Derivaten gemacht.
Naja, mal sehen...
Werde auf jeden Fall heute Abend mal die neue HEX-Datei aufspielen und 
vieeeeleicht habe ich ja Glück...
Würde das Ding gern etwas weiterentwickeln, wenn ich Zeit habe immer 
Stück für Stück..

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> Würde das Ding gern etwas weiterentwickeln, wenn ich Zeit habe immer
> Stück für Stück

Nur zu. Am besten bekommst du aber erstmal die jetzige Version zum 
Laufen, das wäre hilfreich.
Die richtige Einstellung ist
Ext. FullSwing Crystal, langes Startup, CKDIV disabled, EESAVE enabled, 
SPIEN enabled, BootResetVektor disabled

Und am besten programmiert man auch einmal das *.eep file, damit der 
EEPROM vorbesetzt ist.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, den ersten Erfolg hatte ich nun.
Diese "Schleifenprozedur" sind weg. Habe nur Deine Datei aufgepielt und 
es funktionierte. Es scheint doch kleine Unterschiede zu geben bei den 
Atmegas.
Danke für die Hilfe. Ich werde dran bleiben.

Autor: Carl Drexler (jcw2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hans Lang:

Dein Layout solltest du noch mal etwas überarbeiten. Der Platz zwischen 
den OK-Beinchen reicht knapp als Luftstrecke zwischen 230VAC<->Bediener. 
Aber nur wenn er auch frei bleibt. Kupfer hat dort nichts zu suchen. Und 
an anderen Stellen besteht zwischen den netzführenden Leiterbahnen und 
denen aus dem Niderspannungsteil ein Abstand von nur ca 1mm. Das kann 
mehr als weh tun!
Mit dem Leistungsvermögen des Stromnetzes ist nicht zu spaßen.

Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bräuchte eine Empfehlung zum Optokoppler. Ich wollte den eigentlich 
weglassen, der Gleichspannungsteil im Zwischenkreis hat aber Potential 
zum AC-Netz, der Phasenprüfer leuchtet im Betrieb bei + und -. Also doch 
besser trennen. Ich möchte das Ganze mit 12V statt 18V aufbauen. Als 
Mosfet habe ich irf840 bestellt. Geht z.B. PC817, 4n35?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Ich wollte den eigentlich
> weglassen, der Gleichspannungsteil im Zwischenkreis hat aber Potential
> zum AC-Netz, der Phasenprüfer leuchtet im Betrieb bei + und -.

Niemals(!) darfst du die Trennung zwischen GND und GNDI aufheben, das 
steht aber auch fett gedruckt im Artikel, den du dir durchlesen 
solltest. Es besteht dann Gefahr für Leib und Leben, denn selbst der 
Metallrahmen des LCD führt dann Netzspannung!

grundschüler schrieb:
> Geht z.B. PC817, 4n35?

Notfalls kannst du den 4N35 nehmen, der PC817 ist zu langsam. Die PWM 
Frequenz liegt bei etwa 31kHz und der 4N35 mit seinen 100kHz (10µs) ist 
mit Ach und Krach ausreichend, man muss aber auf weiterhin positive 
Logik achten (siehe unten). Nachteile sind die grosse Verzögerung und 
das vermutlich notwendige Hochdrehen der Totzeit, die den nutzbaren 
Bereich der Spannungsregelung einschränkt.
Der HCPL3180 ist ideal für 12V Betrieb und könnte die Lowside sogar 
direkt antreiben, da er 2A Ausgangsstrom liefern kann und mit 0,2µs 
Delay auch richtig schnell ist. Ausserdem besitzt er positive Logik (LED 
an -> Ausgang high), was nicht zu verachten ist.
Andere Empfehlungen stehen im Artikel, der HCPL2630 und der 6N137 sind 
ausreichend schnell.

: Bearbeitet durch User
Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Es besteht dann Gefahr für Leib und Leben, denn selbst der
> Metallrahmen des LCD führt dann Netzspannung!

Das ist schon klar. Man sollte die Finger davon lassen, wenn man sich 
mit den Gefahren von Strom nicht auskennt.

Bestellt habe ich jetzt 6N136, die sind schnell und müssten 12V 
abkönnen.

Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Bauteile sind jetzt angekommen. Es geht also weiter. Bei den Mosfets 
habe ich mich für irf840 entschieden. Ich möchte den Aufbau leicht 
abwandeln und orientiere mich dabei an 
Ebay-Artikel Nr. 130894916453
Leider gibt es das EG8030-datasheet nur in chinesisch. Ohne datasheet 
nützt das Teil wohl nicht allzuviel.

Da es mir mehr um das Verständnis als um einen fertigen FU geht, möchte 
ich das PWM-Signal ohnehin selbst generieren.

Frage zum shunt: Meine ir2110-Versorgungsspannung wird 12V. Ich möchte 
den shutdown einstellbar machen. R9/R8 durch Potis ersetzen?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> R9/R8 durch Potis ersetzen?

Du könntest über den Shunt ein Poti legen und am Schleifer die Basis von 
T1 anschliessen. Der Shunt sollte dann so bemessen sein, das in der 
empfindlichsten Einstellung etwa 0,7V an ihm abfallen. Mit dem Poti kann 
man dann die Einstellung unempfindlicher machen. Das Ändern von R8 oder 
R9 bringt nichts.

Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
super Programm. Ganz kleiner Ergänzungsvorschlag für die menues:
// black button - cycle through parameters
    case 1 : parameter++; if (parameter > NUMPARAMS) parameter = 0;
  
if(parameter){  
    lcd_goto(1,11);
    lcd_putc('#');
    lcd_goto(1,5);
    lcd_putc(' ');
  }else{
    lcd_goto(1,11);
    lcd_putc(' ');
    lcd_goto(1,5);
    lcd_putc('#');
  }
    _delay_ms(200);  
      break;

Ich habe in der Hauptschleife noch einen Sekundentimer integriert, der 
die tatsächliche Frequenz misst:
  for(;;)
  {//+++++++++++++  while  +++++++++++++++

  if(t1>14000){
  //  led1_tog;
  lcd_goto(4,10);
  lcd_int4(sec,0);
  sec++;
  t1=0;
//++++++ sec ++++++

  lcd_goto(4,16);
  lcd_int4((zlx),0);
  zlx=0;

}//---------- sec  -----------

 execCommand();
}//+++++++++++++  while  +++++++++++++++
}

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> super Programm. Ganz kleiner Ergänzungsvorschlag für die menues:

Wäre schon, wenn du schreibst, wofür das sein soll. Falls du wissen 
willst, welches der aktive Parameter ist, musst du dir nur den Cursor 
anschauen, der steht schon richtig.

grundschüler schrieb:
> der
> die tatsächliche Frequenz misst

Die tatsächliche Frequenz könntest du aber nur mit einer externen 
Referenz messen. So zählst du lediglich mit dem internen Takt.

: Bearbeitet durch User
Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> nur den Cursor

Das war das Problem. Cursor wird nicht angezeigt.

Externe Referenz ist die Küchenuhr, mit der der Sekundentakt abgeglichen 
ist.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Das war das Problem. Cursor wird nicht angezeigt.

Du scheinst ein Display zu haben, bei dem der Unterstrich fehlt.

Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich benutze i2c-lcds ohne Cursor. Nach der Umstellung fehlte dann 
zwangsläufig der Cursor. Dadurch das Problem mit der Anzeige.

Beim Zeittakt fällt auf, dass sich Taktfrequenz nach Reduzierung der 
Amplitude unter 100% um ca. 5% verlangsamt. Wie kann das sein? Setzt der 
Takt bei Berechnung der Amplitude aus?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Wie kann das sein?

Nicht hier. Da du aber eine umgebaute Version benutzt (ich habe da was 
von I2C gelesen), ist es möglich das deine modifizierte Version Probleme 
hat, den Timer1_IRQ ohne Verzögerung zu bedienen. Alle anderen 
Interruptroutinen müssen sich dieser unterordnen und sich von dieser 
unterbrechen lassen.

: Bearbeitet durch User
Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Timer1_IRQ Verzögerung

Eigentlich nicht. lcd läuft nur in der Hauptschleife ohne interrupt.

Ich versuche den Programmaufbau zu verstehen. Die Sinustabelle hat 192 
Wertepaare. Das muss bei hohen Frequenzen wegen des mcu-Taktes reduziert 
werden. Dies geschieht über

sineTableIncrement = Inco;
AdjustSineTableIndex(sineTableIncrement);
...

static void AdjustSineTableIndex(const uint16_t increment)
{
 sineTableIndex += increment ;
...

Inco wird über die Taster vorgegeben und hat einen Wert zwischen 0/0Hz 
und 255/max Hz. Ich hätte erwartet, dass die Tabelle Wert für Wert 
ausgelesen wird bzw dass die Schrittweite irgendwo zwischen 1 und 4 
liegt.

Wieso Inco zwischen 0 und 255? Welche Werte der Tabelle werden gelesen 
bzw. ausgelassen?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Wieso Inco zwischen 0 und 255? Welche Werte der Tabelle werden gelesen
> bzw. ausgelassen?

Es wird immer inco auf den Zeiger in die Tabelle addiert, der Zeiger 
aber auch immer wieder auf die Länge der Sinustabelle justiert. Wenn 
also der Zeiger erst auf 0 stand und 255 dazu addiert wird, zeigt er 
nach AdjustSineTableIndex() auf 255-192 = 63.

grundschüler schrieb:
> lcd läuft nur in der Hauptschleife ohne interrupt.

Dann schau dir deine I2C Library nochmal an. Wenn die die I2C Hardware 
des Mega benutzt, dann kann es durchaus sein, das da der TWI Interrupt 
benutzt wird.

: Bearbeitet durch User
Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich verstehe
Inco=193 - bei mir ca. 59,5Hz. - gibt Schrittweite 1, d.h. alle 
Tabellenwerte werden in einem Frequenzcyclus abgelaufen?
Inco=194  - bei mir ca. 6,20Hz. - ergibt Schrittweite 2 nur noch jeder 
2. Tabellenwert wird abgelaufen?

Das kann irgendwie nicht sein, also verstehe ich es falsch, denn dein 
Programm funktioniert ja.


Ich habe natürlich versucht, einen Sinusgenerator selbst zu 
programmieren. Mit einer 48-Werte Tabelle komm ich bis ca.70Hz bei 
Schrittweite 1/8Mhz. Taktfrequenz. Darüber reicht die Zeit während eines 
Frequenzcyclus nicht, um alle Tabellenwerte abzulaufen. Dabei habe ich 
wesentlich weniger Rechenaufwand in der ISR wie du. Kannst du mir 
erklären, wie bei deinem Code mehr als 48Werte bei 70Hz abgearbeitet 
werden können???

Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> 6,20Hz
muss heißen 60,2Hz

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Ich habe natürlich versucht, einen Sinusgenerator selbst zu
> programmieren.

Schau dir dafür mal bitte die AVR314 Application Note an, wo das gleiche 
Prinzip benutzt wird, um aus einer Sinustabelle verschiedene Tonhöhen 
(DTMF Töne) durch unterschiedliche Schrittweiten zu erzeugen. Als 
Besonderheit werden da auch gleich zwei Frequenzen gleichzeitig erzeugt 
und dann addiert.
Das PDF beschreibt detailliert, wie das berechnet wird.
http://www.atmel.com/images/doc1982.pdf

Ergänzend und als Basis für das FU Projekt ist AVR447 empfehlenswert, 
wie auch im Projektartikel erwähnt.
http://www.atmel.com/Images/doc8010.pdf

Auch ist der Code des FU ja nicht sonderlich kompliziert. Wenn du dir 
die Timer1 ISR Schritt für Schritt anschaust, siehst du ja auch, wie es 
läuft. Setze ein paar Beispiele für Inco ein und plotte dir die 
resultierenden PWM Werte auf einen Zettel.

Da die Timer übrigens im 'Phase Correct Mode' betrieben werden, liegt 
die Refreshrate bei 31,25kHz. (16Mhz/512)

: Bearbeitet durch User
Autor: grundschüler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Setze ein paar Beispiele für Inco ein und plotte dir die
> resultierenden PWM Werte auf einen Zettel.

ok, habe ich mittels vb-programm probiert:

   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button3.Click
        Dim i, step_width, zg, st_length As Integer
        step_width = TextBox2.Text
        st_length = TextBox1.Text
        ListBox2.Items.Clear()

        For i = 0 To st_length - 1
            zg = zg + step_width
            If zg > st_length Then zg = zg - st_length
            If zg > st_length Then zg = zg - st_length
            ListBox2.Items.Add(ListBox1.Items.Item(zg))

        Next
        'freq = DIVISIONEER/(SINE_TABLE_LENGTH*100/Inco);
        Label3.Text = 59000 / (st_length * 100 / step_width) / 10


Bei Stepwidth 170=>52,2Hz ergibt sich bei mir folgende Reihe:
"0","0","0","0",113,236,241,127,"0","0","0","0","0",155,250,221,82,"0"," 
0","0","0",33,192,255,192,33,"0","0","0","0",82,221,250,155,"0","0","0", 
"0","0",128,241,236,113,"0","0","0","0","0",168,253,212,66,"0","0","0"," 
0",50,202,254,180,17,"0","0","0","0",98,229,246,142,"0","0",

Das wäre dann eine Sinustabelle mit gerademal acht Werten? Habe ich da 
irgendwo einen Denkfehler?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Habe ich da
> irgendwo einen Denkfehler?

Zumindest ist unklar, was du dir da für Werte ausplottest. Sollen das 
nun 3 Phasen sein? Kann ja eigentlich nicht sein, da es nie vorkommt, 
das alle 3 Phasen 0 sind. Soll es nur eine Phase sein? Kann auch nicht 
sein, da eine Phase nicht 5 mal hintereinander null ist.  Welche F_CPU 
setzt du voraus und warum teiltst du freq nochmal durch 10?

Wie o.a. wird der Algorithmus in AVR314 ab Seite 3 erklärt. Würde man 
inco auf 1 setzen, wird die Sinustabelle mit der langsamsten 
Geschwindigkeit durchgeklappert, bei inco = 2 wird jeder 2. Wert benutzt 
und die Ausgangsfrequenz verdoppelt usw.

: Bearbeitet durch User
Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.

Meine Sinustable ist praktisch identisch mit deiner. Die Werte für eine 
halbe (positive) Sinusphase, dann Nullen für die negative Phase. Das 
ganze 2x hintereinander, damit alle 6 Halbphasen mittels Offset Werte 
abgreifen können. Statt Offset sind bei dir jeweis drei einzelne 
Phasenwerte angegeben. Macht wohl keinen Unterschied.

Errechnet wird bei mir jeweil eine halbe positive Phase.

Matthias S. schrieb:
> durchgeklappert

Das habe ich durchgelesen und - denke ich - verstanden. Das ist ja 
soweit auch einfach, wenn die Schrittweite relativ klein ist. Sieht man 
in meinem vb-programm auch ganz gut, weswegen ich glaube, dass es 
richtig rechnet. Mein Problem sind die Schrittweiten zwischen ca.70 und 
ca.130. Da kommt dann nichts sinusartiges mehr raus.

für Schrittweite 100/30Hz:
0,66,0,127,0,180,0,221,0,246,0,255,0,246,0,221,0,180,0,128,0,66,0,0,33

Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Welche F_CPU
> setzt du voraus und warum teiltst du freq nochmal durch 10?

bei mir 8MHz deswegen Divisioneer bei mir 59000 (praktisch dein Wert/2).

Wenn ich es richtig verstanden habe wird bei dir - printdec(freq) - die 
Frequenz als *10-Wert angegeben. Deswegen im vb-Programm /10.

Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss noch mal nachfragen. Deine Tabelle hat 192 (*3) Werte. Davon 96 
positive Sinus-Werte, dann 96 0-Werte für die negative Phase. 
Inco/Schrittweite von 0 bis 255. Wenn die Schrittweite bei 192/2=96 ist, 
werden zwangsläufig abwechselnd Werte und Nullen gegriffen. Die 
Schrittweite 1 entspricht 192+1=197, da die Tabelle praktisch wieder von 
vorne anfängt.

Danach hätte man einen (linearen?) Anstieg der Frequenz nur zwischen 1 
und 96, wobei ab 70 keine brauchbaren Werte mehr entstehen.

Dein FU funktioniert, also ist irgendwas an meiner Theorie falsch. 
Was???




> Da die Timer übrigens im 'Phase Correct Mode' betrieben werden, liegt
> die Refreshrate bei 31,25kHz. (16Mhz/512)

Alternativer Ansatz wäre gewesen die Timer im Sägezahnmodus mit 
doppelter Frequenz zu betreiben (/256). Man hätte die Frequenz durch 
Verkleinerung der Auflösung vergrößern können, indem man beim Überlauf 
die Zähler TCNTx z.B. auf 128 setzt, wodurch sich die Frequenz 
verdoppelt aber immer noch alle Tabellenwerte abgegriffen werden. ???



Hast du mal versucht, deinen Code auf einen ARM umzusetzen?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grundschüler schrieb:
> Hast du mal versucht, deinen Code auf einen ARM umzusetzen?

Nicht den VFD, aber AVR447 (Brushless Motor with Sinus Modulation). 
Allerdings benutze ich sowohl auf dem XMega als auch auf dem STM32F100 
(VL Discovery) andere Hardware, also auf dem XMega (192A3/A1) die AWEX 
Peripherie und auf dem STM32F100 einen Advanced Timer mit 3 PWM 
Registern in einem Timer.

Das Prinzip bleibt aber genau das gleiche. Lies dir doch einfach mal 
AVR314 durch, wie jetzt schon öfter vorgeschlagen. Da steht das Prinzip 
mit Formeln drin.

Autor: lota (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich weiß nicht ob hier noch jemand rein sieht, aber ich stell da mal ne 
Frage. Hat mal jemand das Signal am Atmega aufgezeichnet? Bei mir kommt 
kein Sinus. Oder hab ich einen Denkfehler. Versetzte Phasen sind da. Die 
Fet´s werden auch angesteuert. Aber wenn es Sinus sein soll, passt bei 
mir was nicht.

Gruß
Lota

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lota schrieb:
> Aber wenn es Sinus sein soll, passt bei
> mir was nicht.

Dein Oszi scheint eine viel zu geringe Abtastrate zu haben. Es wird eine 
PWM erzeugt, die in ihrer Breite sinusmoduliert ist. Dein Oszi sieht 
zwar die PWM, kann aber ihre Pulsbreite nicht darstellen.
Wenn du das Signal durch einen Tiefpass schickst, der die 31 kHz der PWM 
rausfiltert, wird auch dein Oszi die 'Popokurven' sehen.

: Bearbeitet durch User
Autor: lota (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mathias,
das kann ich einstellen. Geht bis 250Mhz. das solte reichen. Teste ich.
Danke

Gruß
Lota

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Es gibt ein kleines Update, mit dem man jetzt beim Kompilieren auch 3 
echte Sinuskurven (jeweils um 120° versetzt) erzeugen kann, statt wie 
bisher nur die typischen 'Popokurven' für Motoren.
Wenn 'PURE_SINE_DRIVE' definiert ist (im Quellcode in main.c), wird eine 
andere Tabelle aktiv, mit der das erreicht wird - ausserdem wird in der 
Amplitudenberechnung anders gerechnet. Zur Unterscheidung meldet das 
Display beim Starten nun 'VFD Motor Drive' bei Benutzung der alten 
Tabelle und 'VFD Sine Drive' bei der neuen. Solange ich die Datei nicht 
in den Artikel hochladen kann (geht irgendwie nicht), hänge ich den 
neuen Projektordner mal hier an.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
So, hat sich geklärt, die aktuelle Version ist nun auch beim Artikel zu 
finden. Nebenbei habe ich euch auch gleich mal 6 HEX files mit ins 
Archiv gepackt, jeweils für Mega88, 168 und 328 kompiliert und eben 
Sinus- oder Motorkurven.

Autor: Hanspeter S. (kendo1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mathias,

Danke füe diesen Top Beitrag!
gibt es eine Stückliste?

Gruss HP

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hanspeter S. schrieb:
> gibt es eine Stückliste?

Nö, sollte aber mit Eagle zu machen sein. Soweit ich weiss, hat bisher 
niemand genau diese Schaltung nachgebaut, sondern immer irgendwas 
modifiziert oder umgebaut.

: Bearbeitet durch User

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.

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