Problem with the TWI/I2C module

Hello all,
I’m attempting to use the arduino pro mini 3.3v 8MHz as the master on an I2C bus using Peter Fleury’s GNU library. The problem is this: There is almost no output signal on either the sda or scl pin. When observing the signals at these two pins, with an oscilloscope and relative to ground, they both remain high except for a 100mV signal on sda. I’ve tried pull-ups from 1k to 10k with no change in the output signal. In addition, I’ve loaded the code onto the arduino with and without the internal pull-ups enabled to no avail. I’ve tried the Wired library, as an attempt to get some output from the I2C, and still nothing. Is it possible that the module is defective even though the pins can still be banged? I’ve posted the code below just in case this a software issue that i’ve missed. Any advice would be much appreciated.
CODE:
#include <i2cmaster.h>

//Melexis addresses and commands
#define mlx_1 0x5a<<1 // shifted i2c address of melexis IR thermometer
#define op_ram 0x00 //opcode for ram access
#define op_eeprom 0x30 //opcode for EEROM access
#define op_readflgs 0xf0 //opcode for accessing device flags
#define op_sleep 0xff //opcode for entering sleep mode
#define addr_ta 0x05 //ram address for device temperature
#define addr_tobj 0x06 //ram address for object temperature
void setup(){
i2c_init(); //initiatlize the arduino as the the master
Serial.begin(9600);
PORTC |= 0x30;
}

void loop(){
unsigned int pec;
unsigned long ta = 0;
Serial.println(“start condition and address mlx_1”);
i2c_start_wait(mlx_1+I2C_WRITE); //request to write command to mlx_1
Serial.println(“mlx_addressed”);
i2c_write(op_ram+addr_ta); //write read request
Serial.println(“read ram opcode sent”);
i2c_rep_start(mlx_1); //issue repeated start with address
Serial.println(“repeated start sent”);
ta = i2c_readNak(); //read low byte of ta
Serial.println(“lowbyte read”);
ta = i2c_readNak()<<8; //read high byte of ta
Serial.println(“highbyte read”);
pec = i2c_readNak(); //read packet error code
Serial.println(“pec read”);
i2c_stop();
Serial.println(“I2C comm complete”);
double temperature = (double)((ta * 0.02) - 273.15);
Serial.println(“The ambient temperature is: “);
Serial.print(ta);
Serial.print(”\n”);
delay(1000);
}

Hello again;
Just got back to the oscilloscope for some more observation. Upon closer inspection the approximately 100mV signal mentioned in my previous post is noise from serial communication between the arduino and my mac; this noise appears on both pins and is only visible on the scope when a 100mV per division setting is used. I’ve just tried issuing a start condition without either library, an other attempt at observing some signal at SDA or SCL, and I’m leaning further toward a defect in the TWI hardware because I am still not able to observe any change in the high state of either pins. To issue the the start condition I used the following code:

void setup(){

TWBR = 0x48;

}
void loop(){
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
delay(1000);
}
Thanks for any help.

Try using a different library for a test of the I2C pins, like wired.h..

Or just use them as regular D I/O pins and see if they switch ok. If testing individually sure to use pinMode and set them as outputs.

Just a shot in the dark - it's the analog pins your using for I2C right?