Forum: Mikrocontroller und Digitale Elektronik Zuviel Ausschuss bei RFL2401+ Modulen?


von Chris J. (Gast)


Lesenswert?

Hallo,

ich verzweifel nochmal an den Dingern, die zu meinem Lieblingsspielzeug 
gehören. Habe 10 bekommen und gleich in die Platinen gesteckt, die 
nachweislich miteinander reden können. Die CPU prüft das Vorhandensein 
der Module,liest einige Register aus und beschreibt sie testweise. Aber 
was der eine sendet kriegt der andere nicht mit ! Nur 3 von 10 Module 
sind im Empfänger ok.

Meine Befürchtung: Die Module verstehen sich nicht, weil die Kanäle 
nicht ganz synchron sind. Ist das realistisch? Der Master funkt auf 
Kanal 50, also sind die Slaves auch auf 50 eingestellt.

Logisch sind die Module alle in Ordnung.

Hat dazu jemand eine idee?

Gruss,
Christian

von Einer K. (Gast)


Lesenswert?

Viellicht einfach die falschen erwischt.....

Der Run auf die nRF24L01 hat einiges an Getöse verursacht.
Viele Anbieter von gefälschten Modulen.
Als nRF24L01 angepriesene, hinter welchen sich ganz andere Bausteine 
verbergen.
Irrtümer in den Produktbeschreibungen der Anbieter.
Alles dieses, und sicherlich noch mehr.

Zeige doch mal das Angebot, oder ein Foto von den Dingern.

von Arduinoquäler (Gast)


Lesenswert?

Chris J. schrieb:
> Meine Befürchtung: Die Module verstehen sich nicht, weil die Kanäle
> nicht ganz synchron sind. Ist das realistisch?

Kann sein, die Frequenzen der einzelnen Module liegen durch
die Quarztoleranzen ein paar 100KHz auseinander, das geht aber
meiner Erfahrung nach nur soweit dass die Emfindlichkeit leidet.

Hast du denn schön brav für eine DC- und HF-Abblockung mit
reichlich Kondensatoren gesorgt? Da hapert es oft ....

Nach dem Motto: also bei mir geht's.

Im Englischen: ... works on my machine.

von Chris J. (Gast)


Lesenswert?

Die Module bei ebay sind alle "gefälscht", es gibt wohl gar keine echten 
Nordic mehr, weil die rund 5 Euro/Chip kosten.

Und geblockert habe ich nur mit dem üblichen 10uF an dem VCC. Manche 
Module überziehe ich auch mit Kupferfolie über dem Chip, die ich erde. 
Damit hat man bei den LNA Modulen mehr an Reichweite.

Allerdings fiel mir auf, als ich mit diesem spziellen Bit einen Scanner 
baute, dass die Zahlen der Frequenzen auch nicht genau stimmen. Ist 
recht easy, man wechselt im PRX Mode alle 200us (laut Datenblatt) die 
Frequenz und prüft dieses CARRIER DETECT Bit. Ist es 1 addiert man in 
einem Array 0-128 eine 1 auf der Stelle der Frequenz. Nach so 10 Minuten 
hat man im Umfeld so ziemlich alles abgedeckt was so an wlan sendet. Die 
Arraystelle mit der größten Zahl ist dann die Mittenfrequenz und die war 
eben 49 und nicht 50.

Das Einzige was mir noch einfällt ist dass die beiden sich gegenseitig 
erst ausmessen, der Slave also solange scannt bis er sauber das Paket 
kriegt. Im datensatz an den Slave steht die Anzahl Retries 
(OBSERVE_TX:PLOS_CNT) drin, die der Master bis dahin gemacht hat. Der 
Master muss nämlich teilweise mehrfach senden (die 15 Retrys mit 4ms 
Pause) reichen nicht aus), damit er sein ACK kriegt.

von Mike J. (linuxmint_user)


Lesenswert?

Chris J. schrieb:
> Nur 3 von 10 Module sind im Empfänger ok.

Ich hatte mir damals eine UART-Brücke damit aufgebaut um zu testen ob 
alles läuft. Einige Module liefen einfach nicht, erst nachdem ich diese 
nachgelötet hatte liefen sie.
Anleitung: Beitrag "Re: nRF24L01(+) Problem & Fragen"
Einfach mal testen, vielleicht sind sie nur falsch verlötet worden.

Wenn nicht, dann probiere einfach noch einen 100nF Kerko an den Pins des 
Steckers zu platzieren. Ich habe dort sogar teilweise einen 47µF/6.3V 
Elko befestigt um ganz sicher zu gehen.

von Lars R. (lrs)


Lesenswert?

Chris J. schrieb:
> Die Module bei ebay sind alle "gefälscht", es gibt wohl gar keine echten
> Nordic mehr, weil die rund 5 Euro/Chip kosten.

Welche Module genau hast Du wo gekauft? Magst Du Bilder hochladen, auf 
denen man auch den Chip gut erkennt?

> Allerdings fiel mir auf, als ich mit diesem spziellen Bit einen Scanner
> baute, dass die Zahlen der Frequenzen auch nicht genau stimmen. Ist
> recht easy, man wechselt im PRX Mode alle 200us (laut Datenblatt) die
> Frequenz und prüft dieses CARRIER DETECT Bit. Ist es 1 addiert man in
> einem Array 0-128 eine 1 auf der Stelle der Frequenz. Nach so 10 Minuten
> hat man im Umfeld so ziemlich alles abgedeckt was so an wlan sendet. Die
> Arraystelle mit der größten Zahl ist dann die Mittenfrequenz und die war
> eben 49 und nicht 50.

Interessanter Ansatz. Würdest Du erläutern, was 49 und 50 bedeutet? Wäre 
es nicht besser, verschiedene Empfänger gegen den selben nrf24-Sender zu 
testen?

> Das Einzige was mir noch einfällt ist dass die beiden sich gegenseitig
> erst ausmessen, der Slave also solange scannt bis er sauber das Paket
> kriegt.

Wie kommst Du darauf? Eine solche Funktion "gegenseitig ausmessen" ist 
nirgends beschrieben, oder?

von Arduinoquäler (Gast)


Lesenswert?

Lars R. schrieb:
> Würdest Du erläutern, was 49 und 50 bedeutet? Wäre
> es nicht besser, verschiedene Empfänger gegen den selben nrf24-Sender zu
> testen?

Das ist der Frequenz-Offset in MHz zur Basis 2400 MHz, profan
auch Kanal genannt. Genau genommen kann man mit den NRF24 von
2400 bis 2527 MHz übertragen, in 1 MHz Schritten.

Lars R. schrieb:
> Wie kommst Du darauf? Eine solche Funktion "gegenseitig ausmessen" ist
> nirgends beschrieben, oder?

Das können die Module alleine nicht, aber eine "Intelligenz" auf
zwei Controllern könnte das leisten.

von Chris J. (Gast)


Lesenswert?

Lars R. schrieb:
> Welche Module genau hast Du wo gekauft? Magst Du Bilder hochladen, auf
> denen man auch den Chip gut erkennt?

Nee, fehlt mir der Nerv jetzt zu einen Makroaufsatz auf meine DSLR zu 
schrauben, sind zu klein. 0815 Zeugs halt, 10 Stück kosten 5,95 beim 
Schlitzauge.

Ich habe das grad alles noch mal getestet. Sie funktionieren aber sie 
haben nur eine Reichweite von 2-3m. Also die, von denen ich erst sagte 
dass sie defekt sind.

Die Sache mit dem Vermessen ist nur für arme Leute, da kein echtes CD 
Signal gibt mit einer Anzeige der Feldstärke. Nur 1 Bit, was zeigt, dass 
da überhaupt was ist. Aber auch mit 1 Bit kann man über eine Reihe 
Messungen eine statistische Aussage treffen. Und das sind natürlich 
Kanäle.

PS: Der Empfänger eines der guten Chips reagiert auch wenn ich den 
Empfang statt auf Kanal 50 auf 49 einstelle. Auf 48 allerdings nicht 
mehr. Also scheint das alles doch zu streuen. 2 benachbarte Kanäle 
lassen sich demzufolge nicht trennen. Habe mir das aber schon gedacht.

Hier die Scan Funktion
1
uint8_t RF_ScanChannels()
2
{
3
    uint8_t channels[128] = {0,};
4
    uint16_t treffer = 0;
5
6
    RF_PowerUpRx();
7
8
    while (1) {
9
    for (int i = 0; i < 128; i++) {
10
        RF_SetChannel(i);
11
        delayUS_DWT(200);
12
        if (RF_ReadRegSingle(NRF24L01_REG_RPD) & 0x01) {
13
           treffer++;
14
           channels[i]++;
15
           RF_FlushRX();
16
           CLEAR_STATUS();
17
        }
18
    }
19
    }
20
    return 0;
21
}

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.