Convert LabVIEW FPGA I16 voltage raw audio data

I use myRIO 1900 and LabVIEW 2015. On the side of myRIO fpga, the Audio IN Terminal gives values of integer (I16) data, while side myRIO RT the real value will come directly.
Of myRIO 1900 user's guide (see pages 7 and 8), the value of the full scale of myRIO Audio IN is of +/-2, 5V. In view of this, my value 32767 should I16 corresponds to + 2, 5V and so on... [ Please refer to this ]
But it's my side RT are does not correspond with the data of the side FPGA data after you have used the above conversion [namely (I16 value * 2.5) / 32767]. I have a dimension value correction factor about 16 i.e. RT = value FPGA converted * 16.
I can't understand this, please explain if someone has expertise in this.

Hey,.

for the conversion, please refer to page 10 of the manual named.

The form of the value the ADC has a range of 0 to 4096.

LSB = 5V / 2 ^ 12 = 1.22 mV

Value of RT = value I16 FPGA * LSB

Tags: NI Products

Similar Questions

  • Acquisition of data in LabVIEW FPGA

    Hello

    I'm working on LabVIEW FPGA where I need to acquire data from a source and take the average. One way to do that is to continue to add each new signal to the oldest f sum and then averaged.

    However, I would like to keep all of the incoming values in a file and save it. But when I tried it doing so, it gives an error message saying "table size cannot be changed. With this constraint, I am unable to write the data to a table.

    Please suggest.

    Thank you.

    You need different acquire data, pass it to the RT, then sign in here. Impossible to use build table the FPGA as FPGA will not allow dynamic allocation of memory like that. You must preallocate the table then use replaces the subset of the table. A better way is to use DMA FIFOs. Have a look at the FPGA examples in LabVIEW for data flow. Then, on the RT, you can simply add in your files logging functions.

  • Simulate the sine wave using LabVIEW FPGA with NOR-myRIO and display in real time

    Hello

    I'm relatively new to LabVIEW FPGA. I am trying to test (and later apply) controllers high speed on myRIO.

    At this point, I'm trying to simulate the sine wave from 1 to 10 kHz using Sinewave generator VI express. I also intend to display the sine wave on the time real (RT) using FIFO. However, I had a bit of trouble to understaing various synchronization parameters.

    1. how to encode information about the sampling frequency generating sine wave? (The side FPGA vi requires only the frequency of the signal and possibly phase and does not rate update lines)

    2. how to estimate the number of items in a FIFO? (that is, the relationship between the rate of updates to loop (RT), the signal frequency, sampling frequency and the number of items in the FIFO)

    It would be great if we could share a very simple program (side host and target) that did something similar.

    Thank you

    MILIN

    Milot,

    I think the problem is the type of data in your FIFO. Your FIFO is configured to use a data type of I16. The problem is the number, it displays only ever will be-1, 0 or 1. To resolve this problem, you must send the sine wave as a fixed point data and convert it to a double on the side of the RT. This should significantly improve your resolution.

  • Acquiring temp with NI 9214 using labview fpga

    Hello

    I'm a student, very new to labview and data acquisition. I had problems with a thermocouple type T of wiring to a NI 9214 module and writing a program labview FPGA to acquire temperatures. I've been struggling with this and for a long time to research on the web without success.

    Please find attached the code that I work with. I was told to use the value obtained from the CJC and converted using the formula I found here ( http://zone.ni.com/reference/en-XX/help/370984T-01/criodevicehelp/9214_converting/ ) and arrays of conductor thermocouple type T to find the temperature, but I didn't get anything that makes sense.

    Please can someone help me?

    Jeremiah

    Hi Jeremiah,.

    You use this 9214 in cRIO chassis? If Yes, which model?

    Regarding the conversion of the data, you have to take care to recover the data from the side host (you'll need a separate VI) and taking care of converting it. When you mention that you don't get what makes sense, what exactly read / do you expect?

    I strongly suggest you open and tinkering with the example of the host/FPGA shipping screw to the 9214 (NI 9214 Get Started.lvproj, found in the program NIUninstaller Instruments\LabVIEW 2013\examples\CompactRIO\Module Specific\NI 9214\NI 9214 Getting Started). It should allow you to have a good knowledge in understanding the relationship between the host and the screw of the FPGA.

    I hope this helps!

  • How to make my computer send all audio data via an optical audio cable instead of making headphones?

    Howdy,

    To listen to the radio online or CD played from my computer, I used to connect the computer to my entertainment system at home since the headphone jack of the computer to the port on my home entertainment system.

    Now, I wanted to get a better sound and bought the optical audio cable. However, I don't know how to tell my computer to send the audio signal to the system entertainmeny home via digital cable optical, rather than by the headphone. If I just disconnect the cable between the headphone and the port to THE and have only the PC and the system connected with the optical audio cable, I can't hear any sound. I suspect that the computer is not sending the data through the optical audio port. I'm not able to figure out how I can adjust the settings on my computer so that, from now on, all sounds are emitted through the optical audio.

    (1) I want to do it especially for my desktop HP (configuration below) and advice on how to do this would be appreciated.

    (2) I also have a HP laptop (configuration below) and I was wondering if this would be feasible too (even if she does not have an audio output, but it has an HDMI output - you can convert audio optical?)

    Thanks in advance!

    My office is:

    WANT to h8xt,
    • Windows 8 64
    • 3rd generation Intel (r) Core processor quad-core i7-3770 [3.4 GHz, 8 MB of shared cache]
    • 12GB DDR3 1333 MHz SDRAM [3 DIMMS]
    • 1 TB 7200 RPM SATA hard drive
    • No secondary hard drive
    • 1 GB AMD Radeon HD 7570 [DVI, HDMI, DP, VGA adapter]
    • 300W power supply
    • DVD SuperMulti burner
    • LAN wireless-N (1 x 1) card
    • 15-in-1 reader cards, 2 USB 2.0 (front), 2 USB 3.0 (top)
    • No additional desktop software
    • No additional security software
    • No TV Tuner
    • Beats Audio (tm) - a built-in studio quality sound
    • HP USB volume control keyboard and mouse with Win 8 keyboard
    • Adobe Premiere Elements and Photoshop Elements 10

    And the laptop:

    HP ENVY 15t Quad

    Hello @_goma,.

    Welcome to the HP Forums, I hope you enjoy your experience!

    I read your post about how you want to send all the audio data via an optical audio cable instead of the headphone jack of your computer, and I'd be happy to help you in this case!

    To configure your desktop computer to activate the optical audio cable, I advise you to follow the steps below:

    Step 1. Click on the button of the Windows key on your desktop

    Step 2. Type "Control Panel."

    Step 3. Select "Control Panel" in the upper right corner

    Step 4. Select sound

    Step 5. On the Read tab, right click on the white box under available devices

    Step 6. Select "Show disabled" and "show disconnected devices".

    Step 7. Connect your Audio optical cable

    Step 8. Select your cable Audio perspective as the default device, and click 'enable '.

    Because it is not possible to convert the audio output HDMI output on your laptop, it is regrettable that the laptop is not able to connect with an optical audio cable.

    Please re-post with the results of your troubleshooting, and I look forward to your response!

    Concerning

  • How to split audio data in images after reading a file

    Hi im a student of final year done my project in speech recognition using labview. could someone help me with how to split an audio data in image file for further processing.

    You could read wav files in LabVIEW using these VI: http://zone.ni.com/reference/en-XX/help/371361H-01/lvpict/sfilevis/ once you've read, divide the waveform in the picture of your choice.

    Before you return to the report on not enough memory, please read this: http://forums.ni.com/t5/LabVIEW/not-enough-memory-to-plot-wav-file/m-p/754592

    Search results: http://search.ni.com/nisearch/app/main/p/bot/no/ap/global/lang/en/pg/1/ps/30/q/wav%20file/

  • How to measure the frequency of sampling (s/s) in LabView FPGA?

    Hello

    I am trying to find a way to measure the sampling frequency (s/s) during which I read from analog input in LabVIEW FPGA. I know that the sampling frequency is specified in the data sheet of the module HAVE, but I want to measure in LabVIEW.

    Any suggestions?

    A screenshot of the example code would be greatly appreciated

    Hey phg,.

    If you have some time loopand in this loop, you export a sample by iteration of loop via an I/O node. You can't out two samples on the same I/O node within an iteration, it's always one!

    So if your loop takes 1 second to run you have a sampling rate of 1 Hz output. The same goes for sampling of entry. How long your loop takes to run can be calculated as explained above.

    Samplerate [s / s] = 1 / [s] while loop

  • Move from LabVIEW FPGA block of ram address to node CLIP?

    Hello

    I need to pass an index memory RAM of LabVIEW FPGA block to a CLIP node to the node CLIP to have access to the data in the BRAM.  The node of the ELEMENT contains an IP address that we developed and the IP address is the use of Xilinx BRAM driver to access data.  I guess that we need to move the physical address of the BRAM to the ELEMENT node.

    Is this possible? If so, how? If this is not the case, what would be an alternative?

    Thank you

    Michel

    If I understand you correctly, Yes, you should be able to use the memory block of the Xilinx pallet Builder in LabVIEW FPGA and in the loop of the single Cycle, connect the ports of this block signals CLIP exposed by the IP of your colleague. You may need to tweak/adapt some of the signals slightly to the LabVIEW data flow.

  • If the butterworth filter available in LabVIEW FPGA is cascade, can I get a higher order filter?

    I need a 10th order filter lowpass butterworth with cut-off frequency 5 kHz. Can I build by 4th cascading of 2 order butterworth filters and 1 2nd order available in LabVIEW FPGA each filter in butterworth with cut-off frequency 5 kHz?

    This will increase the amount that your data will be filtered but will not increase the order in the Manor that you think. If you cascade two 2 4th order filters and compare that results to a filter of order 8, the resulting field filter cascading bode would look more like a 6,5e order filter.

    Logan H

  • Model a block synchronous dual-port RAM with LabVIEW FPGA

    This question caught my attention recently.

    I am trying to model a particular design element called "RAMB4_S8_S8" with the LabVIEW FPGA module. This element is a block synchronous dual-port RAM allowing simultaneous access to two ports independently from each other. That being said, a port can perform read/write operation to this RAM while at the same time, the other port might be able to do the same thing. There are two opportunities of possible port conflict, however. The first is when both ports are trying to write to the same memory cell. The other scenario is when a port writes in a cell memory while at the same time the other port reads from it. Other than that, everything should be a legitimate operation.

    In order to reproduce this I select memory block that is integrated into my FPGA target. An interface is configured to be the playback mode, and the other is set to write fashion. For the option of arbitration, I let the two interfaces to be "arbitrate if several applicants only. Then I got a compiler error when I tried to run my FPGA code for this model in a SCTL. The error message is something like "several objects to request access to a resource through a resource configured with option interface" arbitrate if several applicants only ", which is supported only in the single-cycle Timed loop if there is only a single applicant by interface.

    This error goes away if I replace the SCTL with a simple while loop, but not what I would like to implement. So I wonder if there is a better solution to this problem, or is it just the limitation of the LabVIEW FPGA module.

    Thank you.

    Yes, you can use a form of conduct to perform the operations you want in the generations clock cycles, but all the code is inside a single SCTL. Basically, read the first address and storing in a register in a single cycle and then read the second address in the second clock cycle. This would allow you to two readings of valid memory every clock cycle 2. I have included a crude extract to illustrate the concept. The case selectors are identical with address A being connected to the memory in the true case, B in the case of fake address. Your biggest model memory dual port will be intact, but it will operate at 1/2 rate.

    Take a look at the white paper that provides more details on the construction of memory:

    Data on a target FPGAS (FPGA Module)

    The ball on the memory block indicates that memory block double port cannot be applied in a configuration of reading, which is a double ROM. access read/write port must be imitated with custom code.

  • LabVIEW FPGA on average

    I created a Labview FPGA .vi using a structure flat sequence that shows the output of a sensor at a sampling frequency of 1 kHz on a digital SPI.  After reading, I write the point data fixed in a FIFO, which is read by a host vi and finally written on the hard disk for post-processing.  I need to add logic for the calculation of the average for the further process the signal FPGA vi.  I want to continue at the exit of the original 1 kHz sampled datat to the FIFO, but also perform a sprawl on the steps and write these results at the same frequency of 1 kHz to the FIFO.  The average feature, I would like to implement is a two-step process.  Step 1 is to take samples of 1 kHz and perform an average of 16 samples based frame.  In other words, I want samples of sum 16 1 kHz and dividing by 16 and decimate 16:1, which produces data of 62.5 Hz.  Step 2 is to take 62.5 Hz sampled data and perform a moving average of 16 samples on these data and output resulting at the same sample rate of 62.5 Hz.  I want these 62.5 Hz sampled data to be injected into the FIFA as well as the original data of 1 kHz sampled (unmodified) at the frequency of 1 kHz.

    I've got step 1 work correctly using the block "mean, Variance, StdDev FPGA vi" with number of samples on 16.  This block runs within a sequence of flat sequence structure after I received each sample 1 kHz on the SPI.  My fight is the average feature mobile step 2.  I try to use the code in the screenshot below, but am unclear regarding how/where to implement this logic inside is my structure flat separate sequence while loop, structure of the case, etc, in order to ensure that it only works on one of 62.5 Hz samples to this flow of data at once.  I tried to put it inside the sequence that executes the block average and further in a case that is driven by the Boolean "valid" the average block output.  I obviously don't understand how these different loops run, because it does not work properly.  Can someone tell me how to implement the logic of moving average in my vi FPGA existing to produce the desired results as described above?  Screenshot below of the logic (step 2) average mobile I am trying to use.  In addition, find attached my screws vi FPGA that I need help with is 'CA215_SPI.vi' and the level vi host is 'Host.vi '.  Thanks in advance.

    Joel

    This question is closed.  I realized that my approach to implementation was actually working.  I just had a stupid mistake on my fixed point output bit size, giving me results errenous.

  • Use of FIFO memory on two areas of clock (Labview FPGA) block

    Greetings!

    I'm developing an application on the FPGA of the vector signal OR 5644R
    transmitter/receiver. I have two loops single-cycle timed: a 40 MHz making a convolution
    and writing a FIFO memory block and the second at 120 MHz (sample clock)
    who reads from block FIFO memory and uses the following values
    interpolation...

    Under what circumstances is it permissible to use a FIFO memory block to transfer

    values of a loop from 40 MHz to a loop of 120 MHz (sample clock)?

    The reason I ask the question, it is that the compilation of my code repeatedly of not
    reported the error below:

    ERROR: HDLCompiler:69 - "/ opt/apps/NIFPGA/jobs/J9k7Gwc_WXxzSVD/Interface.vhd" line 193: is not declared.

    I share for everyone's reference, screenshots of my code which is an extension of

    sample 'Project streaming VST' given in NI5644R. A brief description of attachments is

    given below...

    1. "Top_level_FPGA_part1_modification.png": in a loop SCTL 120 MHz, a sub - vi bed FPGA

    go a block FIFO memory... In fact, the reading is actually made when entry

    "read_stream" is activated... (see details in read_from_fifo_true_case.png)

    2. "Top_level_FPGA_part2_modification.png": a 40 MHz SCTL, wherein is a subvi FPGA

    called to write the output of convolution to block FIFO memory.

    3. "target_respone_fpga_block_FIFO_modification.png": an output of a convolution filter is

    written in block FIFO memory each time that the convolution output is available...

    'ReadBlockFIFO' VI (circled in Top_level_FPGA_part1) is invoked in a 120 MHz SCTL.

    4. "read_from_fifo_false_case.png": when the input "read_stream' of this vi is false,

    data transfer memory FIFO of block to a different FIFO ('generation filter") takes

    place.

    5. "read_from_fifo_true_case.png": when the "read_stream' is set to true, the data is read in

    'Filter generation' FIFO and spent on the chain of later interpolation to the

    120 MHz SCTL...

    I hope that the attachments give enough clarity to what I'm doing... If we need

    For more information, do not hesitate to ask...

    Kind regards

    S. Raja Kumar

    Greetings!

    I think I understand the problem... The error probably occurs because a DMA FIFO

    (FPGA host) is playing at 40 MHz, and it is checked for the number of items in a loop

    120 MHz... It is not captured by the "pre-processing" by the labview FPGA, but by the Xilinx

    compilation phase synthesis tool.

    A lesson I share, is that if you observe this kind of problem, watch if there is incompatibility

    in the areas of the clock to access a FIFO...

    Kind regards

    S. Raja Kumar

  • LabVIEW FPGA and real-time communication module

    Hi all

    I created a small program in labview FPGA which gets continually distance from the HC - SR04 ultrasonic sensor. The rest of the robot program is written in the time module real Labview. Is it possible that the distance calculated by FPGA module to read in time real module.

    I used the FPGA just because there micro-deuxieme counter, which helps me get the distance from the ultrasonic sensor.

    Thanks in advance.

    There are many ways this can be done, according to your needs.

    See the help article transfer of data between the FPGA and host (Module FPGA) for a breakdown of each method.

  • CPU register accessible in LabView FPGA FlexRIO

    Hello people, I wonder if it is possible to get the following behaviors of Labview.  I think that it is not.

    Description of the system: application of CVI which communicates with SMU FlexRIO via controls and indicators.

    Problem: The design of a CPU-FPGA interface specification which lists the "books" as a combination of reading and reading/writing-the bit fields.

    Example:

    According to the specification, there should be a 32-bit register.  31: 16 bits are read-only, and 15:0 bits are read/write, from the perspective of the CPU.  In the world of labview, I would just do a uint16 control and indicator of uint16 and do with it.

    However, to meet the specification (written for microprocessor buses) traditional, a reading of 32 bits of an address should read back the full content of the 32-bitregister to this place (implemented as flops on the FPGA, with appropriate memory within the FPGA device mapping).  In the same way a 32 bits of an address entry must store the values in this registry (properly masking wrote at 31: 16 bits within the FPGA device).

    Is it possible for me to have a unique address (basically, a component unique labview block diagram) that will allow me to accomplish this behavior?  It seems to me that the only solution is to pack my records with bit fields that are all read, or all the read-write in order to register in the paradigm of labview.  This means that the spec should go back and be re-written and approved again.

    Thanks in advance,

    -J

    Thanks for the detailed explanation. I am familiar with the reading and writing in the FPGA registers - I did a lot of work non-LabVIEW recently with an Altera FPGA. I haven't, however, used the CVI to LabVIEW FPGA interface, I only used the LabVIEW interface. I'm not sure if your question is about the CVI, LabVIEW FPGA interface or both.

    JJMontante wrote:

    Thus, a restatement of my original question: y at - it a mechanism with the use of indicators of controls where both the FPGA AND the CPU can write to the same series of flip-flops in the FPGA?   If I use an indicator, the FPGA can write to the indicator, but the CPU cannot.  If I use a control, the CPU can write in the control, but can't the FPGA.  Is this correct?

    On LabVIEW FPGA, a control and indicator are essentially identical. You can write a check, or read a battery / battery, using a local variable in the FPGA code. It is common to use a single piece of front panel to transfer the data in either sense, and it's okay if it's a command or an indicator. For example, a common strategy uses a Boolean façade element for handshake. The CPU writes a value to a numeric control, and then sets the value Boolean true to indicate that the new data is available. FPGA reads this numerical value, and then sets the Boolean false, which indicates the processor that the value has been read. The LabVIEW FPGA interface (side CPU) covers also all elements of frontage on the same FPGA whether orders or the lights--they can be as well read and written.

    That answer your question at all?

  • Exactly how memory works in Labview Fpga

    I use a PXI 7853 and me for the last few days I've been playing with the help of blocks of memory in the FPGA.

    Now, I'm relatively new to Labview FPGA programming and this is why I would be grateful if someone could provide me with some clarification on the following points:

    (a) given that I work on the development host computer when I initialize memory with the ability to use a memory initialization VI then how does exactly in the backend. What I want to ask is, when I change the values of the memory in the computer development and then compile the FPGA VI in the Board of Directors, what is data memory are brought in the FPGA. If this is the case then in what form are the details initially registered in the development computer.

    (b) is it possible for me to use the initialization method VI to change memory n valuesi while the FPGA VI is running. If this isn't the case, then it would make a difference if I stop the VI and then change the values using the Initialize method. Who would actually reflect on the FPGA or should I have to re compile the FPGA VI whenever I change memory values in the development machine, using the "VI initialization method (which is available as an option for us do a right-click on the block of memory in the Project Explorer window).

    I tried test with simulation of FPGA VI and found that when I try to change the values of memory by running VI initialization. a pop up that says that it is not possible that the FPGA VI is still in service is delivered.

    Any light on this or advice with links would be much appreciated

    See you soon

    sbkr

    sbkr wrote:

    (a) given that I work on the development host computer when I initialize memory with the ability to use a memory initialization VI then how does exactly in the backend. What I want to ask is, when I change the values of the memory in the computer development and then compile the FPGA VI in the Board of Directors, what is data memory are brought in the FPGA. If this is the case then in what form are the details initially registered in the development computer.

    When you compile the FPGA VI, he will understand the values used to initialize the memory.

    Are asking you what happens if you run the VI FPGA on your development computer, and your FPGA VI, written in the memory block, the new values are included when you compile the FPGA VI? No, these values will be lost. The values contained in the bitfile are the values you used to initialize the block of memory, as defined in the memory properties dialog box. The initial values are saved in the LabVIEW project file and the definition of memory block.

    sbkr wrote:

    (b) is it possible for me to use the initialization method VI to change memory n valuesi while the FPGA VI is running. If this isn't the case, then it would make a difference if I stop the VI and then change the values using the Initialize method. Who would actually reflect on the FPGA or should I have to re compile the FPGA VI whenever I change memory values in the development machine, using the "VI initialization method (which is available as an option for us do a right-click on the block of memory in the Project Explorer window).

    You will have to recompile the FPGA in order to use the new initialization values, because these values are part of the bitfile FPGA.

Maybe you are looking for

  • BlackBerry smartphones download Blackberry Maps

    I have a "BOLD" and am unable to download Blackberry Maps. When the computer it tells me to go to my "BOLD" and download it from there. When I enter on the Blackberry site I can not locate the download of the map.

  • A license of two images by mistake

    I have licensed two images by mistake then he was just trying to save previews of them. Can help you guys?File #: 86835107File #: 95532255Thank you.

  • Can I set up a text watermark so that it inserts the metadata (e.g.Copyright) file when exporting?

    I would like to be able to use a metadata field in a model of watermark. In this way, I don't have to continue to create a new version for each year of copyright and then use this watermark preset when exporting. Much like the Simple copyright law, b

  • Syntax for multiple unpivot

    I have a table like the below, which I brought to a worksheet, where twelve U-P-columns and are representative of both age groups (U30 and P30), three genders (F, M and the two (not f or m)) and two types of client (the 1 and 2 at the end).CREATE TAB

  • At Adobe Acrobat XI EOL for download?

    Our team of creative Cloud all used XI for all their needs of Acrobat and one of them accidentally installed the "DC". I tried to find Adobe Acrobat pro XI on the new site, where is the link?