void I2C0_Init(void) { /* Open I2C0 and set clock to 100k */ I2C_Open(I2C0, 100000); /* Get I2C0 Bus Clock */ printf("I2C clock %d Hz\n", I2C_GetBusClockFreq(I2C0)); }
void I2C0_Init(void) { /* Open I2C0 and set clock to 100k */ I2C_Open(I2C0, 100000); /* Get I2C0 Bus Clock */ printf("I2C0 clock %d Hz\n", I2C_GetBusClockFreq(I2C0)); I2C_EnableInt(I2C0); NVIC_EnableIRQ(I2C0_IRQn); }
void I2C0_Init(void) { /* Open I2C0 and set clock to 100k */ I2C_Open(I2C0, 100000); /* Get I2C0 Bus Clock */ printf("I2C clock %d Hz\n", I2C_GetBusClockFreq(I2C0)); /* Set I2C0 2 Slave Addresses */ I2C_SetSlaveAddr(I2C0, 0, 0x15, I2C_GCMODE_DISABLE); /* Slave Address : 0x15 */ I2C_SetSlaveAddr(I2C0, 1, 0x35, I2C_GCMODE_DISABLE); /* Slave Address : 0x35 */ /* Enable I2C0 interrupt */ I2C_EnableInt(I2C0); NVIC_EnableIRQ(I2C0_IRQn); }
void I2C3_Init(void) { /* Open I2C3 and set clock to 100k */ I2C_Open(I2C3, 100000); /* Get I2C3 Bus Clock */ printf("I2C clock %d Hz\n", I2C_GetBusClockFreq(I2C3)); /* Set I2C3 4 Slave Addresses */ I2C_SetSlaveAddr(I2C3, 0, 0x15, I2C_GCMODE_DISABLE); /* Slave Address : 0x15 */ I2C_SetSlaveAddr(I2C3, 1, 0x35, I2C_GCMODE_DISABLE); /* Slave Address : 0x35 */ I2C_SetSlaveAddr(I2C3, 2, 0x55, I2C_GCMODE_DISABLE); /* Slave Address : 0x55 */ I2C_SetSlaveAddr(I2C3, 3, 0x75, I2C_GCMODE_DISABLE); /* Slave Address : 0x75 */ I2C_EnableInt(I2C3); NVIC_EnableIRQ(I2C3_IRQn); }
void I2C1_Init(void) { /* Open I2C1 and set clock to 100k */ I2C_Open(I2C1, 400000); /* Get I2C1 Bus Clock */ printf("I2C1 clock %d Hz\n", I2C_GetBusClockFreq(I2C1)); /* Set I2C1 2 Slave Addresses */ I2C_SetSlaveAddr(I2C1, 0, SLAVE_ADDRESS, I2C_GCMODE_DISABLE); /* Set Slave Address */ I2C_EnableInt(I2C1); NVIC_EnableIRQ(I2C1_IRQn); /* I2C enter no address SLV mode */ I2C_SET_CONTROL_REG(I2C1, I2C_SI | I2C_AA); }
// ********************************************************************** // I2C Master Initialize // ********************************************************************** void I2C_MS_Master_Init() { // =============PIN SETTNG================== #ifdef I2C_MS_PORT0 CLK_EnableModuleClock(I2C0_MODULE); /* Set I2C PA multi-function pins */ SYS->GPE_MFPH &= ~(SYS_GPE_MFPH_PE12MFP_Msk | SYS_GPE_MFPH_PE13MFP_Msk); SYS->GPE_MFPH |= ( SYS_GPE_MFPH_PE12MFP_I2C0_SCL | SYS_GPE_MFPH_PE13MFP_I2C0_SDA); //GPIO_SetMode(PE, BIT12, GPIO_MODE_QUASI); //GPIO_SetMode(PE, BIT13, GPIO_MODE_QUASI); //SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA2MFP_Msk | SYS_GPA_MFPL_PA3MFP_Msk); //SYS->GPA_MFPL |= (SYS_GPA_MFPL_PA2MFP_I2C0_SDA | SYS_GPA_MFPL_PA3MFP_I2C0_SCL); #else CLK_EnableModuleClock(I2C1_MODULE); /* Set I2C PA multi-function pins */ SYS->GPC_MFPL &= ~SYS_GPC_MFPL_PC4MFP_Msk; SYS->GPC_MFPL |= SYS_GPC_MFPL_PC4MFP_I2C1_SCL; SYS->GPE_MFPL &= ~SYS_GPE_MFPL_PE0MFP_Msk; SYS->GPE_MFPL |= SYS_GPE_MFPL_PE0MFP_I2C1_SDA; #endif /* Open I2C module and set bus clock */ I2C_Open(I2C_MS_PORT, 100000); /* Get I2C0 Bus Clock */ printf("I2C MS Master clock %d Hz\n", I2C_GetBusClockFreq(I2C_MS_PORT)); /* Enable I2C interrupt */ I2C_EnableInt(I2C_MS_PORT); #ifdef I2C_MS_PORT0 NVIC_EnableIRQ(I2C0_IRQn); #else NVIC_EnableIRQ(I2C1_IRQn); #endif I2CMstWakeupEndFlag = 0; //Master Wake up Flag I2CMstTRxEndFlag = 0; //Master Transfer/Receive End Flag I2CMstSleepEndFlag = 0; //Master sleep End Flag I2CMstWakeupEnStartFlag=1; I2CMstTRxEnStartFlag=1; I2CMstSleepEnStartFlag=1; I2CMstEndFlag=0; I2CMstTimeOutFlag = 0; }
void I2C0_Init(void) { /* Open I2C module and set bus clock */ I2C_Open(I2C0, 100000); /* Get I2C0 Bus Clock */ printf("I2C clock %d Hz\n", I2C_GetBusClockFreq(I2C0)); /* Set I2C 4 Slave Addresses */ I2C_SetSlaveAddr(I2C0, 0, 0x15, 0); /* Slave Address : 0x15 */ I2C_SetSlaveAddr(I2C0, 1, 0x35, 0); /* Slave Address : 0x35 */ I2C_SetSlaveAddr(I2C0, 2, 0x55, 0); /* Slave Address : 0x55 */ I2C_SetSlaveAddr(I2C0, 3, 0x75, 0); /* Slave Address : 0x75 */ /* Enable I2C interrupt */ I2C_EnableInt(I2C0); NVIC_EnableIRQ(I2C0_IRQn); }
// ********************************************************************** // I2C Slave Initialize called by I2CWakeUpInit // ********************************************************************** void I2C_MS_Slave_Init() { // =============PIN SETTNG================== #ifdef I2C_MS_PORT0 CLK_EnableModuleClock(I2C0_MODULE); /* Set I2C PA multi-function pins */ SYS->GPE_MFPH &= ~(SYS_GPE_MFPH_PE12MFP_Msk | SYS_GPE_MFPH_PE13MFP_Msk); SYS->GPE_MFPH |= ( SYS_GPE_MFPH_PE12MFP_I2C0_SCL | SYS_GPE_MFPH_PE13MFP_I2C0_SDA); #else CLK_EnableModuleClock(I2C1_MODULE); /* Set I2C PA multi-function pins */ SYS->GPC_MFPL &= ~SYS_GPC_MFPL_PC4MFP_Msk; SYS->GPC_MFPL |= SYS_GPC_MFPL_PC4MFP_I2C1_SCL; SYS->GPE_MFPL &= ~SYS_GPE_MFPL_PE0MFP_Msk; SYS->GPE_MFPL |= SYS_GPE_MFPL_PE0MFP_I2C1_SDA; #endif /* Open I2C module and set bus clock */ I2C_Open(I2C_MS_PORT, 100000); /* Get I2C0 Bus Clock */ printf("I2C MS Slave clock %d Hz\n", I2C_GetBusClockFreq(I2C_MS_PORT)); /* Set I2C 4 Slave Addresses */ #if 1 I2C_SetSlaveAddr(I2C_MS_PORT, 0, devNum+0x14, 0); #else if(devNum == 1) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x15, 0); /* Slave Address : 21,Buzzer */ else if(devNum == 2) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x16, 0); /* Slave Address : 22,Led */ else if(devNum == 3) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x17, 0); /* Slave Address : 23,AHRS */ else if(devNum == 4) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x18, 0); /* Slave Address : 24,SONAR */ else if(devNum == 5) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x19, 0); /* Slave Address : 25,TEMPERATURE */ else if(devNum == 6) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x1a, 0); /* Slave Address : 26,Gas */ else if(devNum == 7) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x1b, 0); /* Slave Address : 27,IR */ else if(devNum == 8) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x1c, 0); /* Slave Address : 28,KEY */ else if(devNum == 9) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x1d, 0); /* Slave Address : 29, Reserved device 9 */ else if(devNum == 10) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x1e, 0); /* Slave Address : 30, Reserved device 10 */ else if(devNum == 11) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x1f, 0); /* Slave Address : 31, Reserved device 11 */ else if(devNum == 12) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x20, 0); /* Slave Address : 32, Reserved device 12 */ else if(devNum == 13) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x21, 0); /* Slave Address : 33, Reserved device 13 */ else if(devNum == 14) I2C_SetSlaveAddr(I2C_MS_PORT, 0, 0x22, 0); /* Slave Address : 34, Reserved device 14 */ #endif I2C_SetSlaveAddr(I2C_MS_PORT, 1, 0x35, 0); /* Slave Address : 0x35 */ I2C_SetSlaveAddr(I2C_MS_PORT, 2, 0x55, 0); /* Slave Address : 0x55 */ I2C_SetSlaveAddr(I2C_MS_PORT, 3, 0x75, 0); /* Slave Address : 0x75 */ /* Enable I2C interrupt */ I2C_EnableInt(I2C_MS_PORT); #ifdef I2C_MS_PORT0 NVIC_EnableIRQ(I2C0_IRQn); #else NVIC_EnableIRQ(I2C1_IRQn); #endif #ifdef I2C_MS_PORT0 s_I2C0HandlerFn = (I2C_FUNC)I2C_MS_Slave; #else s_I2C1HandlerFn = (I2C_FUNC)I2C_MS_Slave; #endif /* Enable I2C wake-up */ I2C_EnableWakeup(I2C_MS_PORT); /* Set I2C0 enter Not Address SLAVE mode */ I2C_SET_CONTROL_REG(I2C_MS_PORT, I2C_CTL_SI_AA); }