DRV8210: The MD solution in IPC
DRV8434S: Multiple drivers, enable to select?
Tool/software:
Hi team,
If using multiple DRV8434S drivers (A, B, C) can I use only one STEP and one DIR signal for all the drivers (A, B, and C), using the ENABLE signal to select which chip to drive (A or B or C)? I understand I could only drive one chip at a time but would you see any issues with this set up?
Best regards,
Randy
DRV8316: SPI Fault Reporting
Tool/software:
Hello,
I am verifying fault handling functionality and would like to trigger a SPI fault. I have tried creating address and parity faults using the below methods.
SPI_ADDR_FLT
From the datasheet:
"If an invalid address is provided in the ADDR field of the input SPI data on SDI, SPI address error is detected and SPI_ADDR_FLT bit in STAT2 is set. Invalid address is any address that is not defined in Register Map i.e. address not falling in the range of address 0x0 to 0xC."
I am periodically reading address 0x1D followed by reading STAT2, but do not see the SPI_ADDR_FLT bit latch.
SPI_PARITY
I am performing a read of STAT1 with an incorrect parity bit, but do not see SPI_PARITY set. However, I noticed in the datasheet this bit is marked with type "R-0".
I have cleared bit 1 of CR3 (SPI_FLT_REP, labeled as reserved in datasheet), but do not see nFAULT pin rise or SPI_FLT bit of IC_Status_Register set in either of the above cases.
Does the DRV8316 support SPI fault reporting?
DRV8316-Q1: DRV8316-Q1
Tool/software:
Hello Expert
When I was configuring register 4, I saw OCP_CBC and there was no introduction about it in the datasheet.
Can you clarify the functionality of this configuration?
I understand that changing the PWM output can clear OCP fault ,right ?Which PWM input does this refer to?
Thank you.
BR
Alex
MCF8329A: Cannot get motor spinning on custom hardware
Tool/software:
Hi,
I am trying to get going with a motordriver based around mcf8329a. However there seems to be a few issues in my setup.
I have bought and tested everything with ti:s evaluation board for this device, and it is really working well with my motor. I have tuned and exported all the settings in a json.
Now however I am trying the same code on our own hardware and I am getting no expected results. The motor does not start spinning. Once scoped the phases ABC I can see that the driver is doing something, beginning with switching the phases with a 50kHz square on all phases, but after that nothing, no movement, no faults reported or anything. So I am a bit stuck. Do you have any idea of what could be the issue?
I have communication and I can talk to the mcf8329a, but I cannot get the motor turning over. I am using Arduino as a test platform.
Theese are my register settings;
Register registers[] = { {0x00000080, 0xE2EBD667}, {0x00000082, 0xC0E89EE6}, {0x00000084, 0x50A24EC2}, {0x00000086, 0x93372007}, {0x00000088, 0x16788328}, {0x0000008A, 0x9AAD5721}, {0x0000008C, 0x1BF4182A}, {0x0000008E, 0x60980960}, {0x00000094, 0x00000000}, {0x00000096, 0x00000000}, {0x00000098, 0x80000004}, {0x0000009A, 0x00000000}, {0x0000009C, 0x00000000}, {0x0000009E, 0x00000000}, {0x00000090, 0x26483186}, {0x00000092, 0x71402888}, {0x000000A0, 0x0946027D}, {0x000000A2, 0x02008165}, {0x000000A4, 0x40032310}, {0x000000A6, 0x40100000}, {0x000000A8, 0x03E8C00C}, {0x000000AA, 0x06A045C0}, {0x000000AC, 0x80008079}, {0x000000AE, 0x80000102}, {0x000000E0, 0x00000000}, {0x000000E2, 0x00000000}, {0x000000E4, 0x24318C94}, {0x000000E6, 0x00000000}, {0x000000E8, 0x3A000000}, {0x000000EA, 0x00000000}, {0x000000EC, 0x80000000}, {0x000000EE, 0x00000018}, {0x000000F0, 0x030503A0}, {0x000000F2, 0x02600160}, {0x000000F4, 0x00000000}, {0x00000196, 0x00000000}, {0x0000019C, 0x045C1DE8}, {0x0000040E, 0x00197857}, {0x0000043C, 0x00440000}, {0x0000043E, 0x00680000}, {0x00000440, 0x00CC0000}, {0x00000450, 0x00000002}, {0x00000458, 0x00020002}, {0x0000045C, 0x01FDA000}, {0x00000460, 0x00033F62}, {0x00000462, 0x000376CF}, {0x00000464, 0x000261AE}, {0x000004AA, 0xFA88A300}, {0x000004AC, 0xF86B7264}, {0x000004CC, 0x00A80000}, {0x000004CE, 0x00A89616}, {0x000004D0, 0xFFADDE8B}, {0x000004D2, 0x008D6DC2}, {0x000004DC, 0xFFA8A1F4}, {0x000004DE, 0x0075FB02}, {0x000004E0, 0x000BB21E}, {0x000004E2, 0x008FFF8F}, {0x0000051A, 0x00000000}, {0x00000532, 0x00E9C550}, {0x00000542, 0x04CCBAB0}, {0x000005D0, 0x00000000}, {0x0000060A, 0x00000000}, {0x0000060C, 0x005F3E12}, {0x000006B0, 0x00000005}, {0x000006BA, 0x00000172}, {0x000006E4, 0x0004000B}, {0x0000071A, 0x00A737C2}, {0x0000075C, 0xFFFFFEA1}, {0x0000075E, 0x008E5BE6}, {0x0000076E, 0x00000000}, {0x00000774, 0x58830AD3} };
This is my layout;
I am interested in how startup and speed command is set over i2c with the evaluation kit. Which pins are asserted high/low to startup?
I have tried to clear all faults, but no difference.
This is my code for setting speed;
// Function to set the motor speed using ALGO_DEBUG1 register void setMotorSpeed(uint8_t address, uint16_t speed) { // Read the current value of ALGO_DEBUG1 register (address 0xEC) uint32_t currentValue = MCF8329AReadRegister(address, 0xEC); // Modify the SPEED_OVER_RIDE and DIGITAL_SPEED_CTRL fields currentValue |= 0x80000000; // Set SPEED_OVER_RIDE to 1 (bit 31) currentValue &= ~(0x1FFFF << 16); // Clear DIGITAL_SPEED_CTRL bits (30-16) currentValue |= ((speed & 0x1FFFF) << 16); // Set DIGITAL_SPEED_CTRL bits (30-16) // Split the modified value into bytes uint8_t byte4 = (currentValue >> 24) & 0xFF; uint8_t byte3 = (currentValue >> 16) & 0xFF; uint8_t byte2 = (currentValue >> 8) & 0xFF; uint8_t byte1 = currentValue & 0xFF; // Write the updated value back to ALGO_DEBUG1 register MCF8329AWriteRegister(address, 0xEC, byte4, byte3, byte2, byte1); }
I am not sure if this is the correct way to set the motor rpm. Seems odd that it is a debug register.
Any help appreciated!
DRV8353: CSA_CAL_x
Tool/software:
Hello team,
1. If there're two current shuts(CSA_CAL_B & C) used only, how to set the register bit on rest of CSA_CAL_A?
2. What's recommend setting value on CAL_MODE register? 0b or 1b? why?
Regards
Brian
BOOSTXL-DRV8323RS: BOOSTXL-DRV8323RS
Tool/software:
Title: **Issue with Unstable Current Consumption at High RPM on BLDC Motor with 393KV and 10 Pole Pairs Using SimpleFOC**
Hi community,
I hope you are all working on exciting projects!
I have a question regarding the control of a BLDC motor using the FOC algorithm developed by the SimpleFOC library. The purpose of this question is to
investigate whether the issue is related to the algorithm or the hardware setup, and to see if there are any potential adjustments I can make to resolve the problem.
My setup:
- **Development Board:** STM32G431KBT6 running code developed in the Arduino IDE.
- **Motor Control Settings:**
motor.foc_modulation = FOCModulationType::SpaceVectorPWM;
motor.torque_controller = TorqueControlType::voltage;
motor.controller = MotionControlType::velocity;
motor.PID_velocity.P = 0.01;
motor.PID_velocity.I = 0.1;
motor.PID_velocity.D = 0.00;
driver.pwm_frequency = 20000;
motor.phase_inductance = 0.000105f;
motor.KV_rating = 393;
```
- **Motor Setup:** 10 pole pairs, KV = 393, phase inductance = 105 µH, Hall sensors for feedback.
- **Driver:** DRV8323RS development board (6 PWM outputs for controlling the BLDC motor).
- **BLDC Motor:** 3-phase, 10 pole pairs, 24V, with Hall sensor feedback (3.3V and ground).
The Problem:
When I set the RPM by gradually increasing it by 500 RPM increments, I noticed that the current consumption becomes significantly high.
Even before reaching 3000 RPM, the current draws around 3.2A. To address this, I introduced the phase inductance and KV value to lower the torque,
aiming to reach field weakening and reduce the current draw. While this helped reduce current consumption and allowed the motor to reach higher RPM, the system became unstable in terms of current consumption. Eventually,
this instability caused the MOSFETs and MCU to burn out.
I am confident that the inductance and KV values are correct, and I also tried introducing phase resistance, but it didn’t have an impact.
Interestingly, I also tested other BLDC motors with 190KV and 372KV, and these worked fine with stable current consumption. The problem only occurs with the 393KV, 10-pole pair motor.
I considered the possibility that the issue might be with the motor itself. However, when I tested with a servo motor and an ESC (30A), it worked fine,
with the current consumption being stable at the following RPMs:
- 3000 RPM: 1A
- 6000 RPM: 1.75A
- 8000 RPM: 2.41A
Given these tests, I suspect that the issue is related to the specific motor setup, but I'm unsure how to achieve stable current consumption at higher RPMs
without damaging the driver board. Does anyone have suggestions on how to stabilize current consumption for the 393KV, 10-pole pair motor in high RPM applications?
Thank you for your help!
DRV8849: Step pins connect suooprt
Tool/software:
Hi Team,
Could we connect the pin STEP1 and STEP2 with same frequency signal?
Besides, do we have some suggestions to enhance MCU's GPIO frequency? Because customer uses low-end MCU and it is limited by PWM resource, they can only use GPIO which can only support 2kHz frequency but the suitable frequency of LDRV8849 is more than 8kHz. So do we have some suggestions to solve this issue? Thanks.
Best Regards,
Ryker
[FAQ] MCF8316C-Q1: Spinning BLDC motors with Motor Studio - default JSON files for different specifications
Other Parts Discussed in Thread: MCF8329A, MCF8315C, MCT8316A
Tool/software:
Motor Studio is the primary GUI to evaluate the MCx family of devices (MCF8315C, MCF8316C, MCT8315, MCT8316, MCF8329A, etc). Its a powerful GUI for both basic and advanced users to enable them spin their BLDC motors effectively with the MCx portfolio.
To get started with the Motor Studio, typically its easier for the user to start from a default configuration depending on their application and take the tuning from there.
This post is intended to provide a basic configuration for different motors so that users can start with a known working configuration.
Attached below are .JSON files which user can input into Motor Studio to start running their motor successfully.
1. BLDC_Fan_1A_140Hz_MCF8316C_v1.json
e2e.ti.com/.../8004.BLDC_5F00_Fan_5F00_1A_5F00_140Hz_5F00_MCF8316C_5F00_v1.json
2. BLDC_Fan_2.5A_50Hz_MCF8316CQ1_v1.json
e2e.ti.com/.../8004.BLDC_5F00_Fan_5F00_2.5A_5F00_50Hz_5F00_MCF8316CQ1_5F00_v1.json
3. BLDC_pump_1.3A_700Hz_MCT8316A_v1.json
e2e.ti.com/.../1805.BLDC_5F00_pump_5F00_1.3A_5F00_700Hz_5F00_MCT8316A_5F00_v1.json
4. BLDC_Pump_2A_300Hz_MCF8316C_v1.json
e2e.ti.com/.../2627.BLDC_5F00_Pump_5F00_2A_5F00_300Hz_5F00_MCF8316C_5F00_v1.json
How to input .JSON files in Motor Studio:
1. Download one of the .JSON which matches closest to your application
2. Once the respective device is connected in Motor Studio, click on "File" in the top ribbon and then click "Load registers"
3. Select the downloaded .JSON file and a basic configuration is loaded in Motor Studio.
4. You can try spinning the motor directly now!
DRV8908-Q1: Is there any recommended power-off sequence for DRV8908-Q1?
Tool/software:
Hello experts,
is there any recommended power-off sequence for DRV8908-Q1?
If yes, could you please let me know the detail?
Thanks,
Kento
DRV8908-Q1: Can nSLEEP pin be low during PWM output in DRV8908-Q1?
Tool/software:
Hello experts,
Can nSLEEP pin be pulled to low during PWM output in DRV8908-Q1?
Any concern for this?
Thanks,
Kento
DRV8908-Q1: Layout example pulls nFAULT pin to low, but nFAULT pin is recommended to be pulled up.
Tool/software:
Hello experts,
In the datasheet of DRV8908-Q1, the layout example pulls nFAULT pin to low.
However, it is recommended to be pulled up in the datasheet.
Is this layout example incorrect?
Thanks,
Kento
DRV8343-Q1: SPI communicate no response.
Tool/software:
Hi Teams,
e2e.ti.com/.../0_5F00_DRV8343SEVM-DVDD-NO-Voltage.PPTX
We are evaluating the DRV8343 with EVM and Customer MCU. But found cannot use SPI to communicate with DRV, and seems DVDD short to GND.
Can you kindly help to guide us to continue the evaluation?
All details are listed in the attachments.
BRs,
Marsh
DRV8143-Q1: ITRIP Regulation causes OTP fault
Tool/software:
Hi Team,
I'm trying to use the ITRIP regulation function on the device however after reaching the trip current, the device oscillates for a brief time and then shuts off due to over temperature. As you can see from the image the peak current is 22A however the ITRIP current is 7.5A, the device senses this value but reacts to it very slowly. What might be the issue causing this regulation current to reach peak 22A values? How can I fix it?
Regards
Baris
DRV8801EVM: GUI Download
Tool/software:
Hello,
When I try to download the GUI for the EVM (www.ti.com/tool/download/SLVC370) I get an error (broken link?). Is there a different link to use?
DRV8434S: Cannot trigger OL fault
Tool/software:
I have had good success using the Stepper Driver. However, when trying to detect a disconnected motor, I am unable to latch the OL bit in the FAULT register. All control is via SPI. The programming is on an Arduino platform (M0+ controller) with a Pololu software driver. The software driver and the Motor Driver have worked very well up to this point, with successful speed, direction, and DAC control.
Vref is 0.670 V
TRQ_DAC is 75%.
CTRL4 is 0x08. I tried 0xB8
Microstep_Mode 0x01
A tight loop test routine executes 20 steps with 2 ms between steps in the hope of triggering a OL.
FAULT register returns 0x00 after the 20 steps.
Suggestions appreciated.
DRV3946-Q1EVM: Schematic request
Other Parts Discussed in Thread: DRV3946-Q1
Tool/software:
Hello, I have the user manual and datasheet for the DRV3946-Q1EVM. Can I please get the schematic for the eval board? Thank you
MCF8329A: question about current sensing
Tool/software:
Hello. Could you explain how the MCF8329A handles situations where the reference voltage for current sensing is not exactly 1.5V but has a slight bias?
DRV8714-Q1: Additional Protection at gate pin
Tool/software:
Hi,
I am working with DRV8714 and DRV8706 for my motor control application. Do I need to add gate source protection clamping diode external to the driver IC from GH to SH and GL to PGND. From the block diagram this is already included inside for the high side MoSFETS but not provided for the low side MoSFETs for DRV8714.Do I need to add this protection externally for any of these MosFETs. Please confirm if it is required for driver 8706 also.
Thanks and Regards
Reshma
DRV8876-Q1: Software Selectable IMODE
Tool/software:
Hello,
In our design, we are using DRV8876-Q1.
For the IMODE selection,
IMODE selection resistors are attached.
We are using 20.5k instead of 20k and we shall use 52.3k+10k instead of 62k resistor.
Is it okay for the application?
Additionally for the software selectable IMODE these resistors connected via npn BJTs,
Is it applicable? Does BJT voltage drop cause any issues for the application?
Best regards,
Egemen Aksoy