Guten Morgen zusammen, ich habe ein kleines ... na gut ein großes Problem. Ich habe zwei pulsweitensignale, eines ist fest vorgegeben (f= 2kHz...10kHz). ich lasse einen großen Zähler mitlaufen auf 100ms basis (128MHz Prozessor(MPC5567), also von 1 - 12.800.000 tics) und einen kleinen zähler welcher mir meine zweite pwm generiert. die pulsweite ist mittelpunktsymetrisch, hat also den mittelpunkt des high impulses in der mitte des zählers. die erste pwm wird über den großen zähler gemessen, bei der pos & neg flanke bekomme ich die entsprechenden werte in ein register übergeben und berechne mir hieraus den mittelwert der eingehenden PWM. Jetzt muss ich die beiden synchronisieren. mache mir seit längerem gedanken darüber und habe schon einiges ausprobiert, muss ja so gehen das ich mir bei einem call die aktuellen zählerwerte auslese und daraus die differenz der mittelpunkte zum zählerwert berechne. aber ich schaffe es nicht die beiden zähler in relation zueinander zu setzen... ich weiß ich bin kurz vor der lösung aber ich denke ich seh den wald vor lauter bäumen nicht mehr...:( habe id esowfware vor einiger zeit mit workaround berechnungen regler etc vor längerem implementiert, damals war aber ein zähler die basis, nämlich der kleine. jetzt ist es aber nötig geworden den großen einzubauen. ich hoffe die kurze beschreibung reicht euch... viele grüße, micha
Micha S. schrieb: > hat also den mittelpunkt des high impulses in der > mitte des zählers. des kleinen Zählers oder wie?
1 | y |
2 | ^ >|< Mittelpunkt beider PWM-Signale soll identisch sein? |
3 | | ___|___ _____ |
4 | | | | | 2-10kHz PWM | ... |
5 | |__| | |_____________| |
6 | | _|_ _ |
7 | | | | | deine PWM | ... |
8 | |____| |__________________| |
9 | +------------------------------------> t |
Meinst du das so wie ichs mal versucht habe mit ASCII zu zeichnen? Bedenke, wenn die erste PWM-Frequenz sehr schnell variieren kann, dass du dir ziemliche Schweinereien einhandelst, weil du nur die Perioden-/Pausen-Zeit-Messungen der jeweils vergangenen Periode benutzen kannst. Besteht die Möglichkeit, die erste PWM zu vermessen und dann beide Signale mit deinem Prozessor komplett neu zu erzeugen? mfg mf
> > Besteht die Möglichkeit, die erste PWM zu vermessen und dann _beide_ > Signale mit deinem Prozessor komplett neu zu erzeugen? Guten Morgen, erst einmal danke für deine antwort!!! nein diese möglichkeit besteht leider nicht, das erste pwm signal ist von dem prüfling und ist (leider) nicht beeinflussbar. > Meinst du das so wie ichs mal versucht habe mit ASCII zu zeichnen? > Bedenke, wenn die erste PWM-Frequenz sehr schnell variieren kann, dass > du dir ziemliche Schweinereien einhandelst, weil du nur die genau so ist es gedacht (es handelt sich um 2 elektromotoren, gesteuert wird das ganze über die stromzeiger generiert aus der pwm, deshalb müssen sie erst einmal synchron sein um danach den strom einzustellen, also die phasenverschiebung) > Perioden-/Pausen-Zeit-Messungen der jeweils vergangenen Periode benutzen > kannst. das weiß ich, aber diesen tod muss ich wohl sterben. früher oder später wird noch ein softwareschalter eingebaut der die frequenzen in sprüngen umschalten kann. soweit ist alles fertig (und hatte ja auch schon wunderbar funktioniert) mir geht es nur um die relation von Z1 zu Z2. Grundgedanke hierbei war die zähler in ein verhältnis zueinander zu setzen, so etwa wie im anhang, wobeiu X die zählerdifferenz sein soll und C1 der mittelpunkt der eingehenden PWM, sowei C2 der der generierten PWM, welchen ich in puls/pause verhältnis sowie v.a. in der frequenz beeinflussen kann.
1 | | . Zähler eins |
2 | C1 | . | |
3 | \/ .| | |
4 | . | | |
5 | . | | |
6 | . | | . |
7 | . C2 | |. |
8 | . . \/ .| . . Zähler zwei |
9 | . | . | . || . | . | |
10 | . |. |. || |. | |
11 | | |
12 | |X| | |
13 | |-------------> | |
14 | |----------------> | |
15 | |->| |
16 | |---->| |
17 | | |
18 | |->Function call |
ich glaube ich hab die lösung, ich pojeziere den mittelpunkt des zweiten zählers auf den ersten (ausgehend von den zählständen beim funkt. aufruf) somit müsste ich sie vergleichen können. melde mich dann wieder wenn es funktioiert, kann aber noch dauern ;)
Nun, du weißt, wo die Mitte des primären Impulses ist. Mit der Periodenzeit kannst du Vorhersagen, wo die Mitte des folgenden primären Impulses sein wird. Die primäre Pulszeit wurde dabei auch bereits gemessen. Die primäre Pulszeit halbiere ich und multipliziere sie mit dem Tastgrad meiner sekundären PWM(0..1). Die Zeit, die Ich da herausbekomme muss ich nun einmal von der vorhergesagten Mittenzeit Abziehen(=Einschaltzeitpunkt der Sekundär-PWM) und einmal addieren(=Abschaltzeitpunkt der Sekundär-PWM). mfg mf
genau, das ist das prinzip. bei mir ist der unterschied das ich nur die mittelpunkte benötige da ich bereits eine funktion habe welche mir von der übergebenen periodendauer meinen impuls mittensymetrisch realisiert. mfg e-tec
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.