<?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 RT1064 LPI2C Problem in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1064-LPI2C-Problem/m-p/1363063#M16903</link>
    <description>&lt;P&gt;in RT1064 I wan to use LPI2C ，&lt;/P&gt;&lt;P&gt;i use MCUXpreso IDE and SDK use SDK_2_10_0_MIMXRT1064xxxxA&lt;/P&gt;&lt;P&gt;use demo evkmimxrt1064_lpi2c_polling_b2b_master&lt;/P&gt;&lt;P&gt;but find a problem:&lt;/P&gt;&lt;P&gt;LPI2C only send start singe&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LPI2C send singe" style="width: 720px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/160497i887088008A44DEC8/image-size/large?v=v2&amp;amp;px=999" role="button" title="微信图片_20211028144443.jpg" alt="LPI2C send singe" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;LPI2C send singe&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;pin config&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pin config" style="width: 571px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/160498i558A753160E64DDF/image-size/large?v=v2&amp;amp;px=999" role="button" title="微信截图_20211028144849.png" alt="pin config" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;pin config&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;code :&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt;* Copyright 2017 NXP&lt;BR /&gt;* All rights reserved.&lt;BR /&gt;*&lt;BR /&gt;* SPDX-License-Identifier: BSD-3-Clause&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;/* Standard C Included Files */&lt;BR /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;string.h&amp;gt;&lt;BR /&gt;#include "pin_mux.h"&lt;BR /&gt;#include "clock_config.h"&lt;BR /&gt;#include "board.h"&lt;BR /&gt;#include "fsl_debug_console.h"&lt;BR /&gt;#include "fsl_lpi2c.h"&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Definitions&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;#define EXAMPLE_I2C_MASTER_BASE (LPI2C3_BASE)&lt;/P&gt;&lt;P&gt;/* Select USB1 PLL (480 MHz) as master lpi2c clock source */&lt;BR /&gt;#define LPI2C_CLOCK_SOURCE_SELECT (0U)&lt;BR /&gt;/* Clock divider for master lpi2c clock source */&lt;BR /&gt;#define LPI2C_CLOCK_SOURCE_DIVIDER (5U)&lt;BR /&gt;/* Get frequency of lpi2c clock */&lt;BR /&gt;#define LPI2C_CLOCK_FREQUENCY ((CLOCK_GetFreq(kCLOCK_Usb1PllClk) / &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; / (LPI2C_CLOCK_SOURCE_DIVIDER + 1U))&lt;/P&gt;&lt;P&gt;#define LPI2C_MASTER_CLOCK_FREQUENCY LPI2C_CLOCK_FREQUENCY&lt;BR /&gt;#define WAIT_TIME 10U&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#define EXAMPLE_I2C_MASTER ((LPI2C_Type *)EXAMPLE_I2C_MASTER_BASE)&lt;/P&gt;&lt;P&gt;#define LPI2C_MASTER_SLAVE_ADDR_7BIT 0x7EU&lt;BR /&gt;#define LPI2C_BAUDRATE 100000U&lt;BR /&gt;#define LPI2C_DATA_LENGTH 33U&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Prototypes&lt;BR /&gt;******************************************************************************/&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Variables&lt;BR /&gt;******************************************************************************/&lt;/P&gt;&lt;P&gt;uint8_t g_master_txBuff[LPI2C_DATA_LENGTH];&lt;BR /&gt;uint8_t g_master_rxBuff[LPI2C_DATA_LENGTH];&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Code&lt;BR /&gt;******************************************************************************/&lt;/P&gt;&lt;P&gt;/*!&lt;BR /&gt;* @brief Main function&lt;BR /&gt;*/&lt;BR /&gt;int lpi2c_test(void)&lt;BR /&gt;{&lt;BR /&gt;lpi2c_master_config_t masterConfig;&lt;BR /&gt;status_t reVal = kStatus_Fail;&lt;BR /&gt;uint8_t deviceAddress = 0x01U;&lt;BR /&gt;size_t txCount = 0xFFU;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*Clock setting for LPI2C*/&lt;BR /&gt;CLOCK_SetMux(kCLOCK_Lpi2cMux, LPI2C_CLOCK_SOURCE_SELECT);&lt;BR /&gt;CLOCK_SetDiv(kCLOCK_Lpi2cDiv, LPI2C_CLOCK_SOURCE_DIVIDER);&lt;/P&gt;&lt;P&gt;PRINTF("\r\nLPI2C board2board polling example -- Master transfer.\r\n");&lt;/P&gt;&lt;P&gt;/* Set up i2c master to send data to slave*/&lt;BR /&gt;/* First data in txBuff is data length of the transmiting data. */&lt;BR /&gt;g_master_txBuff[0] = LPI2C_DATA_LENGTH - 1U;&lt;BR /&gt;for (uint32_t i = 1U; i &amp;lt; LPI2C_DATA_LENGTH; i++)&lt;BR /&gt;{&lt;BR /&gt;g_master_txBuff[i] = i - 1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;PRINTF("Master will send data :");&lt;BR /&gt;for (uint32_t i = 0U; i &amp;lt; LPI2C_DATA_LENGTH - 1U; i++)&lt;BR /&gt;{&lt;BR /&gt;if (i % 8 == 0)&lt;BR /&gt;{&lt;BR /&gt;PRINTF("\r\n");&lt;BR /&gt;}&lt;BR /&gt;PRINTF("0x%2x ", g_master_txBuff[i + 1]);&lt;BR /&gt;}&lt;BR /&gt;PRINTF("\r\n\r\n");&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt;* masterConfig.debugEnable = false;&lt;BR /&gt;* masterConfig.ignoreAck = false;&lt;BR /&gt;* masterConfig.pinConfig = kLPI2C_2PinOpenDrain;&lt;BR /&gt;* masterConfig.baudRate_Hz = 100000U;&lt;BR /&gt;* masterConfig.busIdleTimeout_ns = 0;&lt;BR /&gt;* masterConfig.pinLowTimeout_ns = 0;&lt;BR /&gt;* masterConfig.sdaGlitchFilterWidth_ns = 0;&lt;BR /&gt;* masterConfig.sclGlitchFilterWidth_ns = 0;&lt;BR /&gt;*/&lt;BR /&gt;LPI2C_MasterGetDefaultConfig(&amp;amp;masterConfig);&lt;/P&gt;&lt;P&gt;/* Change the default baudrate configuration */&lt;BR /&gt;masterConfig.baudRate_Hz = LPI2C_BAUDRATE;&lt;/P&gt;&lt;P&gt;/* Initialize the LPI2C master peripheral */&lt;BR /&gt;LPI2C_MasterInit(EXAMPLE_I2C_MASTER, &amp;amp;masterConfig, LPI2C_MASTER_CLOCK_FREQUENCY);&lt;/P&gt;&lt;P&gt;/* Send master blocking data to slave */&lt;BR /&gt;if (kStatus_Success == LPI2C_MasterStart(EXAMPLE_I2C_MASTER, LPI2C_MASTER_SLAVE_ADDR_7BIT, kLPI2C_Write))&lt;BR /&gt;{&lt;BR /&gt;/* Check master tx FIFO empty or not */&lt;BR /&gt;LPI2C_MasterGetFifoCounts(EXAMPLE_I2C_MASTER, NULL, &amp;amp;txCount);&lt;BR /&gt;while (txCount)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterGetFifoCounts(EXAMPLE_I2C_MASTER, NULL, &amp;amp;txCount);&lt;BR /&gt;}&lt;BR /&gt;/* Check communicate with slave successful or not */&lt;BR /&gt;if (LPI2C_MasterGetStatusFlags(EXAMPLE_I2C_MASTER) &amp;amp; kLPI2C_MasterNackDetectFlag)&lt;BR /&gt;{&lt;BR /&gt;return kStatus_LPI2C_Nak;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* subAddress = 0x01, data = g_master_txBuff - write to slave.&lt;BR /&gt;start + slaveaddress(w) + subAddress + length of data buffer + data buffer + stop*/&lt;BR /&gt;reVal = LPI2C_MasterSend(EXAMPLE_I2C_MASTER, &amp;amp;deviceAddress, 1);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;if (reVal == kStatus_LPI2C_Nak)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;}&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterSend(EXAMPLE_I2C_MASTER, g_master_txBuff, LPI2C_DATA_LENGTH);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;if (reVal == kStatus_LPI2C_Nak)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;}&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Wait until the slave is ready for transmit, wait time depend on user's case.&lt;BR /&gt;Slave devices that need some time to process received byte or are not ready yet to&lt;BR /&gt;send the next byte, can pull the clock low to signal to the master that it should wait.*/&lt;BR /&gt;for (uint32_t i = 0U; i &amp;lt; WAIT_TIME; i++)&lt;BR /&gt;{&lt;BR /&gt;__NOP();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;PRINTF("Receive sent data from slave :");&lt;/P&gt;&lt;P&gt;/* Receive blocking data from slave */&lt;BR /&gt;/* subAddress = 0x01, data = g_master_rxBuff - read from slave.&lt;BR /&gt;start + slaveaddress(w) + subAddress + repeated start + slaveaddress(r) + rx data buffer + stop */&lt;BR /&gt;if (kStatus_Success == LPI2C_MasterStart(EXAMPLE_I2C_MASTER, LPI2C_MASTER_SLAVE_ADDR_7BIT, kLPI2C_Write))&lt;BR /&gt;{&lt;BR /&gt;/* Check master tx FIFO empty or not */&lt;BR /&gt;LPI2C_MasterGetFifoCounts(EXAMPLE_I2C_MASTER, NULL, &amp;amp;txCount);&lt;BR /&gt;while (txCount)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterGetFifoCounts(EXAMPLE_I2C_MASTER, NULL, &amp;amp;txCount);&lt;BR /&gt;}&lt;BR /&gt;/* Check communicate with slave successful or not */&lt;BR /&gt;if (LPI2C_MasterGetStatusFlags(EXAMPLE_I2C_MASTER) &amp;amp; kLPI2C_MasterNackDetectFlag)&lt;BR /&gt;{&lt;BR /&gt;return kStatus_LPI2C_Nak;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterSend(EXAMPLE_I2C_MASTER, &amp;amp;deviceAddress, 1);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;if (reVal == kStatus_LPI2C_Nak)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;}&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterRepeatedStart(EXAMPLE_I2C_MASTER, LPI2C_MASTER_SLAVE_ADDR_7BIT, kLPI2C_Read);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterReceive(EXAMPLE_I2C_MASTER, g_master_rxBuff, LPI2C_DATA_LENGTH - 1);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;if (reVal == kStatus_LPI2C_Nak)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;}&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;for (uint32_t i = 0U; i &amp;lt; LPI2C_DATA_LENGTH - 1; i++)&lt;BR /&gt;{&lt;BR /&gt;if (i % 8 == 0)&lt;BR /&gt;{&lt;BR /&gt;PRINTF("\r\n");&lt;BR /&gt;}&lt;BR /&gt;PRINTF("0x%2x ", g_master_rxBuff[i]);&lt;BR /&gt;}&lt;BR /&gt;PRINTF("\r\n\r\n");&lt;/P&gt;&lt;P&gt;/* Transfer completed. Check the data.*/&lt;BR /&gt;for (uint32_t i = 0U; i &amp;lt; LPI2C_DATA_LENGTH - 1U; i++)&lt;BR /&gt;{&lt;BR /&gt;if (g_master_rxBuff[i] != g_master_txBuff[i + 1])&lt;BR /&gt;{&lt;BR /&gt;PRINTF("\r\nError occurred in the transfer ! \r\n");&lt;BR /&gt;break;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;PRINTF("\r\nEnd of LPI2C example .\r\n");&lt;BR /&gt;while (1)&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 28 Oct 2021 07:39:42 GMT</pubDate>
    <dc:creator>lixuhui112</dc:creator>
    <dc:date>2021-10-28T07:39:42Z</dc:date>
    <item>
      <title>RT1064 LPI2C Problem</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1064-LPI2C-Problem/m-p/1363063#M16903</link>
      <description>&lt;P&gt;in RT1064 I wan to use LPI2C ，&lt;/P&gt;&lt;P&gt;i use MCUXpreso IDE and SDK use SDK_2_10_0_MIMXRT1064xxxxA&lt;/P&gt;&lt;P&gt;use demo evkmimxrt1064_lpi2c_polling_b2b_master&lt;/P&gt;&lt;P&gt;but find a problem:&lt;/P&gt;&lt;P&gt;LPI2C only send start singe&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LPI2C send singe" style="width: 720px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/160497i887088008A44DEC8/image-size/large?v=v2&amp;amp;px=999" role="button" title="微信图片_20211028144443.jpg" alt="LPI2C send singe" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;LPI2C send singe&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;pin config&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pin config" style="width: 571px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/160498i558A753160E64DDF/image-size/large?v=v2&amp;amp;px=999" role="button" title="微信截图_20211028144849.png" alt="pin config" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;pin config&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;code :&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt;* Copyright 2017 NXP&lt;BR /&gt;* All rights reserved.&lt;BR /&gt;*&lt;BR /&gt;* SPDX-License-Identifier: BSD-3-Clause&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;/* Standard C Included Files */&lt;BR /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;string.h&amp;gt;&lt;BR /&gt;#include "pin_mux.h"&lt;BR /&gt;#include "clock_config.h"&lt;BR /&gt;#include "board.h"&lt;BR /&gt;#include "fsl_debug_console.h"&lt;BR /&gt;#include "fsl_lpi2c.h"&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Definitions&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;#define EXAMPLE_I2C_MASTER_BASE (LPI2C3_BASE)&lt;/P&gt;&lt;P&gt;/* Select USB1 PLL (480 MHz) as master lpi2c clock source */&lt;BR /&gt;#define LPI2C_CLOCK_SOURCE_SELECT (0U)&lt;BR /&gt;/* Clock divider for master lpi2c clock source */&lt;BR /&gt;#define LPI2C_CLOCK_SOURCE_DIVIDER (5U)&lt;BR /&gt;/* Get frequency of lpi2c clock */&lt;BR /&gt;#define LPI2C_CLOCK_FREQUENCY ((CLOCK_GetFreq(kCLOCK_Usb1PllClk) / &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; / (LPI2C_CLOCK_SOURCE_DIVIDER + 1U))&lt;/P&gt;&lt;P&gt;#define LPI2C_MASTER_CLOCK_FREQUENCY LPI2C_CLOCK_FREQUENCY&lt;BR /&gt;#define WAIT_TIME 10U&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#define EXAMPLE_I2C_MASTER ((LPI2C_Type *)EXAMPLE_I2C_MASTER_BASE)&lt;/P&gt;&lt;P&gt;#define LPI2C_MASTER_SLAVE_ADDR_7BIT 0x7EU&lt;BR /&gt;#define LPI2C_BAUDRATE 100000U&lt;BR /&gt;#define LPI2C_DATA_LENGTH 33U&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Prototypes&lt;BR /&gt;******************************************************************************/&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Variables&lt;BR /&gt;******************************************************************************/&lt;/P&gt;&lt;P&gt;uint8_t g_master_txBuff[LPI2C_DATA_LENGTH];&lt;BR /&gt;uint8_t g_master_rxBuff[LPI2C_DATA_LENGTH];&lt;/P&gt;&lt;P&gt;/*******************************************************************************&lt;BR /&gt;* Code&lt;BR /&gt;******************************************************************************/&lt;/P&gt;&lt;P&gt;/*!&lt;BR /&gt;* @brief Main function&lt;BR /&gt;*/&lt;BR /&gt;int lpi2c_test(void)&lt;BR /&gt;{&lt;BR /&gt;lpi2c_master_config_t masterConfig;&lt;BR /&gt;status_t reVal = kStatus_Fail;&lt;BR /&gt;uint8_t deviceAddress = 0x01U;&lt;BR /&gt;size_t txCount = 0xFFU;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*Clock setting for LPI2C*/&lt;BR /&gt;CLOCK_SetMux(kCLOCK_Lpi2cMux, LPI2C_CLOCK_SOURCE_SELECT);&lt;BR /&gt;CLOCK_SetDiv(kCLOCK_Lpi2cDiv, LPI2C_CLOCK_SOURCE_DIVIDER);&lt;/P&gt;&lt;P&gt;PRINTF("\r\nLPI2C board2board polling example -- Master transfer.\r\n");&lt;/P&gt;&lt;P&gt;/* Set up i2c master to send data to slave*/&lt;BR /&gt;/* First data in txBuff is data length of the transmiting data. */&lt;BR /&gt;g_master_txBuff[0] = LPI2C_DATA_LENGTH - 1U;&lt;BR /&gt;for (uint32_t i = 1U; i &amp;lt; LPI2C_DATA_LENGTH; i++)&lt;BR /&gt;{&lt;BR /&gt;g_master_txBuff[i] = i - 1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;PRINTF("Master will send data :");&lt;BR /&gt;for (uint32_t i = 0U; i &amp;lt; LPI2C_DATA_LENGTH - 1U; i++)&lt;BR /&gt;{&lt;BR /&gt;if (i % 8 == 0)&lt;BR /&gt;{&lt;BR /&gt;PRINTF("\r\n");&lt;BR /&gt;}&lt;BR /&gt;PRINTF("0x%2x ", g_master_txBuff[i + 1]);&lt;BR /&gt;}&lt;BR /&gt;PRINTF("\r\n\r\n");&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt;* masterConfig.debugEnable = false;&lt;BR /&gt;* masterConfig.ignoreAck = false;&lt;BR /&gt;* masterConfig.pinConfig = kLPI2C_2PinOpenDrain;&lt;BR /&gt;* masterConfig.baudRate_Hz = 100000U;&lt;BR /&gt;* masterConfig.busIdleTimeout_ns = 0;&lt;BR /&gt;* masterConfig.pinLowTimeout_ns = 0;&lt;BR /&gt;* masterConfig.sdaGlitchFilterWidth_ns = 0;&lt;BR /&gt;* masterConfig.sclGlitchFilterWidth_ns = 0;&lt;BR /&gt;*/&lt;BR /&gt;LPI2C_MasterGetDefaultConfig(&amp;amp;masterConfig);&lt;/P&gt;&lt;P&gt;/* Change the default baudrate configuration */&lt;BR /&gt;masterConfig.baudRate_Hz = LPI2C_BAUDRATE;&lt;/P&gt;&lt;P&gt;/* Initialize the LPI2C master peripheral */&lt;BR /&gt;LPI2C_MasterInit(EXAMPLE_I2C_MASTER, &amp;amp;masterConfig, LPI2C_MASTER_CLOCK_FREQUENCY);&lt;/P&gt;&lt;P&gt;/* Send master blocking data to slave */&lt;BR /&gt;if (kStatus_Success == LPI2C_MasterStart(EXAMPLE_I2C_MASTER, LPI2C_MASTER_SLAVE_ADDR_7BIT, kLPI2C_Write))&lt;BR /&gt;{&lt;BR /&gt;/* Check master tx FIFO empty or not */&lt;BR /&gt;LPI2C_MasterGetFifoCounts(EXAMPLE_I2C_MASTER, NULL, &amp;amp;txCount);&lt;BR /&gt;while (txCount)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterGetFifoCounts(EXAMPLE_I2C_MASTER, NULL, &amp;amp;txCount);&lt;BR /&gt;}&lt;BR /&gt;/* Check communicate with slave successful or not */&lt;BR /&gt;if (LPI2C_MasterGetStatusFlags(EXAMPLE_I2C_MASTER) &amp;amp; kLPI2C_MasterNackDetectFlag)&lt;BR /&gt;{&lt;BR /&gt;return kStatus_LPI2C_Nak;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* subAddress = 0x01, data = g_master_txBuff - write to slave.&lt;BR /&gt;start + slaveaddress(w) + subAddress + length of data buffer + data buffer + stop*/&lt;BR /&gt;reVal = LPI2C_MasterSend(EXAMPLE_I2C_MASTER, &amp;amp;deviceAddress, 1);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;if (reVal == kStatus_LPI2C_Nak)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;}&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterSend(EXAMPLE_I2C_MASTER, g_master_txBuff, LPI2C_DATA_LENGTH);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;if (reVal == kStatus_LPI2C_Nak)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;}&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Wait until the slave is ready for transmit, wait time depend on user's case.&lt;BR /&gt;Slave devices that need some time to process received byte or are not ready yet to&lt;BR /&gt;send the next byte, can pull the clock low to signal to the master that it should wait.*/&lt;BR /&gt;for (uint32_t i = 0U; i &amp;lt; WAIT_TIME; i++)&lt;BR /&gt;{&lt;BR /&gt;__NOP();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;PRINTF("Receive sent data from slave :");&lt;/P&gt;&lt;P&gt;/* Receive blocking data from slave */&lt;BR /&gt;/* subAddress = 0x01, data = g_master_rxBuff - read from slave.&lt;BR /&gt;start + slaveaddress(w) + subAddress + repeated start + slaveaddress(r) + rx data buffer + stop */&lt;BR /&gt;if (kStatus_Success == LPI2C_MasterStart(EXAMPLE_I2C_MASTER, LPI2C_MASTER_SLAVE_ADDR_7BIT, kLPI2C_Write))&lt;BR /&gt;{&lt;BR /&gt;/* Check master tx FIFO empty or not */&lt;BR /&gt;LPI2C_MasterGetFifoCounts(EXAMPLE_I2C_MASTER, NULL, &amp;amp;txCount);&lt;BR /&gt;while (txCount)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterGetFifoCounts(EXAMPLE_I2C_MASTER, NULL, &amp;amp;txCount);&lt;BR /&gt;}&lt;BR /&gt;/* Check communicate with slave successful or not */&lt;BR /&gt;if (LPI2C_MasterGetStatusFlags(EXAMPLE_I2C_MASTER) &amp;amp; kLPI2C_MasterNackDetectFlag)&lt;BR /&gt;{&lt;BR /&gt;return kStatus_LPI2C_Nak;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterSend(EXAMPLE_I2C_MASTER, &amp;amp;deviceAddress, 1);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;if (reVal == kStatus_LPI2C_Nak)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;}&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterRepeatedStart(EXAMPLE_I2C_MASTER, LPI2C_MASTER_SLAVE_ADDR_7BIT, kLPI2C_Read);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterReceive(EXAMPLE_I2C_MASTER, g_master_rxBuff, LPI2C_DATA_LENGTH - 1);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;if (reVal == kStatus_LPI2C_Nak)&lt;BR /&gt;{&lt;BR /&gt;LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;}&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;reVal = LPI2C_MasterStop(EXAMPLE_I2C_MASTER);&lt;BR /&gt;if (reVal != kStatus_Success)&lt;BR /&gt;{&lt;BR /&gt;return -1;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;for (uint32_t i = 0U; i &amp;lt; LPI2C_DATA_LENGTH - 1; i++)&lt;BR /&gt;{&lt;BR /&gt;if (i % 8 == 0)&lt;BR /&gt;{&lt;BR /&gt;PRINTF("\r\n");&lt;BR /&gt;}&lt;BR /&gt;PRINTF("0x%2x ", g_master_rxBuff[i]);&lt;BR /&gt;}&lt;BR /&gt;PRINTF("\r\n\r\n");&lt;/P&gt;&lt;P&gt;/* Transfer completed. Check the data.*/&lt;BR /&gt;for (uint32_t i = 0U; i &amp;lt; LPI2C_DATA_LENGTH - 1U; i++)&lt;BR /&gt;{&lt;BR /&gt;if (g_master_rxBuff[i] != g_master_txBuff[i + 1])&lt;BR /&gt;{&lt;BR /&gt;PRINTF("\r\nError occurred in the transfer ! \r\n");&lt;BR /&gt;break;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;PRINTF("\r\nEnd of LPI2C example .\r\n");&lt;BR /&gt;while (1)&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Oct 2021 07:39:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1064-LPI2C-Problem/m-p/1363063#M16903</guid>
      <dc:creator>lixuhui112</dc:creator>
      <dc:date>2021-10-28T07:39:42Z</dc:date>
    </item>
    <item>
      <title>Re: RT1064 LPI2C Problem</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1064-LPI2C-Problem/m-p/1363067#M16904</link>
      <description>&lt;P&gt;but I use the same demo in MIMXRT1060-EVK it is ok&lt;/P&gt;</description>
      <pubDate>Thu, 28 Oct 2021 07:44:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1064-LPI2C-Problem/m-p/1363067#M16904</guid>
      <dc:creator>lixuhui112</dc:creator>
      <dc:date>2021-10-28T07:44:40Z</dc:date>
    </item>
    <item>
      <title>Re: RT1064 LPI2C Problem</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1064-LPI2C-Problem/m-p/1368166#M17050</link>
      <description>&lt;P&gt;Hello&lt;BR /&gt;Hope you are well.&lt;BR /&gt;I was able to replicate running the example with SDK version(2.10.0) and the results were successful.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Omar_Anguiano_0-1636428091835.png" style="width: 540px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/161593i1BB397A35A08108D/image-dimensions/540x269?v=v2" width="540" height="269" role="button" title="Omar_Anguiano_0-1636428091835.png" alt="Omar_Anguiano_0-1636428091835.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;I suggest you check if this issue persists with LPI2C1 and the default pin configuration from the example. &lt;BR /&gt;&lt;BR /&gt;If you have more questions do not hesitate to ask me.&lt;BR /&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
      <pubDate>Tue, 09 Nov 2021 03:21:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1064-LPI2C-Problem/m-p/1368166#M17050</guid>
      <dc:creator>Omar_Anguiano</dc:creator>
      <dc:date>2021-11-09T03:21:54Z</dc:date>
    </item>
  </channel>
</rss>

