cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC™ 4

MiRe_4638356
New Contributor II

I have managed to write to a Datapath in a UDB (D0 and D1 I have confirmed are being updated). I presume that it is working when I write a 24 bit block to F0 (or F1) - given that they are 4-bytes deep using command:

CY_SET_REG32(LEDA_Datapath_u0__F0_REG, 0UL);

(I'll move that to the component code once it's all working)

What I don't quite follow is how I shift the data out of F1 (or F0)?

From F1 should I do something like:

pastedImage_7.png

With

pastedImage_9.png

If so, I am a little lost as to how I extract a bit at a time into Output 4... do I just load up each byte after all 8 bits have been extracted?

This does not appear to be operating as I expected.

I my case I want to use 24 bits for each message out so can manage to repeat three times if necessary (rather than widening my Datapath to 24 bits).

Thanks!

Mike

0 Likes
1 Solution
RodolfoGL
Employee

When writing to an 8-bit datapath, you need to write three times to get the 24-bits into the FIFO.

If you simply do one 32-bit write to an 8-bit datapath, you would be writing to FIFOs from other datapaths.

View solution in original post

4 Replies
Ekta
Moderator
Moderator

Hello MiRe_4638356

Please refer to the PSoC Creator UDB Editor Guide: https://www.cypress.com/documentation/component-datasheets/psoc-creator-universal-digital-block-udb-...

The Application note contains details about loading F0/F1 data to other registers. Can you please let me know if you want to provide the fifo's content as output signal bit by bit? You can copy the contents of the F0(or F1) register to A0/A1 and then perform the desired shift operation.

Kindly provide more details about the function you want to perform. If possible please provide your project as well this will help us to get a better understanding of the required implementation.

Best Regards

Ekta

0 Likes
MiRe_4638356
New Contributor II

Hi Ekta,I have been through the UDB Editor Guide and didn't follow - hence I posted here.

What I am trying to do is to output 24 bits of data to a pin (communicating with an LED driver IC). The data is generated by the firmware (written all at once/3 instructions) and I need to output 1 bit at a time.

I have multiple channels and don't want to consume more than one UDB, if I can avoid it.

I'll put another project together later today to illustrate where I am having problems.

Thanks!

Mike

0 Likes
RodolfoGL
Employee

When writing to an 8-bit datapath, you need to write three times to get the 24-bits into the FIFO.

If you simply do one 32-bit write to an 8-bit datapath, you would be writing to FIFOs from other datapaths.

View solution in original post

MiRe_4638356
New Contributor II

Thanks, obvious now that look at the documentation.

0 Likes