Author Topic: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?  (Read 11107 times)

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #30 on: February 01, 2016, 11:29:34 PM »
There is an MCU directly underneath the radio with no decoupling on its power pins, no ferrite filtering on Vdd, tracked in Vdd and no ferrite filtering or decoupling on the radio's power pin. Have you eliminated the MCU's switching noise from this?

Also the noise floor will depend on the width of the RxBw filter, you should program that to the narrowest possible.

Mark.

If someone can suggest specific part numbers from, say, Digikey, I can order them and try them and then post the outcome.

I haven't yet removed the Moteino's voltage regulator, but that's something I can try soon.  I can also try narrower bandwidth settings.  The settings used in the above test were:

Code: [Select]
Radio Configuration:
====================
Receiver-Mode(RX)
Packet Mode, FSK modulation scheme
[ActualBitrate] 4799.760bps = nominal bitrate of 4800bps
[theDccFreq] B10 (equals Semtech default)
[RxBw] 10416Hz
  [RxBwMant] 24
  [RxBwExp] 5
[theDccFreqAfc] B100 (equals Semtech default)
[RxBwAfc] 50000Hz
  [RxBwMantAfc] 20
  [RxBwExpAfc] 3
[FDev] 5004Hz
[frequency-center] 915000000Hz
[regLNA] B1001
  [LnaZin] B0 -> Input Impedance = 50 ohm (Warning: Semtech default is 200 ohm).
  [LnaCurrentGain] B1 -> G1
  [LnaGainSelect] B1 -> G1  (Note: Manually selected.  AGC disabled.)
                   ^Warning: does not match Semtech default.
[regAFCFEI] B10000
  [FeiDone] B0 -> FEI is on-going (i.e. not finished).  Matches Semtech default.
  [AfcDone] B1 -> AFC is finished (i.e. not on-going).  Matches Semtech default.
  [AfcAutoclearOn] B0 -> Invalid, because AfcAutoOn is not set.
  [AfcAutoOn] B0 -> AFC is performed each time AfcStart is set (i.e. not each time Rx mode is entered).
               ^Matches Semtech default.
« Last Edit: February 02, 2016, 12:46:02 AM by WhiteHare »

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #31 on: February 02, 2016, 11:47:57 AM »
My experience yesterday (https://lowpowerlab.com/forum/index.php/topic,961.15.html), which unknowingly re-lived gkientzy's experience (https://lowpowerlab.com/forum/index.php/topic,961.15.html) actually gives me some hope that at least some of the cause might be a "noisy power source".  I say "hope" only because that's something which is within the realm of things that can more easily be changed for the better if it turns out to be what's creating the issue. 

So, to check that hypothesis, I'll be unsoldering the default Moteino voltage regulator and try powering directly with two AA's instead.  Then I'll be checking two things for effect: 1.  ambient RSSI measurements, like those above and 2. whether or not I still need the DTR to GND wire in order to properly initialize the lowpowerlab flash memory.




WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #32 on: February 02, 2016, 12:41:41 PM »
Hmm..  Looking at page 37 of the datasheet for the flash memory (https://www.winbond.com/resource-files/w25x40cl_e01.pdf), it gives two different operating voltage ranges: 
2.3 to 2.7v
and
2.7 to 3.6v

Anyone happen to know which voltage range is applicable for the Moteino R4?  I'm guessing the second one (2.7-3.6v), if only because it runs at 3.3v, but if it were based on frequency, then I'm thinking maybe it's the first one (2.3-2.7v).
« Last Edit: February 02, 2016, 12:43:23 PM by WhiteHare »

perky

  • Hero Member
  • *****
  • Posts: 873
  • Country: gb
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #33 on: February 02, 2016, 01:05:45 PM »
The spec just specifies maximum SPI clock frequencies Fr and fR for two voltage ranges. For the voltage range 2.3V to 2.7V Fr and fR are 80MHz and 33MHz respectively, and from 2.7V to 3.6V Fr and fR are 104MHz and 50MHz respectively. Given the SPI is driven from an ATmega328 chip you're not going to get anywhere near those maximum frequencies, I think the max you could get out of it is 5MHz (half the 10MHz processor clock).
Mark.

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #34 on: February 02, 2016, 01:38:15 PM »
Thanks for clearing that up.   :)  So, I take it that the acceptable voltage range in the Moteino's case for the flash memory is actually the union of those two ranges, which would be 2.3v - 3.6v? 

By the way, that would also mean that the practical lower limit voltage for wireless programming is 2.3v.  The atmega328p and the RFM69 are each good down to 1.8v, which means that if running on battery I should add code to check voltage levels prior to (and maybe even during) wireless programming. 
« Last Edit: February 02, 2016, 02:01:24 PM by WhiteHare »

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #35 on: February 02, 2016, 04:41:34 PM »
I removed the Moteino's voltage regulator and am powering direct from two AA batteries in series, but:
1.  I still need to tie the DTR pin to ground or else flash won't initialize when battery powered.
2.  No obvious improvement in RSSI either.
« Last Edit: February 02, 2016, 10:03:05 PM by WhiteHare »

perky

  • Hero Member
  • *****
  • Posts: 873
  • Country: gb
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #36 on: February 03, 2016, 05:13:07 AM »
Just a thought, have you tried sleeping the processor and waking up on a RSSI interrupt? Just wondering whether you can quieten down the processor during the time it's sampling (this technique is used to get the best from microprocessor's A2D converters).

Mark.

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #37 on: February 03, 2016, 10:12:07 AM »
Good idea.  I haven't tried it, but it sounds worth looking into. 

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #38 on: February 03, 2016, 11:42:39 AM »
I do wonder, though, whether the RFM69 module, or perhaps even the SX1231H chip itself, is capable of doing any better under even near ideal circumstances.  For example, for all I know maybe thermal noise (or something else) dominates the sx1231H below -121dB.  I've presupposed that it should be capable of doing better, but an existence proof would at least establish that we aren't hunting for unicorns. 

So, as a "Plan B," I'm trying to imagine how to test for that.  Notionally, I'm thinking of a brute force experiment something like the following:
1. Run the RFM69 module on its own independent battery power supply, and with all IO done via optical couplers.
2. Connect the DIO0 line to a load switch that can ring a buzzer if it goes high.
3. Put the RFM69 into listen-mode with a very low RSSI threshhold (maybe -122db to start with, as so far -121db is the lowest that I've seen) and a long enough sleep period to provide ample time to execute step #4
4. Initiate listen-mode, and while the RFM69 sleeps, disconnect the optical couplers from the atmega328p, and stick the radio assembly inside a sealed metal can.
5. Time how long it takes for the buzzer to ring (if it rings at all).

If the buzzer rings right away, during the first Rx period of the listen-mode cycle, then  I'm inclined to think it would prove nothing more can be done.  If it doesn't ring at all, after some TBD number of listen-mode cycles, then I could ratchet down the RSSI threshhold and repeat the experiment until it does, and that would establish the "best case" target to aim for in a more practical design.

It would only be worth doing if it the results were conclusive.  Would the above decide the matter, or would there remain room for doubt?
« Last Edit: February 03, 2016, 11:55:18 AM by WhiteHare »

perky

  • Hero Member
  • *****
  • Posts: 873
  • Country: gb
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #39 on: February 03, 2016, 12:08:29 PM »
Thermal noise, receiver bandwidth and inherent noise floor figures of the receiver all contribute, and it's a little complicated to work it all out. Here's an article giving an idea of what is involved:
http://www.highfrequencyelectronics.com/index.php?option=com_content&view=article&id=553:receiver-sensitivity-and-equivalent-noise-bandwidth&catid=94:2014-06-june-articles&Itemid=189
Mark.

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #40 on: February 03, 2016, 02:26:37 PM »
Thanks for the interesting article.

The RFM69 datasheet says "High Sensitivity: down to -120 dBm at 1.2 kbps".  Can you impute from that the lowest (or perhaps average) RSSI's we can expect to measure when there is no actual signal?  For instance, the article says:

"The required ratio of signal power to noise floor is known for certain types of modulation. For an analog FM land mobile radio system using 25 kHz channels, the receiver must have approximately 4 dB more signal power than noise power. This represents a carrier to noise ratio 4 dB." 

It would be helpful to quantify the magnitude of the noise that we suspect we may be able to eliminate.

So, to illustrate, if the RFM69 were a "FM land mobile radio system using 25 kHz channels" (which it isn't, since it's using FSK, but again just to illustrate the point), then I suppose the noise floor would be at -124dB, and, at least on average, we would not expect to see an RSSI lower than -124, right? 

So, maybe all we need to know is the "required ratio of signal power to noise floor" for FSK.  I don't happen to know, but maybe someone here does?

In any case, the current measurements would seem to suggest that the noise floor is actually higher than -120dB, and I guess that's why we suspect there is interference which might be eliminated, so as to get us to a more fundamental noise floor that, on average, is some number lower than -120dB.  Correct?

The point of asking is that it might quantify the amount of noise that we could theoretically eliminate given the spec of the RFM69.
« Last Edit: February 03, 2016, 02:31:11 PM by WhiteHare »

perky

  • Hero Member
  • *****
  • Posts: 873
  • Country: gb
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #41 on: February 03, 2016, 02:42:48 PM »
Interestingly the app note you posted in a different thread regarding using the sx1231 (not sx1231h) to meet FCC regulations lists some sensitivities which are not as low as you might expect (one uses Fdev 5kHz, RxBw 10kHz with sensitivity quoted at -113.9dB). It's possible there's some specmanship going on.
http://www.semtech.com/images/datasheet/fcc_digital_modulation_systems_semtech.pdf


WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #42 on: February 03, 2016, 07:05:07 PM »
Are you referring to the first entry in Table 1 of that document?  There the quoted bitrate in that instance is 4.8kbps, and the SX1231H datasheet does list -114dB as the sensitivity for that Fdev and Bw at 4.8kbps. 

I am just now noticing though that in order to get to the -120dB sensitivity, as compared to the regular -118dB sensitivity at 1200bps, you need to "Set SensitivityBoost in RegTestLna to 0x2D to reduce the noise floor in the receiver."

I wonder what the downside is to using it?  i.e. why not just always have it set to "reduce the noise floor in the receiver"?  Looking at Figure 8 in the datasheet reveals there's some kind of trade-off such that higher sensitivity comes at the cost of lower linearity, but unfortunately I don't have an intuition as to what the significance of that is.




WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #43 on: February 03, 2016, 09:27:53 PM »
Good news!  By enabling SensitivityBoost and by using Perky's RFM69 1200bps radio configuration numbers (https://lowpowerlab.com/forum/index.php/topic,1434.msg10454.html#msg10454), the Moteino R4 with the solder tacked antenna produces the type of very low RSSI numbers that, on their face, seem plausible for a Semtech radio that alleges -120dB FSK sensitivity:

http://pastebin.com/wNnBxaVH

emjay

  • Full Member
  • ***
  • Posts: 119
  • Country: nl
Re: Best way to isolate/mitigate conducted EMI affecting an RFM69 Moteino?
« Reply #44 on: February 04, 2016, 06:44:02 AM »
@WhiteHare,

Quote
I wonder what the downside is to using it?
Nothing comes for free - the Rx current consumption goes up significantly, so this would be a potential issue for battery powered nodes.