Microcontrollers and electronic hardware are my hobby; it has been 40 years since I made a living from "electronics." Now retired, I enjoy the opportunity to play without having to actually have an end-game other than knowledge and a bit of fun. So, when I stumbled onto the PSoC $4 prototype board from Cypress, I took the plunge purchasing $20 worth of boards from Mouser (2-4100 and 3-4200) to cost justify the $5 S/H.
Note to self: don't waste time on the 4100 as it is a stripped-down 4200 design and is the same price!
The raw uC are available directly from Cypress at $1 each/any qty with free shipping- limited time offer for folks that can do their own eval boards.
Spending $25 was nothing compared to the investment I had to make in my gray matter... lots of neurons had to be devoted to this seemingly simple technology which looks somewhat like FPGA . The software tools will make a dent in your hard disk and your download volume from the ISP: \Programs Files\Cypress will contain over 17K files at a total of over 2G of storage (for comparison, Arduing 1.0.5 is around 8.6K of files and 660MB.)
Note to self: Toss in another $25 because you really, really need the Pioneer board to do debugging of the firmware!)
If you wish to debug directly on the 4200 board, you need Cypress' $99 programming tool. All said and done, the initial investment is around $60.
I cannot remember the number of online training videos I watched, but the first 2 minutes of every 6 minute video is a sales pitch before the meat of the video is released. Likely, I watched more than 30 videos, some from amateurs which were a complete waste of time. If you are going to watch training videos, watch the official ones and consider the first 2 minutes an invitation to go get a cold beer.
My biggest hurdle was that I had a few ideas I wanted to explore and those ideas did not lay down with any particular training materials; so I was impatient and attempted did some stupid things in the GUI.
Note to self: You can fry your butt in just a few clicks inside the GUI... it is not just a code editor... it is more like an intergalactic star cruiser with many self-destruct features.
Fortunately, as you work through code and get a clean compile, you can quickly elect to create an archive of that point in time... it is compressed and time efficient and provides a great snapshot to get back to a past point in time.
My takeaway: I may never use another 8 bit AVR. Reality: I have a drawer full of 328 and tiny85 and 1284 SO I WILL USE AVR... but I am in love with the 32-bit 4200 PSoC. I am in love with the Cypress Creator development GUI. It's all GCC so there are lots of similarities but you will notice that Cypress pushes C over C++ (for efficiency) and the GUI is configured for Integer and C but can easily be adjusted with a few clicks to support C++ and floating point by default. Another interesting adjustment in the property sheet is the ability to fine-tune the stack size. I thought it was awkward at first, but the Cypress GUI gives all help requests in PDF documents. The project also collects and packages the required PDFs for the components utilized in a design - in a way, it is self-documenting, but at a high-level component level. The details come in the form of a final report: (shown is a 4100 programmed for Nokia 5110 GLCD and a 6 channel analog A/D and serial I/O):
------------------------------------------------------------
Technology mapping summary
------------------------------------------------------------
Resource Type : Used : Free : Max : % Used
============================================================
Digital clock dividers : 0 : 4 : 4 : 0.00%
Pins : 19 : 17 : 36 : 52.78%
Interrupts : 1 : 31 : 32 : 3.13%
Comparator/Opamp Fixed Blocks : 0 : 2 : 2 : 0.00%
SAR Fixed Blocks : 1 : 0 : 1 : 100.00%
CSD Fixed Blocks : 0 : 1 : 1 : 0.00%
CapSense Blocks : 0 : 1 : 1 : 0.00%
8-bit CapSense IDACs : 0 : 1 : 1 : 0.00%
7-bit CapSense IDACs : 0 : 1 : 1 : 0.00%
Temperature Sensor : 0 : 1 : 1 : 0.00%
Low Power Comparator : 0 : 2 : 2 : 0.00%
TCPWM Blocks : 0 : 4 : 4 : 0.00%
Serial Communication Blocks : 1 : 1 : 2 : 50.00%
Segment LCD Blocks : 0 : 1 : 1 : 0.00%
</CYPRESSTAG>
My trek from awkward to comfortable has been 30 days and numerous hours devoted to playing, viewing videos, and keyboard work with examples and Google searches. The best resource I found is last years 100 Projects in 100 days:
This group of projects covers the basic Arduino sample programs such as Blink and then goes further beyond that into real and useful projects. Highly recommended but local storage is about 2.5G and 28K files... that is a lots of examples!
The pictures show my take on the ILI9341 SPI Color 2.2 inch display and the Nokia 5110 B/W GLCD. The color TFT is running on a 4200 board using hardware SPI but the Nokia is on a 4100 board using software SPI/bit-banging. Again, the 4100 and 4200 chips and boards are the same price, so make your life simple and just buy the 4200; the same PSoC used in the Pioneer board.
Recommended hardware for getting started in PSoC 4: (under $30)
- Pioneer Board PSoC™ 4 Pioneer Kit - Infineon Technologies | Mouser
- Evaluation Board http://www.mouser.com/new/Cypress-Semiconductor/cypress-cy8ckit-049-kits/
If you have never worked with soft silicon before, I strongly suggest you allocate an hour a day to watch video and do this for a minimum of 2 weeks. After that, you should have enough terminology exposure that the PDF will be satisfactory for advancement. Do NOT avoid the example programs... silly Blink is done 3 ways in PSoC: two in hardware without any firmware and one entirely in firmware. The ability to build logic that does not utilize any CPU resources is wonderful as the AVR only does this for PWM after firmware configuration.
Go forward with an open mind. $30 will set you back only the price of an inexpensive dinner out for 2 people. With $30, a month to play, and 15 hours of TV (of tablet) video time, you will be forever enlightened!
As for me, it is 32-bits and PSoC for all new projects. I am a big believer in multi-CPU projects anyway, so I am sure many AVR chips will be used for peripheral device controllers with the PSoC being top-dog (for now, who knows what next year may bring as it is hard work being top-dog for any length of time!)
Ray