LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

flashing rio

We have a number of units running embedded LV with FPGA RIO boards installed, but the target PC's do not have MAX or LV FPGA installed. 
 
Is it possible to send our customers an EXE program which would reflash the rio boards in the field without the other products installed?
 
Tom
0 Kudos
Message 1 of 12
(8,200 Views)

Hello tprohas,

The only thing that is stored in the FPGA flash is the current bitfile of the FPGA.  From the LabVIEW help for the open FPGA VI reference, you can see that this VI should download a bitfile to the flash of the FPGA target if the current bitfile is not the same.  Using the inputs for open FPGA VI reference, you can make it specify a bitfile instead of a vi. 

http://zone.ni.com/reference/en-XX/help/371599A-01/lvfpgahost/open_fpga_vi_reference/

Are you wanting to store other information on the flash of the FPGA target?

I hope this helps you.

Steven T.

0 Kudos
Message 2 of 12
(8,170 Views)
Our system will download the latest bit file on startup.  The problem is that when power is applied to the system, there is a delay of 20 seconds or more before this download occurs.  This means that on power up, the bit file store in the FPGA flash is used.  As we distribute updates, I want to reflash the latest bit image to the FPGA board.  Again, our units do not have NI MAX or LV installed on them.  So, I want to write a program to perform this one time reflash procedure independent of NI MAX or LV FPGA being installed on the target(basically, an install program).
 
Tom
0 Kudos
Message 3 of 12
(8,152 Views)
tprohas,
 
You could make an executable for your customer that has the open FPGA VI reference.  As long as the bitfile's location is specified in the executable, it will download that bitfile to the FPGA.
 
If the NI-Rio is installed, you can go to Start>>Programs>>National Instruments>>NI-Rio>>.  Select your board and then there is a utility that will allow you to download a bitfile.  Best of all, it is already on your customer's computer if they are currently using the FPGA VIs that you are giving them.
 
I hope this helps.
 
Steven T.
0 Kudos
Message 4 of 12
(8,136 Views)

This is an embedded application. There is no NI software on our customers PC's.  I physically want to update the bit file in the FPGA flash.  I think the method with an EXE won't do that, unless I'm missing something. 

I do a similar thing with the embedded LV startup.exe, I use a PC program that essentially FTP's the file down, replacing the existing LVRT startup.exe.  I need to do a similar operation with the FPGA bit file in the FPGA flash. 

It's obivious that this can be done on a PC that has the develoment tools installed, but I want a stand alone PC EXE to do this. Any IDEAS?

Tom

0 Kudos
Message 5 of 12
(8,133 Views)

tprohas,

My apologies.  You are trying to get a program that will upload a new bitfile to the FPGA, without using any thing that would require a large download (drivers). 

The bitfile is actually contained within the real-time executable.  If your real-time executable uses the open FPGA vi reference, then the bitfile will be downloaded to the FPGA target.  So if the fpga bitfile needs to change, you can just provide a new executable that uses the new fpga bitfile.  It will be downloaded since the old bitfile does not match the new one.  Since you already have the capability to upload a new real-time executable, this would be the best route to take.  I hope this helps you.

Steven T.

0 Kudos
Message 6 of 12
(8,106 Views)

Yes, I am aware that the bit file is downloaded from the LV RT app, BUT, this can take up to 30 seconds or more.  If I reflash the RIO, as soon as power is applied, the bit file is loaded, AND the IO states are put into a desired state. So, being able to do this is still a need.

Tom

0 Kudos
Message 7 of 12
(8,102 Views)

tprohas,

There is no external utility that can be used without having direct access to the drivers.  The only workaround would be to download the new executable using the new bitfile, have your customer restart it one time not connected to anything.  It will be ready to go each successive bootup because it has already been downloaded to the FPGA Flash.  There is no other way to do this. 

This is probably an unacceptable workaround, but it is the only option under these circumstances.

Steven T.

0 Kudos
Message 8 of 12
(8,073 Views)
Maybe I need some more information.  You indicate that when the LV RT runs and downloads, that the FPGA bitfile will be replaced.  Where is this described?  I know the bit file in the LVRT is downloaded and used, but I thought the only way to change the bit file in the fpga was to perform a FLASH function. 
Tom
0 Kudos
Message 9 of 12
(8,012 Views)

tprohas,

Here is the link again.  It is the detailed help from the Open FPGA VI Reference help.  It describes the behavior of the VI when it is called in a host VI.  In the section Open FPGA VI Reference Details, it explains the behavior as far as downloading a compiled FPGA VI to the FPGA device.

http://zone.ni.com/reference/en-XX/help/371599A-01/lvfpgahost/open_fpga_vi_reference/

The first time you run the Real-Time VI it will take a little while to download a new bitfile to the FPGA target.  The next run will not require the download because the FPGA already has the compiled FPGA VI.  I hope this helps you.

Steven T.

Message Edited by Steven T on 08-08-2006 03:46 PM

0 Kudos
Message 10 of 12
(8,003 Views)