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: DRV8301-HC-EVM Rev D + TMDSCNCD280049C example labs

Part Number: DRV8301
Other Parts Discussed in Thread: BOOSTXL-DRV8320RS, LAUNCHXL-F280049C, TMDSCNCD280049C, C2000WARE, , MOTORWARE, DRV8320

Hello,

I have been evaluating a combination of the BOOSTXL-DRV8320RS and the LAUNCHXL-F280049C, and have been quite happy with the results.

However I am interested in evaluating the F280049C on the higher power DRV8301-HC-EVM Rev D. To that end, I have a setup described by option 1 in this post:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/779900/drv8301-69m-kit-f280049-with-motor-sdk-on-drv8301-kit

"1. DRV8301-HC-C2-KIT + TMDSCNCD280049C"

I have the DRV8301-HC-EVM Rev D, a DIMM adapter board and the TMDSCNCD280049C.

It appears there are two paths in the Motor Control SDK for instaSPIN-FOC for this board, and pieces are missing from both:

Path 1: 

InstaSPIN-FOC Labs contained in the C2000Ware_MotorControl_SDK_4_01_00_00

These labs support the  BOOSTXL-DRV8320RS + LAUNCHXL-F280049C configuration as before just fine, however it appears there at some point was an intention to also allow support of the DRV8301.

The F280049C lab guide at "...\C2000Ware_MotorControl_SDK_4_01_00_00\solutions\common\sensorless_foc\docs\labs\MotorControl SDK InstaSPIN Lab Guide.pdf" describes the labs as compatible with 

something called an HV kit:

The following figure is a code snippet from "labs.h" also appears drivers for the DRV8301 board may have been implemented:

However, no such 'drv8301.h' drivers exists anywhere I could search.

PATH 2:

InstaSPIN-FOC labs contained in "...\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\drv8301kit_revD\f28x\"

These labs are all in support directly of the DRV8301-HC-EVM Rev D (considering the path above alone).

The F2802x, F2805x, and F2806x are supported, but there is a lack of support for the F280049C board in these labs:

I am less familiar with these labs. It appears that these labs have perhaps fallen out of favor compared to the MotorControl SDK, which more directly supports the F280049C that I would prefer to implement in my design.

A solution  would be to purchase the TMDSCNCD28069MISO chip, the F2806x supported variant.

I feel like I am really close to running the DRV8301-HC-EVM Rev D with either the missing drivers for the DRV8301, or some slight modifications to the code for the F2806x supported lab.

Do drivers for the DRV8301 exist?

Could modifications could be made, for example to the F2806x lab, to support the TMDSCNCD280049C?

Am I better off using the TMDSCNCD28069MISO for this purpose?

The post I linked above claimed the MotorControl SDK would have example lab projects for the DRV8301-HC-EVM Rev D + TMDSCNCD280049C, but only the MotorWare SDK has any labs for the DRV8301.

Any further insight into my options would be much appreciated.

  • Do drivers for the DRV8301 exist?

    You can use the driver in MotorWare for F28004x.

    Could modifications could be made, for example to the F2806x lab, to support the TMDSCNCD280049C?

    No. You need to use the example in Motor Control SDK for F28004x, and just add the DRV8301 driver in the example lab.

    Am I better off using the TMDSCNCD28069MISO for this purpose?

    Yes if you want to use the example for DRV8301-HC-EVM in motorWare.

  • You can use the driver in MotorWare for F28004x.

    There is no DRV8301 driver in the MotorWare for the F28004x (abbreviating to 4x). Only the F2802x, F2805x, and F2806x (abbreviating to 2x, 5x, and 6x) have drivers for the DRV8301 (see screenshot above).

    Today I took a closer look at the code in both MotorWare and MotorControl labs. The HAL code in the MotorWare labs ONLY supports the 2x, 5x and 6x between the DRV8301. The HAL code in the MotorControl SDK ONLY supports the 4x between the DRV8320.

    The discrepancy between the HAL files of each lab includes function names being called "extern void DRV8301_writeSpi", and in dependencies specific to the controller, i.e. for the 4x lab and 6x lab, each hal.c depends upon the gpio.h and cpu.h files specific to the 4x or 6x, respectively.

    Below are code snippets from drv8320.h (from the 4x lab), and drv8301.h (from the 6x lab). The code is very similar, but the names are enough that simply substituting the code breaks the compiler everywhere, and following the declarations shows that the code is specific to the cpu.h and gpio.h files to the 4x and 6x, respectively, and cascades very far into all of the driver files.

    Technically it appears possible to reconfigure this code by hand, but it will be beyond painful.

    I suspect the tools used to construct this code handled it in a much more automatic way, due to the similarities between the DRV8301.c and DRV8320.c files. 

    Moving forward I think using the TMDSCNCD28069MISO is the only viable option.

  • Yes, you can use TMDSCNCD28069MISO if you don't want to make your own board.