How Can I Change My FPGA Code from 1-Tap to a 2-Tap Configuration?

Updated May 6, 2023

Reported In

Hardware

  • PCIe-1473

Driver

  • Vision Acquisition Software

Issue Details

  • I would like to use the 1-Tap 10-Bit Camera with Frame Trigger.lvproj example with my Camera Link camera. However, my camera is 2-Tap. How can I modify this example to be 2-Tap?
  • I have a NI PCIe-1473R Frame Grabber, and would like to acquire images from my 2-Tap camera. What modifications do I need to make to the existing examples to use this camera?

Solution

There are two ways to modify the Frame Trigger.lvproj example to be 2-Tap, depending on the version of Vision Acquisition Software you have installed. 

Vision Acquisition Software September 2016 and Later
As of Vision Acquisition Software September 2016, you can now change the tap configuration of the example by choosing the polymorphic instance of 2-Tap for the IMAQ FPGA CameraLink VI.
You will also need to update the CameraLink Data input to reflect the number of ports you are reading from. For this tap configuration, we will be reading from Port A, B and C. 


Vision Acquisition Software August 2016 and Earlier
If you are using an older version of the driver, you can perform the following steps to change the example to a 2-Tap configuration. 

Note: These steps are specific to a 2-Tap 10-Bit Camera with vertical interlacing configuration. Other configurations can be made by modifying the following steps to your specific camera configuration. 
  1. Open up the example so you can see the Project Window.
  2. Expand the FPGA Target (PCIe-1473R) option and open the 1-Tap 10-Bit Camera with Frame Trigger (FPGA).vi.
  3. Scroll over to the CL Data to Pixels.vi and change the drop down menu to 2 Tap 10-Bit.
  4. Add another name to the Unbundle by Name node and also add a Join Numbers function.
  5. Wire both of the Unbundled names to the inputs of the Join Numbers function and wire the output of the Join Numbers to the Feedback Node as shown in the picture below.
  1. In the Project Explorer Window, right click on the Host DMA 16 FPGA FIFO and select Properties. In the Data Type Category, change the data type to U32.
  2. Open up the 1-Tap 10-Bit Camera with Frame Trigger (Host).vi and scroll over to the Invoke Method with the follow note above it: Read one frame from DMA FIFO.
  3. Inside the following Case Structure, add a Split Number function
  4. Wire the results of the Split Number function to an Interleave Arrays function.  
  5. Wire the output of the Interleave Arrays function to the input of the Reshape Array function. These steps can be seen in the picture below.

This will now allow you use a 2-Tap 10-Bit camera with vertically interlaced tap configuration.

Additional Information

For 12 bit cameras, there is extensive modification required to use a 2-Tap configuration. You could use the 1x IMAQ FPGA Pixel Bus VI and retrieve the pixels individually on the host. Alternatively, you could use the 8x transfer setting on that VI, and modify the the FPGA to send x4 pixel bus twice. Either way, this modification is exclusively up to the customer and will likely have negative effects on the frame rate, etc. For 2-Tab 12 bit cameras, you may want to consider some of the other NI Frame Grabber options that naively support this configuration.