I have a Beaglebone Black revC. I want to use a brushless motor (EMAX XA2212/1400KV) with ESC (hobbywing skywalker 20) . Beaglebones Vpp voltage is 3.3V and ESC gives ( gives beep about 2 sec interval) "Throttle signal is irregular" trouble signal. I think this ESC accepts only 5V Vpp. How can fix this? How can i change 3.3V PWM to 5V PWM
There's lots and lots of ways to do this but will depend upon your constraints, such as switching speed, acceptable losses, etc.
Something like this would work. When the GPIO is high, Q1 is on, bringing the gate of M1 low and therefore turning it on:
One alternative option would be to use an op amp circuit (non-inverting might suit you best to keep things simple). Consider timing requirements, though.
Another option would be to use a CMOS inverter circuit (two MOSFETs; one n-type and one p-type). The CMOS inverter will, naturally, invert your signal, so just invert your PWM in the software (instead of leaving the output as "PWM_output=125", write "PWM_output_inverted=255-PWM_output"). The CMOS inverter will re-invert your signal back tot he correct polarity. Again, remember to take timing constraints into account for switching frequency.