I'd expect push-pull. With the two 300Ω base resistors, about 8mA. Not sure what BJT they are using, it might have a problem. Newer T12 V3.3 use a mosfet 2N7002 instead.
You can troubleshoot or verify port firmware issues by scoping the MCU heater output pin and then add a 1kΩ pullup or pull down and look at the waveform.
That can reveal if the port config is getting corrupted or it goes open-drain etc.
Heater GPIO init in firmware v1.26:Code: [Select]rcu_periph_clock_enable(RCU_GPIOA);
gpio_init((uint32_t)&GPIOA_CTL0, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PA8_HEATER);
Heater function:Code: [Select]void __fastcall set_heater_timer(int cnt_of_50us)
{
__int16 cnt_50us_0; // r4
cnt_50us_0 = cnt_of_50us;
if ( cnt_of_50us )
{
gpio_bit_set((uint32_t)&GPIOA_CTL0, PA8_HEATER);
timer_autoreload_value_config((uint32_t)&TIMER0_CTL0, 50 * cnt_50us_0);
timer_enable((uint32_t)&TIMER0_CTL0);
}
else
{
gpio_bit_reset((uint32_t)&GPIOA_CTL0, PA8_HEATER);
timer_disable(&TIMER0_CTL0);
}
}
Heater GPIO init in firmware v1.26:Code: [Select]rcu_periph_clock_enable(RCU_GPIOA);
gpio_init((uint32_t)&GPIOA_CTL0, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PA8_HEATER);
Heater function:Code: [Select]void __fastcall set_heater_timer(int cnt_of_50us)
{
__int16 cnt_50us_0; // r4
cnt_50us_0 = cnt_of_50us;
if ( cnt_of_50us )
{
gpio_bit_set((uint32_t)&GPIOA_CTL0, PA8_HEATER);
timer_autoreload_value_config((uint32_t)&TIMER0_CTL0, 50 * cnt_50us_0);
timer_enable((uint32_t)&TIMER0_CTL0);
}
else
{
gpio_bit_reset((uint32_t)&GPIOA_CTL0, PA8_HEATER);
timer_disable(&TIMER0_CTL0);
}
}
rcu_periph_clock_enable(RCU_GPIOA);
gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PA8_HEATER); //*
void __fastcall set_heater_timer(int cnt_of_50us)
{
__int16 cnt_50us_0; // r4
cnt_50us_0 = cnt_of_50us;
if ( cnt_of_50us )
{
gpio_bit_set(GPIOA, PA8_HEATER); //*
timer_autoreload_value_config((uint32_t)&TIMER0_CTL0, 50 * cnt_50us_0);
timer_enable((uint32_t)&TIMER0_CTL0);
}
else
{
gpio_bit_reset(GPIOA, PA8_HEATER); //*
timer_disable(&TIMER0_CTL0);
}
}
Where are you getting this source code? Is the firmware code for let's say v1.33 available somewhere?
Casual glance and I'm unfamiliar with the MCU - Why is the port control register passed into the bit set/reset routine, not the actual port?
GD32F30x_standard_peripheral/Include/gd32f30x_gpio.h:#define GPIOA (GPIO_BASE + 0x00000000U)
Soldering tweezers for the T3A!
Oh. R14, R15 3k3 gives 0.78mA MCU load and 0.56mA base current. Q4 sees around 22mA spike switching on, due to the mosfet capacitance. Q4 seen as S8050 "J3Y" or "G1" MMBT5551.
Still no idea of why the Q4 NPN base waveform looks so bad. Even if the pin tri-states the transistor turns off fine due to R15 across the E-B.
edit: I would scope the MCU output pin or at the resistor R14 ahead of Q4-B. Maybe they are trying to turn off the mosfet slow and doing a bit of PWM there.
Yeah mine were pretty straight - if you haven't already, maybe try reseating the heating elements in case one is just in the holder crooked
Yeah mine were pretty straight - if you haven't already, maybe try reseating the heating elements in case one is just in the holder crooked
Thanks!
How is that element attached to the holder? I can twist them but they don't seem to move in and out.
The movable "jaws" just have a built-in set of "teeth" that hold onto the ridge on the heating element. Removal is by gently twisting and pulling at the same time until it pops past it
I still don't fully understand why this mitigated the buzzing. Maybe someone can explain to us. But it looks promising and may be just the solution to eliminate the buzz for good. I wonder if you can just wack a 10mF on the back of the Aixun using the DC jack without needing to even open it up or remove the smps...
- Trying a different mosfet (IRF5210) had no effect
- Slowing the switching edges heated up the mosfet, but didn't reduce the buzzing
- There was no weird artifact on the heater waveform, it was a normal looking pwm with no spikes.
-Replacing D8 with a 10 ohm resistor and adding a 100u cap from Vin to ground (to decouple the return paths) reduced the buzzing on the control board but the supply was still buzzing
- I measured significant droop on the power supply (3V peak-to-peak ac) in sync with the pulses
Then I thought maybe it makes sense to provide a low impedance energy reservoir for the big gulps of current in those fast PWM spikes. So I put a RC filter consisting of 0.1 ohm + 4.7mF between the power supply and the control board:
Just have to be careful because that big cap will essentially short the supply while it's trying to start up.
So I'm happy with this as it is. I can't hear it anymore at all. I'm thinking just to hot glue the protoboard and close this chapter. As luck would have it, the replacement for the glass screen has just arrived
though I won't glue it on just yet.
Where exactly did you measure?
Be careful with D8! It protects your USB port from shorting by the PSU caps
Something like this might do the job:
Did you guys already do the SMPS full electrolytic caps replacement set? It's like the 5 main caps that you order them (from digikey etc). And replace with one of the 3-4 quality brands, and then it still was buzzing afterwards, after doing that replacement set?
Where exactly did you measure?
I measured it right across the diode behind the circular connector, with ground alligator on the anode and the probe clip attached to the cathode.
Something like this might do the job:
Hmm, if you put a diode on top of the cap like that, would that diode ever conduct? I suppose you want one with very low forward voltage. Have you tried it? Since you said your unit is also buzzing, I'm curious to know whether this mod works in your case.
We're recapping a supply whose designers were so cheap they took out basic heatsinks and glued the damn thing to the case. Isn't it smarter to just buy a meanwell supply? Big named brand caps aren't so cheap. Intuitively, I think recapping this supply is like putting lipstick on a pig. It's so low quality, it's not even worth it. And I remember when I was testing last night, even a big linear bench supply was buzzing. I just doubt it will do much of anything.
actually come to think of it: the whole reasoning for why to replace these smps caps to begin with, it was because somebody here had identified what with the constant dumping of currents. that they would be getting worked pretty hard, and then some people took that to mean: well replace it sooner or later, and others could not be bothered and said they have general policy to replace caps only as needed. [edit] except for the fact that most other random equipment probably does not works caps anywhere as hard as this does. so perhaps worth a more careful consideration, such rules.
and basically yes i not longer wants to recommend this product, but most of all because handle is bad.