I2C, lack of Windows information

Mar 24, 2005 10 Replies

I am trying to interface an on-motherboard Nvidia NForce2 I2C driver to a Cygnal processor via the SMBus.



Now, normally I would do this all Linux, and it would be trivial, but my development environment is Windows for the Cygnal (now SiLabs). Don't go off trying to tell me to change my IDE. There are other issues.



My problem is that I can't find any documentation at all on accessing the SMBUS that's built into the motherboard. There's lots of information on using adapters, and there's some MSDN stuff from Microsoft on the SMBus, but it's not clear at all how I access it.



The SMBus is working. I've installed some temperature monitoring software, and my oscilloscope shows activity. I've got all the wires, just questions on where the #@$%&#(*%$ API is to talk to it.



After reading this, I want to make it clear that I'm not having problems on the 8051 processor side. This is a Windows question.


For premade tools, try here:

formatting link

Chances are, the temperature sensors on the mainboard are I2C. Thus, if you can figure out how they get read, you can figure out how to read your device.

Try calling or emailing the mainboard mfgr.

Regards, Robert Monsen "Your Highness, I have no need of this hypothesis." - Pierre Laplace (1749-1827), to Napoleon, on why his works on celestial mechanics make no mention of God.

hi do u aware of i2c? i am working with PCF8583. with microcontroller AT89S51. can u help me? if so can u send any routine useful to me?

You can find lots of information on the web. Microchip has various apnotes with sample code. There are sites dedicated to it, like some wierd cult.

Regards, Robert Monsen "Your Highness, I have no need of this hypothesis." - Pierre Laplace (1749-1827), to Napoleon, on why his works on celestial mechanics make no mention of God.

Unless the MS Windows SMBus drivers have control of the bus and don't provide users with the tools to add new device drivers.

Paul Hovnanian mailto:Paul@Hovnanian.com ------------------------------------------------------------------ I could get a new lease on life but I need the first and last month in advance.

One good way to figure this stuff out would be to examine the I2C package from the linux sources. Then, a device driver written for windows might be able to play games and take over the hardware. This is a guess.

Regards, Robert Monsen "Your Highness, I have no need of this hypothesis." - Pierre Laplace (1749-1827), to Napoleon, on why his works on celestial mechanics make no mention of God.

Hey! This whole NG is a wired cult!

Philips have published I2C routines for the 8051 family. Likely to be in ASM51 IIRC.

I wrote my own. It's not difficult. Mine doesn't need an I2C controller on chip and will use any port pins you have free too !

Graham

Maybe. But I'm wondering if Windows has an acessible API that one can use to register a driver for a new device added to their bus. Since modifying motherboards isn't sometthing th typical user does with their PC, they might not have given users access (API documentation, header files, etc.) to their bus drivers.

Paul Hovnanian mailto:Paul@Hovnanian.com ------------------------------------------------------------------ Madness takes its toll. Please have exact change.

That would be nice.

There are third party programs (Sandra from SISoft) that read the motherboard temps. There are also utilities from the mobo mfgr that do this. Thus, it is *possible*. Who knows how easy it is?..

'Sandra' installs their own services, and who knows what else, to do this kind of thing.

There are microsoft API calls for reading various environmental parameters, but they generally don't work. (I spent a few hours researching this at one point a few months ago.)

Regards, Robert Monsen "Your Highness, I have no need of this hypothesis." - Pierre Laplace (1749-1827), to Napoleon, on why his works on celestial mechanics make no mention of God.

If youve got the visual studio suite, install the extra tools. In it there are service and API spy programs. If you run them, then run whatever it is that accesses the temp stuff, you may be able to itnercept the calls that are made, and hook them in your own program. I dont know if it will work with non-microsoft things, as I've never tried, but it's worth a shot.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required