I’m from the Arduino world, and in the Arduino I’m used to simulating an “analog output” by using PWM. My question is: When I started looking over the USBizi chip, it seems like there’s a difference between pure analog and PWM. Does anyone know the difference? Specifically, how exactly is the analog output implemented, if not using PWM?
Also, it says on the USBizi Manual that PWM cannot be controlled per pin. Is there any way to do that? I’m trying to control two motors without the use of a motor shield, and both motors need to be controlled independently, making it necessary to control the PWM frequency of two different PWM pins separately.
In the FAQ page under the “Downloads & Tutorials” menu, the only thing about OutputCompare and PWM is:
“OutputCompare that allows generating waveforms. Generate software-PWM, tones, UART or even TV remote waveforms easily. Runs on any digital IO and is not system blocking (runs in background on interrupts).”
That kind of explains the difference between analog and PWM. However, I’m still confused as to what each of the outputs (analog vs PWM) produce in concrete terms of signal. For example, I understand that PWM turns the digital signal all the way on (3.3V) and all the way off (0V) very fast.
From my understanding of analog, it should have a certain number (probably 256) of voltage levels that are allowed, and the number of voltage levels between 0 and 3.3V should be enough to form a “smooth analog” curve. Although the smoothness is subjective, the point is the varying levels of voltage, as opposed to a simple modulating on and off signal, as in PWM.
Am I correct in this understanding of the difference between the two methods of producing “analog” signals? This link helped me understand the traditional method of digital to analog conversion: