2017-04-20 06:55 AM
Hi,
Currently I am trying to implement muxed NOR FSMC on STM32F207ZG nucleo board,
so as it is muxed data and address lines are common, I found some APIs in hal_driver( HAL_NOR_ProgramBuffer(), HAL_NOR_ReadBuffer()). these two functions are common for Muxed and demuxed configuration??
while using these APIs how controller will come to know whether it is address or data,where the control signals are being modified?
2017-04-20 09:17 AM
Hi,
The FSMC will take care of the multiplexing between address/data.
Regards,
Alex
2017-04-26 08:15 AM
Thanks Alex,
I would like to know how it is taking care of multiplexing between address/data? how it is managing to do so?
I have searched in library files but failed to find out.
This is what i found in HAL_NOR_ReadBuffer() function-
/* Send read data command */
NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST); NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND); NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_READ_RESET); /* Read buffer */ while( uwBufferSize > 0U) { *pData++ = *(__IO uint16_t *)uwAddress; uwAddress += 2U; uwBufferSize--; }2017-04-26 03:45 PM
Hi,
The hardware module (FSMC) takes care of the multiplexing. The software or libraries do not have to multiplex. The software simply has to issue the memory access (either read or write).
Alex R.