1) You can go through this app note https://www.cypress.com/file/124206/download for you understanding of GPIF II as master.
2) For the firmware file, you can get it from https://www.cypress.com/documentation/application-notes/an87216-designing-gpif-ii-master-interface - Auto master (cyfxbulklpauto)
3) Do you mean systemclock as PCLK i.e. clock from FX3 to slave??
4) Can you share the block diagram of application that you need?
5) For understanding of GPIF thread refer Meaning of Thread in GPIF - KBA90269
Hello, this is the state machine. I have 64 devices to check. On high tact 32 and on low tact 32. They are all connected to GPIF. So I want that the state machine will tact it self with 96mhz and with each 10th cycle i read the data and toggle a pin (high and low external clock). I have got 4 threads with 1024 bytes simple to keep it fast enough to stream on usb with modified streamer application. I think i have to define master clock and just don't use the clocking pin?
Something like that
pibClock.clkDiv = 4;
pibClock.clkSrc = CY_U3P_SYS_CLK;
pibClock.isHalfDiv = CyFalse;
pibClock.isDllEnable = CyTrue;
apiRetStatus = CyU3PPibInit (CyTrue, &pibClock);
But is there an Example that is nearly what I want? cyfxsrammaster Could it be?
1 of 1 people found this helpful
- You can use cyfxbulklpauto.c which is in Auto master example (as mentioned in my previous response) for your design
- For 32 bit GPIF configuration, change io_cfg.isDQ32Bit = CyFalse; to io_cfg.isDQ32Bit = CyTrue;
- You can use the same pib clock configuration it will give you pib clock of 96MHz (384 MHz /4)
- From the state machine it seems that the data will be read in multiples of 1024(buffer size)??. You can refer to master_read_write_sync.cyfx file.
Thank you! Exactly what I was looking for.
From the state machine it seems that the data will be read in multiples of 1024(buffer size)??.
Almost, I will read and process the data instantly so it will stream the data fluently and with one thread.. well it takes time to initiate one so it would be some fraction in the data. That is why I have a queue of 4 threads (tested) and 1024 byte is one package in usb stream. (or 256 samples a 32 bit)
So it just to avoid the delay of initialization and fraction in the streamed data