Quantcast
Channel: Motor drivers forum - Recent Threads
Viewing all 21739 articles
Browse latest View live

DRV8210: The MD solution in IPC

$
0
0
Part Number: DRV8210
Other Parts Discussed in Thread: ULN2003A,

Tool/software:

Hi BU expert,

In IP camera, I have noticed that some customer use motor drive and some customer use Darlington. Why there is the difference? Thanks.

Regards,

Charlie


DRV8434S: Multiple drivers, enable to select?

$
0
0
Part Number: DRV8434S

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

$
0
0
Part Number: DRV8316

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

$
0
0
Part Number: 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

$
0
0
Part Number: MCF8329A

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

$
0
0
Part Number: DRV8353

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

$
0
0
Part Number: 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

$
0
0
Part Number: DRV8849

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

$
0
0
Part Number: MCF8316C-Q1
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?

$
0
0
Part Number: 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?

$
0
0
Part Number: 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.

$
0
0
Part Number: DRV8908-Q1

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.

DRV8143-Q1: ITRIP Regulation causes OTP fault

$
0
0
Part Number: DRV8143-Q1

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


DRV8434S: Cannot trigger OL fault

$
0
0
Part Number: DRV8434S

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

$
0
0
Part Number: DRV3946-Q1EVM
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

$
0
0
Part Number: MCF8329A

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

$
0
0
Part Number: DRV8714-Q1

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

$
0
0
Part Number: DRV8876-Q1

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

Viewing all 21739 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>