From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Interfacing with 40 pin HAT connector (GPIO/I2C/SPI/UART) on UP/UP Squared Board with Labview

I would like to know if anyone have tried to interface with the GPIO/I2C/SPI/UART of the AAEON maker board like UP Board or UP SQUARED. I have several systems (UP Squared) running NI USB-DAQ, but would like to access the I2C and SPI for a start. The USB-DAQ will still be my primary measurement system but accessing Raspery Pi HAT's might be beneficial in a compact test system.

 

My systems are running Windows 10 Enterprise with LabView & TestStand.

I know interface to the 40 pin header is the Altera MAX 10 FPGA, but don't know where to start with this and Labview.

 

I appreciate your help and suggestions.

0 Kudos
Message 1 of 2
(1,370 Views)

The most probably path to go would be to find a documented DLL that accesses this connector and go from there.

 

1) You do need to have a device driver to access hardware under Windows. There is no way for an application in Windows 10 to directly access hardware IO resources and physical memory from user space.

 

2) Calling a device driver from user space while possible, is fairly cumbersome, so you do want to have a DLL that encapsulates the device driver interface into something more easily callable.

 

Supposedly, AAEON does provide an SDK for Windows 10 that supports the GPIO connector. You will need to get that from them and install its driver, then read the documentation about which DLL functions you need to call in which way to access the GPIO. You can call DLLs with the Call Library Function in LabVIEW, but expect this to be quite a bit of work and being interrupted with regular crashes. Calling C APIs is cumbersome and the typically development of that is

for (every feature)
{
  do
  {
    write code;
    compile;
    debug;
  } while crashing;
}
if testing shows a problem goto start;
if more testing shows a problem goto start;
if even more testing shows a problem goto start;

 

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 2
(1,322 Views)