Other Parts Discussed in Thread: CC1310
Tool/software: TI-RTOS
Hello,
I'm currently facing problems with the I2C,how can i change default i2c pin DIO4 &DIO5 LaunchPADXL to DIO8 & DIO 9,i can read i2c using default pin,below is my example code,any example code i2c changing pin is very appreciate.
as hardware i already pull out resistor .
extern void *DS1341(void *arg0){ IOCPinTypeI2c(I2C0_BASE, IOID_9, IOID_8); IOCPortConfigureSet(IOID_8, IOC_PORT_MCU_I2C_MSSCL,IOC_CURRENT_2MA | IOC_STRENGTH_AUTO | IOC_IOPULL_UP | IOC_SLEW_DISABLE | IOC_HYST_DISABLE | IOC_NO_EDGE | IOC_INT_DISABLE | IOC_IOMODE_OPEN_DRAIN_NORMAL | IOC_NO_WAKE_UP | IOC_INPUT_ENABLE); IOCPortConfigureSet(IOID_9, IOC_PORT_MCU_I2C_MSSDA,IOC_CURRENT_2MA | IOC_STRENGTH_AUTO | IOC_IOPULL_UP | IOC_SLEW_DISABLE | IOC_HYST_DISABLE | IOC_NO_EDGE | IOC_INT_DISABLE | IOC_IOMODE_OPEN_DRAIN_NORMAL | IOC_NO_WAKE_UP | IOC_INPUT_ENABLE); /* Call driver init functions */ I2C_init(); /* Create I2C for usage */ I2C_Params_init(&i2cParams); i2cParams.bitRate = I2C_400kHz; i2c = I2C_open(Board_I2C_TMP, &i2cParams); if (i2c == NULL) { printf("Error Initializing I2C\n"); } else { printf("I2C Initialized!\n"); } //// IOCPortConfigureSet(IOID_9, IOC_PORT_MCU_I2C_MSSDA,IOC_INPUT_DISABLE|IOC_SLEW_DISABLE|IOC_HYST_DISABLE| //// IOC_INT_DISABLE); // IOCPortConfigureSet(IOID_8, IOC_PORT_MCU_I2C_MSSCL,IOC_INPUT_DISABLE|IOC_SLEW_DISABLE|IOC_HYST_DISABLE| // IOC_INT_DISABLE); // ui32IOConfig = IOC_CURRENT_2MA | IOC_STRENGTH_AUTO | IOC_IOPULL_UP | // IOC_SLEW_DISABLE | IOC_HYST_DISABLE | IOC_NO_EDGE | // IOC_INT_DISABLE | IOC_IOMODE_OPEN_DRAIN_NORMAL | // WriteTime(); // set_alarm_1_at_minute(15, 20); // Clear_Alarm(); // Enable_Alarm_1(); Off_Alarm(); while(1){ CPUdelay(100000*50); ReadTime(); printf("Time>>%d :%d :%d: %d\n",rtc.days,rtc.hours,rtc.minutes,rtc.seconds); } // return (NULL); } uint8_t ReadTime(){ uint8_t WriteSecond[1]; uint8_t readSecond[8]; WriteSecond[0] = 0x00; i2cTransaction.slaveAddress = DS1341_Addr; i2cTransaction.writeBuf = WriteSecond; i2cTransaction.writeCount = 1; i2cTransaction.readBuf = readSecond; i2cTransaction.readCount = 7; if (I2C_transfer(i2c, &i2cTransaction)){ rtc.seconds = BCDToDecimal(readSecond[0]); rtc.minutes = BCDToDecimal(readSecond[1]); if((readSecond[1]) & (0x01 << 6)){ rtc.hours = ((readSecond[1] >> 4) & 0x01) * 12 + ((readSecond[1] >> 5) & 0x01) * 12; }else{ rtc.hours = BCDToDecimal(readSecond[2]); } rtc.days = BCDToDecimal(readSecond[4]); rtc.months = BCDToDecimal(readSecond[5] & 0x1F); rtc.years = 100 * ((readSecond[5] >> 7) & 0x01) + BCDToDecimal(readSecond[6]); }else{ printf("Can't Read Time\n"); } return (0); }