Desiging with DrMOS - Page 1
Forum section: electronics / projects

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 16, 2020, 03:15:32 pm
content: Hi,In this thread I have asked people about solutions to powering a kintex FPGAhttps://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?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 17, 2020, 07:30:02 am
content: QuoteThanks for the tips, Any appnote, book or part number to start with? what's your favorite DrMOS and GreenPAK chip part number is?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 17, 2020, 09:04:47 am
content: QuoteThanks, 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?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 17, 2020, 11:22:04 am
content: 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?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 18, 2020, 07:26:16 am
content: 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)

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 18, 2020, 07:57:38 am
content: The Comparator output can directly control the PWMand 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.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 20, 2020, 10:20:13 am
content: 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-16VVout 1VIout 15Aand FPWM = 500KhzAlso I have found this online Buck calculatorhttp://schmidt-walter-schaltnetzteile.de/smps_e/abw_smps_e.htmlSo I can calculate the L for the Buckwith 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 lcschttps://lcsc.com/product-detail/Power-Inductors_TDK_SPM6530T-R47M170_TDK-SPM6530T-R47M170_C136247.htmlNow 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?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 21, 2020, 09:48:45 pm
content: 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 padaukThe PWM is set to 50% @ 500KHzThe 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?

author: OwO
author_rank: Super Contributor
timestamp: March 22, 2020, 04:26:31 am
content: 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.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 22, 2020, 08:10:25 am
content: QuoteI have already added an 0.1 ohm to the output cap, it'a 10A loadQuoteHow 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 stuffQuoteSince 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%QuoteThe 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?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 24, 2020, 07:44:54 am
content: I have found two things for the controller partthis page have a detailed tutorial on the passives and workings, also it has a very simple control algorithmhttps://sudonull.com/post/7101-Development-of-buck-converter-on-STM32F334-principle-of-operation-calculations-prototypingCode: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 loopCode:__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*ptr->m_U; ptr->m_U = ptr->m_U;acc += ptr->m_A*ptr->m_U; ptr->m_U = ptr->m_U;acc += ptr->m_A*ptr->m_U;acc = acc >> ptr->m_AShift; //iq is now iq9.19// acc (iq12.19) = Bn (iq1.14) * En (iq(12.0)acc += ptr->m_B*ptr->m_E; ptr->m_E = ptr->m_E;acc += ptr->m_B*ptr->m_E; ptr->m_E = ptr->m_E;acc += ptr->m_B*ptr->m_E; ptr->m_E = ptr->m_Ref-((uint16_t)*ptr->m_pFeedBack);acc += ptr->m_B*ptr->m_E;//our number is now a iq12.19, but we need to store U as a iq8.8acc = acc >> ptr->m_BShift; //now it’s a iq12.8acc = MIN( acc , ptr->m_KpwmMax );acc = MAX( acc , ptr->m_KpwmMaxNeg ); //now it’s a iq8.8ptr->m_U = acc;acc = acc >> ptr->m_OShift; //now it’s a iq8.0if ( 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 questionsthe 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?