OK… so having gone to a 4 layer board to get better ground planes, placing the EMX within an EMI board shield, I still really don’t get great GPS performance when the EMX is running.
If the EMX module is ‘off’ (reset held low) then the GPS module locks fine.
With the EMX running, GPS is degraded to a barely operational state. This is better than not running at all which is what I previously had…
I am using:
to hopefully turn off the video output (how are you doing Video anyway? GPDMA? The CPU doesn’t have video…)
to remove one clock signal (although clocks appeared to still be running when EMX in reset state, so not sure that helps a lot…)
// define the power control register PCONP
Register PCONP = new Register(0xE01FC0C4);
UInt32 mask = CPU.PCONP_PCAN1 | CPU.PCONP_PCAN2 | CPU.PCONP_PCI2C0 | CPU.PCONP_PCI2C1 | CPU.PCONP_PCI2C2 | CPU.PCONP_PCI2S |
CPU.PCONP_PCPWM1 | CPU.PCONP_PCSPI | CPU.PCONP_PCUART0 | CPU.PCONP_PCUART1 | CPU.PCONP_PCUART3 |
CPU.PCONP_PCAD | CPU.PCONP_PCGPDMA | CPU.PCONP_PCENET | CPU.PCONP_PCSSP0 | CPU.PCONP_PCSSP1 |
CPU.PCONP_PCSDC | CPU.PCONP_PCTIM2 | CPU.PCONP_PCTIM3;
To power down as much of the CPU as possible, to remove unnecessary digital noise etc.
What else can I switch off/alter to try and improve this?
Perhaps related: Has anyone ever stuck a scope on pins while displaying in FFT mode… I am a novice, but there appears a lot of structured noise on I/O and serial lines. Like the EMX signals are not very clean. And yes, I tested on an EMX floating in thin air (just powered) to verify it wasn’t coming from my board.