9XR Brownout? Resetting!

Hardware Support for the 9XR
Post Reply
User avatar
midge5
Posts: 15
Joined: Tue Jul 22, 2014 8:18 pm
Country: United Kingdom
Location: West Midlands

9XR Brownout? Resetting!

Post by midge5 » Fri Feb 06, 2015 12:21 pm

Hi all, I have a problem on the 9XR board, I have installed tactile pushbuttons in place of the conductive pad ones and also swapped out all 6 x 200R resistors that are in series for 1k ones, this was done as I saw some suggestion that putting 1k resistors in series would help when it comes to the M128 MPU resetting itself, it resets when pushing the direction buttons rapidly through the menu (sometimes it doesn't have to be rapid for this to happen), it happens without fail and even corrupted the M128 to the point it would not switch on one time, I had to reflash it to get it working again (corrupt eprom?), It's running er9x at the moment but I did try OpenTX too and the same happened regardless of the firmware installed.
I have checked all solder joints meticulously and also checked the regulator voltages, all seems present and correct, I am really stumped on this one.

I have no scope or logic analyser unfortunalely so cant perform any checks, all I have is a trusty DMM...

Any help or suggestions would be much appreciated :D
Always willing to learn, though these days it takes alot. a very lonely old dog can indeed still learn new tricks (Just)

prizreni
Posts: 30
Joined: Mon Jun 30, 2014 12:39 pm
Country: -

Re: 9XR Brownout? Resetting!

Post by prizreni » Sat Feb 07, 2015 10:46 am

Hi there midge5. I have had the same problem after installing the tactile pushbuttons, but then i soldered the resistors between the buttons and the processor and I haven't had a problem since then.

Here is a picture (is not mine, mine doesn't look clean at all ^^ )

Image

And here is the link to the website:

http://flitetest.com/articles/turnigy-9 ... er-buttons

here is a link to my website for other mods

http://www.myrcflight.com

User avatar
MikeB
9x Developer
Posts: 15716
Joined: Tue Dec 27, 2011 1:24 pm
Country: -
Location: Poole, Dorset, UK

Re: 9XR Brownout? Resetting!

Post by MikeB » Sat Feb 07, 2015 2:38 pm

midge5 wrote:also swapped out all 6 x 200R resistors that are in series for 1k ones
The problem is there are 0.1uF capacitors across the switches. The original "switches" have some resistance. If you replace them with real switches you need to add some resistance BEFORE the capacitor. The 200 ohm resistors are AFTER the capacitor.

Mike.
ersky9x/er9x developer
The difficult we do immediately,
The impossible takes a little longer!

flybabo
Posts: 143
Joined: Wed May 16, 2012 11:41 pm
Country: United States
Location: SF Bay Area, CA

Re: 9XR Brownout? Resetting!

Post by flybabo » Sun Nov 22, 2015 12:30 am

I had the same problem but it happened very infrequently and I thought it's a software glitch.
After one of my friends custom made transmitter went dead, I realized that it's a real hardware problem.
His transmitter is based on a 9XR board with "real" tactile switches connected by 10cm ribbon cable.
According to him, clicking the menu navigation button occasionally caused resetting, eeprom corruption.
And, finally, its Atmega128 chip appears to be permanently bricked.

I dug into the problem little deeper and I'm pretty sure that this problem is caused by a phenomenon known as "ground bounce" - it's one of the headaches in the integrated circuit design community.
https://en.wikipedia.org/wiki/Ground_bounce
If you have a capacitor (0.1uF) with stray inductance (PCB trace + twisted/ribbon wires to the switches/buttons) between the cap and switch, LC tank circuit will be formed when you turn on the switch and the energy stored in the capacitor will be dissipated over the time while the ground level is oscillating up-and-down.

I'd thought the stray inductance created by wiring was negligible but I was wrong.
I found out that simple ribbon cable easily creates 0.1uH of inductance and may be more for twisted wires.
http://www.eeweb.com/toolbox/parallel-wire-inductance/
If the LC circuit is formed through RF choke in the analog ground, there's a lot more inductance in the loop.
If 0.1uH is coupled with 0.1uF capacitor, the circuit will oscillate in 1.59MHz, which is slow enough to disrupt CPU internal operation which runs in 16MHz.

Ground level will be settled quickly if you put a damping resistor in the LC loop.
Adding a 1K resistor between the capacitor and the switch serves that purpose.
Putting the damping resistor is necessary if you can't control attached inductance and capacitance - which is true for the output pins of an integrated circuit where the inductance is created from wire bonding/packaging and the loading capacitance is depending on the application, thus both are not controllable.
However, in our case, the simplest and correct way to fix the problem is to remove those capacitors.

In the schematics of 9x, each of all the switches is coupled with 0.1uF capacitor and 200Ohm resistor.
Intended functionality of the resistors is understandable even though they're not absolutely necessary, however, I've never understood intended functionality of those capacitors:
- To absorb on/off surge spike of the switch? Not needed because switching current is less than 0.5mA as it is limited by an internal pull-up resistor.
- To suppress switch debounce? Not needed as the switch debouncing can be handled by software.
Actually, I have seen many board designers who put caps/resistors here and there habitually without assessing the real value.
I also realized that many 9x replacement boards also have those caps - they may have used the original 9x schematics as the reference design.
IMHO, those over-engineered caps are just potential source of the problem without having any benefits.

I removed all the capacitors attached to the trims/dual rate switches/menus buttons on the 9XR board.
I recovered 21 0.1uF 0805 caps per each board: C16,C9,C10,C11,C12,C14,C6,C3,C7,C4,C8,C5,C18 on the south of the ATmega chip and C41,C40,C39,C38,C37,C36,C35,C34 on the west of the chip, above 16MHz crystal.
I kept the caps across each pot since they may work as an RC filter suppressing the noise caused from uneven potentiometer surface/wiper and they don't cause any problem.

Removing SMD cap requires "fine" soldering technique but it's not as difficult as soldering a thin wire to a CPU pin.
Just put enough solder to form a bridge between two terminals to melt the solder in both terminals and take the cap off by using a tweezer or whatever.

After removing those caps, it now works very reliably no matter how fast I'm clicking :)
If you aint' have this problem, don't fix it!
IMG_4945.JPG

User avatar
MikeB
9x Developer
Posts: 15716
Joined: Tue Dec 27, 2011 1:24 pm
Country: -
Location: Poole, Dorset, UK

Re: 9XR Brownout? Resetting!

Post by MikeB » Sun Nov 22, 2015 9:34 am

I don't know whether the capacitors are there for switch de-bounce, or for removing any RF pickup in the wiring, or both!
The problem exists on the original 9X, made worse by the 9X having used "Analog Ground" for some of the trim switches. This has a 10uH inductor to digital ground, so adds specific inductance.

Mike.
ersky9x/er9x developer
The difficult we do immediately,
The impossible takes a little longer!


tedbmoss
Posts: 112
Joined: Sun Jul 15, 2012 10:42 pm
Country: -
Location: Phoenix, AZ

Re: 9XR Brownout? Resetting!

Post by tedbmoss » Thu Dec 31, 2015 3:23 am

There is a mod to fix that analog ground ;) .

User avatar
MikeB
9x Developer
Posts: 15716
Joined: Tue Dec 27, 2011 1:24 pm
Country: -
Location: Poole, Dorset, UK

Re: 9XR Brownout? Resetting!

Post by MikeB » Thu Dec 31, 2015 9:50 am

Several fixes in this thread: viewtopic.php?f=95&t=3594&hilit=trim+switch+128.

Mike.
ersky9x/er9x developer
The difficult we do immediately,
The impossible takes a little longer!

Post Reply

Return to “Turnigy 9XR radio”