- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
With
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
Solved! Go to Solution.
- Tags:
- component authoring
- component definition
- datapath
- fifo
- mcu & psoc: psoc 4
- shift_out
- udb
- user component
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, obvious now that look at the documentation.