Author Topic: Desiging with DrMOS  (Read 2303 times)

0 Members and 1 Guest are viewing this topic.

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Desiging with DrMOS
« on: March 16, 2020, 03:15:32 pm »
Hi,
In this thread I have asked people about solutions to powering a kintex  FPGA
https://www.eevblog.com/forum/fpga/xc7k325t-low-cost-power-management/
And blueskull has suggestued to Use DrMOS modules as a good way of doing it. I never heard of DrMOS before, But after searching them, Actually I kinda liked them. I have found some parts for driving them like RT2702.

I want to know your ideas and experiences with them? Have you done project with these beauties? what did you use to drive them?
This Idea came to my mind to use a Paduk MCU like PFS173 with internal ADC to build one(some of the cheapest solutions), is it doable?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #1 on: March 17, 2020, 07:30:02 am »
Quote
To implement peak mode control, regardless voltage or current, you need cycle to cycle sensing and ridiculously fast comparators and interrupt system.

I recommend you to take a look at SiLego's GreenPAK chips, and build a pure-analog controller IC (even with DVFS since the comparator hysteresis can be tweaked over I2C for some parts).

The learning curve will be extraordinarily steep as you will be designing literally an SMPS controller chip, which is what those grey beard gurus at TI/LT do. But once you make it, you get wonderful <$0.5 SMPS chip of your own that can be tweaked in any possible ways.
Thanks for the tips, Any appnote, book or part number to start with? what's your favorite DrMOS and GreenPAK  chip part number is?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #2 on: March 17, 2020, 09:04:47 am »
Quote
I work exclusively with GaN devices now, so I no longer use a DrMOS device. The SiLego part I'm working on is SLG46120. It has the fastest comparator, if you need to do peak mode control. Be advised that its comparator is still rather slow, so you might be good to 100kHz.

It can be accelerated, but then the trick would be not trivial.

Thanks, what about programming these devices, they seem to be OTP! How many you will through a way to reach the right design? do they have a open source programmer? also what's good about GaN device? what's your favorite one there? ^-^

Doing the Buck with old analog stuff and DrMOS like TL494, is it doable and good?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #3 on: March 17, 2020, 11:22:04 am »
So for example an old part Like MC34063 can be used?
for Implementing it with SiLego, basically you would implement the block diagrams or internals of 34063?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #4 on: March 18, 2020, 07:26:16 am »
The padauk has an Internal Comparator too, so maybe with this It can control the DrMOS easily.(it's high speed regarding the price of MCU)


« Last Edit: March 18, 2020, 07:28:47 am by ali_asadzadeh »
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #5 on: March 18, 2020, 07:57:38 am »
The Comparator output can directly control the PWM ^-^ and goes to an IO directly too.

what a MCU! I never have done a buck with an MCU, any Hints how to calculate and build things! the good news is that the lowest cost PMC150 which is just 0.03$ has the PWM and Comparator  too, and have a SOT23-6 package for ultra small size.
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #6 on: March 20, 2020, 10:20:13 am »
The PFS173 PWM clock can go up to 32MHz and I can set it to 6-bit, so the achievable frequency is about 500Khz, I have found an app-note from microchip TB3097 that they have implemented a buck with their PIC,There is no Code for the app note,
Suppose that I want to design a buck with these specs,
Vin 9V-16V
Vout 1V
Iout 15A
and FPWM = 500Khz
Also I have found this online Buck calculator
http://schmidt-walter-schaltnetzteile.de/smps_e/abw_smps_e.html
So I can calculate the L for the Buck
with these specs the calculated L is about 477nH, the closest standard is 470nH and the  Inductor current  is around 20A, so I would choose this part  (SPM6530T-R47M170) from lcsc
https://lcsc.com/product-detail/Power-Inductors_TDK_SPM6530T-R47M170_TDK-SPM6530T-R47M170_C136247.html

Now I would configure the PWM to be 50%, 6Bit and 500KHz Fpwm,and configure the comparator to disable the PWM when the output overshoot the 1V from feedback,
Is  this the path? since there is no second comparator inside padauk there is no Current limitation for the output,
what's your Idea?
« Last Edit: March 20, 2020, 10:21:44 am by ali_asadzadeh »
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #7 on: March 21, 2020, 09:48:45 pm »
I have made some simulation in Tina TI, I have replaced the DrMOS with  discreet Transistors, Note that the final goal is to replace the op-amp, PWM generator and the And gate with the PFS173 MCU from padauk ^-^

The PWM is set to 50% @ 500KHz
The output would settle to 1V, But has large ripples(750mv)! and also at the beginning there is an over voltage at the output.
Also I have uploaded the Tina TI simulation file. Any Idea how to solve the problems and Improve them?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline OwO

  • Super Contributor
  • ***
  • Posts: 1250
  • Country: cn
  • RF Engineer.
Re: Desiging with DrMOS
« Reply #8 on: March 22, 2020, 04:26:31 am »
That's voltage mode control, which means you are going to have a massive overshoot on startup and runaway control loop oscillation if the buck converter ever enters continuous mode (inductor current doesn't fall to zero). The overshoot can be fixed with soft start, and the control loop can be stabilized with phase advance (proportional + derivative), but this phase advance is dependent on inductor and output filter capacitor value (you need sufficient phase advance at the frequency where the L-C pole occurs). There is a reason everything uses current mode control these days, but unfortunately you can not do current sensing + comparison fast enough with a MCU. You need to sense instantaneous current of the inductor, and every cycle you need to turn on the half bridge, then turn it off as soon as the inductor current reaches a setpoint. Then an outer control loop adjusts this setpoint based on feedback voltage.
Email: OwOwOwOwO123@outlook.com
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #9 on: March 22, 2020, 08:10:25 am »
Quote
You don't have a load, thus the Q factor is infinite, hence the ripple. This can be tamed with a properly designed control loop.
I have already added an 0.1 ohm to the output cap, it'a 10A load

Quote
This can be tamed with a properly designed control loop.
How should I tame the beast with my MCU? Also How do you tame this thing with SLG46120, since they do not have any CPU, only a few LUT and other misc stuff :)

Quote
The overshoot can be fixed with soft start
Since this is analog only and simulation, I'm planing to set PWM Duty cycle to zero at start up and Increase it step by step in software to reach 50%

Quote
the control loop can be stabilized with phase advance (proportional + derivative),
The MCU has 8-bit ADC and it can be sampled around 30KSPS, But since this is an 8bit processor I have limited processing power, How the PI controller can be applied efficiently? and How should I calculate the P and I coefficients?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1967
  • Country: ca
Re: Desiging with DrMOS
« Reply #10 on: March 24, 2020, 07:44:54 am »
I have found two things for the controller part
this page have a detailed tutorial on the passives and workings, also it has a very simple control algorithm
https://sudonull.com/post/7101-Development-of-buck-converter-on-STM32F334-principle-of-operation-calculations-prototyping

Code: [Select]
void ADC1_2_IRQHandler (void) {
ADC2->ISR |= ADC_ISR_EOC;
adcResult = ADC2->DR;
if (adcResult > 2480) {
dutyControl = dutyControl - 10;
}
else
{
dutyControl = dutyControl + 10;
}
SetDutyTimerA(dutyControl);
}

And I have found this very nice app note from infenion AP32319, which uses Biricha WDS tool to calculate controller params,they use 3 pole and 3 zeros for voltage loop

Code: [Select]
__STATIC_INLINE void XMC_3P3Z_FilterFixed( XMC_3P3Z_DATA_FIXED_t* ptr )
{
int32_t acc;
// acc (iq9.22) = An (iq-1.19) * Un (iq(8.8)
acc = ptr->m_A[3]*ptr->m_U[2]; ptr->m_U[2] = ptr->m_U[1];
acc += ptr->m_A[2]*ptr->m_U[1]; ptr->m_U[1] = ptr->m_U[0];
acc += ptr->m_A[1]*ptr->m_U[0];
acc = acc >> ptr->m_AShift; //iq is now iq9.19
// acc (iq12.19) = Bn (iq1.14) * En (iq(12.0)
acc += ptr->m_B[3]*ptr->m_E[2]; ptr->m_E[2] = ptr->m_E[1];
acc += ptr->m_B[2]*ptr->m_E[1]; ptr->m_E[1] = ptr->m_E[0];
acc += ptr->m_B[1]*ptr->m_E[0]; ptr->m_E[0] = ptr->m_Ref-((uint16_t)*ptr->m_pFeedBack);
acc += ptr->m_B[0]*ptr->m_E[0];
//our number is now a iq12.19, but we need to store U as a iq8.8
acc = acc >> ptr->m_BShift; //now it’s a iq12.8
acc = MIN( acc , ptr->m_KpwmMax );
acc = MAX( acc , ptr->m_KpwmMaxNeg ); //now it’s a iq8.8
ptr->m_U[0] = acc;
acc = acc >> ptr->m_OShift; //now it’s a iq8.0
if ( acc < ptr->m_KpwmMin) acc = ptr->m_KpwmMin;
ptr->m_pOut = acc;
}


void ISR_voltage_control_loop()
{
/* Applying the filter to the ADC measured value */
XMC_3P3Z_FilterFixed(&ctrlFixed);
/* Updating the compare value 1 of the CCU8 */
PWM_CCU8_0.ccu8_slice_ptr->CR1S = ctrlFixed.m_pOut;
/* Enabling shadow transfer */
PWM_CCU8_0.ccu8_module_ptr->GCSS= 0x1;
}

In the infenion app note they have also covered current loop control, so here is the questions
the WDS tool is fantastic, have you used it? Is there a very cheap way to convert the high-side current sense for the op-amp of padauk? also we have a simple 8-bit padauk, which control algorithm do you suggest? and if you prefer doing it with other hardware, what's your preferred way of controlling it,do you have any info and tutorial on your way of doing it?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf