This part has a fabric like FPGA, but one does not get involved in in-depth
timing work. Simply drag and drop components (a component in
PSOC land is a onchip resource) onto design canvas. So chip has a large
number of fixed components, like cntrs, PWM, analog stuff, and some
components use the fabric.
All components have a rich set of API f() calls, to config and control the
component if real time changes needed, other wise initial config wizard
handles all this. So you generally dont write drivers for anything.
You basically drag and drop out of component library onto design canvas,
dbl click and configure, then use wire wizard to interconnect internally or
out to pins. There are many wizards, state machine wizards if you want to
use one, one for DMA, one for digital filter.....
So if you are programming a PIC your are equally competent to do PSOC.
Apart from the component std lib I show in prior post there are community
components, done by users, one can add to their catalog. I have done a couple
like 64 bit SIPO shift register, a 3 digit BCD to 7 seg decoder, 64 bit counter......
$ 20 gets you in the game, CY8CKIT-059, IDE and compiler free.
Several hundred example projects you can use/hack to do your own work.
An example I did to get a bursting sinewave generator :
Occasionally I need to generate custom wave forms and burst a known number of cycles into a DUT. This is a single chip solution, board I typically I use is $ 10. You just drag and drop components onto schematic, wire internally with a wire wizard tool and out to pins, right click and config...
This only took 4 lines of code because I did not write a user interface to it. Just
used the component configurator to set the burst parameters. It was just a
test bench jig. But would have been simple to add a LCD and interface using the
component API f() calls. I often use the digital filter project to process signals
on the bench, it runs in the background once configed. And does not use many chip
resources.
Regards, Dana.