If you have used PSoC 3, PSoC 5 or the up and coming super cool PSoC 5LP, you have probably heard or and most likely made use of the internal UDBs, whether you knew it or not. UDBs are digital blocks that allow you to make custom digital gadgets. There are a couple of new application notes that were mentioned before in this Blog, that describe the UDBs in detail and teach you how to use them. See Cypress application notes AN82250 and AN82156. Many of the standard digital components in Creator s library are actually constructed with UDBs. Below is a list of some of the components that are constructed mainly of UDBs.
I2C, I2S, LIN, SM Bus, SPDIF, SPI, UART, Counters, CRC generator, Glitch filter, Quadrature Decoder, Shift register, Timer, Logic gates, Flops, Digital multiplexers and de-multiplexers, control and status registers, etc.
You get the picture, but what is currently in the library is by no means the limit of what can be created. Recently I sent an email to our application and field application engineers and asked what they had created with UDBs. Here is a list of some of the components people have created with PSoC UDBs.
-
60Hz Grid Lock PLL
-
Numerically Controlled Oscillator (Used for DDS)
-
Forward Error Correction (FEC) decoder
-
No clock stretch I2C slave
-
Simple components (8bit adder, PWM, digital compares etc )
-
Complex Counters
-
ADC mux sequencers
-
Holiday Light controller
-
Square root calculator
-
First order IIR filter
-
Hardware state machines
-
Delta sigma modulator
-
UDB discrete Fourier transform
-
Byte packer (sticks two 12-bit values into 3 bytes for RF transmission)
-
7-Segment Display controller
-
Remote control servo controller
-
Manchester Encoder/Decoder
-
1-Wire communication interface
-
ClipDetect, Monitors 16-bit audio and over rides output if value exceeds a certain limit.
-
Audioclkgen, Creates a factional N reference for the on-chip PLL. Used in digital audio designs.
Notice that this list contains some pretty weird stuff that you would never find standard in any microcontroller. You won t even find most this stuff in the standard PSoC Creator library, yet! The point is, that it doesn t matter. You can create your own custom interface or component, that makes your project unique without adding extra external glue logic or a CPLD.
Cypress does have a Community Components page where people can post any component they have created. Unfortunately it has been a very well kept secret until now. Do yourself a favor and check out the Community Components page.
Also, if you want to get more training on creating components, read the app notes I mentioned above or look at the community components guidelines on this this page.
If you have created a cool component (or even a weird one), don t be afraid to share it with the Cypress community for your 15 minutes of fame.
By Mark Hastings