Long time no see, huh?
Since I was generally helping Valeh with the subjects related to electronics and preparing myself for the TP/Challenge, it has been a long time anything was posted by me. So this post will function as a recap of the previous weeks:
Firstly, we have worked with the H-Bridge, it has been extremely painful. If you don’t have a component that integrates all the drivers and sinks for the motor as well as implements a protection circuit, the job is pretty hard. We have started by positioning the drivers and the sinks, we have validated our design by running a simple simulation of our motor with the transistors. Obviously, it is not that simple.
Motors are quite nasty when you change their current quite quickly and that is basically what happens when you control it with a PWM. So you place some Schottky diodes in parallel to the transistor and it works, right? Yeah, for sure it protects your H-Bridge, but what about the noise that goes through your power supply to other devices? Worse, if you need to measure the BEMF, this voltage peak may damage your ADC.
So we have placed a RC filter in addition to a Zener diode. In this manner, the signal that goes to the ADC is smoothed and limited. Problem: what is the cutoff frequency of the RC network, what is the amplitude of our signal in the input resistance of the ADC?
Our tests showed the resistance peak power was about 2W during the switching process. We have looked the Zener diode datasheet and a 100W non-repetitive peak power during 0.1ms is listed in its maximum ratings. That is largely sufficient, no? NOOOO!!! You can still damage your diode by creating an arc between its terminals. And our harmless 8V added to the BEMF may exceed its maximum ratings. Solution: resistance in series to limit the voltage.
Finally, Alexis has wisely pointed out that our idea for controlling the drivers and sinks poses a great danger to our circuit. If a driver and a sink from the same side are turned on simultaneously, we have just lost our transistors. We could place a NOT gate for making sure they do not go on at the same time, but all the work to downsize the H-Bridge would be lost. Well, we have decided to use a H-Bridge IC.
BEMF sensing, it seems easy, right? We just place a voltmeter between the two terminals of our motor and it is done. Try doing that with a uC … The voltage can be either positive or negative, and the nRF ADC does not work well with that. The measurement is differential, the nRF ADC does not support differential inputs. The maximum input voltage of the nRF ADC is 1.2V, and our motor runs with 15V. Many ideas of how to reduce the amplitude, convert it to single ended, shift the voltage to make it positive … Thanks to the documents Alexis has provided, we found an interesting solution: a resistance connected to the ground that estimates the current through the motor . If our PWM is fast enough, we take total voltage applied, subtract from it the motor internal voltage, and we have just obtained the BEMF.
As I am currently designing the PCBs for our project, we are still working on the H-Bridge IC we have chosen. As it is quite difficult to find simple 15V rated H-Bridges, we are working with one fairly complicated (A4973). It has an internal PWM which we probably won’t use. News in the following posts.