Electronics lazyweb, am I correct in thinking I can make an "opto isolated pwm digipot" (not actually a pot but a variable voltage output determined by pwm duty cycle) with a PC817 optocoupler, 2 mosfets (1 for inversion), pullups/downs, and a capacitor?
This seems like a useful thing to have for interfacing with BLDC controllers without common ground or where you want isolation from faults at the motor controller.
@dalias Yes. S/PDIF is the perfect example of opto-isolated self-clocking square waves. Depending on your bandwidth needs, I'd go with whatever is in common use for S/PDIF circuits.
But I'm just a SWE...
@jab01701mid This isn't about designing a communication channel but interfacing microcontrollers (that like pwm) with the wacky stuff the folks doing BLDC motor speed controllers like (analog voltage pin meant to be controlled by a pot).
@dalias I worked for a guy name Amar Bose for a while who got his start designing PWM-based power amps, then speakers. I'm just a SWE, but I like to tinker with HW interfacing too. Sounds like a fun project you have.
@jab01701mid I don't actually have to solve it, because I got a sufficiently working solution without any proper gates, just putting a constant strong pulldown of the signal pin to gnd, and letting the optocoupler output act as an even stronger pullup.
But it seems like a proper solution could be made into a tiny PCB you could put inline in the wiring, and I might snipe myself into doing it as a chance to learn some design.
@dalias So you have inspired me to study BLDC motor theory of operation https://www.integrasources.com/blog/bldc-motor-controller-design-principles/
Fascinating...
What I imagine is that the time delay of the circuit, and rise time of the PWMs, are very important. The "sense current position/direction" then "induce a change at the right time" is a difficult task for sure.
I'm a fan of MCU-less designs for things as simple as this. Incorporting the hysterisis, PID-loop, whatever.
Once, I made an analog joystick output MIDI, without an MCU !