<?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 Re: I2C Interface on LPCXpresso860 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Interface-on-LPCXpresso860/m-p/2025196#M57493</link>
    <description>&lt;P&gt;Hello, I recommend download the last IDE MCUXpresso on the next link.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE" target="_blank"&gt;MCUXpresso IDE for NXP MCUs | Linux, Windows and MacOS | NXP Semiconductors | NXP Semiconductors&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;On the next link you could find the SDK and the examples.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://mcuxpresso.nxp.com/en/select" target="_blank"&gt;Select Board | MCUXpresso SDK Builder&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Pavel&lt;/P&gt;</description>
    <pubDate>Thu, 09 Jan 2025 23:05:53 GMT</pubDate>
    <dc:creator>Pavel_Hernandez</dc:creator>
    <dc:date>2025-01-09T23:05:53Z</dc:date>
    <item>
      <title>I2C Interface on LPCXpresso860</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Interface-on-LPCXpresso860/m-p/2024022#M57486</link>
      <description>&lt;DIV&gt;Hello,&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I just started at NXP. I picked the LPCXpresso860-MAX as my Evaluation Board and I'm learning how to develop applications with it. Right now, I'm working on connecting the LPC860-MAX microcontroller to the SHT-31 humidity and temperature sensor using I2C.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I attempted as shown below.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Hardware Setup:&lt;/DIV&gt;&lt;DIV&gt;LPC860-MAX connections:&lt;/DIV&gt;&lt;DIV&gt;SCL (P0_10)&lt;/DIV&gt;&lt;DIV&gt;SDA (P0_11)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;SHT-31 connections:&lt;/DIV&gt;&lt;DIV&gt;VCC → 3.3V&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;GND → Ground&lt;/DIV&gt;&lt;DIV&gt;SCL → LPC860-MAX SCL&lt;/DIV&gt;&lt;DIV&gt;SDA → LPC860-MAX SDA&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Software Setup:&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/*&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;* Program for SHT-31 (Temperature &amp;amp; Humidity sensor)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/DIV&gt;&lt;DIV&gt;#include "pin_mux.h"&lt;/DIV&gt;&lt;DIV&gt;#include "board.h"&lt;/DIV&gt;&lt;DIV&gt;#include "fsl_debug_console.h"&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#include "i2c.h"&lt;/DIV&gt;&lt;DIV&gt;#include "wait.h"&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#define SHT31_ADDR&amp;nbsp; &amp;nbsp; 0x44&amp;nbsp; // SHT-31 I2C address&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;enum registers {&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Temp,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Conf,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;T_LOW,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;T_HIGH&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;};&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void mcu_init( void );&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;// Function to send command to SHT-31&lt;/DIV&gt;&lt;DIV&gt;void SHT31_SendCommand(uint8_t commandHigh, uint8_t commandLow) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t data[2];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; data[0] = commandHigh;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; data[1] = commandLow;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; // Send command to SHT-31 over I2C&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; i2c_reg_w16( SHT31_ADDR, Temp, data );&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;// Function to read data from SHT-31&lt;/DIV&gt;&lt;DIV&gt;void SHT31_ReadData(uint8_t *buffer, uint8_t length) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; // Read 6 bytes from SHT-31 (Temperature + Humidity)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; i2c_reg_r16( SHT31_ADDR, buffer );&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;int main( void )&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mcu_init();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;i2c_init( 100 * 1000 ); // setting I2C clock frequency in "Hz"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t data[6];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; int16_t rawTemperature, rawHumidity;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; float temperature, humidity;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; // Send command to read temperature and humidity&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; SHT31_SendCommand(0x2C, 0x06); // Command for temperature &amp;amp; humidity&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PRINTF( "\r\nLPC860-MAX with SHT-31\r\n\r\n" );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; while ( 1 )&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Read the response (6 bytes)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SHT31_ReadData(data, 6);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Calculate temperature from raw data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rawTemperature = (data[0] &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; | data[1];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; temperature = -45 + (175 * rawTemperature / 65535.0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Calculate humidity from raw data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rawHumidity = (data[3] &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; | data[4];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; humidity = 100 * rawHumidity / 65535.0;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Output the results (for example, via UART or LED)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf("Temperature: %.2f °C\n", temperature);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf("Humidity: %.2f Percentage\n", humidity);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wait_ms( 1000 );&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void mcu_init( void )&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CLOCK_Select( BOARD_DEBUG_USART_CLK_ATTACH );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CLOCK_Select( kI2C0_Clk_From_MainClk );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BOARD_InitBootPins();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BOARD_BootClockFRO60M();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BOARD_InitDebugConsole();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if ( SysTick_Config( SystemCoreClock / 1000U ) )&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PRINTF( "Fail: SysTick_Config()\r\n" );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;while ( 1 );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;status_t i2c_reg_w16( const uint8_t addr, const uint8_t reg, const uint16_t data )&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint8_t b[ 3 ] = { reg, (data &amp;gt;&amp;gt; 8), data &amp;amp; 0xFF };&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return i2c_send( addr, b, sizeof( b ), I2C_STOP );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;uint16_t i2c_reg_r16( const uint8_t addr, const uint8_t reg )&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint8_t b[ 2 ] = { reg, 0 };&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;i2c_send( addr, b, 1, I2C_REPEATED_START );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;i2c_receive( addr, b, 2 );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return (b[ 0 ] &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; | b[ 1 ];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I received the following output:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Humidity: 0.20 Percentage&lt;/DIV&gt;&lt;DIV&gt;Temperature: 11.23 °C&lt;/DIV&gt;&lt;DIV&gt;Humidity: 0.20 Percentage&lt;/DIV&gt;&lt;DIV&gt;Temperature: 11.23 °C&lt;/DIV&gt;&lt;DIV&gt;Humidity: 0.20 Percentage&lt;/DIV&gt;&lt;DIV&gt;Temperature: 11.23 °C&lt;/DIV&gt;&lt;DIV&gt;Humidity: 0.20 Percentage&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;It looks like the value isn't being read correctly. Could you please help fix this by sharing a sample code that can be used for development?&lt;/DIV&gt;</description>
      <pubDate>Wed, 08 Jan 2025 11:03:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Interface-on-LPCXpresso860/m-p/2024022#M57486</guid>
      <dc:creator>Prasanth91</dc:creator>
      <dc:date>2025-01-08T11:03:33Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Interface on LPCXpresso860</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Interface-on-LPCXpresso860/m-p/2025196#M57493</link>
      <description>&lt;P&gt;Hello, I recommend download the last IDE MCUXpresso on the next link.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE" target="_blank"&gt;MCUXpresso IDE for NXP MCUs | Linux, Windows and MacOS | NXP Semiconductors | NXP Semiconductors&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;On the next link you could find the SDK and the examples.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://mcuxpresso.nxp.com/en/select" target="_blank"&gt;Select Board | MCUXpresso SDK Builder&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jan 2025 23:05:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Interface-on-LPCXpresso860/m-p/2025196#M57493</guid>
      <dc:creator>Pavel_Hernandez</dc:creator>
      <dc:date>2025-01-09T23:05:53Z</dc:date>
    </item>
  </channel>
</rss>

