This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRV8301 current sense ADC & isolator

Other Parts Discussed in Thread: DRV8301, CONTROLSUITE, MOTORWARE, AMC1204, ISO122, ISO124, ISO121

Hello,

Since DRV8301 has its own current sense amplifiers and our microcontroller has adc modules, we don't want to use an external ADC converter, but we still want to isolate DRV8301's output of current amplifiers from the microcontroller as the motor noise became a huge problem for us. Unfortunately, we couldn't find a good solution for an analog isolator, do you have any suggestions for us?

Thanks,

Asa

  • Hi Asa,

    Have you looked at the DRV8301-HC-C2-KIT and DRV8302-HC-C2-KIT in controlSUITE?

    Both of these applications are designed to run between 8 and 60VDC with 60A FETS. The schematics, gerber, and BOM files are available.

  • We have the DRV8301-HC-C2-KIT but the noise on that board is so high that we want to use digital isolators for future designs. Unfortunately, we couldn't find a good isolated current sense module or a way to interface this with DRV8301 so we're asking for your suggestions on this. A relevant discussion can be found here: http://e2e.ti.com/support/microcontrollers/hercules/f/312/t/263148.aspx

  • Are there any suggestions from the TI end about isolating the ADC pins (SO1&2) of the DRV8301 from the microcontroller? Or shall we use an isolated ADC current sense module and ignore DRV8301's current sense / ADC pins all-together?

  • Maybe something like HCNR201 between SO1&2 and the MCU? Any suggestions?

  • Hi Asa,

    Just to get some more information. What your concerns for the noise? Are you worried about not being able to get a clean reading or damage to the microcontroller?

    -Nick

  • We currently have the DRV8301-HC-C2-KIT and the noise on the board is so high that we can't read the SCI data from the SCI pins of the microcontroller when we enable the motor (see: http://e2e.ti.com/support/microcontrollers/hercules/f/312/t/263148.aspx ) Thus, we want to isolate the driver part from the controller part.

  • Asa,

     I would like to see if there is a way to resolve the issue without isolation first as this is the first time I have heard of this issue.

    Just to clarify you have the DRV8301-RM48-KIT not the DRV8301-HC-C2-KIT, as the HC kit does not contain a motor or power supply. Also, are you using custom software or a TI solution?

    Have you tried powering from a bench supply and seeing if the same issue occurs? And when you say "read the SCI data from the microcontroller", you mean you have another device communicating to the micro, correct?

  • Hello Nicholas,

    Yes, we have the DRV8301-RM48-KIT kit with the motor and the power supply. We're using a TI solution, specifically, foc_encoder_speed solution from motorware. We only added a sci code piece to the solution in order to communicate with a device that sends us serial data at ~345k baudrate. We tried this with various power supplies, including a bench supply andthe power supply from the kit. We also used different motors, including the motor from the kit.

    We debug the code and can receive the packets and can verify the information sent from the device. However -as we're using the TI solution- when we enable the control loop by setting "EnableFlg" to 1 while debugging via CCS, we start to get corrupted (meaningless) data with parity and checksum errors (the device also sends a checksum packet). By the way, when we don't plug the motor to the kit, we can receive correct data without any problems even with "EnableFlg" set to 1, so we think the code itself is not the problem. We're using the GPIO-28 pin on the board which is connected to SCI_RX Base (LinRX SCI compatibility mode) and we can see spikes via oscilloscope from that pin which are not present initially and appear once we set "Enable_Flg" to 1 (see here for the screenshot).

    Thanks,

    Asa

  • Hi Asa,

    You mention in your last post in the other thread that you implemented the changes and introduced a bias. Did this resolve the SCI issue and add the bias issues or did you now have both? Would it be possible to account for the bias? Are you sure the current feedback lines are introducing the noise? There are other lines from the motherboard as well.

    -Nick

  • Barring a fix to this issue, I would recommend the isolators that we currently use on the kit, ISO7241A.

    -Nick

  • It did resolve the SCI issue, but even if the SO1&2 are not introducing the noise (we think it comes from some place else too), we can't just isolate some of the pins and not isolate the others, since the isolation won't mean anything if both return paths are connected at some place else. ISO724xs are great digital isolators but SO1 and SO2 are analog output pins (producing 0-3.3V with 1.65V offset), that's why we need an analog isolator rather than a digital one. There are isolated ADC modules specifically for current sensing (like AMC1204 which is specifically suggested for shunt based current sensing in motor control), but DRV8301 already amplifies and sends the current data, so we thought we could isolate those outputs instead, we just need the right part to do that.

     -Asa

  • Sorry about that. Just from what I can find, perhaps you could utilize an Isolation Amplifier, ISO121, ISO122, ISO124.

    -Nick

  • why not float the MCU with the driver and just isolate your UART back? this is much simpler and lower cost.

    if you have many serial channels then you can look at isolating the current/voltage feedback instead.