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.
Part Number: TPS54160
I wrote a C++ Program to try to calculate the equation 47 the data sheet
Can't paste the data sheet equation in but I will give you the C++ code and Output to show what the computer calculates.
Below are inputs to the equation:
// set RLOAD to 10 ohmsR_LOAD = 3.3 / .33; // tenth the currentcout << "R_LOAD = " << R_LOAD << endl;cout << "fc = " << fc << endl;cout << "COUT = " << COUT << endl;cout << "pi = " << pi << endl;COUT_Resr = 10.0e-3;cout << "COUT_Resr = " << COUT_Resr << endl;
values printed out by the C Program:
COUT = 4.7e-05 after deratingfp_MOD = 1539.22pi = 3.14159COUT = 4.7e-05fz_MOD = 338628fc_max = 45353.6fc_min = 7696.08fc = 45000R_LOAD = 10fc = 45000COUT = 4.7e-05pi = 3.14159COUT_Resr = 0.01
G_MOD_fc = 67.773 value come back
G_MOD_fc_numerator = gm_ps * R_LOAD * ( (2.0 * pi * fc * COUT * COUT_Resr ) + 1.0);G_MOD_fc_denominator = ( 2.0 * pi * COUT * (R_LOAD + COUT_Resr ) ) + 1.0;G_MOD_fc = G_MOD_fc_numerator / G_MOD_fc_denominator;//cout << "G_MOD_fc = " << G_MOD_fc << endl;
G_MOD_fc = 67.773 // Calculated output from C++ Program
Expected answer in the data sheet is
For the example problem, the gain of the modulator at the crossover frequency is 0.542. Next
This is on page 37 of the data sheet.
Thanks for any help on this
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
TI Wide Vin Buck Converter & Controller Applications Engineer
In reply to YangZhang:
Thank You Yang,
I would like to go to another equation in the app note:
Equation 51 and 48 calculate a R_C value. When I plug in the values into the equation the numbers for Equation 51 seem to be wrong here is the
C code I am using:
double R_C;double gm_EA;double VREF;fz_MOD = 338.0e3;gm_EA = 97.0e-6;VREF = 0.8;G_MOD_fc = 0.542;cout << "fz_MOD = " << fz_MOD << endl;cout << "gm_EA = " << gm_EA << endl;cout << "VREF = " << VREF << endl;cout << "VOUT = " << VOUT << endl;cout << "G_MOD_fc = " << G_MOD_fc << endl;//R_C = ( VOUT ) / ( G_MOD_fc * fc * gm_EA * VREF ); // 51 fz_MOD//cout << ( G_MOD_fc * fz_MOD * gm_EA * VREF ) << endl;R_C = VOUT / ( G_MOD_fc * fz_MOD * gm_EA * VREF ); // 51 fz_MODcout << "R_C = " << R_C << endl;R_C = ( VOUT ) / ( G_MOD_fc * gm_EA * VREF ); // 48cout << "R_C = " << R_C << endl;
And the output or values I used in the equations:
fz_MOD = 338000gm_EA = 9.7e-05VREF = 0.8VOUT = 3.3G_MOD_fc = 0.542R_C = 0.232133R_C = 78460.8
expected value is
• RC = 76.2 kΩ
Not that for equation 51 it is very small:
Equation 48 seems reasonable. The app note suggests need to use equation 51 for this example:
For the example problem, the ESR zero is located at a higher frequency compared to the crossover frequency soEquation 50 through Equation 53 are used to calculate the compensation components. In this example, thecalculated components values are:• RC = 76.2 kΩ• CC = 2710 pF• Cƒ = 6.17 pF
This is on page 38 of TPS54160.pdf data sheet.
In reply to Gary Olson:
App note SLVS9492.pdf (heading at the top TPS54620. Entitled
TPS54620 4.5 to 17V input 6-A Synchronout Ste Downt Swift Converter
Calculating the Type 2 compensation resistor R4 in this app note
had an equation on page 28 equation number 35
R4_num = 2.0 * pi * fc * VOUT * COUT;R4_denom = ( gm_ps * gm_EA * VREF );
R4 = R4_num / R4_denom;
I can get a resistance in the ball park especially if I change the fc = 36500
leaving all the other parameters the same.
double R4_num; double R4_denom; //double R4;
//fc = 0.1 * f_sw_hz; fc = 36500.0;
R4_num = 2.0 * pi * fc * VOUT * COUT; R4_denom = ( gm_ps * gm_EA * VREF );
cout << endl << endl << endl;
cout << "fc = " << fc << endl; cout << "VOUT = " << VOUT << endl; cout << "COUT = " << COUT << endl; cout << "gm_ps = " << gm_ps << endl; cout << "gm_EA = " << gm_EA << endl; cout << "VREF = " << VREF << endl; cout << endl;
cout << "R4_num = " << R4_num << endl; cout << "R4_denom = " << R4_denom << endl; cout << "R4 = " << R4 << endl;
Results of C++ output
fc = 36500VOUT = 3.3COUT = 4.7e-05gm_ps = 6gm_EA = 9.7e-05VREF = 0.8R4_num = 35.5701R4_denom = 0.0004656R4 = 76396.2
when fc is left at 45000
R4_num = 43.8535R4_denom = 0.0004656R4 = 94187.1
I agree with this as the answer to the first question. I was hoping to hear more about the next question.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.