BOOSTXL-DRV8320H interface with LaunchXL-F280049C

Dear Community,
I am using custom driver board which have BOOSTXL-DRV8320H and wants interface with LAUNCHXL-F280049C for BLDC Senseless motor.
I am refering this example >>openExample('mcb/SensorlessFocFOSMOExample')
Does DRV8320H needs any driver code to integrate with Matlab code?
How to set nFAULT condition to observe fault?
What should be the interface required for hardware connection?
What should be the standard deadband limit ePWM. Currently RED,FED set to 15 period cycle.
Is there any way to observe these PWM waveforms?
Thanks.

 Accepted Answer

Hello @Bhagyesh,
As per my understanding, you are trying to interface BOOSTXL-DRV8320H with LAUNCHXL-F280049C for BLDC Sensor-less motor control.
I think that you are referring to the shipped example by MathWorks:
This example uses F28069D or F28739D Launch-pad.
Refer to the reference manual for F28739D and F280049C from Texas Instruments, which can be downloaded from below "Technical documentation" tab seen in the websites:
We can see that the pinout and peripheral configurations for both the launch-pads are different and therefore we cannot directly use F280049C in place of F28379D.
Follow the below steps, which may help you to interface BOOSTXL-DRV8320H with LAUNCHXL-F280049C
1) As a first step, ensure that you correctly connect the pins of (BOOSTXL-DRV8320H) to the LAUNCHXL-F280049C. Refer to the data-sheet of BOOSTXL-DRV8320H: https://www.ti.com/tool/BOOSTXL-DRV8320H#tech-docs For an example, the pin 6 of "J1" jumper of BOOSTXL-DRV8320H outputs the sensed voltage. Therefore, connect it to one of the ADCIN (ADC input) pins of (LAUNCHXL-F280049C). Repeate this procedures for all the pins and peripherals.
2) BOOSTXL-DRV8320H is a three phase inverter with all the protections and other features build in it. It is controlled by LAUNCHXL-F280049C. Therefore, DRV8320H does not need any driver code to integrate with Matlab code. But, You need some of the tools from Texas instruments that are essential to build and deploy the code for F280049C . In order to install them, execute the below command in MATLAB command window
c2000setup
This will open an installation wizard, which will have the list of all the necessary third party tools. Navigate to the links and download all of the tools that are listed. After you are finished installing all the tools, proceed to further steps in the installation wizard and provide the correct installation path for all the tools.
3) Once you finish with steps 1 and 2, Open the simulink model by executing the below command in MATLAB command window:
openExample('mcb/SensorlessFocFOSMOExample')
Here, all the peripherals (PWM, ADC, QEP etc) are configured for F28379D launch pad. But, as you want to integrate it with F280049C, you need to reconfigure all the peripherals as per the connections you made in step (1). REMEMBER: The peripheral blocks appearing in the shipped example are for F28379D. Therefore, delete those blocks and replace them with the appropriate peripheral blocks appearing in the library as shown below:
4) Open the hardware configurations by clicking on "Hardware Settings" icon appearing in the "Hardware Tab as shown below:
5) Change the "Hardware board" to "TI Piccolo F280049C LaunchPad" by selecting from the dropdown menu. Also, reconfigure all the peripherals as per connections made in step (1) , by expanding "Target hardware resources" drop-down as shown below:
6) If you face any difficulty in configuring the peripherals for F280049C, refer to the following documentations from c2000 Microcontroller blockset.
8) The dead time duration is decided by the turn-on and turn-off time of the power electronic switches used in the inverter leg. You are only changing the conroller board, not the inverter. Therefore, you can keep it the same. Usually, the deadband depends upon the power electronic switch used. It should be large enough to allow the switche to be completely OFF. On other hand, it should not be too large, else it will affect the dynamics of inverter. Try to keep deadband below 0.1 micro-seconds. Presently it is set to 15 cycles, which roughly equals 0.08 microseconds. (F28379D operates at 200MHz). In your case, F280049C operates at 100MHz. You can program the "RED" and "FED" accordingly.
7) The most appropriate way to measure the PWM signals is to use voltage probes and an oscilloscope to probe the PWM signal from ePWM pins of F280049C launchpad. Set the time division to 0.1 microseconds per division to observe the deadband.
I hope this clearifies your question !

5 Comments

Thanks @Shivam Gothi for quick responce.
How to calculate Deadband value for F280049C 100MHz? Can you share any referance?
To measure PWM wave, I am using oscilloscope. But I am looking for How can the same can be measured in MATLAB.
One more query, How to check BLDC Commutation sequence used (MOSFET switching sequence) for same example?
Thanks.
Hello @Bhagyesh,
You can use the below formulla to find the value value of "RED" and "FED" register:
Suppose that for 100Mhz clock frequency, you require a dead time of 0.1 microseconds. So you will set the "RED" and "FED" to:
This can be set from the block parameters of PWM block as shown below:
The only way to measure a signal using MATLAB is to configure serial communication with the microcontroller and use a "host model" which reads the values sent by the controller. These values can be plotted on the scope or saved on the base workspace for analyses purpose. The usage of host model is illustrated in the same example that you are reffering.
But, serial communications are slow. Therefore, you can only observe the low frequency signals. But as you know that the PWM frequency of inverter is order of kilo hertz. To add further, the dead band is only 0.1 micro-seconds. Serial communications cannot transmit data at such high rates. Therefore, you cannot use MATLAB to observe deadband time between the pulses. The only possible way is to use an oscilloscope.
The present example uses PMSM. The stator of PMSM is excited with three phase sinusoidal voltages. Here, the concept of phase sequence is used to explain the direction of rotating magnetic field. This is not the case of BLDC. In BLDC, the stator is excited with quasi square wave voltage, based upon the position of the magnetic field. This position is sensed by the hall sensor and appropriate phase is excited at that moment. This is called the commutation sequence.
Refer to the below explanation to get understanding about BLDC excitation:
I think that you should refer to the example of BLDC motor control using hall sensors attached below. It will give you an idea of Hall sensor sequence calibration for BLDC motor
Below given example illustrates 6 step commutation of BLDC motor:
I hope you find the information usefull !
@Shivam Gothi: Thanks again for detailed explanation.
Need one more clarification regarding Hardware connection with DRV8320H.
Since I am refering https://in.mathworks.com/help/mcb/gs/sensorless-foc-pmsm-smo-fo.html for BLDC SENSORLESS, It uses Flux observer.
Correct me If I am wrong---> In this simulink model, It is taking feedback of Phase Current (Ia,Ib) from motor, and Voltage converting from Inverser Park Transform (V_alfa, V-beta). Do I need to take Voltage Input via ADC from motor. As in model only Ia, Ib are sampled to ADCIN channels.
Please find atatched snapshot from model.
Thanks,
Bhagyesh.
Hello @Bhagyesh,
There is no need to sample the phase voltage of the motor. Only line currents are sampled, because we want to control the currents. The tag "VI_fb" may confuse you.
  • Actually, the sensorless observer requires phase voltage of motor as an input quantity.
  • We know that the output of current controller is and , thich gets converted to Va, Vb and Vc modulating signals.
  • From these modulating signals, we can find the line voltage of the motor.
  • Therefore, instead of sampling the motor's phase voltage, we are directly utilizing the and outputs from the current controllers. This approach is preferred because these outputs accurately represent what is applied to the motor terminals.
As a conclusion, only line currents needs to be sampled and , input for the sensorless observer are directly taken from the output of current controllers.
I hope the explanation helps !

Sign in to comment.

More Answers (0)

Products

Release

R2024a

Asked:

on 24 Jan 2025

Commented:

on 29 Jan 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!