I am going to purchase the DRV8412-C2-KIT and I have a few questions regarding the layout.
I noticed that the evaluation board is a 2 layers PCB. The DRV8412 needs a big copper area to keep it cool.
For my project I need to use a smaller PCB and I would like to know if a 4 layers could be a solution to do it.
The idea is to locate the current sense amplifiers closer to the DRV8412 (1cm on each side) by decreasing the GND area on the top layer and to use at the internal layers and bottom layer to cool the chip. Of course I will still keep a small area to connect the tap to the other layers using a lot of vias (9 below and 9 above the chip).
Have you got any idea if this could work ? (have you got any gerber with such a layout)
Another question regarding the F28035 : Can I drive 2 DRV8412 with one F28035 ? The F28035 seems to be powerfull enough to do it (at 40Mhz or 60Mhz) ? assuming that I will use the same power supply for the motors (2 bipolar or 4 DC motors).
What you suggest is a good solution to keep the size of your PCB small. A 4-layer board will be able to dissipate the same amount of heat over a smaller area if all four layers are being used as a heat-sink for the device.
The key to this kind of design is the correct use of throughole vias to ensure that heat is transferred to all four layers. Let me refer you to Pg. 21 and 22 of the data sheet found here as an example: http://www.ti.com/litv/pdf/slou287
In these pictures the areas with the red arrows on either side is where the DRV8412 sits on the PCB. On the top layer, we have an exposed solder mask connected to the GND net that can be soldered to the PowerPAD on the bottom of the device. On the bottom layer, you will see that there are many throughole vias in a grid patten (also connected to the GND net) sitting in the solder mask. These vias provide a path for heat to be evenly distributed on the top and bottom layer of the board. Dimensions for the footprint and suggested sizes for vias can be found on pg 23 of the data sheet.
When using your 4-layer design, you will want to ensure that the two middle layers have a large copper area connected to the GND net so that the throughole vias may transfer heat to them as well. As a final pointer, a common misconception is to use thermal vias to connect your copper planes. The name sounds correct, but the purpose of a thermal via is to impede the flow of heat to make it easier to soler / desolder components from a large ground plane. Using thermal vias will impede the flow of heat from your device, making your heat sink less effective.
To answer your second question, you should be able to control two DRV8412 devices using one F28035 control card. For each device, you'll want enough GPIO pins to generate:-4 PWM signals-2 Digital Outputs for reset-2 Digital Inputs to monitor fault pin and OTW-Additional 3 digital outputs if you wish to actively change M1, M2, M3
A single F28035 should be able to take care of this. Keep in mind that we won't be using the control card to power the device, just to control the digital logic.
Hope this helps! Feel free to ask if you have any other questions.
I posted an incorrect link in my first reply. The correct link to the data sheet can be found here: http://www.ti.com/lit/gpn/drv8412
Thank you for the feedback.
I have a technical question regarding the current sense feedback on the DRV8412-C2-KIT.
For STEPPERs : I understand that this current sense is used to generate a microstep resolution of 1/128, a very good performance µC is needed to perform the A to D conversion and PWM control. They are not implemented on the DRV8412EVM, only on the C2-KIT.
For Brushed DC : Voltage feedback ADC_Vhb[1..4] are used to perform a back emf calculation. This BEMF gives the speed of the motor. I don't know if the current sense feedback is usefull in this mode ? (Can I remove the 4 oamp performing the feedback if I want to drive only BDC motors)
Do you have an application note on the current sense implementation (benefits....). The other way for me to get more data is to look in the software to check the use of the ADC inputs in the PID regulation.
for my project using BDC and Stepper (2 différent motors) the load is changing depending on the position of the motor.
I need to have a constant speed, meaning that regulation must be very fast.
I also have the possibility to implement an external encoders (or tachymeter depending on the motor). I think the F28035 also provide fast calculation for decoders signals in order to have a counter (position) and a direction.
If you are only interested in speed control for your brushed DC motor, then the current sense feedback loop can be removed completely. When using a brushed DC motor, the speed of operation is determined by the voltage on the winding and the torque is determined by the current, so your speed control can be accomplished without the use of any current feedback.
In the 8412-C2-KIT EVM, the current sense feedback loop and the voltage feedback ADC_Vhb[1..4] are both used for current sense and regulation (the ADC monitors the voltage drop across a current-sense resistor). You are correct that these inputs are necessary for the precision microstepping control of the stepper motor, but in the GUI and code that was released with the kit, I do not believe these inputs are monitored when driving brushed DC motors.
In order to have speed control, however, you do need some kind of position data. Given your project description, I would suggest using an external shaft encoder on your BDC motor. Monitoring the encoder outputs will allow you to determine the motor's speed. If something happens that would cause the motor to speed up/slow down, you can measure the error in the shaft encoder results and use this to adjust the width of the PWM signal being sent to the DRV8412. This should allow you precision voltage control to adjust the motor's speed while allowing the current through the winding to change as the load varies.
Yes I will only use BDC. (I will try to keep an open option on the STEPPER feature but on the long run I won't use it).
So, Today I want to focus on a solution that drives 2 BDC motors.
In your email above you suggest the use of an external shaft encoder. I agree with you, I am planning to use 2 encoders, one for each of my motors.
So you can guess that my next question will be concerning the QEP feature integrated inside the 28035.
I read the sprufk8.pdf file and I noticed that the QEP can deal with only one encoder.
With 2 BDC motors, I need an additional QEP feature somewhere.
Perhaps by changing the µC : the 2806x family ? they have 2x QEP but I don't know about the software compatibility beween 28035 & 2806x
Software between 03x and 06x is nearly identical. ADCs and system clock run at different speeds, and 06x has FPU if you like.
I can think of two interpretations of your question and I'm not exactly sure which one you mean:
1) If you are asking whether the Crosshairs GUI may be used to control a device from the 2806x family in the same way as the 28035 device, this is not possible. The devices are similar in their functionality, but the variables in memory and registers used by the devices are different enough that the GUI would not be able to function using a 2806x device without heavily modifying both the GUI code and the code in the 2806x device.
2) If you are asking whether sample code for the 28035 device maybe be ported over in CCS to a 2806x device, this is certainly possible may be accomplished. However, to do this correctly, you will need to ensure that the correct GPAMUX register settings are chosen so that the QEP functionality is correctly enabled. If you have not had experience with microcontrollers, this can be a big headache.
To have a firm understanding what's going on, it's helpful to be always be looking at two documents when writing code. The Technical User's guide for the family of device you're interested in is essential to knowing how to configure the registers and peripherals of the device you are interested in using. The data sheet is also critical so you may know the device pinout and the multiplexed functionality of each pin. For this reply, i'm looking at sprs698B.pdf which is the Data Sheet for the 2806x series.
By looking at the device pin assignments on the data sheet, we can notice that each pin on each port has multiplexed functionality. For example, the EQEP1A pin which would be your quadrature 1A input located on pin 5 (Pg. 26) also shares its output with the GPIO20 port, the MDXA functionality, and COMP1OUT. The code must be written in such a way that we use the pin as the EQEP1A peripheral and not a GPIO.
To do this, reference the GPIO MUX section of the data sheet starting on Pg. 149 with table 6-65. This shows the mapping of each GPAMUX register, what each bit controls, and how to set that bit to enable the peripheral you want. Using the above example with pin 5 on the device, we see EQEP1A is located on the GPAMUX2 register bits 8-9. By setting these bits to "00," the GPIO functionality is enabled. By setting them to "01" the QEP functionality is enabled, etc. Each of the memory locations in GPAMUX2 associated with the QEP module must be set to correctly choose the QEP input/output functionality. From here, the algorithm to process the data acquired from the QEP module will remain unchanged.
Hope this helps!
I am finally testing the DRV8412-C2-KIT with the 2 DC motors (12V) delivered with the kit and also with 2 120W DC motors (24V).
I am trying to find the power limitations of this KIT.
And I think you could be interested by a feedback from us.
So far, the KIT is able to deliver up to 100W at 25°C ambiant temperature, the DRV8412 case temperature is around 95°C.
Our calculation indicate that the maximum power at 50°C ambiant temperature is around 75W for the KIT.
The power dissipation of the KIT does not allow to increase the delivered power (for example 110W). The OTW is returning a flag (led on the board and warning on the GUI).
I noticed that the current sense feedback in the GUI is not working correctly :
- The displayed value is half of the real value. I set the PWM to 100% and I used a voltmeter to read the voltage on R50 (or R51 depending on the direction) and to deduce the current I=U/R.
So I guess something is wrong with the GUI.
Could anyone confirm this point ?
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.