LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Synchronization of 2 USRP's RIO with an external clock for phase shift estimation ; [Labview Communication 2.0]

English: [enclosed, my project]

Hi everyone,

 

I am currently using Labview Communication 2.0 with 2 USRP RIO 2954R.

I want to compute the relative phase shift between my 4 TX (so that I could compensate it afterward). To do so, I send the same signal to all my TX ports of my 2 USRP (a sine wave at 1MHz, with an IQ rate of 10MHz and a carrier frequency of 2GHz). The problem is that I am not sure about my synchronization. 

My first idea was to daisy chain my 2 USRP by connecting RefIn and RefOut between both USRP. As expected, the relative phase shift between the 2 TX of the master was null. The problem with this solution was that the relative phase shift between the TX of the master and the TX of the slave slightly changed over the time. Consequently, I was not able to correctly compensate it (since it varied). 

 

My second solution (since I don't have the octo-clock from NI) was to create my own external clock and share it to the 2 RefIn ports of the USRP. To do so, I measured the RefOut signal of the USRPs with the oscilloscope. It's a 10MHz square wave 3.2Vpp with an offset so that its low level is almost 0V (~ -20mV). I was able to generate this clock almost perfectly. 

I guess that I have to connect the clock signal to the RefIn ports of my USRPs. In my labview block code, I have a "niUSPR propreties" block common to all channels (0,1,2,3) with the proprieties "Timebase clock source"  & "Reference Frequency source". I set these latter to "Internal" & "RefIn" respectively. Is that correct? Also, what is the exact functionality of the "Timebase clock source" property?  I also have a block  "niUSRP configure time start trigger" common to all my channels and a "NIusrp Set Time" configured to "Now" (or "Next Timebase edge", what is the difference?).  I think that I miss something because when I generate the signals to the USRP, I don't always measure the same phase shifts between all my TXs (--> the synchronization is not correct ?!).

 

Finally, what is the exact role of the PPS signals? I connect PPSin with PPSout between my USRP and I always get a green blinking LED. Is it normal?

 

All helps will be gratefully appreciate. 

Sincerely,

S.G.

 

 

 

 

Français: Mon projet se trouve ci-joint

Bonjour à tous,

 

J'utilise Labview Communication 2.0 avec 2 USRP RIO 2954. J'essaye de les syncroniser du mieux possible afin de pouvoir quantifier les déphasages relatifs que j'obtiens aux différents TX lorsque j'envois un même signal aux 4 TX des 2 USRP. J'envois un sinus à 1MHz, avec un IQ rate de 10MHz et une fréquence porteuse de 2GHz. 

 

Ma première idée pour synchroniser était de chaîner les USRP (j'avais donc un maître et un esclave). Ce faisant, je connectais simplement les ports RefIn et RefOut entre eux et entre USRP. Comme espérer, le déphasage relatif entre les 2 TX de mon maître était nul. Cependant le déphasage entre les TX maître et les TX escalves variaient un peu dans le temps de tel sorte qu'auncune compensation efficace ne peut être implémentée.

 

Ma seconde idée, vu que je n'ai pas l'octoclock de NI, est de générer moi-même  une clock externe et de la partager aux RefIn de mes 2 USRP. J'ai donc mesurer à l'oscillo le signal générer par RefOut des USRP. C'est une onde carrée 10MHz, 3.2Vpp avec un offset pour que son niveau bas soit proche de 0V (~ -20mV). 

Je suppose que je dois simplement connecter cette clock aux ports RefIn de mes USRP, non? Dans mon code Labview, j'ai un bloc "niUSPR propreties" commun à tous mes canaux (0,1,2,3) avec les propriétés "Timebase clock source"  & "Reference Frequency source" que je mets respectivement à "Internal" et "RefIn".  Quel est le véritable rôle de la propriété "Timebase clock source"?  J'ai aussi un bloc "niUSRP configure time start trigger" commun à tous mes canaux et un bloc "NIusrp Set Time" configuré à  "Now" (ou "Next Timebase edge", quelle est la différence?). Je pense que je dois faire quelque chose de mal car avec cette config. là, je n'obtiens pas toujours les mêmes déphasages relatifs entre mes différents TX sur l'oscilloscope.

 

Enfin, à quoi correspondent également les signaux PPSin ? Lorsque je lance mes simulations, mes LED's PPS sont vertes clignotantes.

 

Toute aide serait fortement appreciée.
Très sincèrement,

S.G. 

0 Kudos
Message 1 of 4
(2,733 Views)

English: [enclosed, my project]

Hi everyone,

 

I am currently using Labview Communication 2.0 with 2 USRP RIO 2954R.

I want to compute the relative phase shift between my 4 TX (so that I could compensate it afterward). To do so, I send the same signal to all my TX ports of my 2 USRP (a sine wave at 1MHz, with an IQ rate of 10MHz and a carrier frequency of 2GHz). The problem is that I am not sure about my synchronization. 

My first idea was to daisy chain my 2 USRP by connecting RefIn and RefOut between both USRP. As expected, the relative phase shift between the 2 TX of the master was null. The problem with this solution was that the relative phase shift between the TX of the master and the TX of the slave slightly changed over the time. Consequently, I was not able to correctly compensate it (since it varied). 

 

My second solution (since I don't have the octo-clock from NI) was to create my own external clock and share it to the 2 RefIn ports of the USRP. To do so, I measured the RefOut signal of the USRPs with the oscilloscope. It's a 10MHz square wave 3.2Vpp with an offset so that its low level is almost 0V (~ -20mV). I was able to generate this clock almost perfectly. 

I guess that I have to connect the clock signal to the RefIn ports of my USRPs. In my labview block code, I have a "niUSPR propreties" block common to all channels (0,1,2,3) with the proprieties "Timebase clock source"  & "Reference Frequency source". I set these latter to "Internal" & "RefIn" respectively. Is that correct? Also, what is the exact functionality of the "Timebase clock source" property?  I also have a block  "niUSRP configure time start trigger" common to all my channels and a "NIusrp Set Time" configured to "Now" (or "Next Timebase edge", what is the difference?).  I think that I miss something because when I generate the signals to the USRP, I don't always measure the same phase shifts between all my TXs (--> the synchronization is not correct ?!).

 

Finally, what is the exact role of the PPS signals? I connect PPSin with PPSout between my USRP and I always get a green blinking LED. Is it normal?

 

All helps will be gratefully appreciate. 

Sincerely,

S.G.

 

 

 

 

Français: Mon projet se trouve ci-joint

Bonjour à tous,

 

J'utilise Labview Communication 2.0 avec 2 USRP RIO 2954. J'essaye de les syncroniser du mieux possible afin de pouvoir quantifier les déphasages relatifs que j'obtiens aux différents TX lorsque j'envois un même signal aux 4 TX des 2 USRP. J'envois un sinus à 1MHz, avec un IQ rate de 10MHz et une fréquence porteuse de 2GHz. 

 

Ma première idée pour synchroniser était de chaîner les USRP (j'avais donc un maître et un esclave). Ce faisant, je connectais simplement les ports RefIn et RefOut entre eux et entre USRP. Comme espérer, le déphasage relatif entre les 2 TX de mon maître était nul. Cependant le déphasage entre les TX maître et les TX escalves variaient un peu dans le temps de tel sorte qu'auncune compensation efficace ne peut être implémentée.

 

Ma seconde idée, vu que je n'ai pas l'octoclock de NI, est de générer moi-même  une clock externe et de la partager aux RefIn de mes 2 USRP. J'ai donc mesurer à l'oscillo le signal générer par RefOut des USRP. C'est une onde carrée 10MHz, 3.2Vpp avec un offset pour que son niveau bas soit proche de 0V (~ -20mV). 

Je suppose que je dois simplement connecter cette clock aux ports RefIn de mes USRP, non? Dans mon code Labview, j'ai un bloc "niUSPR propreties" commun à tous mes canaux (0,1,2,3) avec les propriétés "Timebase clock source"  & "Reference Frequency source" que je mets respectivement à "Internal" et "RefIn".  Quel est le véritable rôle de la propriété "Timebase clock source"?  J'ai aussi un bloc "niUSRP configure time start trigger" commun à tous mes canaux et un bloc "NIusrp Set Time" configuré à  "Now" (ou "Next Timebase edge", quelle est la différence?). Je pense que je dois faire quelque chose de mal car avec cette config. là, je n'obtiens pas toujours les mêmes déphasages relatifs entre mes différents TX sur l'oscilloscope.

 

Enfin, à quoi correspondent également les signaux PPSin ? Lorsque je lance mes simulations, mes LED's PPS sont vertes clignotantes.

 

Toute aide serait fortement appreciée.
Très sincèrement,

S.G. 

Download All
0 Kudos
Message 2 of 4
(2,733 Views)

Sorry, I made a mistake, this is my project:

0 Kudos
Message 4 of 4
(2,642 Views)