Grüße *,
ich hab hier einen 12F1572 (läuft auf 5V mit internem OSC auf 8MHz->PLL
auf 32MHz, WDT aus, BOR aus) mit saukomischem Verhalten auf den drei PWM
Modulen. Ich initialisiere diese wie vom MCC vorgeschlagen:
- Standard-Mode (kein Offset)
- Periode=0xFFFF, DC=0, Phase=0, keine Interrupts
1 | PWM3INTE = 0x00;
|
2 | PWM3INTF = 0x00;
|
3 | PWM3CLKCON = 0x00;
|
4 | PWM3LDCON = 0x00;
|
5 | PWM3OFCON = 0x00;
|
6 | PWM3PHH = 0x00;
|
7 | PWM3PHL = 0x00;
|
8 | PWM3DCH = 0x00;
|
9 | PWM3DCL = 0x00;
|
10 | PWM3PRH = 0xFF;
|
11 | PWM3PRL = 0xFF;
|
12 | PWM3OFH = 0x00;
|
13 | PWM3OFL = 0x00;
|
14 | PWM3TMRH = 0x00;
|
15 | PWM3TMRL = 0x00;
|
16 | PWM3CON = 0xC0;
|
Dann update ich den Dutycyle mit einem per UART gefütterten Byte, z.B.
hier bei PWM3, MWE:
1 | while (1) {
|
2 | if (!PIR1bits.RCIF) continue;
|
3 | PIR1bits.RCIF = 0;
|
4 | uint8_t newDutyCycleLowByte = RCREG;
|
5 | PWM3DCH = 0;
|
6 | PWM3DCL = newDutyCycleLowByte;
|
7 | PWM3LDCONbits.LDA = 1;
|
8 | }
|
Folgendes Bild:
- 0: kein Problem, PWM aus
- 1: kein Problem, PWM minimalst an. Peak bei 1V
- 2: ein paar Pulse werden erzeugt, dann Reset. Peak bei 2,3V
- 3: ein paar Pulse werden erzeugt, dann Reset. Peak bei 4,2V
- 4: ca. 8-9s mit PWM, dann Reset. Peak bei 5V
- 5 und aufwärts: Kein Problem, PWM stabil.
Hab mir nach dem Reset auch PCON ausgeben lassen, 0b00011100, also
unauffällig.
An den PWM-Ausgängen hängt außer meinem TEK nix dran, also keine Last,
die irgendwas zieht.
Was könnte das denn sein?