I'm a long time follower and reader of this forum but I don't post so often.I would like to ask you insight and help regarding the following system:

I am trying to design a Brushless flat DC motor controller.After reading some documents from Microchip and several other articles on BLDC motors, my idea is to use a microcontroller, a pre-driver, a driver and finally the motor, being this the classic approach.

In the end, the objective is to control the torque of the motor. For this I will need to measure a current of the coils and use this value in a PID controller. But before this phase I will try to measure the speed of the motor using the signal of one of the Hall sensors and control it with a PI controller. The PI or PID algorithm will be implemented on the mirocontroller. The whole system needs to interface with I2C to receive commands for torque and speed values and send back measurement of both parameters.

For now, I have a motor from Faulhaber model 1509 006B. It has 3 hall sensors and weights about 7 grams. the maximum torque it can generate is 0.52mNm. Its possible that in the future as the design progresses, I will change the motor model, but always something similar or at least in the same dimensions as this motor.Since the motor is a micro BLDC, I am having some problems in finding a suitable driver and pre-driver for this small motor. Although there is a lot of information on the internet, everything I find relates to high power motor drivers and much bigger motors, than the one I'm planning to use. The PCB with all of these components needs to be very small and possibly to be attached to the back of the motor itself, so PCB area and number of components is a big issue, specially with these big high power packages.

I've decided that I will use 6 MOSFETs N-Channel for the final power stage in a half bridge topology (if possible everything integrated on the same chip package), but I also know that the high side needs to have a higher voltage to allow the respective mosfet to be turned on. Not sure tough which model to select.

I'm also seeing two very interesting solutions from Fairchild and ST. From Fairchild the models FCM8201 and FCM8531, which are predrivers that also take care of all the hall sensor and phase actuation. The FCM8531, even has a 8051 uController on the same silicon die and this allows to integrate even more blocks under the same chip.ST has the model L6235 which seems very nice because it also manages the hall sensor and coil commutation and has a 3 phase h bridge integrated, but it is way too big and powerfull for the motor I have.Does anyone has previous experience with these chips? I'm not sure if these options allow torque control.

Another possibility is to ignore the pre-driver, and attack the last power half-bridge stage directly with the micro controller. But for this I would need a different topology of bridge thats does not need a variable voltage on the gate of the high part of the bridge.

I remembered that hard drives use small BLDC motors but currently I don't have any broken hard drive just to check what the manufacturer used.Currently I'm a bit lost and I cannot exchange any ideas about implementation methods with my colleagues since they don't have any electronics background. Does anyone would be so kind to share some ideas, thoughts, suggestions, etc regarding my approach?Thanks for taking the time to read this long text.

I checked Allegro and I'll go for the model A4938. I will try to use a very simple and small uC that has I2C and can handle torque and speed control algorithms, and interface it with the A4938.I still need to completely understand how to create these algorithms based only in the FG output they provide.For speed I know that I have to calculate the rotor speed with the FG output and create a feedback algorithm (PI maybe), but for torque its not very clear. Do you have any idea about this and how is this accomplished? Does anyone can suggest any book/paper/weblink related to this topic?

The solution from Fairchild seemed quite good in the beginning but the problem is that they charge almost 200$ for the programing tool and software, which is an investment that I prefer to apply on other tools, since I already have several other uC programming tools. I also think that I would spend much more time with this rather complex solution (it can even be better than in terms of performance than the Allegro and it would reduce the PCB area) than with the Allegro chip.

In high performance electric drives , there are two main control methods , the first one called field oriented control (FOC) and the second is direct torque control (DTC) .Each of these control techniques can be realized using sensored or sensorless approach. What approach you are trying to do so.

For small motor 3x dual NP channel logic level mosfet is a good choice, just use a small transistor for driving the P mosfet, then the bridge can be controlled directly by MCU. It can be very compact pcb layout.

Thanks for the reply Ichan. When I have more time I will dedicate a bit to select some dual NP mosfet and follow your advice.Currently I'm developing other parts of the system (I2C network with the uC that will interface with the ST L6235 model). Meanwhile, I'm still thinking about Fairchild solution that includes FOC algorithms. http://www.youtube.com/watch?v=4OWOrRd6DFw&html5=1

I'm just a bit afraid that I maybe building a bazuka to kill a fly. I've already read about your suggestion before, but discarded it because it seemed one of the "old" methods. After the charge pumps became more popular, everyone started to use the 6 N-ch mosfet topology and abandoned all the rest.

Btw, from Allegro Microsystems, not a word I also asked some questions in the ST forum about the model L6235 but the same. No replies. It makes you think about the "customer support" they offer, after giving them some money for their products comparing for example with this forum. Thanks for the feedback!