I'm using a cRIO with a 9205 AI-Module. I would like to expand my program with a self calibration procedure according to the example project "NI 9205 Self Calibration" project. In the module properties I can select for calibration mode either "raw" or "calibrated". Raw means 16 bit integer and calibrated means fixed point number. In my project I use calibrated with FP, but the self calibration needs raw. For the self calibration I need to change the mode the raw and for my measurements I need calibrated. But I can't change that while the program is running??? And the other thing is the whole calibration doesn't make sense, to do a self calibration when you afterwards take the raw values? As you can see, I'm very confused...
Solved! Go to Solution.
I just checked out the example.
You have to care about your design architecture because the self calibration applies with a FPGA program.
FPGA code has to respect very specific rules. Are you aware about it ?
The calibration mode allows you to use
* Raw (16 bit integer wich corresponds to your real raw AI/AO value)
* Calibrated (FXP which corresponds the unit you are working with -after conversion-)
This parameter has no relation with self calibration you want to do. It is there for all FPGA targets.
What do you not understand with self calibration project ?
You are reading data (AI in the example), calculate new calibration constants and then write it throught FPGA.
Did you see that at a first look ?
Did you understand how the FPGA receive informations from host ?
I'm almost finished with a big project including HostPC - RT - FPGA, so I'm aware of the basics and principles.
I now understood, that I can execute the self calibration with either "Raw" or "Calibrated", because both values were adapted with the linearization coefficients from the calibration.
My problem is now, that I use, in my almost finished project, the fixed point notation. In the vi "Self-Calibrate 9205 (Host SubVI).vi" is used the I16 notation. I suppose these two configurations are not compatible? It's hard to understand what the subVI's in this vi do, because they are all password protected and probably it's even not possible to change the data type and the calculations.
Probably the simplest way is to convert the fixed point data in FPGA in I16 format, so I can take the "Self-Calibrate 9205 (Host SubVI).vi" without any changes.
The only I16 Type there is, is the #Scans which corresponds to number of samples you will acquire to do the calibration.
Give more specific issues on your missunderstanding.
If you prefer using Raw data on your FPGA target it is a choice you have to make starting coding your application...
Note that this example will work only for Raw data because FIFO data type is U32 type. To make it work with FXP, you have to do some adjustement like i told you in previous post.
The type from the 9205 is also I16 but the FIFO is an U32. In the Host.vi then its converted back to I16. I have no idea why.
But its ok now, I will convert the FixedPoint in an I16 in the host.vi. This way i can keep my FP notation.