|
Changed address to 0xAE (10101110), but the result is the same - error 74.
Also I tried to create separate sample (based on cyfxisolpmaninout) for testing I2C EEPROM, but it also does not work (nor CyU3PI2cReceiveBytes, nor CyU3PI2cTransmitBytes, nor CyU3PI2cWaitForAck).
#define CY_FX_USBI2C_I2C_BITRATE (100000)
#define CY_FX_USBI2C_I2C_TIMEOUT (0xFFFFFFFF)
static uint8_t tmp_i2c_test_buf[64];
static int tmp_i2c_test_buf_len = 1; // 64
void ApplnInit (void)
{
CyU3PReturnStatus_t apiRetStatus;
uint32_t txApiRetStatus;
CyU3PI2cConfig_t i2cConfig;
txApiRetStatus = CyU3PEventCreate(&glAppEvent);
if (txApiRetStatus != 0)
CyU3PDebugPrint (4, "Iso Loop Appln Create Event failed, Error Code = %d\n",txApiRetStatus);
apiRetStatus = CyU3PI2cInit();
if (apiRetStatus != 0)
AppErrorHandler(4, "I2C Init failed, Error Code = %d.\r\n",apiRetStatus);
else
CyU3PDebugPrint(4, "CyU3PI2cInit; OK;\r\n");
i2cConfig.bitRate = CY_FX_USBI2C_I2C_BITRATE;
i2cConfig.busTimeout = CY_FX_USBI2C_I2C_TIMEOUT;
i2cConfig.isDma = CyFalse; // Use register mode
i2cConfig.dmaTimeout = 0xFFFF;
apiRetStatus = CyU3PI2cSetConfig(&i2cConfig, NULL);
if (apiRetStatus != 0)
AppErrorHandler(4, "I2C Set Config failed, Error Code = %d.\r\n",apiRetStatus);
else
CyU3PDebugPrint(4, "CyU3PI2cSetConfig; OK;\r\n");
int tmp_addr;
CyU3PI2cPreamble_t preamble;
tmp_addr = 0xAE;
preamble.buffer[0] = tmp_addr;
preamble.buffer[1] = 0; // address 0
preamble.buffer[2] = 0; // address 0
preamble.buffer[3] = tmp_addr | 0x1; // slave address; read
preamble.length = 4;
preamble.ctrlMask = 0x0004;
apiRetStatus = CyU3PI2cReceiveBytes (&preamble, tmp_i2c_test_buf, tmp_i2c_test_buf_len, 10);
//preamble.length = 1;
//apiRetStatus = CyU3PI2cWaitForAck (&preamble, 1);
if (apiRetStatus == CY_U3P_SUCCESS)
CyU3PDebugPrint (4, "*** OK or 0 bytes.\r\n");
else
CyU3PDebugPrint (4, "*** Failed to read from I2C EEPROM. Error Code = %d.\r\n",apiRetStatus);
/* Start the USB functionality */
apiRetStatus = CyU3PUsbStart();
if (apiRetStatus != CY_U3P_SUCCESS)
AppErrorHandler(4, "USB Function Failed to Start.\r\n", apiRetStatus);
....
}
|