Hallo, ich möchte meim LPC17xx einen PWM-getriggerte A/D-Wandlung. Als A/D-Start soll das Erreichen des Top-Wertes einer center-aligned-PWM dienen. Beim A/D-Wanlder sehe ich folgenden Eintrag: Register: AD0CR (AD-Control-Reg.) _____________ 100 Start conversion when the edge selected by bit 27 occurs on MAT0.1. Note that this does not require that the MAT0.1 function appear on a device pin. _____________ Der MAT0 bezieht sich meiner Interpretation auf den Timer0/1/2/3-Bereich, also nicht auf den PWM- oder Motor-Control-PWM. Da ich 4 PWM-Ausgänge habe, geht meines Erachtens das eh nicht mit der Motor-Control-PWM, die diese auf 3 Phasen begrenzt ist. Deshalb hätte ich für meine Anwendung die PWM-Unit als Signalquelle benutzt. Nur wie damit die AD-Messung triggern? Gruß Wolf
Ein Blick ins Datenblatt zum Register AD0CR gibt genauen Aufschluß, welche Signale zum triggern des AD-Wandlers geeignet sind:
1 | 26:24 START When the BURST bit is 0, these bits control whether and when an A/D conversion is |
2 | started: |
3 | 000 No start (this value should be used when clearing PDN to 0). |
4 | 001 Start conversion now. |
5 | 010 Start conversion when the edge selected by bit 27 occurs on the P2.10 / EINT0 / NMI pin. |
6 | 011 Start conversion when the edge selected by bit 27 occurs on the P1.27 / CLKOUT / |
7 | USB_OVRCRn / CAP0.1 pin. |
8 | 100 Start conversion when the edge selected by bit 27 occurs on MAT0.1. Note that this does |
9 | not require that the MAT0.1 function appear on a device pin. |
10 | 101 Start conversion when the edge selected by bit 27 occurs on MAT0.3. Note that it is not |
11 | possible to cause the MAT0.3 function to appear on a device pin. |
12 | 110 Start conversion when the edge selected by bit 27 occurs on MAT1.0. Note that this does |
13 | not require that the MAT1.0 function appear on a device pin. |
14 | 111 Start conversion when the edge selected by bit 27 occurs on MAT1.1. Note that this does |
15 | not require that the MAT1.1 function appear on a device pin. |
Daraus kann man erkennen, dass nur Timer 0 und 1 benutzt werden können. Man kann sich aber eines kleinen Tricks behelfen, indem man einen Ausgangspin der PWM-Unit (PWM1..6) mit P2.10 oder P1.27 hardwaremässig verbindet und diesen Pin dann zum triggern festlegt. Anders gehts leider nicht. Erwin
Hallo Erwin, Das gefällt mir aber nicht besonders. Ich möchte eine Center-Aligned-PWM und die Strommessung IN DER MITTE der LOW-PWM-Phase an einer Halbbrücke durchzuführen. Wenn ich an einer PWM-Flanke die AD-Messung triggere, dann funktioniert die Strommessung masseseitig an der Halbbrücke überhaupt nicht, weil sich der Meßkreis erst mal einschwingen muß. Da fallen mir dann nur "abwegige" Lösungen noch ein, wie zum Bsp. einen Match-Interrupt beim PWM-Top-Wert und dort die Messung per SW zu starten, oder einen Timer0/1 parallel zur PWM laufen zu lassen und dann diesen zum Triggern benutzen. Gefällt mir aber beides nicht. Gibts denn eine Appl.-Note bezüglich Motor-Control von NXP? Dort muß ja eine Realisation der Messung zu finden sein - wenn auch vielleicht eine "unschöne". Gruß Wolf
Möglicherweise kannst du einen zweiten dafür geeigneten Timer synchron mit dem PWM-Timer laufen lassen, also mit gleicher Periode und (fast) gleichzeitig gestartet.
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.