<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Configuring I2C on FRDM-KL46Z in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487046#M30012</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm trying to establish communication between Micro-controller MKL46Z256VLL4 and Magnetometer chip present on-board MAG3110. I'm not able to get the desired values on the variables for xaxis, yaxis and zaxis from the Magnetometer chip. My code for reference-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include "MKL46Z4.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void InitLEDR(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 = SIM_SCGC5 | SIM_SCGC5_PORTE_MASK; //clock to Port E for PTE29&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR29 = 256; //Alternate 001 for bits 10, 9, 8 respectively&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PDDR = GPIOE_PDDR | (1u&amp;lt;&amp;lt;29);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void InitI2C(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_CLKDIV1 = SIM_CLKDIV1 | (1u&amp;lt;&amp;lt;17) | (1u&amp;lt;&amp;lt;16); //bus clock is 24/3 = 8MHz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 = SIM_SCGC5 | SIM_SCGC5_PORTE_MASK; //clock to PTE24 and PTE25 for I2C0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC4 = SIM_SCGC4 | SIM_SCGC4_I2C0_MASK; //clock to I2C0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR24 = PORTE_PCR24 | (1u&amp;lt;&amp;lt;10) &amp;amp; ~(1u&amp;lt;&amp;lt;9) | (1u&amp;lt;&amp;lt;8); //alternative 5 - 101 for bits 10, 9 8 respectively&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR25 = PORTE_PCR25 | (1u&amp;lt;&amp;lt;10) &amp;amp; ~(1u&amp;lt;&amp;lt;9) | (1u&amp;lt;&amp;lt;8); //alternative 5 - 101 for bits 10, 9 8 respectively&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //I2C1_A1 = 0x01; //address when module acts as slave&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_F = 0x80; //mult=2h ICR=00h&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 = 0xB0; //10110000 - module enable, interrupt disable, master, transmit,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //acknowledge bit sent,repeated start off, wake up off, DMA off&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C2 = 0x00;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//UART0,PTA1=RX and PTA1=TX&lt;/P&gt;&lt;P&gt;void InitUART(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SOPT2=(1u&amp;lt;&amp;lt;26);//SIM_SOPT2_UART0SRC(1);Clock to UART0 MCGFLLCLK 20.97152MHz as MCG_C4=0x00 low range 20Mhz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SIM_SOPT5=0x00;kar na kar&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //open-drain mode disabled(Clear bit 16) plus&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //connection to UART_TX and UART_RX(Module to module interconnect) Clear bit 2,1 and 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC4=SIM_SCGC4|(1u&amp;lt;&amp;lt;10);//set bit 10 for giving clock to UART0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5=SIM_SCGC5_PORTA_MASK;//set bit 9 for giving clock to PORTA&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR1=PORTA_PCR1&amp;amp;~(1u&amp;lt;&amp;lt;10)|(1u&amp;lt;&amp;lt;9)&amp;amp;~(1u&amp;lt;&amp;lt;8);//PTA1 as UART1_RX (010&amp;nbsp; 9 for alternative 2 which is UART0_RX)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR2=PORTA_PCR1&amp;amp;~(1u&amp;lt;&amp;lt;10)|(1u&amp;lt;&amp;lt;9)&amp;amp;~(1u&amp;lt;&amp;lt;8);//PTA2 as UART1_RX (010&amp;nbsp; 9 for alternative 2 which is UART0_TX)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C2=0x00;//TX and RX both disabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_BDH=0x00;//0x02;//Baud rate =9600,20.97152Mhz clock&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_BDL=0x88;//BR=136//0x22;//BR=132.5=132=100111000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C1=0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //UART0_S2=UART0_S1 &amp;amp; 0xC1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C3=0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C4=0x0F;//OSR=15//OSR=3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C5=0x00;//not both edges 0x02;//as OSR=4, sampling on both edges of baud rate clock of received data&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C2=UART0_C2 | (1u&amp;lt;&amp;lt;3);//only TX enable&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void WriteToI2C(unsigned char data)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(I2C0_S &amp;amp; 0x80));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = data;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SetMag(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x0E); //device ID&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x11); //register address - C2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0xB0); //10110000 Magnetic Reset, raw data and auto reset enabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x0E); //device ID&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x10); //register address - C1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x01); //AC=1 all other 0&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void UART_OutChar(unsigned char data)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(UART0_S1 &amp;amp; (1u&amp;lt;&amp;lt;7)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_D=data;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void UART_OutUDec(unsigned int n)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned cnt=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char buffer[50];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[cnt] = n%10;// digit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = n/10;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; while(n);// repeat until n==0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_OutChar(buffer[cnt-1]+'0');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt--;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }while(cnt != 0);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;unsigned int ReadMag(unsigned char reg)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 = 0xB0; //10110000 - module enable, interrupt disable, master, transmit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x0E); //Device ID&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(reg); //Register&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 = 0xB4; //10110000 - module enable, interrupt disable, master, transmit,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //acknowledge bit sent,repeated start on, wake up off, DMA off&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x8E); //Device ID + 1(=Read)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 = 0xA0; //10100000 - module enable, interrupt disable, master, receive&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(I2C0_S &amp;amp; 0x80)); //wait till transfer is complete&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (I2C0_D);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitI2C();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitUART();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitLEDR();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetMag();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int xread, yread, zread;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=10000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xread=ReadMag(0x01);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yread=ReadMag(0x03);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zread=ReadMag(0x05);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_OutUDec(xread);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_OutUDec(yread);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_OutUDec(zread);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PTOR = GPIOE_PTOR | (1u&amp;lt;&amp;lt;29);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(i&amp;gt;0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i--;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 03 Feb 2016 19:25:18 GMT</pubDate>
    <dc:creator>amanjain</dc:creator>
    <dc:date>2016-02-03T19:25:18Z</dc:date>
    <item>
      <title>Configuring I2C on FRDM-KL46Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487046#M30012</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm trying to establish communication between Micro-controller MKL46Z256VLL4 and Magnetometer chip present on-board MAG3110. I'm not able to get the desired values on the variables for xaxis, yaxis and zaxis from the Magnetometer chip. My code for reference-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include "MKL46Z4.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void InitLEDR(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 = SIM_SCGC5 | SIM_SCGC5_PORTE_MASK; //clock to Port E for PTE29&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR29 = 256; //Alternate 001 for bits 10, 9, 8 respectively&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PDDR = GPIOE_PDDR | (1u&amp;lt;&amp;lt;29);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void InitI2C(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_CLKDIV1 = SIM_CLKDIV1 | (1u&amp;lt;&amp;lt;17) | (1u&amp;lt;&amp;lt;16); //bus clock is 24/3 = 8MHz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 = SIM_SCGC5 | SIM_SCGC5_PORTE_MASK; //clock to PTE24 and PTE25 for I2C0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC4 = SIM_SCGC4 | SIM_SCGC4_I2C0_MASK; //clock to I2C0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR24 = PORTE_PCR24 | (1u&amp;lt;&amp;lt;10) &amp;amp; ~(1u&amp;lt;&amp;lt;9) | (1u&amp;lt;&amp;lt;8); //alternative 5 - 101 for bits 10, 9 8 respectively&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR25 = PORTE_PCR25 | (1u&amp;lt;&amp;lt;10) &amp;amp; ~(1u&amp;lt;&amp;lt;9) | (1u&amp;lt;&amp;lt;8); //alternative 5 - 101 for bits 10, 9 8 respectively&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //I2C1_A1 = 0x01; //address when module acts as slave&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_F = 0x80; //mult=2h ICR=00h&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 = 0xB0; //10110000 - module enable, interrupt disable, master, transmit,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //acknowledge bit sent,repeated start off, wake up off, DMA off&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C2 = 0x00;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//UART0,PTA1=RX and PTA1=TX&lt;/P&gt;&lt;P&gt;void InitUART(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SOPT2=(1u&amp;lt;&amp;lt;26);//SIM_SOPT2_UART0SRC(1);Clock to UART0 MCGFLLCLK 20.97152MHz as MCG_C4=0x00 low range 20Mhz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SIM_SOPT5=0x00;kar na kar&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //open-drain mode disabled(Clear bit 16) plus&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //connection to UART_TX and UART_RX(Module to module interconnect) Clear bit 2,1 and 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC4=SIM_SCGC4|(1u&amp;lt;&amp;lt;10);//set bit 10 for giving clock to UART0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5=SIM_SCGC5_PORTA_MASK;//set bit 9 for giving clock to PORTA&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR1=PORTA_PCR1&amp;amp;~(1u&amp;lt;&amp;lt;10)|(1u&amp;lt;&amp;lt;9)&amp;amp;~(1u&amp;lt;&amp;lt;8);//PTA1 as UART1_RX (010&amp;nbsp; 9 for alternative 2 which is UART0_RX)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR2=PORTA_PCR1&amp;amp;~(1u&amp;lt;&amp;lt;10)|(1u&amp;lt;&amp;lt;9)&amp;amp;~(1u&amp;lt;&amp;lt;8);//PTA2 as UART1_RX (010&amp;nbsp; 9 for alternative 2 which is UART0_TX)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C2=0x00;//TX and RX both disabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_BDH=0x00;//0x02;//Baud rate =9600,20.97152Mhz clock&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_BDL=0x88;//BR=136//0x22;//BR=132.5=132=100111000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C1=0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //UART0_S2=UART0_S1 &amp;amp; 0xC1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C3=0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C4=0x0F;//OSR=15//OSR=3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C5=0x00;//not both edges 0x02;//as OSR=4, sampling on both edges of baud rate clock of received data&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C2=UART0_C2 | (1u&amp;lt;&amp;lt;3);//only TX enable&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void WriteToI2C(unsigned char data)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(I2C0_S &amp;amp; 0x80));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = data;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SetMag(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x0E); //device ID&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x11); //register address - C2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0xB0); //10110000 Magnetic Reset, raw data and auto reset enabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x0E); //device ID&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x10); //register address - C1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x01); //AC=1 all other 0&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void UART_OutChar(unsigned char data)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(UART0_S1 &amp;amp; (1u&amp;lt;&amp;lt;7)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_D=data;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void UART_OutUDec(unsigned int n)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned cnt=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char buffer[50];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[cnt] = n%10;// digit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = n/10;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; while(n);// repeat until n==0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_OutChar(buffer[cnt-1]+'0');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt--;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }while(cnt != 0);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;unsigned int ReadMag(unsigned char reg)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 = 0xB0; //10110000 - module enable, interrupt disable, master, transmit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x0E); //Device ID&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(reg); //Register&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 = 0xB4; //10110000 - module enable, interrupt disable, master, transmit,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //acknowledge bit sent,repeated start on, wake up off, DMA off&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteToI2C(0x8E); //Device ID + 1(=Read)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 = 0xA0; //10100000 - module enable, interrupt disable, master, receive&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(I2C0_S &amp;amp; 0x80)); //wait till transfer is complete&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (I2C0_D);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitI2C();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitUART();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitLEDR();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetMag();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int xread, yread, zread;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=10000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xread=ReadMag(0x01);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yread=ReadMag(0x03);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zread=ReadMag(0x05);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_OutUDec(xread);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_OutUDec(yread);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_OutUDec(zread);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PTOR = GPIOE_PTOR | (1u&amp;lt;&amp;lt;29);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(i&amp;gt;0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i--;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Feb 2016 19:25:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487046#M30012</guid>
      <dc:creator>amanjain</dc:creator>
      <dc:date>2016-02-03T19:25:18Z</dc:date>
    </item>
    <item>
      <title>Re: Configuring I2C on FRDM-KL46Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487047#M30013</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Aman Jain,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Please refer to the sample code of FRDM-KL46, there has an sample code for MAG3100.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Please download the sample code from this link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.nxp.com/files/32bit/software/KL46_SC.exe?fpsp=1&amp;amp;WT_TYPE=Lab%20and%20Test%20Software&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=exe&amp;amp;WT_ASSET=Downloads&amp;amp;fileExt=.exe" title="http://cache.nxp.com/files/32bit/software/KL46_SC.exe?fpsp=1&amp;amp;WT_TYPE=Lab%20and%20Test%20Software&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=exe&amp;amp;WT_ASSET=Downloads&amp;amp;fileExt=.exe"&gt;http://cache.nxp.com/files/32bit/software/KL46_SC.exe?fpsp=1&amp;amp;WT_TYPE=Lab%20and%20Test%20Software&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_…&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Then after you install it, you will find the code in folder:kinetis_kl46_sc\kinetis_kl46_sc_rev2\klxx-sc-baremetal\build\iar\FRDMKL46_Demo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you still have question, please contact with me!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jingjing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Feb 2016 03:12:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487047#M30013</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-02-04T03:12:17Z</dc:date>
    </item>
    <item>
      <title>Re: Configuring I2C on FRDM-KL46Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487048#M30014</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using KDS V3.0. I'm not sure how to open the file and which file will be opened to view the code. &lt;span class="lia-inline-image-display-wrapper" image-alt="FSL.JPG"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/58708i0FBD297FC959D8C6/image-size/large?v=v2&amp;amp;px=999" role="button" title="FSL.JPG" alt="FSL.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Feb 2016 18:21:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487048#M30014</guid>
      <dc:creator>amanjain</dc:creator>
      <dc:date>2016-02-04T18:21:38Z</dc:date>
    </item>
    <item>
      <title>Re: Configuring I2C on FRDM-KL46Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487049#M30015</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Aman Jain,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The sample code which I recommend your just have IAR, Codewarrior project, and don't have the KDS project.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; You can download a &lt;A href="http://www.nxp.com/zh-Hans/products/software-and-tools/software-development-tools/codewarrior-development-tools/codewarrior-development-studios/codewarrior-for-microcontrollers/codewarrior-for-mcus-eclipse-ide-coldfire-56800-e-dsc-kinetis-freescale-56xx-rs08-s08-s12z-v10.6:CW-MCU10?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1%E4%B8%8B%E4%B8%80%E9%A1%B5"&gt;Codewarrior 10.6&lt;/A&gt; to open it, or you can just refer to the source code and add it to your KDS project.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The picture which you give me is the IAR project, the CW project folder is :\kinetis_kl46_sc\kinetis_kl46_sc_rev2\klxx-sc-baremetal\build\cw\FRDMKL46_Demo\kl46_FRDMKL46_Demo&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If you want to refer to the source code, you can find it from folder: kinetis_kl46_sc\kinetis_kl46_sc_rev2\klxx-sc-baremetal\src\projects\FRDMKL46_Demo&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you still have question, please contact with me!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jingjing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Feb 2016 01:52:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487049#M30015</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-02-05T01:52:30Z</dc:date>
    </item>
    <item>
      <title>Re: Configuring I2C on FRDM-KL46Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487050#M30016</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For KL46 there is also the option to try&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL46Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL46Z.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;which supports various accelerometer sensors in non-blocking maximum-speed I2C polling or interrupt modes, as well as I2c and accelerometer simulation.&lt;/P&gt;&lt;P&gt;No IDE restrictions since it works with CW, KDS, IAR, uVision, Green Hills, Atollic, Crossworks CooCox, GCC, Visual Studio.&lt;/P&gt;&lt;P&gt;Rather than example code it is a ready to use industrially proven solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Kinetis: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis.html" rel="nofollow"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;I2C: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/docs/uTasker/uTaskerIIC.PDF" rel="nofollow"&gt;http://www.utasker.com/docs/uTasker/uTaskerIIC.PDF&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;KL46: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL46Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL46Z.html&lt;/A&gt;&lt;SPAN&gt; / &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/TWR-KL46Z48M.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/TWR-KL46Z48M.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;For the complete "out-of-the-box" Kinetis experience and faster time to market&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Feb 2016 04:17:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487050#M30016</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2016-02-05T04:17:24Z</dc:date>
    </item>
    <item>
      <title>Re: Configuring I2C on FRDM-KL46Z</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487051#M30017</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm able to get some values from the magnetometer, but it is a constant value. How do I calibrate it so that I can use it to judge my orientation. The board moves on the back of a door, so the axis on which 'g' is acting remains unchanged. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Feb 2016 18:31:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Configuring-I2C-on-FRDM-KL46Z/m-p/487051#M30017</guid>
      <dc:creator>amanjain</dc:creator>
      <dc:date>2016-02-10T18:31:29Z</dc:date>
    </item>
  </channel>
</rss>

