Software I2C not working as expected

Hi, I am going grazy here. I am using softwarei2c to control an IC. However no matter what I do, I always endup with the same amount of bits send of the bus.

This is the code:


SoftwareI2CBus i2cbus = new SoftwareI2CBus((Cpu.Pin)FEZ_Pin.Digital.Di5, (Cpu.Pin)FEZ_Pin.Digital.Di4);
SoftwareI2CBus.I2CDevice _device = i2cbus.CreateI2CDevice(0x70, 0);
var buffer = new byte[] { 0x00, 0x4E, 0xAA, 0xAA };
 _device.Write(buffer, 0, buffer.Length);

On the scope I see that it uses about 400uS to send this out. However if I change the code to the following I get exactly the same data on the scope. Somehow it only seems to send the first 1 or 2 bytes. Any ideas somebody?


SoftwareI2CBus i2cbus = new SoftwareI2CBus((Cpu.Pin)FEZ_Pin.Digital.Di5, (Cpu.Pin)FEZ_Pin.Digital.Di4);
SoftwareI2CBus.I2CDevice _device = i2cbus.CreateI2CDevice(0x70, 0);
var buffer = new byte[] { 0x00, 0x4E, 0xAA, 0xAA, 0xF1, 0x33, 0xF2, 0x11 };
 _device.Write(buffer, 0, buffer.Length);

There is a c# i2c driver on codeshare, give it a try. You will be able to step in code and see what is happening.