01-08-2019 03:59 AM
I have been trying to loop back this digital data using one DO pin and one DI pin.
I have an analog signal having 15000 samples. I have converted it into a 16 bit digital waveform using analog to digital VI. The waveform graph at input side shows me 16 lines. While transmitting I have made line grouping as "one channel for all lines". I am writing this data into DO 1. But while receiving in loop back using one DI pin I am not getting what I have transmitted. I have made the "line grouping setting" same as the transmitter.
I am attaching both of my tx and rx vi's.
Solved! Go to Solution.
01-08-2019 04:30 AM
Hi maverikk,
I am attaching both of my tx and rx vi's.
No, you don't…
All we got are two images of some block diagram of some VIs. How should we debug images?
Please do these steps:
1. Run your VIs.
2. Edit menu -> set current values as default
3. Save the VIs
4. Attach the VIs.
This way we get your VIs and your actual data…
I have converted it into a 16 bit digital waveform using analog to digital VI.
A 16bit digital waveform requires to use 16 digital channels…
I have been trying to loop back this digital data using one DO pin and one DI pin.
This somehow conflicts with your 16 bit digital waveform…
01-08-2019 04:56 AM
Hi GerdW,
Sorry, my bad. Here are the VIs.
01-08-2019 05:47 AM
Hi maverikk,
unfortunately you didn't include the data in your VIs…
But well: it's like I wrote in message #2: you create a digital waveform for 16 DO channels, but you only read in one DI channel. That's a mismatch!
If you really want to use just one DO and one DI you need to serialize your data in the Tx routine and deserialize it in the Rx part!
01-08-2019 07:42 AM
Hi GerdW,
Thank you for replying so soon and bearing with my problem. Yes I want to use just one DO line and only one DI line. Please tell me how can I serialize and deserialize this data. I am using PXIe-6366 which 24 DIO lines.
01-08-2019 07:52 AM
01-08-2019 08:20 AM
@maverikk wrote:
Hi GerdW,
Thank you for replying so soon and bearing with my problem. Yes I want to use just one DO line and only one DI line. Please tell me how can I serialize and deserialize this data. I am using PXIe-6366 which 24 DIO lines.
I do not know if that device is fast enough.
Assuming you want to handle up 20kHz signal and sampling the signal 100 times faster then the highest freq. component, then representing that as 16 bits means you have to drive the output and sample the input at more than 50MHz. I managed to get it up to 200MHz with the right High-speed I/O widget but the code was not trivial and I think it took a day or two to implement the code such that the processing could keep up with the data rate. I did attempt 400 MHz but that was a goal too far.
Ben
01-08-2019 08:46 AM
@Ben wrote:
@maverikk wrote:
Hi GerdW,
Thank you for replying so soon and bearing with my problem. Yes I want to use just one DO line and only one DI line. Please tell me how can I serialize and deserialize this data. I am using PXIe-6366 which 24 DIO lines.
I do not know if that device is fast enough.
.... I managed to get it up to 200MHz with the right High-speed I/O widget but the code was not trivial and I think it took a day or two to implement the code such that the processing could keep up with the data rate. I did attempt 400 MHz but that was a goal too far.
Ben
Correction!
That project I was thinking of required de-muxing two channels from digital stereo microphone and I had to over-sample since the data for each channel was clocked on both the rising and falling edges of a clock.
But do some math to figure just how fast you DIO lines have to transition to determine if your widget is ffast enough.
Ben
01-08-2019 01:31 PM
After remembering that NI developed code for PDM I did a search and found this example.
Ben
01-09-2019 06:51 AM
Hi GerdW,
Attached are the tx and rx VIs. This time I have saved the current values 'as default'. Actually I have a .mat file which is having 15k samples ranging from -1 to +1. I want to do loop back test by digitizing it into 16 bit binary and send it via one DO line and receive it on a DI line. So in LabVIEW I called my .mat file using matlab script and used analog to digital vi to convert it to 16 bit digital format. Now while transmitting, line mismatch problem is occurring. And I am failing in basically whatever I am trying to remove this error. I tried making line grouping as "one channel for all lines" in both tx and rx side. The data is getting transmitted without any error but at the DI I am not receiving anything.