int i2c_driver_enable(void) { DEBUG_PRINTF("I2C Driver enable...", 0, 0); //I2cResult i2cErrorCode = I2C_RES_SUCCESS; int32 i2cResult; uint8 store_data[10]= {1,2,3,4,5,4,3,2,1,0}; uint8 rd_data[10]={0xA5,0x5A,0xA5,0x5A,0xA5, 0x5A,0xA5,0x5A,0xA5,0x5A}; uint8 wr_data[10] = {1,2,3,4,5,6,7,8,9,10}; //int32 ind; int32 rc; int i; int success = 1; i2c_bus.clntCfg.uSlaveAddr = 0x50; i2c_bus.clntCfg.uBusFreqKhz = 400; i2c_bus.clntCfg.uByteTransferTimeoutUs = 2500; i2cResult = I2cDrv_Open(I2CDRV_I2C_11, &i2c_bus, 0); //i2cResult = I2CDEV_Init(DALDEVICEID_I2C_DEVICE_11, &hI2C); if (I2C_RES_SUCCESS != i2cResult) { DEBUG_PRINTF("I2C Driver opened failed", 0, 0); return -1; } rc = I2cDrv_Cmd(&i2c_bus, I2cDrvCmd_Vote_PnocOn, (void*) 150000); DEBUG_PRINTF("I2cDrv_Cmd PnocOn rc=%d", rc, 0); rc = I2cDrv_Cmd(&i2c_bus, I2cDrvCmd_Vote_I2cClocsOn, NULL); DEBUG_PRINTF("I2cDrv_Cmd ClocsOn rc=%d", rc, 0); // store the data rc = i2c_read_eeprom(&i2c_bus, 0x32,store_data, 10); DEBUG_PRINTF("i2c_read_eeprom: 0x%x", rc, 0); for (i = 0; i < 10; i++) { DEBUG_PRINTF("Store_data:%d", store_data[i], 0) } DEBUG_PRINTF("I2C Driver enable...complete? %d", success, 0); if (!success) { for (i = 0; i < 10; i++) { DEBUG_PRINTF("Read:%d, Write:%d", rd_data[i], wr_data[i]) } return -1; } // restore previous content // i2c_write_eeprom(&i2c_bus, 0x3000,store_data, 10); return 0; }
uns8 lm75_get_config(uns8 addr) { return i2c_read_eeprom(0x90 + addr, 0x01); }