View previous topic :: View next topic |
Author |
Message |
E_Blue
Joined: 13 Apr 2011 Posts: 417
|
Glitch down to 900 mV on 3.3V rail |
Posted: Tue Mar 06, 2018 1:49 pm |
|
|
I'm using a PIC18F67J50 at 3.3V that shares the same supply with a GPS module which is turned on by the µC through a P MOSFET.
Also a Flash SPI memory and an EEPROM SPI memory are in the same 3.3V rail.
When the GPS is turned on I get a very short glitch down to 960mV on 3.3V rail for about 5/7µS.
The µC is running at 48MHz (internal 8MHz * 4 (PLL)) and doesn't reset but some times have some strange behavior and/or the WDT barks.
Now I wonder if that glitch can corrupt RAM and/or some internal modules.
I know that this is not OK and now I'm making some changes in the power supply but I wonder what happens inside the µC after such glitch.
In short, I would like to know your experiences and advice in these type of glitches. _________________ Electric Blue |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9244 Location: Greensville,Ontario
|
|
Posted: Tue Mar 06, 2018 2:24 pm |
|
|
just a general comment....
most (all ? ) GPS units draw a LOT of power when turned on...so as you found out, you NEED to have a bigger power supply, maybe add a supercap?
I'd like to see some 'decoupling' of the power feeds, maybe put additional C on the PIC VDD line. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19541
|
|
Posted: Tue Mar 06, 2018 2:40 pm |
|
|
and, yes a glitch can corrupt the RAM in the PIC or even change the latch contents feeding ports. Problem is it'll be completely unpredictable, and may well change with other things like temperature. |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1635 Location: Perth, Australia
|
Re: Glitch down to 900 mV on 3.3V rail |
Posted: Tue Mar 06, 2018 3:26 pm |
|
|
E_Blue wrote: | doesn't reset but some times have some strange behavior and/or the WDT barks. |
When a WDT "Barks" it means a WDT reset occurs yet, in the same sentence you said the processor does not reset. Only one of these statement can be true.
A WDT "Barking" usually means the processor is not executing the code path that was expected. This can be due to a software bug not allowing for a fringe condition, a peripheral that hit an error condition you did not allow for or the processor crashed typically caused by some external event such as a glitch. When the processor "crashes" it is processing some unintended code fragment and can be modifying virtually anything. To protect the processor for doing things it should not do when a glitch occures (such as drop an elevator down an elevator shaft) you would use brownout detection to force the processor to reset in the presence of a glitch combined with hardware design to for the HW into a "safe state when outputs of the processor go tri-state as a result of a reset.
The glitch problem is not necessarily with the power supply itself and adding a bigger power supply will not necessarily fix the problem., it could (and probably is) as a result of insufficient power supply filtering (big low ESR caps) and/or insufficient bypass capacitors especially around the FET controlling power to the GPS. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1909
|
Re: Glitch down to 900 mV on 3.3V rail |
Posted: Tue Mar 06, 2018 3:33 pm |
|
|
E_Blue wrote: | In short, I would like to know your experiences and advice in these type of glitches. |
As you've learned the hard way, I try to avoid these types of glitches as I've been bit by power supply undersizing before.
If I may, I'd like to suggest a "quick & dirty" fix before you get too deep. The GPS module is browning out your supply momentarily, so why not try something a little unconventional? I assume that your pFET is "good" = low Rds(on). That low resistance is contributing to your supply getting pulled low rather easily. Can you find a pFET with the same footprint as the one you're using now, but with an Rds(on) ~10x the one you're using now? Get an assortment of pFETs with that same footprint and with Rds(on) ranging from ~10x - 200x what you're now using.
Thinking here is that instead of a low resistance path to Vcc, give the GPS module a "high" resistance path so that whatever it's charging inside of itself initially is "insulated" from the rest of the circuitry somewhat. You should be able to find a pFET with characteristics that require nothing else on your PCB to be changed that will brown out your supply to a point that is still acceptable for your PIC so that nothing gets corrupted (no weird behaviour). |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1635 Location: Perth, Australia
|
Re: Glitch down to 900 mV on 3.3V rail |
Posted: Tue Mar 06, 2018 4:24 pm |
|
|
[quote="newguy"] E_Blue wrote: |
Thinking here is that instead of a low resistance path to Vcc, give the GPS module a "high" resistance path so that whatever it's charging inside of itself initially is "insulated" from the rest of the circuitry somewhat. You should be able to find a pFET with characteristics that require nothing else on your PCB to be changed that will brown out your supply to a point that is still acceptable for your PIC so that nothing gets corrupted (no weird behaviour). |
This solution is also not without its own challenge. GPS modules contain their own embedded processors. Creating a situation like this with a slow VDD rise time could cause the embedded processor in the GPS module to crash. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1909
|
Re: Glitch down to 900 mV on 3.3V rail |
Posted: Tue Mar 06, 2018 4:31 pm |
|
|
asmallri wrote: | This solution is also not without its own challenge. GPS modules contain their own embedded processors. Creating a situation like this with a slow VDD rise time could cause the embedded processor in the GPS module to crash. |
Thus the "quick & dirty" description.
Often called a "bush fix" round these parts. |
|
|
E_Blue
Joined: 13 Apr 2011 Posts: 417
|
|
Posted: Wed Mar 07, 2018 7:14 am |
|
|
@temtronic
I will put a separate power supply but for now I need to solve this with a bigger cap at the supply output.
@Ttelmah
Thanks for the input.
@asmallri
Quote: | When a WDT "Barks" it means a WDT reset occurs yet, in the same sentence you said the processor does not reset. Only one of these statement can be true. |
I mean that the µC doesn't reset in the exact time when the glicht occurs, but few seconds later.
The brownout is enabled but according the datasheets it needs at least 200µS of low voltage but the glitch is about 7µS at most.
@newguy
I can't change it now, In my country the SMD components are sold by 4000 pcs.
For now I will change the power supply output capacitor by a bigger one.
On next release I will use a separate power supply just for the GPS. _________________ Electric Blue |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19541
|
|
Posted: Wed Mar 07, 2018 7:26 am |
|
|
Quote: |
I mean that the µC doesn't reset in the exact time when the glicht occurs, but few seconds later.
The brownout is enabled but according the datasheets it needs at least 200µS of low voltage but the glitch is about 7µS at most.
|
What is happening is that the RAM is getting glitched or the processor itself locked up. The watchdog triggers at it's expiry interval 'after' the event. The actual time will depend on how long it was since the last reset. |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1635 Location: Perth, Australia
|
|
Posted: Wed Mar 07, 2018 3:26 pm |
|
|
E_Blue wrote: | @temtronic
I will put a separate power supply but for now I need to solve this with a bigger cap at the supply output.
@Ttelmah
Thanks for the input.
@asmallri
Quote: | When a WDT "Barks" it means a WDT reset occurs yet, in the same sentence you said the processor does not reset. Only one of these statement can be true. |
I mean that the µC doesn't reset in the exact time when the glicht occurs, but few seconds later.
The brownout is enabled but according the datasheets it needs at least 200µS of low voltage but the glitch is about 7µS at most.
@newguy
I can't change it now, In my country the SMD components are sold by 4000 pcs.
For now I will change the power supply output capacitor by a bigger one.
On next release I will use a separate power supply just for the GPS. |
Before you go changing the power supply, A GPS module, such as a uBlox module would consume the most power (about 70mA) during acquisition. Depending on your existing power supply, this may be a non issue. Post your schematic and a link to the power supply module you are using and how much current your hardware is consuming and the supply voltage _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
|