How to properly change size of Shift Register's FIFO?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

I need to be able to produce a stream of data consisting of 24-bit words with no spacing between them. To achieve that I'm using a Shift Register - I'm writing my data to its FIFO and then enabling the circuit which loads FIFOed data onto the shift register (see the schematic).

   

Things work of with default FIFO size of 4 (i.e. I can load up to four 24-bit words and they will be produced out of the shift register. If I try to load more things from the FIFO than I put there, garbage comes out). However, changing FIFO size (by altering the #define ShiftReg_1_FIFO_SIZE 4u in ShiftReg_1.h) does not seem to be altering the FIFO's size. What's up with that? If not by modifying the define, how do I change the size of the FIFO? There is nowhere to do it in the components configuration prompt and I haven't been able to find any other place in code. 

0 Likes
2 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

In the PSoC5 world shift registers are made out of UDBs. These have a fixed FIFO depth of 4 entries. So there are no chances to enlarge the shift register's FIFOs for a larger depth.

   

 

   

Bob

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

You could use a SPI master, and drive it with a DMA. This means to software is involved and you get full speed.

0 Likes