AnsweredAssumed Answered

i2c on MK10DX128VLH7

Question asked by hans h on Mar 23, 2018

Hey there,


I am struggling with setting up the i2c interface on my MK10DX128VLH7 microprocessor. 

Currently I am using KDS to code, but I'm not using Processor Expert.

Could anybody provide an example on how to setup and send 3 data bytes? The MCU should be the master. I want to send 3 bytes (address+data+data). I thought that shouldn't be that difficult...


I basically did the following:


    SIM_SCGC4 |= SIM_SCGC4_I2C1_MASK; //Turn on clock to I2C1 module


    /* configure GPIO for I2C1 function*/


    PORTE_PCR0 = PORT_PCR_MUX(0x06);

    PORTE_PCR1 = PORT_PCR_MUX(0x06);



    /* set MULT and ICR -> S.1141  */

    I2C1_F = 0x14; 

    //I2C1_C1 = I2C_C1_IICEN_MASK;       /* enable IIC */

    I2C1_C1 = 0x80u;       /* s1142 enable IIC - Feld 7 */


   /* send start signal */

   I2C1_C1 |= 0x10;
   I2C1_C1 |= I2C_C1_MST_MASK;


   /* send ID with W/R bit */



   while((I2C1_S & I2C_S_IICIF_MASK)==0) {};
      I2C1_S |= I2C_S_IICIF_MASK;

   // send data byte

   I2C1_D = data;


   // send stop

   I2C1_C1 &= ~I2C_C1_MST_MASK;
   I2C1_C1 &= ~I2C_C1_TX_MASK;



With this code, I hoped to transmit one byte, am I missing something?