Part Number: TMS570LS3137 I am having trouble interfacing with an external memory device over the EMIF Async 1 interface. This is my first time doing this sort of thing so sorry for any mistakes. 1. EMIF Clk is set to 36 MHz or ~27.8 ns / clk, EMIF device is set to 16 MHz or ~62.55 ns / clk We are utilizing a 16-bit buffered, non zero wait approach with both external device select and strobe pins attached to the EMIF_nCS2 I believe my timing values i set are incorrect and therefore I am unable to configure the device or read from it correctly. Any help would be greatly appreciated. My Current values are as follows: void emif_ASYNC1Init(void) { /* USER CODE BEGIN (4) */ /* USER CODE END */ emifREG->CE2CFG = 0x00000000U; emifREG->CE2CFG = (uint32_t)((uint32_t)0U AWCC = (emifREG->AWCC & 0xC0FF0000U)| (uint32_t)((uint32_t)emif_pin_high PMCR = (emifREG->PMCR & 0xFFFFFF00U)| (uint32_t)((uint32_t)0U << 2U)| (uint32_t)((uint32_t)emif_4_words << 1U)| (uint32_t)((uint32_t)0U); /* USER CODE BEGIN (5) */ /* USER CODE END */ } Below are the interface timing diagrams and timing sheets for writing to the device we are interfacing with (I can figure out reading after). If you need more information let me know. Note: I have attached the datasheet instead as the images copied in did not work. Write timing diagram and timings are on pages 66-68 (Please visit the site to view this file) 2. Another question, the device requires an input line to address memory vs registers which we currently have mapped to EMIF_ADDR[15], is this possible simply by setting the corresponding bit in the address when attempting to set the register or what would be the process otherwise? Thanks for any information you can provide.
↧