RoadTest: Cypress PSoC4 Pioneer kit
Evaluation Type: Evaluation Boards
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Arduino UNO, MSP430 LaunchPad, ChipKit MAX32
What were the biggest problems encountered?: First shipping didn't include the board and reshipping took long time, so this review came very late.
My first unboxing of the kit was a surprise, since unfortunately on the first shipment I received the PSoc board was missing (maybe was used for a photo shoot or a demonstration, and they forgot to put it back), but after reporting this problem to Element14, Cypress kindly send me another one (even if it took some long time).
|Fig.02 - Contents
|Fig.03 - DVD
Opening the white box you can find the red PCB board, a DVD with associated software, an USB to mini-USB cable, six jumper wires and a quickstart leaflet.
On the kit I received the included DVD, despite its label, was a blank DVD-R. I followed the link supplied about the online documentation and found also a full ISO image, so after downloading I was able to burn the DVD itself and have a fresh installation disk.
Anyway on these days of cloud storage a DVD could appear obsolete. From the part list on the quickstart guide the DVD is indeed missing, so it seems the right way to proceed from now on is go to the relevant web page and download all the packages you need to install.
The Cypress CY8CKIT-042 Pioneer Board is a nice piece of hardware. You can see on it (over many passive and active discrete components) the CY8C4245 PSoC 4 chip in TQFP package, a mini USB connector, a 5 element capacitive slider, an RGB led, 2 pushbottons (respectively for reset and user funtions), a voltage regulator, 2 leds (power and status). Beside of all those parts no one can ignore the 4 border connectors Arduino compatible (even Cypress seems want jump on the open hardware bandwagon) and, as a bonus, a PSoC 5 LP, here used as programmer and debugger, but also programmable separately, even overwriting the existing bootloader.
The up side is so relatively densed populated that appear a right choice print the pin mapping on the bottom side, where 4 rubber feet get you more comfortable to experiment without unwanted shorts if your environment is not so clean :-)
Talking about the PSoC4, the chip is based on an ARM Cortex M0 core with a respectable surroundings of analog (Op-Amps and 12bit ADC) and digital (4 fully programmable blocks) peripherals. There's enough to develop nice and smart devices with few external parts needs.
The onboard PSoC 5 LP (ARM Cortex M3based) add a noticeable value to this board. An advanced user can easily program it separately from the PSoC 4 to use it alone or together.
To complete the Arduino compatibility I soldered a 6 pin header on the relevant pads J12 at center of the board, look at Fig.4 . Certainly the possibility to use the large number of "shields" available on the market is a very big potential for this board and definitely a right choice.
At the end is however clear that this mighty hardware need an equally powerful software to manage it ("power without control is nothing" said an old advertisement), and at Cypress seem to know it.
About the supplied software, after the DVD autostart you can choose between typical, custom and complete installation. I choose typical.
The pioneer kit software include a complex and complete toolchain that will be installed on your pc, so be patient because the process takes some time.
Anyway the process is quite straighforward, just follow the directions on the screen and you are on the way. Notice that included in the software there is a separate updater to keep track of all new version of the installed pieces, the Cypress update manager: run it, see the result and choose what you want download, update or uninstall. Very handy.
At the end of installation process the PSoC Creator IDE will open and from here you can create and manage your project, or simply choose between ready made simple examples. For first time users these ones can be useful to explore and become familiar with the IDE and the PSoC possibilities before diving in the full documentation. Let see the PSoC Creator environment.
The bottom is an output window where you can see the progress of operations.
On the bottom right you can see immediately if you have errors or warnings, and stop the building if you want. After the building you can see details about the process. Clicking on errors the relevant parts will be highlighted to easy the debug.
The left panel is the Workspace explorer that shows all the parts of the project, such as sources (code pieces, headers, generated codes from the parts used and so on), Components (the schematic), Datasheets (include links to all documentation related to the parts used, both online and installed on the pc), Results (compiled objects and list files).
The central part is is used to show the Cypress "news", the selected source file, the schematic entry, the pin mapping editor and so on, just double click on the desired element on workspace explorer and/or select the desired tab.
The right panel is the component catalog where you can browse digital and analog parts and building blocks to create your personal hardware drag&dropping into the schematic entry on the central window. From simple logic ports to complex subsystems you have a large choice of parts that come pre-programmed and tested by Cypress, but you can import from other sources or make your own.
After seeing lots of plain microcontroller boards, the main difference with this Cypress PSoc 4 Pioneer Board IMHO is the INTERNAL hardware programming! You can drag & drop "components" from the right side window (Component Catalog) to the central window workspace and also re-mapping the pins. This change dramatically the way you was used to work with embedded projects.
Just take the ubiquitous "Blink-a-LED" first example project: after the first compiling/building process on your new microcontroller board and one-minute look at the on-off light what's your next move? Usually change the period of the blinking, just to see if you are able to do something with the new arrival.
Of course you can do it also with this PSoC: go to the relevant piece of code (not so easy here, I admit, see below) and make changes on the right line.
But you can do MORE: open the TopDesign.cysch tab on the central window (double click on it in the Workspace explorer at the left if such tab is not present) and you have the schematic representation of your project. You can double click the PWM component and change parameters (period for example), or even modify its input clock frequency (that is another component), to obtain the same result.
The PWM component is a very flexible block and it can be configured also as a counter/timer or a quadrature decoder (use the left bottom button to have a detailed datasheet) so you have many possibilities, but to keep it simple please note it have a complementary output: copy and paste the external blue led and its resistor at a side, then connect them to the complementary output (Fig.9). You'll need to map this output to the right pin already connected to another diode of the RGB led, say the red one so open the pin mapping tab double clicking on Blinking LED.cywdr and on the right side choose as port the P1 (you may want rename the doubled Pin_BlueLED1 name as Pin_RedLED) as showed in Fig.10. Build & Program on chip and voilà: a 2 color LED blink.
It is interesting notice that most of code is automatically generated by the IDE according to the blocks setting, including the initializing phase, so at the end main program contain just the "start" command for the hardware/software machine composed. That's why you can't find on main.c the parameter related to the period of blinking: it is on another part of source code, the one related to the PWM block.
Exagerating on this way, go further and add a simple toggle flip-flop from the catalog (Fig.11) to make a 4 color led blinker!
What I just showed is relative at a single digital block, so imagine what you can do using the analog and digital blocks available. Only browsing the component catalog a lot of ideas come to mind, it's amazing!
The Cypress PSoc 4 Pioneer Board and the associated IDE fullfill the expectations of a serious developer not to mention of an electronics enthusiast.
The hardware and software seem well integrated and able to manage the potential of the PSoC 4 family.
I have this board for not enough time to do more complex experiments, but simply exploring examples, documentations and some associated forums, it come out so many inspirating ideas!
I had some experience with other boards and their development tools on these years, but this is one of those rare times I feel that special thrill...