Set the I/O Voltage Level for the NI 8452 I2C/SPI Interface?
6 views (last 30 days)
Show older comments
In LabView there is a way to set the 8452's I/O Voltage Level to values between 3.3 and 1.2V. Is there a way to access this in MATLAB?
Answers (2)
John Hribar
on 20 Oct 2019
4 Comments
John Haven
on 20 Nov 2019
Hi John,
Thank you very much. I'll give this a try and let you know if I have any issues. This saves me a lot of time!
Thanks again,
John
Nathan Monroe
on 15 Jul 2020
Thanks John, for this wonderfully helpful resource. After a few frustrating days of fiddling with it, thought I'd add a few notes for future people who come upon this page.
In my 64 bit Windows system, the above loadlibrary command fails. I resolved this by editing the ni845x.h file in the above to add the following lines:
#include <stdio.h> // Include file for printf
#include <stdlib.h> // Include file for strtol
#include <conio.h> // Include file for _getch
#include <string.h>
#include <windows.h> // Include file for Win32 time functions
These were taken from one of NI's example scripts. It's possible not all of them are necessary, but it works. On top of that, there seems to be some issue where Matlab compiles the code for a 32 bit system when really my system is 64 bit. As a result, there is a datatype error with the DeviceHandle, relating to 32 bit vs 64 bit unsigned integers. To resolve this, I added to the ni845x.h file the following:
#define WIN64
I admittedly don't fully understand the nuances of it, but this resolves my issues and allows John's above code to work.
Andrei
on 12 Sep 2023
Starting in MATLAB R2023a, this is possible by using the new ni845x interface, which has a VoltageLevel property
0 Comments
See Also
Categories
Find more on Call C from MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!