Sari la conținut
ELFORUM - Forumul electronistilor

Probleme emisie la clonele nRF24L01 si Si24R1


cirip

Postări Recomandate

Va salut,

 

Postul este adresat in principal celor care doresc sa foloseasca modulele nRF24L01 de provenienta incerta sau mai bine zis clonele acestui cipan. Personal am testat doua tipuri: 1)Cele pe care chiar scrie nRF24L01, dar au o comportare dubioasa si sunt suspectate a fi facaturi si 2) Si24R1, care poarta un alt cod, dar este declarat ca fiind compatibil cu tizul lui nRF24L01.

 

Avand nevoie de o transmisie radio la mica distanta si gasind aceste module foarte ieftin, mi-am zis ca pot incerca sa le folosesc. Le-am testat atat cu biblioteca RF24 din mediul Arduino, dar am scris si cod complet nou pentru lucrul cu niscai PICuri 18F.

 

Testele initiale au fost un dezastru. Nu reuseam sa fac Atmega sa vorbeasca cu PICul prin intermediul modulelor nRF24L01. Apoi am reusit sa fac doua Arduino sa vorbeasca intre ele, dar comunicatia era sporadica si cu foarte multe erori. Dupa multe teste si re-citiri ale foii de catalog, am reusit sa fac si PICul sa intre in hora. Mai mult, am reusit sa folosesc conceptul de tevi (pipes) descris in foaia de catalog. Cu toate astea, ramanea o instabilitate a legaturii, care, culmea, se agrava cand maream puterea de emisie. Prin urmare m-am decis sa sap mai adanc, ca sa vad ce se intampla. Ca sa ai comunicare trebuie ca atat transmitatorul cat si receptorul sa-si faca treaba. Am inceput cu analiza emisiei.

 

Analiza am facut-o direct pe semnalul RF, pe care l-am mixat, ca sa-l aduc la o frecventa mai joasa, apoi am facut capturi de salve de transmisie RF cu un osciloscop digital. Esantioanele au fost extrase din osciloscop, apoi demodulate si analizate. Din fericire modulatia este de tip FSK, fara criptare si este destul de usor de analizat. Oricum, structura pachetelor RF este descrisa in detaliu in foaia de catalog.

 

Iata mai jos cum arata un pachet de date:

RF_Pachet.thumb.png.13b8b7ccdf03d6de3110d247eb1ad5f5.png

 

Toti parametrii din pachetul de date se pot controla prin program. Se observa prezenta urmatoarelor secvente:
-Preambul: 1 octet
-Adresa destinatie: 3-5 octeti (am folosit 5)
-Datele pr. zise: 32 octeti (nu folosesc lungime variabila, desi este posibil)
-Suma de control sau CRC: 1-2 octeti (am folosit 2)

 

In total, in cazul experimentului meu, un pachet RF contine 1+5+32+2 = 40 octeti = 320 biti. Durata pachetului RF este de 1.28ms. In zona de date pr. zise (payload) cu lungimea de 32 de octeti, numai primul octet a fost incarcat cu valori aleatoare. Restul de 31 au fost toti 0x00.

 

Cam asa arata un pachet RF transmis pe 2.4GHz, mixat si adus la 7MHz, apoi capturat pe osciloscop. Pe pachete de tipul asta am facut analiza modulatiei. Osciloscopul era setat pe 200us/div pe orizontala si 1mV/div pe verticala. 

RF_burst.thumb.png.368b714d9fa3c82f41084eef2d2c1d74.png

 

Pentru a evalua calitatea modulatiei, am facut cate 50 de masuratori consecutive cu date aleatoare si am suprapus rezultatele pentru a trasa diagrama ochi. Cele 8 masuratori sunt facute cu nivele de putere din ce in ce mai mari, in conformitate cu setarile din registrul RF_SETUP bitii RF_PWR asa cum este descris in foaia lui Si24R1.

RF_PWR.thumb.png.ec82823d845abb8489cbdd5a5dc5750c.png

 

Rata de bit folosita este de 250Kbps.

 

Pentru cei nefamiliari cu "diagrama ochi" (eye pattern, eye diagram) si interpretarea ei in evaluarea calitatii transmisiilor de date, iata cateva explicatii aici: despre diagrama ochi

 

RF_PWR = 0b000; Pout = -12dBm

RF_POWER_000_note.thumb.jpg.0c41ebfefe6191876527530dbceb8d6b.jpg

 

RF_PWR = 0b001; Pout = -6dBm

RF_POWER_001.thumb.jpg.dde03cbdf3b1dbee8e9f4c41a13b9591.jpg

 

RF_PWR = 0b010; Pout = -4dBm

RF_POWER_010.thumb.jpg.014b20ddba3bb0a7d5b0a9f86c55ee24.jpg

 

RF_PWR = 0b011; Pout =  0dBm

RF_POWER_011.thumb.jpg.dac08b3a57693919e702b8330b5dbe6c.jpg

 

RF_PWR = 0b100; Pout =  1dBm

RF_POWER_100.thumb.jpg.80ece4d3e2a92cc437217f3e15a1358d.jpg

 

RF_PWR = 0b101; Pout =  3dBm

RF_POWER_101.thumb.jpg.64ddcdfed8b96fcba3c736e848290db0.jpg

 

RF_PWR = 0b110; Pout =  4dBm

RF_POWER_110.thumb.jpg.315fbb0cb823521bb83db4589899646b.jpg

 

RF_PWR = 0b111; Pout =  7dBm

RF_POWER_111.thumb.jpg.b3618c15344ec00717e046da49c17ecc.jpg


Va rog sa remarcati cat de mult se degradeaza calitatea modulatiei pe masura ce este crescuta puterea RF de iesire. Practic, de la puterea de 0dBm in sus, diagrama ochi este inchisa si modulatia emitatorului este inutilizabila, chiar daca receptorul ar fi de cea mai buna calitate. Am verificat si stabilitatea sursei de alimentare si nu am constatat variatii pe timpul transmisiei.

 

In concluzie, celor care doresc totusi sa utilizeze modulele clona ale lui nRF24R01, le recomand sa foloseasca puteri mici de iesire, altfel rata erorilor atinge valori mari inca de la emitator datorita calitatii foarte scazute a modulatiei.

 

Planuiesc sa fac si cateva teste de distanta in camp deschis.

 

Cirip
 

 

 

 

 

Editat de cirip
Link spre comentariu
Acum 5 ore, cirip a spus:

Analiza am facut-o direct pe semnalul RF, pe care l-am mixat, ca sa-l aduc la o frecventa mai joasa, apoi am facut capturi de salve de transmisie RF cu un osciloscop digital. Esantioanele au fost extrase din osciloscop, apoi demodulate si analizate.

[...]

Cam asa arata un pachet RF transmis pe 2.4GHz, mixat si adus la 7MHz, apoi capturat pe osciloscop. 

[...]

Va rog sa remarcati cat de mult se degradeaza calitatea modulatiei pe masura ce este crescuta puterea RF de iesire. Practic, de la puterea de 0dBm in sus, diagrama ochi este inchisa si modulatia emitatorului este inutilizabila, chiar daca receptorul ar fi de cea mai buna calitate. Am verificat si stabilitatea sursei de alimentare si nu am constatat variatii pe timpul transmisiei.

 

Super tare, chapeau bas !

Dar ce ai folosit pe post de mixer ?! 

Module de genul celor analizate de tine vad ca se gasesc si pe la Optimus Digital , la vreo 7 lei ;-)

Ai reusit sa gasesti si motivul ptr care se degradeaza modulatia atat de rau peste 0dBm ? 


Felicitari pentru analiza, cred c-a transpirat osciloscopul ala :)

SI de asemenea, pentru rabdare. Banuiesc ca procesul l-ai automatizat, dar oricum, chiar si ptr a organiza si publica pozele, plus story-ul in sine, implica multa rabdare si determinare (ca sa nu zic pasiune, desi cred ca asta era un termen mai corect, hi ! ).

 

Link spre comentariu
Acum 5 ore, cirip a spus:

Avand nevoie de o transmisie radio la mica distanta si gasind aceste module foarte ieftin, mi-am zis ca pot incerca sa le folosesc.

Va recomand modulele de la Hope, sub 1GHz (cele de peste 1GHz personal nu le-am utilizat).

Le folosesc cu rezultate foarte bune, de mai multi ani, in toata gama de puteri la iesire (<=20dBm) dar si varianta RFM23BP (<=30dBm).

Sunt doar o idee mai scumpe...

Link spre comentariu

Va multumesc pentru comentarii.

 

Sa o luam pe rand ...

 

Acum 6 ore, ratza a spus:

 Ce treabă are cuarţul cu modulaţia defectuoasă la putere mărită?

:aplauze Like!

 

Acum 6 ore, yo3fhm a spus:

Dar ce ai folosit pe post de mixer ?! 

Mixerul a fost ceva de genul asta:

mixer.thumb.png.82c3d1a5be8da746a9925b97400b5ca4.png

 

Acum 6 ore, yo3fhm a spus:

Ai reusit sa gasesti si motivul

In legatura cu motivul, am o suspiciune, dar nu pot sti exact. Din moment ce am verificat ca stabilitatea sursei de alimentare nu este compromisa cand apare pulsul de curent la emisie, ceea ce cred ca se intampla se afla pe cip. Banuiesc ca a fost proiectat in graba, fara sa fie data o atentie deosebita izolarii intre partea digitala si VCOul sintetizorului. De altfel se si observa in zona lunga de zerouri pana la CRC cum apare o modulatie digitala parazita de la un semnal de tip clock. Nu il regasesc pe pinul de alimentare, asa ca banuiesc ca interferenta e interna.

 

Acum 6 ore, yo3fhm a spus:

cred c-a transpirat osciloscopul ala

Corect, a cam transpirat oscilo, dar cred ca si lui i-a placut :limb:. Da, masuratorile au fost automatizate. Nu ar fi putut sa fie altfel. Demodularea si alinierea datelor pentru a afisa diagrama ochi a fost facuta cu desepeala.

 

Acum 5 ore, informer a spus:

Va recomand modulele de la Hope

Multumesc ptr recomandare. Am folosit si folosesc module de la Hope. Dar am constatat ca Si1000, cu care sunt facute modulele, sunt foarte sensibile la supratensiune pe alimentare. Cateva am ars eu din neatentie, iar unul a clacat in timp ce era afara pe montaj; este termometrul ala cu celula solara pe care l-am publicat la Proiecte Complexe. Intre timp preturile au crescut si datorita faptului ca Si1000 nu mai este in fabricatie. nRFurile le-am luat la un pret de nimic, mai exact 99 centi bucata, transport inclus. Asa ca am zis ca merita sa le incerc.

 

Una peste alta, cred ca nRFurile clone sunt utilizabile, dar cu problemele asociate. Atata timp cat este clar ce limitari au, dat fiind pretul extrem de scazut, sunt rezonabile ptr proiecte de tip hobi.

 

Link spre comentariu
Acum 2 ore, cirip a spus:

Multumesc ptr recomandare. Am folosit si folosesc module de la Hope. Dar am constatat ca Si1000, cu care sunt facute modulele, sunt foarte sensibile la supratensiune pe alimentare.

Am inteles, cele folosite de mine sunt cu Si443X (RFM22/23) respectiv Si4463 (RFM69 - sau dupa alte pareri echiv. cu Semtech SX1231). 

 

Editat de informer
Link spre comentariu
La 10.02.2020 la 11:54, VAX a spus:

Nu ma pricep la programare, dar am suficienta experienta in domeniul RF.

Verificati daca frecventele cuarturilor de pe acele module sunt corecte. 

 

Seara buna dl. Vax .  

M-ati putea ajuta sa inteleg care ar fi legatura dintre frecventa cuarturilor respective si problemele de la emisie mentionate de userul cirip ?

Pe mine ma intereseaza un astfel de amanunt. 

Multumesc anticipat !

Link spre comentariu

Nu se inteleg intre ele, pentru ca nu sunt pe aceeasi frecventa. Asa deduc eu, nu ma pricep concret la tipul respectiv de circuit. Problema de tipul asta am intalnit la placile de retea wireless de la unele laptopuri. Pierd des contactul cu routerul.

Link spre comentariu

Care sunt motivele, le stiti ? Ma refer la placile de retea.

Eu am vazut ca se desincronizeaza PLL-ul din cauza diferentei mari de frecventa. Din soft (driver) cauta sa-l readuca pe frecventa actionand asupra unui element reactiv, dar asta o face la inceput, cand stabileste conexiunea cu routerul. Daca pierde legatura ulterior (din fuga de frecventa si desincronizare), asa ramana pana ii dai comanda de reconectare.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări