Hello,
Thanks for you reply but I'm no looking the link the USB directly to the QSPI. There are multiple data sources for the QSPI interface so I have to manage the transactions through a queue so can't have incoming USB packets directly trigger a QSPI access.
Some further info, here is the setup I am using
#define SDRAM_START_ADDRESS (0x70000000U)
#define BUS_CLK_FREQ CLOCK_GetFreq(kCLOCK_FlexBusClk)
uint32_t soptReg;
uint32_t fbReg;
sdramc_refresh_config_t refreshConfig;
sdramc_blockctl_config_t blockConfig;
sdramc_config_t config;
refreshConfig.refreshTime = kSDRAMC_RefreshThreeClocks;
refreshConfig.sdramRefreshRow = 15625;
refreshConfig.busClock_Hz = 60000000;
blockConfig.block = kSDRAMC_Block0;
blockConfig.portSize = kSDRAMC_PortSize16Bit;
blockConfig.location = kSDRAMC_Commandbit19;
blockConfig.latency = kSDRAMC_RefreshThreeClocks;
blockConfig.address = SDRAM_START_ADDRESS;
blockConfig.addressMask = 0x7c0000;
config.refreshConfig = &refreshConfig,
config.blockConfig = &blockConfig,
config.numBlockConfig = 1;
/* Set clock out to flexbus CLKOUT. */
CLOCK_SetClkOutClock(0);
/* Sets the Flexbus security level*/
soptReg = SIM->SOPT2 & ~SIM_SOPT2_FBSL_MASK;
SIM->SOPT2 = soptReg | SIM_SOPT2_FBSL(3);
/* Enable the FB_BE_xx_yy signal in Flexbus */
CLOCK_EnableClock(kCLOCK_Flexbus0);
fbReg = FB->CSPMCR & ~FB_CSPMCR_GROUP2_MASK;
FB->CSPMCR = fbReg | FB_CSPMCR_GROUP2(2);
fbReg = FB->CSPMCR & ~FB_CSPMCR_GROUP3_MASK;
FB->CSPMCR = fbReg | FB_CSPMCR_GROUP3(2);
fbReg = FB->CSPMCR & ~FB_CSPMCR_GROUP4_MASK;
FB->CSPMCR = fbReg | FB_CSPMCR_GROUP4(2);
fbReg = FB->CSPMCR & ~FB_CSPMCR_GROUP5_MASK;
FB->CSPMCR = fbReg | FB_CSPMCR_GROUP5(2);
/* SDRAM initialize. */
SDRAMC_Init(SDRAM, &config);
thanks,
jeff