Forum: Mikrocontroller und Digitale Elektronik NRF24L01+ durch MCP1640 gestört?


von Harald (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

für einen mobilen Sender möchte ich ein NRF24L01+-Modul an einem 
ATmega328p verwenden. Als Spannungsversorgung hatte ich an zwei 
AAA-Batterien gedacht, welche per MCP1640 auf 3,3V gehoben werden. 
Soweit, so gut.

Wenn ich die Schaltung direkt per Netzteil oder über volle Batterien 
versorge (Einspeisung hinter dem MCP1640), bekomme ich auch eine 
einigermaßen stabile Verbindung zum Empfänger. Sobald ich jedoch den 
Spannungsregler nutze, scheint der Funk stark gestört zu werden. Die 
3,3V aus dem Regler habe ich per Oszi geprüft, hier sind keine 
Spannungsspitzen/-einbrüche zu sehen. Ich gehe daher davon aus, dass der 
Schaltregler mit seiner Arbeitsfrequenz von 500kHz direkt die 
Funkverbindung stört (ein HF-Labor habe ich leider nicht zur Verfügung). 
Der MCP1640 sitzt auf der Platinenunterseite, das Funkmodul auf der 
Oberseite. Die Platine ist mit einer großflächigen Massefläche versehen.

Nun könnten mir ein paar Tipps helfen, wie ich den MCP1640 entkoppeln 
könnte bzw. welche (robusteren) Alternativen zur Verfügung stehen. Gegen 
den einen oder anderen Hinweis, wie ich das NRF24L01+ auch noch mit ein 
wenig mehr Robustheit versehen kann, hätte ich auch wenig einzuwenden...

So long,
Harald

von hard worker (Gast)


Lesenswert?

Harald schrieb:
> Nun könnten mir ein paar Tipps helfen, wie ich den MCP1640 entkoppeln
> könnte

Den Schaltregler mit einem oder zwei L-C-Gliedern (L als
sogenannte Ferrit-Perle, Ferrit-Bead) von der übrigen Schaltung
trennen.
Kann denn der Schaltregler genug Strom liefern?

Schaltregler-Induktivität von übriger Schaltung weit weg und
eventuell mit Blech abschirmen ...

Harald schrieb:
> wie ich das NRF24L01+ auch noch mit ein
> wenig mehr Robustheit versehen kann, hätte ich auch wenig einzuwenden...

Wenn der NRF24L01 beim Betrieb gepollt wird, kann (muss nicht)
die HF durch den SPI-Datenverkehr gestört werden.
Abhilfe: Pollen vermeiden und IRQ-Leitung nutzen um Ereignisse
zu detektieren.

Harald schrieb:
> bekomme ich auch eine
> einigermaßen stabile Verbindung zum Empfänger

Für "einigermaßen" siehe auch: Polling vs. IRQ

von hard worker (Gast)


Lesenswert?

Harald schrieb:
> bekomme ich auch eine
> einigermaßen stabile Verbindung zum Empfänger

Die Positionierung des NRF24 innerhalb der gesamten Schaltung
spielt wegen der Antenne auch noch eine wichtige Rolle.

Ideal scheint es zu sein (so werden Layout-Vorschläge gegeben)
den NRF24 "überhängend" am Platinenrand zu platzieren.

von Harald (Gast)


Lesenswert?

hard worker schrieb:
> Den Schaltregler mit einem oder zwei L-C-Gliedern (L als
> sogenannte Ferrit-Perle, Ferrit-Bead) von der übrigen Schaltung
> trennen.
> Kann denn der Schaltregler genug Strom liefern?
>
> Schaltregler-Induktivität von übriger Schaltung weit weg und
> eventuell mit Blech abschirmen ...

Du meinst, hinter den Schaltregler noch einen Filter zu hängen? Auf 
welche Grenzfrequenz würdest du diesen auslegen? Im Oszi ist auf der 
ausgegebenen Spannung eigentlich keine Schwingung zu sehen. Der MCP1640 
kann 100mA, der Bedarf liegt in meiner Schaltung bei ca. 20mA. Räumlich 
sind Funkmodul und Schaltregler schon in den entgegengesetzten Ecken 
untergebracht, Abstand
(mit fliegender Verdrahtung) knapp 25cm.

hard worker schrieb:
> Wenn der NRF24L01 beim Betrieb gepollt wird, kann (muss nicht)
> die HF durch den SPI-Datenverkehr gestört werden.
> Abhilfe: Pollen vermeiden und IRQ-Leitung nutzen um Ereignisse
> zu detektieren.

Der IRQ ist schon umgesetzt, Polling ist mir ein Dorn im Auge Der IRQ 
ist aber ein gutes Stichwort: Die Datenrückmeldung am Sender wird per 
eben IRQ getriggert. Der bleibt aber ab und an aus.

hard worker schrieb:
> Ideal scheint es zu sein (so werden Layout-Vorschläge gegeben)
> den NRF24 "überhängend" am Platinenrand zu platzieren.

Im aktuellen Aufbau hängt der NRF24L01+ noch an einer Strippe. Ich habe 
das Modul auch schon im Betrieb bewegt, macht aber nicht wirklich einen 
Unterschied.

Kann die Flugverdrahtung ein Problem sein?

von Frank K. (fchk)


Lesenswert?

Der einzelne nRF24L01+ Chip hat laut Datenblatt einen 
Versorgungsspannungsbereich von 1.9V bis 3.6V.

https://infocenter.nordicsemi.com/pdf/nRF24L01P_PS_v1.0.pdf

Kapitel 4 "Operating conditions", Seite 13

Da würde sich also eine 18650 LiIon-Rundzelle anbieten, die bis 2.5V 
herunter geht. Der Step-Up-Regler wäre also für den Funkchip 
entbehrlich. Du solltest also das Datenblatt Deines Moduls darauf hin 
nochmal überprüfen. Ich kann nicht erraten, ob und was der Chinese da 
noch verbaut hat. Und ICs und Module ohne ordentliches Datenblatt kauft 
man einfach nicht.

Dein Atmega sollte auch damit laufen, wenn auch mit reduzierter 
Taktrate. Ich würde aber etwas zeitgemäßeres einsetzen, wenn es schon 
AVR sein muss, z.B. den AtMega4808. Da läuft der Prozessorkern eh nur 
noch mit 1.8V, nur der IO-Ring sieht die volle Betriebsspannung, und 
deswegen ist der ziemlich unabhängig von der Höhe der 
Versorgungsspannung.

fchk

von hard worker (Gast)


Lesenswert?

Harald schrieb:
> Im aktuellen Aufbau hängt der NRF24L01+ noch an einer Strippe. Ich habe
> das Modul auch schon im Betrieb bewegt, macht aber nicht wirklich einen
> Unterschied.

Wenn an Strippen, hast du sicherlich(?) keine massiven Abblock-
Kondensatoren direkt am Modul. Das wäre kontra-produktiv.
Die hier
Beitrag "NRF24L01+ test program for Arduino Uno"
gezeigten Abblock-Kondensatoren sollen bei fliegendem Aufbau
sehr nahe am NRF24-Modul positioniert werden.

Harald schrieb:
> Kann die Flugverdrahtung ein Problem sein?

Ja, denn die Versorgung wird durch die langen Strippen weich.
Ausserdem fehlt der (gross)flächige stabile Masse-Bezug. Der
herumwabernde Aufbau sorgt mit jedem Millimeter Bewegung neue
andere HF-verhältnisse.

von hard worker (Gast)


Lesenswert?

Frank K. schrieb:
> Der einzelne nRF24L01+ Chip hat laut Datenblatt einen
> Versorgungsspannungsbereich von 1.9V bis 3.6V.

Das ist nur die halbe Wahrheit. Denn die HF-Anteile der
integrierten Schaltung haben mit einer Spannungsschwankung
einen Drift der die Sende-/Empfangsqualität beeinträchtigen
kann. 1.9 Volt mag ok sein, aber sie müssen trotzdem stabil
sein. 3.6 Volt mag ok sein, aber sie müssen trotzdem stabil
sein. Eine Batterie jedoch driftet vor sich hin, a) durch
Entladung und damit einhergehende Spannungsänderung und
b) durch stärkere Spannungsschwankung durch die dauernd
wechselnde Last der Schaltung, speziell des NRF24. Eine
Batterie hat immer einen vergleichsweise hohen Innen-
widerstand der die Spannung deutlich stärker schwanken lässt
als die eines Spannungsreglers.

von hard worker (Gast)


Lesenswert?

Harald schrieb:
> Im Oszi ist auf der
> ausgegebenen Spannung eigentlich keine Schwingung zu sehen.

Auf einer stabilisierten Gleichspannung eine Störung zu
detektieren ist nicht einfach. Denn sie tritt erst auf wenn
eine aussergewöhnliche (meist nichtperiodische) Belastung
auftritt oder sich eine HF-Störung mit niedrigem Pegel
überlagert. Ich habe selten jemand angetroffen der mir
eine solche Störung wirklich durch Messung nachweisen konnte.

Harald schrieb:
> Der MCP1640
> kann 100mA, der Bedarf liegt in meiner Schaltung bei ca. 20mA.

Der Bedarf liegt beim NRF24 beim Senden deutlich höher.
Bin mir über den Absolutwert auch nicht ganz im Klaren, aber
100mA für die Versorgungsquelle halte ich schon für grenzwertig.

Dann kann man noch ggf. am Aufbau mit dem MCP1640 herummäkeln
(wenn man ihn kennen würde).

von Harald (Gast)


Lesenswert?

Frank K. schrieb:
> Ich kann nicht erraten, ob und was der Chinese da
> noch verbaut hat. Und ICs und Module ohne ordentliches Datenblatt kauft
> man einfach nicht.

Noch ein gutes Stichwort: Natürlich sind die Module aus China. Natürlich 
ohne konkrete Typbezeichung auf dem Board oder eine ordentliche Doku. 
Der IC ist auf jeden Fall korrekt beschriftet, das macht aber für sich 
alleine wenig her und kann auch gefaked sein. Es mag ja dämlich klingen: 
Wo kann ich ein "gutes" NRF-Board kaufen? Google etc sind mit den 
1€-Chinaboards überflutet...


Frank K. schrieb:
> Da würde sich also eine 18650 LiIon-Rundzelle anbieten, die bis 2.5V
> herunter geht. Der Step-Up-Regler wäre also für den Funkchip
> entbehrlich.

Auch mit den AAA-Batterien kann ich den Apparat recht lange betreiben. 
Da ich den ADC des ATmega aber auch i.V.m. einem linearen Hallsensor 
verwende, wäre mir die konstante Versorgungsspannung doch ganz recht.


hard worker schrieb:t
> Wenn an Strippen, hast du sicherlich(?) keine massiven Abblock-
> Kondensatoren direkt am Modul. Das wäre kontra-produktiv.
> Die hier
> Beitrag "NRF24L01+ test program for Arduino Uno"
> gezeigten Abblock-Kondensatoren sollen bei fliegendem Aufbau
> sehr nahe am NRF24-Modul positioniert werden.

Touché! Die Kondensatoren habe ich zwar schon verbaut, aber nicht direkt 
am Modul! Das werde ich morgen ändern!


hard worker schrieb:
> Ja, denn die Versorgung wird durch die langen Strippen weich.
> Ausserdem fehlt der (gross)flächige stabile Masse-Bezug. Der
> herumwabernde Aufbau sorgt mit jedem Millimeter Bewegung neue
> andere HF-verhältnisse.

Die NRF-Module haben ja eine Leiterbahn-Antenne. Auf dem Antennenteil 
der NRF24-PCB ist ja auf TOP nur die Antenne und auf BOT eine 
geschlossene Massefläche. Ich hätte angenommen, dass dies genau den 
Zweck des Massebezugs haben soll

von Gerd E. (robberknight)


Lesenswert?

Der Strombedarf bei Funkmodulen ist normalerweise stark pulsierend. Ich 
würde daher den schon angesprochenen LC-Filter verbauen und dann, in der 
Nähe des Funkmoduls, ein 220 µF Polymer-Elko verbauen. Polymer-Elkos 
haben einen besonders niedrigen ESR, daher kann der Strombedarf des 
Funkmoduls daraus gut gedeckt werden.

von Harald (Gast)


Lesenswert?

hard worker schrieb:
> Der Bedarf liegt beim NRF24 beim Senden deutlich höher.
> Bin mir über den Absolutwert auch nicht ganz im Klaren, aber
> 100mA für die Versorgungsquelle halte ich schon für grenzwertig.

Interessant! Alle 15ms bekommt meine Schaltung ein Datenpaket gesendet 
(Trigger vom NRF24 an AVR per IRQ), dann antwortet mein Sender. Der Spaß 
ist nach 4ms wieder beendet. Dann wartet mein NRF auf die nächste 
Anfrage von der Gegenstelle, der IRQ bleibt aber regelmäßig aus.
Kann das an einem zu geringen max. Strom des MCP1640 liegen?

von Harald (Gast)


Lesenswert?

Gerd E. schrieb:
> Der Strombedarf bei Funkmodulen ist normalerweise stark pulsierend. Ich
> würde daher den schon angesprochenen LC-Filter verbauen und dann, in der
> Nähe des Funkmoduls, ein 220 µF Polymer-Elko verbauen. Polymer-Elkos
> haben einen besonders niedrigen ESR, daher kann der Strombedarf des
> Funkmoduls daraus gut gedeckt werden.

Ich teste morgen verschiedene Kondensatoren am Funkmodul. Einen 
100µF-Elko habe ich schon verbaut, aber eben nicht direkt am Modul

von hard worker (Gast)


Lesenswert?

Gerd E. schrieb:
> und dann, in der
> Nähe des Funkmoduls, ein 220 µF Polymer-Elko verbauen. Polymer-Elkos
> haben einen besonders niedrigen ESR

Danke für die Bestätigung. Ein zusätzlicher keramischer Kondensator
mit 0.1 bis 1uF sollte trotzdem auf jeden Fall vorhanden sein.

von hard worker (Gast)


Lesenswert?

Harald schrieb:
> Kann das an einem zu geringen max. Strom des MCP1640 liegen?

hard worker schrieb:
> 100mA für die Versorgungsquelle halte ich schon für grenzwertig.

hard worker schrieb:
> Dann kann man noch ggf. am Aufbau mit dem MCP1640 herummäkeln
> (wenn man ihn kennen würde).

von Harald (Gast)


Lesenswert?

hard worker schrieb:
> hard worker schrieb:
>> 100mA für die Versorgungsquelle halte ich schon für grenzwertig.

Das Datenblatt des NRF24L01+ spricht bei maximaler Sendeleistung von 
einer Stromaufnahme von 11.3mA und im Empfangsfall von max. 13.5mA. 
Können die Spitzen so viel höher liegen?

von 1640 (Gast)


Angehängte Dateien:

Lesenswert?

Harald schrieb:
> Kann die Flugverdrahtung ein Problem sein?

Seite 17 beachten !

von hard worker (Gast)


Lesenswert?

Harald schrieb:
> Das Datenblatt des NRF24L01+ spricht bei maximaler Sendeleistung von
> einer Stromaufnahme von 11.3mA

Da soll jetzt drinstehen was mag, unsere Erfahrungen sind andere.
Aus meiner HF-Erfahrung heraus ist die HF-Leistung von einigen
dBm bei 2.4 GHz nicht mit 3.3 Volt und 11mA erreichbar. Irgend-
etwas ist da nicht konsistent.

Ich möchte dich aber nicht mit Gewalt von deiner Schaltung
abbringen. Eine sehr gute Abblockung mag helfen ....

Was sicherlich nicht funktioniert ist eine nackte Batterie
an einem NRF24 ohne Stabilisierung der Spannung.

von Harald (Gast)


Lesenswert?

hard worker schrieb:
> Ich möchte dich aber nicht mit Gewalt von deiner Schaltung
> abbringen. Eine sehr gute Abblockung mag helfen ....

Ich teste morgen die verschiedenen angesprochenen Konfigurationen.

von hard worker (Gast)


Lesenswert?

Harald schrieb:
> Ich hätte angenommen, dass dies genau den
> Zweck des Massebezugs haben soll

Ich hatte mal einen meiner Aufbauten gepostet, so wie hier

Beitrag "Re: NRF24L01+ Reichweitenproblem"

funktioniert es jedenfalls gut. Bezeichnend ist die "Ablage"
des Moduls von der Platine (die übrige Masse-Verdrahtung reicht
als Masse-Gegengewicht aus) sowie die Kondensatoren nahe am Modul.
Das dort verwendete FT232 Modul liefert sogar die Versorgung
für Controller und NRF24-Modul. Wenn man es richtig macht
kommt man auch mit Bescheidenheit zurecht.

von ... (Gast)


Lesenswert?

> kommt man auch mit Bescheidenheit zurecht
Aber nicht besonders weit.
Ein CYRF7936 nebst +20 dBm PA schafft im Freifeld
mit einer Chipantenne etwa 1000 m.

von hard worker (Gast)


Lesenswert?

... schrieb:
> Aber nicht besonders weit.

Meine Aussage war auch nicht auf Reichweite bezogen.

Falls du es nicht verstanden haben solltest: die bescheidene
Stromverorgung durch das FT232 Modul reichte für den NRF24 aus.

von ... (Gast)


Lesenswert?

> die bescheidene
> Stromverorgung durch das FT232 Modul reichte für den NRF24 aus.


So ein CYRF7936 hat auch einen integrierten Powerconditioner.
dem man von 1.8 V bis 3.6 V alles andrehen kann...
solange man es orientlich abblockt.

Aber nuex fuer ungut... Hast gutt gemacht! Schulter klopf!

von hard worker (Gast)


Lesenswert?

hard worker schrieb:
> so wie hier
> Beitrag "Re: NRF24L01+ Reichweitenproblem"
> funktioniert es jedenfalls gut.

Im gleichen Thread hat Gerald die Sachlage noch mal aus seiner
Sicht bzw der eines Chip-Herstellers dargestellt. Eine
Verdeutlichung die man bezüglich eigener Verwendung von
Funkmodulen verinnerlichen sollte:

Beitrag "Re: NRF24L01+ Reichweitenproblem"

und folgende.

von Harald (Gast)


Lesenswert?

Heute Vormittag habe ich die von euch vorgeschlagenen Kondensatoren 
(10nF + 100nF + 10µF) direkt am NRF-Modul angebracht. Ergebnis: Die 
Verbindung ist um Welten stabiler und es ist egal, ob ich die Schaltung 
direkt aus dem LNT versorge oder über den MCP1640! Vielen Dank für die 
Hilfe!

Jetzt geht's noch daran, die Verbindung von "einigermaßen stabil" nach 
"stabil" zu bringen. Dazu gehe ich die Massefläche als Gegenpol zur 
Antenne an.

von hard worker (Gast)


Lesenswert?

Harald schrieb:
> Ergebnis: Die Verbindung ist um Welten stabiler

Danke für deine Rückmeldung. Jetzt hast du am eigenen Leib
erfahren was in diesem Zusammenhang Datenblattwerte zur
Stromaufnahme wert sind.

von Harald (Gast)


Lesenswert?

Ja, das wird wohl irgendwie gemittelt. Die ganze Schaltung nimmt inkl 
LED und Co gerade mal 27mA (nach Anzeige am LNT) auf, die Spitzen 
scheinen deutlich höher zu liegen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.