Trying to Implement a 32 MHz Manchester Encoder/Decoder

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

cross mob
mahec_674091
Level 1
Level 1
First like received

Hello All,
I am very impressed with the PSOC 6 and am enjoying working with the BLE development kit.

I am working on a project that needs the ability to both encode and decode 16 bit data in a Manchester format, running at a clock rate of 32 MHz.  I have looked at the code for the Manchester Encoder/Decoder for PSOC 3 and it is very straightforward.  However, it uses an SPI element that has an upper frequency limit of 25 MHz.  So, I suspect that I need to create the Manchester Encoder/Decoder using the UDB blocks.

As a start . . . when receiving data at 32 MHz, I need to Manchester decode the serial stream and write the data to RAM at a 2 MHz rate.

I have never worked with Cypress UDB blocks.  I suspect the best way to implement this functionality would be to make a custom UDB block based upon Verilog code.  Before embarking on this . . . anyone have an idea whether this would even be feasible with PSOC 6?

Thank you for your help,

Max

0 Likes
1 Solution

Hello Max,

Yes you should be able to implement a 32 MHz Manchester encoder/decoder using PSoC 6's UDBs. UDBs in PSoC 6 supports up to 100 MHz clock and IOs can switch at that rate too. So implementing a 16-bit Manchester encoder/decoder should be easy and feasible.

Also, transferring the data at 2 MHz to RAM is not a problem. You can generate DMA triggers from your UDB component and perform a DMA transfer after each 16-bit decoding.

You can use the project provided in the thread pointed by Bob as a start. However that is a little old project, so not sure if it will even build now. That said, getting started with UDBs is not that difficult either, you can use the AN82156 - PSoC® 3, PSoC 4, and PSoC 5LP - Designing PSoC Creator™ Components with UDB Datapaths | Cy... as a starting point. There are multiple video tutorials (scroll to the related resources section in the page) that help you get started with basic component creation using UDBs. And if you get stuck even after all those, then the forum and our tech support will be there for further assistance

Regards,

Meenakshi Sundaram R

View solution in original post

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

Have a look into this thread.

Bob

0 Likes

Thank you for the reply, Bob

I am confused, though.  Can I use PSOC 3 and/or PSOC 5 library parts with PSOC 6?  I thought I was limited to the parts that are available in the PSOC 6 library?

Thank you,

Max

0 Likes

Also, the encoder still uses SPI component that is limited to 25 MHz.  Seems I need a different approach to be able to achieve 32 MHz?

Thanks

0 Likes

Hello Max,

Yes you should be able to implement a 32 MHz Manchester encoder/decoder using PSoC 6's UDBs. UDBs in PSoC 6 supports up to 100 MHz clock and IOs can switch at that rate too. So implementing a 16-bit Manchester encoder/decoder should be easy and feasible.

Also, transferring the data at 2 MHz to RAM is not a problem. You can generate DMA triggers from your UDB component and perform a DMA transfer after each 16-bit decoding.

You can use the project provided in the thread pointed by Bob as a start. However that is a little old project, so not sure if it will even build now. That said, getting started with UDBs is not that difficult either, you can use the AN82156 - PSoC® 3, PSoC 4, and PSoC 5LP - Designing PSoC Creator™ Components with UDB Datapaths | Cy... as a starting point. There are multiple video tutorials (scroll to the related resources section in the page) that help you get started with basic component creation using UDBs. And if you get stuck even after all those, then the forum and our tech support will be there for further assistance

Regards,

Meenakshi Sundaram R

0 Likes

Thank you very much for your response and for the suggested reading topics.  I will try to implement in the next few days.  Have a nice weekend.

All the best,

Max

0 Likes