EEVblog Electronics Community Forum
Electronics => Microcontrollers => Topic started by: step_s on April 08, 2016, 01:41:08 pm
-
Hi there EEVbloggers.
I'm trying to make a synchronous buck-converter, and is controlling it from a PIC16F1574
http://ww1.microchip.com/downloads/en/DeviceDoc/40001782C.pdf (http://ww1.microchip.com/downloads/en/DeviceDoc/40001782C.pdf)
In order to do this I need to make PWM2 run as a slave to PWM1, to make them match, but I'm having some trouble here.
OSCCON = 0b11110000; //Setup for the internal Oscillator
TRISA = 0b00011000; //TrisA I/O register
TRISC = 0b00011000; //TrisC I/O register
//PWM 1 setup
PWM1CLKCON = 0b00000000; //Setting clock
PWM1PRH = 0b00000000; //Period
PWM1PRL = 0b01000000;
PWM1DCH = 0b00000000; //Duty Cycle
PWM1DCL = 0b00100000;
PWM1PHH = 0b00000000; //Phase
PWM1PHL = 0b00000000;
RA2PPS = 0b00000011; //Set RA2 as output
PWM1CON = 0b10000000; //Enable PWM1
//PWM 2 setup
PWM2CLKCON = 0b00000000; //Setting clock
PWM2PRH = 0b00000000; //Period
PWM2PRL = 0b01000000;
PWM2DCH = 0b00000000; //Duty Cycle
PWM2DCL = 0b00100000;
PWM2PHH = 0b00000000; //Phase
PWM2PHL = 0b00000000;
PWM2OFCON = 0b00000000; //Off-set mode
PWM2CON = 0b10100000; //Enable PWM2
RC0PPS = 0b00000100; //Set RC0 as output
The PWM2OFCON is here mode 00 = independent, and the two PWMs work, running independently, at the same frequency.
If I then want to make the mode "One-shot slave run mode" then PWM2 has no output. . . It's constantly low.
All the other modes will result in the same problem.
Anyone who know what is going on?
Thanks in advance.
-
Look at the chip's errata. Not sure if it address your problem but there is an entry named "Continuous Run Slave Offset Mode Anomaly" for the PWM module