Embedded Intel Atom® Processors
Technological Conversations about Intel Atom® Hardware, Software, Firmware, Graphics
1149 Discussions

How to access i2c port on NUC5i5MYBE using Win32 APIs like SetupDixxx and CreateFile Functions.

bchav
Novice
1,948 Views

Hi There,

Currently myself working on Intel NUC5i5MYBE board with Windows 10 Enterprise Edition.

My focus is on Low Speed Custom Solutions Header of NUC5i5MYBE.

In this Low Speed Header we have GPIO, I2C and SMBus related pins.

My target is to use attached any I2C sensor which is slave at Pin # 13 and # 14 for taking I2C0 as I2C port. I have done related changes in the Intel Visual BIOS to make that pins as I2C0.

javascript:;

Now in Device manager I have I2C0 port entry.

And system is serving I2C0 port as iaLPSSi_I2C_Device driver which is install by Windows 10 itself.

Here is the output of devcon.exe utility with driverfiles option.

-----------------------------------------------------------------------------------------------------------------------------------------

ACPI\INT3432\3&11583659&0

Name: Intel(R) Serial IO I2C Host Controller - 9CE1

Driver installed from C:\Windows\INF\ialpssi_i2c.inf [iaLPSSi_I2C_Device]. 1 file(s) used by driver:

C:\Windows\system32\DRIVERS\iaLPSSi_I2C.sys

------------------------------------------------------------------------------------------------------------------------------------------

In My custom Linux I have no any problem while accessing GPIO or I2C in the same board because I have beautiful /dev and /sys fs infrastructure.

But Problem with Windows environment,

I know the flow how to access any device using device interface GUID in Windows using SetupDixxx APIs for gettting device path and CreateFile function to open the device.

But I don't have interface GUID or I didn't find yet till now in my system.

Previously In one of my NUC board I have combination of Atom processor with Windows 7. And what the cool things is I have got the GUID related information from Intel header files itself.

This link : https://downloadmirror.intel.com/24548/eng/Intel%20Embedded%20Drivers%20for%20Microsoft%20Windows7%20(32%20and%2064-bit)%20-%20MR3.zip https://downloadmirror.intel.com/24548/eng/Intel%20Embedded%20Drivers%20for%20Microsoft%20Windows7%20(32%20and%2064-bit)

And https://downloadcenter.intel.com/download/24548 Download Intel Embedded Drivers for Windows* 7 (32-bit & 64-bit)

But For Windows 10,

1) Driver installed OS itself.

2) Intel not provide any documents or header files for accessing such low level buses using standard Win32 APIs.

3) Only things I found over internet is ms-iot github site, have Windows.Devices namespace concept which I personally don't like because I don't move to C# .

Can anybody help me out here?

Thanks In advance.

0 Kudos
3 Replies
CarlosAM_INTEL
Moderator
683 Views

Hello bhoomil,

Thank you for contacting the Intel Embedded Community.

In order to further help you with this and future consultations related to the Intel(R) NUC devices; they should be addressed to the https://communities.intel.com/community/tech/nuc Forum: Intel NUC | Intel Communities.

We hope that this information is useful to you.

Best Regards,

Carlos_A.

0 Kudos
bchav
Novice
683 Views

hi Carlos_A thanks for your suggestion.

0 Kudos
CarlosAM_INTEL
Moderator
683 Views

Hello bhoomil,

Thanks for your update.

We are glad to hear that provided information was useful to you.

Please do not hesitate to contact us again if you have questions related to the Intel(R) Embedded devices.

Best Regards,

Carlos_A.

0 Kudos
Reply