Field Oriented Control development boards

Alan B

100 GW
Joined
Sep 11, 2010
Messages
7,809
Location
San Francisco Bay Area, USA
The industry has a number of development boards and software kits for Field Oriented BLDC motor Control. Here is one from Texas Instruments:

http://www.ti.com/tool/dk-lm4f-drv8312

Some Specs:

80 mhz 32 bit floating point Cortex M4 ARM processor on 64 pin DIMM plug in board
256kb flash
32k ram
dual canbus
8 serial ports
6 i2c ports
two banks of 1 megasample/second 12 bit ADCs with 12 channels
two watchdog timers
dual banks of PWM motor controllers
dual quadrature decoders
plus more

This starter set includes hardware and software to get started quickly, even a small motor and power supply for less than the price of a 24 FET controller. The processor is on a small board that can be plugged into a custom power stage and run on your ebike, with all the small pitch electronics done. These ARM boards are $49 so not out of reason for using in a controller.

There are other similar starter sets out there for various processors, such as the PIC unit that Bertie is experimenting with in another thread.

Anyone else tried these or similar boards? What is the best one to start with? Any interest in making a power board to take one of these plug in processors?
 
I think you need to pic your processor then see what is available for development boards. I have a microchip development board that comes with a dspc30f4011 its most of what you would need then just hook up a power stage and away you go.
I chose microchip because it was recommended but now I see the advantages like the code samples and open support. I also thought an arduino would be cool but they seem to be lacking in the processor power/speed and pin outs.
 
Alan B said:
Why pick the processor first?

Why not pick the development board and tool set first?
Well for me I look at the A/D converters and how many inputs it can handle IE throttles current sensors etc. Make sure it can suite your needs. Then look for processing speed and what it can run for PWM frequency and max erpm etc. I chose it based on what options/specs I need it to have. I think the dspic is going to be good for a while for me.
 
The DSPic seems to be a popular choice, so clearly it is suitable. They have many documents and examples available. From what I have seen the DSPic is marginal in some areas when you get to the high end control algorithms like FOC, so I'd like to see what else out there is interesting and worth pursuing.

So the question might be rephrased - what is better than the DSPic? Is that the best available tool chain and board set? Is there a plug-in off the shelf DSPic board that you can use on your own power board so you can skip half the board development? That might shave six months or a year off the project?

It would reduce the effort in the project significantly to have:

1) a good starter kit with complete hardware and software at an affordable price

2) a good processor sub-board that can be used in the final project, reducing the board development significantly

3) good tool chain, preferrably based on open-source tools that are already familiar to programmers

4) good documentation, libraries and examples

5) enough performance that it is not difficult to meet the performance requirements of the project (eg no need to code anything in assembly language)

Anyone had experience with the TI or STM tools and sample code? Is the DSPic the best thing out there?

Kingfish was looking to build the Best Controller. I'm looking for the Best controller development environment.
 
for me there were a few reasons to start with the DSPIC:
- they send you samples for free if you ask nicely :oops: , so very cheap to start
- I wanted something in a DIL housing so I could use a universal experiment board (the well known white ones) and use my 1950's soldering iron
- The documentation and datasheets from Microchip are very, very good.
- I need to sample 3 analog signals at the same time, the DSPIC has this capability while ARM chips that I looked at (PLC2...) don't.
- Free development software, also very good.
- I wanted everything in one chip, did not want to add an extra ADC chip or EEPROM chip.
- chips are cheap, about $6 for a 30 MIPS 16 bit MCU/DSP

disadvantages:
- You need to buy a programmer which is Microchip specific.
- Speed is only intermediate (30 MIPS for the 30F4011 I use) but far more than I need (I measure, calculate, update PWM in 10 usec at 30 MIPS), 70 MIPS is available though

The board I designed would make a good development environment, no software documentation though
 
What chips are used in the high end motor controllers? Anyone know?

As I understand it FOC only requires two simultaneous ADCs. At 1 megasample even unsynchronized ADCs are pretty nearly synchronous.

Anyone used the TI or STM tool chains and development boards? What is good and bad about them?

It looks to me like with the TI kit you can unpack it and be spinning a test motor in a few hours. Time is worth something. Saving a couple of dollars on the chip is relevant if you are making thousands of units, but not for a few. The commercial controllers to compare with are quite pricey.

A good kit should shave hundreds to thousands of hours off the development project and make it possible for a wider range of people to duplicate it, as does keeping it open source in hardware and software insofar as possible.
 
Here's an article that talks about the TI and uChip kits:

http://www.ecnmag.com/articles/2012/08/careful-designers-get-most-brushless-dc-motors

Here is some info on a TI kit using a 32 bit Piccolo processor that sells for $2 in quantity:

http://www.ecnmag.com/products/2011/04/ti%E2%80%99s-new-evaluation-platform-drives-three-phase-brushless-motors

Here is an article on the why and how of FOC:

http://www.digikey.com/us/en/techzone/microcontroller/resources/articles/increasing-motor-performance.html
 
Alan B said:
A good kit should shave hundreds to thousands of hours off the development project and make it possible for a wider range of people to duplicate it, as does keeping it open source in hardware and software insofar as possible.
Its surprising how fast you can design on expresspcb and get it done. I would say for a working Brain stage I have 20 hours of work that's it. And as I fixed my mistakes I edited the design so I can re order them. Once I order a test unit and its perfect I will post it in lebowskies thread.
But I would say a kit that saves you making the brain stage will only save you around 10-20 hours. And you will want to design a power stage that suites you needs.
 
The main time savings is in the software, how many hours is in Lebowski's software? And it is written in assembler (which I prefer not to work in) and source won't be available to make changes to, so that is a non-starter for me. We have plenty of proprietary solutions, I'm looking for high performance open solutions that the community can use, that I can experiment with.

A fine pitch surface mount brain board is probably not a 20 hour project, especially considering a few iterations, and most folks could not load parts onto it. Most people don't want to solder even through hole boards. I use expresspcb a lot, and it is simple, but it limits you to rather expensive boards from a single vendor. Try diptrace and dorkbotpcb sometime for comparison.

We will need to lay out a power board, that is the most important place to expend our energy, and in tweaking the software for our needs. If we can use an industry standard plug-in brain board that would make things much more likely to be duplicated and used by others. We need power boards at a few different power levels, but the same commercially manufactured and tested brain board could be used in all of them.

I don't want to turn this into an architecture bashing thread. I'm looking for experience with the newer more capable yet inexpensive 32 bit FOC motor control development kits, but all I'm getting here is 16 bit enthusiasts. Nothing wrong with them, just not what I'm looking for at this time. It says in the brochure that $300 will get you a very high end 32 bit development kit, I'm wondering what's the real story behind the gloss. So either no one has knowledge of these kits, or they are not interested in sharing their experiences here.

Interesting, just looking at the TI Stella mentioned above - it can control two motors from one chip, 2WD perhaps? That might require a dual motor power board, which one could think of as a 24 FET controller board except that it is configured as two 12 FET controllers for two motors. That would be sweet, total integration in one cpu of two motor controls. Great for torque and spin management. Future project, perhaps.

In doing a lot of searching for FOC BLDC motor control kits, I keep coming up with a few solutions:

TI solutions 16/32 bit
dsPIC 16 bit
Infineon 8/16 bit
STM 32 bit kits
AVR 8/16/32 bit

If we narrow this down to 32 bit kits it is just TI, STM and AVR. The AVR is pretty rare, so that leaves the STM and TI. Of those the TI is the most prevalent. I'll look further at the STM soon as the TI has been more common in my reading thus far.

Is anyone else interested in getting the same boards? Having a few folks comparing notes could be useful and the first step in building a community around an open design. It looks like the TI board will run a hubmotor under test. Not under much load since it is limited to 3.5 amps (they have a 6.5 and 60 amp boards as well), but that should be adequate to do actual bench testing with a real hubmotor before building a power board.

Here is a note from TI that talks about various control algorithms in their software package including sliding mode observer field oriented control.
http://www.embedded.com/electronics-products/electronic-product-reviews/embedded-tools/4395191/MCU-motor-control-kits-from-TI-spin-BLDC-motors-in-minutes
 
I'm with you Alan. But I think lebowskis plan is to sell his chips so you dont need to learn all the progrqming. I would love to see what else is out there I've just had a steep learning curve and very little time to see what else there is.
 
Alan, know that I am very interested in this thread. For what I do the dsPIC is sufficient. I did start to look at the TI 32 bit chips and development boards when they first came out... then I hit myself in the head and said I need to learn a new vendor like a hole in the head.

Most folks that have invested IP in a vendor stay with them as long as they can because of the up front costs and time to get the compiler and support software/hardware working. Not to mention learning new registers, topologies and such. Ol' guys (like me) have more and more trouble reprogramming the neurons.

That said, I think a foray into the 32bit TI chips would be the logical next step after dsPIC's. I've used the TI Design Studio years ago on aTI TMS320F241FNS project years ago. Their tools are good. Their app notes are good. They want to dominate the motor control field > leads to good bargains on software tools.

I like TI selling the small, surface mount "brain" for less than $50 to include in a larger design. I would vote for a deeper look at TI and trying to pick the right development board. Since my TMS320 days I have no personal experience with the new TI stuff.
 
bigmoose said:
Alan, know that I am very interested in this thread. For what I do the dsPIC is sufficient. I did start to look at the TI 32 bit chips and development boards when they first came out... then I hit myself in the head and said I need to learn a new vendor like a hole in the head.

Most folks that have invested IP in a vendor stay with them as long as they can because of the up front costs and time to get the compiler and support software/hardware working. Not to mention learning new registers, topologies and such. Ol' guys (like me) have more and more trouble reprogramming the neurons.

That said, I think a foray into the 32bit TI chips would be the logical next step after dsPIC's. I've used the TI Design Studio years ago on aTI TMS320F241FNS project years ago. Their tools are good. Their app notes are good. They want to dominate the motor control field > leads to good bargains on software tools.

I like TI selling the small, surface mount "brain" for less than $50 to include in a larger design. I would vote for a deeper look at TI and trying to pick the right development board. Since my TMS320 days I have no personal experience with the new TI stuff.

Thanks for your excellent comments bigmoose!

My last TI experience was with the TMS320 also. Our project (Ten Meter/Keck Telescope) could not afford the big bucks development boards, so we wire wrapped up a test/development board customized for our needs. The only hitch was I had to write a loader program in assembler that was burned into fusible roms that had to work in order for us to do anything at all with the board. That was one of the few nontrivial assembler programs I ever wrote that worked the first try. We had no way to debug it, so it had to. Right after that the project's upper management changed and they declared that DSPs don't work (in spite of the Ti speaking doll that was a hit that Christmas), and we quit the TMS320. I think I still have the board somewhere in a cabinet at work.

Based on what I've read so far I'm really tempted to buy one of the Stella kits. You might take a look at the TI offerings and see if you have any polarization. They have at least three lines, Piccolo, a Safety CPU, and the Stella that I'm aware of thus far. I think the PIccolo was 16 bit, the Safety CPU was more complex and costly, and the Stella M4 Cortex looked the most interesting for our needs, but more study is warranted.
 
Looks like you did some pretty interesting coding back in the day!

This document starts to catalog the piccolo capabilities:

Looks like the DRV8312 power module from TI is the is 50V, 3.5A 3-phase motor driver stage.

Looks like the DRV8301 power module from TI is:
  • The DRV8301-HC-C2-KIT is a high-performance, power-efficient, cost-effective platform that speeds development for quicker time to market. Applications include CPAP and pumps, E-bikes, E-scooters, medical pumps and drills, power tools, and robotics.
  • The pre driver chip DRV8301 provides: 2.3A sink/1.7A source, three phase inverter with integrated buck converter for 1.5A external loads.
  • the Kit is populated with FETs to support 60V and 82.5A full scale range
  • Piccolo Isolated F28035 controlCARD (with SPI interface)
  • The parameters on the DRV8301 are set with an SPI interface

Looks like the DRV8302 power module from TI is:
  • The DRV8302-HC-C2-KIT is a high-performance, power-efficient, cost-effective platform that speeds development for quicker time to market. Applications include CPAP and pumps, E-bikes, E-scooters, medical pumps and drills, power tools, and robotics.
  • The pre driver chip DRV8302 provides:2.3A sink/1.7A source, three phase inverter with integrated buck converter for 1.5A external loads
  • the Kit is populated with FETs to support 60V and 82.5A full scale range
  • Piccolo Isolated F28035 controlCARD (with GPIO interface)
  • The parameters on the DRV8301 are set with resistors

This is why I hate getting started with TI... what is the blasted difference between these two... Google and an obscure statement in a message board:
I recommend 8301 because it will have broader support / re-use going forward. The only difference is that the 8301 has a SPI interface and more configurability that the GPIO interface of 8302.
I edited the above about 6 times as I found the new information.

If I understand it right, you can stuff a Stellaris or Piccollo card into it?

Piccollo line brochure: 8Mb http://www.ti.com/lit/sg/sprb176m/sprb176m.pdf

ARM Cortex RM4x Family
The RM48x is the highest performance Hercules Safety microcontroller family. Based on the ARM® Cortex™-R4F floating point core running at up to 220 MHz it includes several flash memory and connectivity options. Developed with the capability to meet the requirements of the IEC 61508 SIL-3 safety standard and supporting many functional safety features integrated in hardware.

Trying to make the first time sort of the TI matrix always gave me a splitting headache. If you are familiar with their products, no problem. Starting from ground zero, I could never find the "hand holding" guides. The ones that said, "This is a 16 bit processor with this speed", "that is a 32 bit processor with that speed and peripherals..." Once you learn, though it is tolerable...
 

Attachments

  • HerculesRM48xSafetyDSPs-SPRB204.pdf
    769.8 KB · Views: 149
Finding more good stuff on the TI board:

There are two different projects, one for IS-BLDC and one for SMO FOC.

For an electric vehicle, if you are trying to do direct drive (no gears) and want to be able to run under control at lower speeds, you would typically need to use a sensored system (hall, encoder, resolver) to provide the rotor angle information when the currents/voltages aren't present enough for the sensorless algorithm. If that is the case there is a Hercules DRV8301-LS31-KIT which is a better start. Hercules addresses the safety requirements of transportation more fully, and there is an IS-BLDC and a SENSORED FOC project (which also uses the sensorless SMO technique for redundancy) using the included motor with built-in encoder.

If the system is geared, or you are ok with going from 0 to X speed (say 5-10Hz before the SMO or BLDC can be used) then the standard sensorless techniques can be used for this type of application.

Sept 12, 2012 post by TI employee: http://e2e.ti.com/support/applications/motor_drivers/f/38/t/212719.aspx
From what is currently publically available, your best bet is to use the SMO FOC project in DRV8301-HC-C2-KIT with Piccolo. HOWEVER, we added a new start-up routine in a recent SMO FOC project that we did for the Stellaris DK-LM4F-DRV8312 foc_smo project that you would want to use. In fact, the software infrastructure of the entire Stellaris kit is something you would want to use by default in my opinion (called MotorWare).

We will be releasing something with Piccolo in MotorWare this year and you will be very happy with that solution. You will be able to completely re-use the DRV8301-HC-C2-KIT with this upcoming release, so please continue down this path.

10 Commandments of Motor Control by TI:

Part 1 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-1.aspx

Part 2 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-2.aspx

Part 3 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-3.aspx

Part 4 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-4.aspx

Part 5 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-5.aspx
 
I started reading the TI stuff and it doesn look as hard to folow as microchip first was for me so Im more excited then before. Man you guys posted a lot of reading for me already.... :oops:
 
Great stuff.

My present thinking is to use the hall sensor inputs to generate one set of estimates for rotor position and velocity, while the FOC equations generate another from the current measurements. Then use some quality functions to weight and merge these position and velocity estimates together to drive the control transformation. Done right it would result in off-the-line behavior of sensored BLDC with a smooth transition to FOC as soon as the quality of measurements allowed it.
 
Alan, I am watching the instaSPIN BLDC video right now! Wow, I am blown away by the capability. Going forward, I think TI is in the lead. The question now is what development board and what processor to pick.

Edit: The video at the bottom of this page compares the latest 4 demo boards that were just introduced. This video is phenominal. TI for the win, hands down!

http://www.ti.com/tool/drv8302-hc-c2-kit#descriptionArea

However to get the data sheet for one of these boards, I have to download and install 647 Mb of zip files from TI! Yikes... the 1Tb drive is going to fill up faster than I planned.
 
Insta spin= Mind blown! The drv8301 looks like the way to go for most diy guys...
The only problem is what kind of full power start up can we do with no halls for start up...?
 
This video is a wider review of many types of motors and controls, building up to FOC. Lots of simple explanations, this might be a good tutorial for new folks interested in motors and controls.

[youtube]HyhQXWIJhug[/youtube]

Well, I got part way through it before I fell asleep. It is a good overview of motor and control technology. I didn't get to the FOC part yet.

Texas Instruments has 1,400 videos on utube!
 
bigmoose said:
Alan, I am watching the instaSPIN BLDC video right now! Wow, I am blown away by the capability. Going forward, I think TI is in the lead. The question now is what development board and what processor to pick.

Edit: The video at the bottom of this page compares the latest 4 demo boards that were just introduced. This video is phenominal. TI for the win, hands down!

http://www.ti.com/tool/drv8302-hc-c2-kit#descriptionArea

However to get the data sheet for one of these boards, I have to download and install 647 Mb of zip files from TI! Yikes... the 1Tb drive is going to fill up faster than I planned.

Great find bigmoose! That video was a nice short intro to their lines.

The Hercules Safety controller is interesting, though the price and size jump up quite a bit. The Stella has the Hall inputs as well, they just are not using them. So perhaps the Stella is a viable choice. None of the software offerings from Ti quite do what I think we want, though the Hercules comes close. I wish we had real encoders in our motors like the motor in the Hercules kit.
 
Arlo1 said:
Insta spin= Mind blown! The drv8301 looks like the way to go for most diy guys...
The only problem is what kind of full power start up can we do with no halls for start up...?

Startup is the problem. Insta-Spin is a nice GUI environment but the physics of is still a problem. They did add a nice heuristic with the "engine starter" feature that might work on an ebike. In this mode it keeps cranking the starting field until the motor "catches", then transitions to closed loop BEMF. That should work well for clutched motors, and probably work adequately for others as well with some tuning.

The real ticket is to use hall sensors for starting and then transition to closed loop of some sort.

These systems may be able to measure rotor position with other techniques but it does not appear to be out of the box yet. They are on a very aggressive improvement program so perhaps they will add that feature soon.
 
It has been awhile since I used Eclipse, but it is an amazing programming environment. If you read about its history it is quite a story. Stella is using it, perhaps they all are. It is quite large, perhaps part of the reason for the big download size. Eclipse itself is quite large.

http://en.wikipedia.org/wiki/Eclipse_%28software%29 gives a bit of history but doesn't mention directly the magnitude of the development. It is a very large project with lots of big name contributors.
 
bigmoose said:
Finding more good stuff on the TI board:

There are two different projects, one for IS-BLDC and one for SMO FOC.

For an electric vehicle, if you are trying to do direct drive (no gears) and want to be able to run under control at lower speeds, you would typically need to use a sensored system (hall, encoder, resolver) to provide the rotor angle information when the currents/voltages aren't present enough for the sensorless algorithm. If that is the case there is a Hercules DRV8301-LS31-KIT which is a better start. Hercules addresses the safety requirements of transportation more fully, and there is an IS-BLDC and a SENSORED FOC project (which also uses the sensorless SMO technique for redundancy) using the included motor with built-in encoder.

If the system is geared, or you are ok with going from 0 to X speed (say 5-10Hz before the SMO or BLDC can be used) then the standard sensorless techniques can be used for this type of application.

Sept 12, 2012 post by TI employee: http://e2e.ti.com/support/applications/motor_drivers/f/38/t/212719.aspx
From what is currently publically available, your best bet is to use the SMO FOC project in DRV8301-HC-C2-KIT with Piccolo. HOWEVER, we added a new start-up routine in a recent SMO FOC project that we did for the Stellaris DK-LM4F-DRV8312 foc_smo project that you would want to use. In fact, the software infrastructure of the entire Stellaris kit is something you would want to use by default in my opinion (called MotorWare).

We will be releasing something with Piccolo in MotorWare this year and you will be very happy with that solution. You will be able to completely re-use the DRV8301-HC-C2-KIT with this upcoming release, so please continue down this path.

10 Commandments of Motor Control by TI:

Part 1 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-1.aspx

Part 2 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-2.aspx

Part 3 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-3.aspx

Part 4 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-4.aspx

Part 5 http://e2e.ti.com/group/motor/b/blo...n-commandments-of-digital-control-part-5.aspx

Definitely some good info there. Plus a bit of salesmanship.
 
Back
Top