Is there any max bytes limitation on function HAL_I2C_Mem_Read_DMA() using STM32F746IG and FW1.17.0 ?
I´m trying read bytes from Adafruit I2C Non-Volatile FRAM Breakout module (ic MB85RC256V from FUJITSU) in my STM32F746IG custom board.
Using FW 1.16.2, I can read 512 bytes using HAL_I2C_Mem_Read_DMA.
Using FW 1.17.0, The I2C stops (clock pin goes down forever) after first attempt using this same command. The problem disappears in FW 1.17.0 if I read only 256 bytes. (code below)
Is it a bug in FW 1.17.0 or only a limitation in library ?
I attached a simple project to show this behavior.
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MPU Configuration--------------------------------------------------------*/
MPU_Config();
/* Enable I-Cache---------------------------------------------------------*/
SCB_EnableICache();
/* Enable D-Cache---------------------------------------------------------*/
SCB_EnableDCache();
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_I2C1_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
memset(_Buffer, 0, 512);
HAL_I2C_Mem_Read_DMA(&hi2c1, 0xAE, 0x000, I2C_MEMADD_SIZE_16BIT, _Buffer, 256);
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}