Hi Guys! This is an update to my goal to find a mo' better MCU than the PIC16F88x I had maxed-out in performance.
At the time of my last post I had decided on buying (4) CY8CKIT--049-42xx kits as what seemed the best choice among many.
Unfortunately, this PSOC chip is truly a POS.
Although the chip is full of promises of many functions, it is severely crippled by allowing me to choose only a max of 4 functions(UDBs).
Nonsense. They have the GERBER files right on their website for this board, and they list very specifically the features of the chip. If you need more than 4 UDB's, why would you buy a chip with 4 UDB's? That's like buying a chip with 6 GPIO's and complaining it's a POS because it doesn't have 16 GPIO's.
The ADC converter only supports 8-inputs single ended at 11 bits but only offers a 1.5K input impedance, requiring buffer op-amps on each input.
"Only"? The 4000 series is the low-end PSoC in the $0.29 to $2 range. The fact that it maxes out at 8 ADC inputs is right in the datasheet, as is the input impedance - why would it be a surprise or a slam against the chip? If you need more than the PSoC4 offers, then move to PSoC3 or PSoC5. Both allow adjustable input impedance, up to 20-bit ADC's, and you can sample dozens of channels. And, you can do it in hardware and write out the results to a memory location using DMA so you don't actually have to do anything in software. If the specs, as listed right in the datasheet, don't work for your application, then why buy that chip and complain it doesn't do what you need?
I needed 4 PWM's for my MMMMM motor control. I can only get one 16-bit PWM after adding a counter and ADC and boot module.
The board you bought comes with the CY8C4245AXI-483 chip. I just did a sample project with an ADC, counter and 4 16-bit PWM's and it fit fine. The boot module is software only and doesn't affect UDB's. The 4 PWM's use up the 4 UDB's and the counter fits into the dedicated TCPWM block and the ADC fits into the dedicated ADC block. Not to keep harping on the issue but the datasheet explains all this.
The PSOC4 documentation for most UDB (functional blocks such as PWM ADC etc) are so very vague and poorly explained that it required hours upon hours to experiment, trying to understand how to get these functional blocks to work.
For instance the PWM requires code to turn off and on the PWM just to set Duty Cycle to zero, else the DCyC reverts to 100% when it should be 0, (PWM single output compare match for PWM Duty Cycle) for a simple single-output PWM.
I disagree that the datasheets are vague. If anything, they are excruciatingly detailed, going into clock cycles for various commands, memory usage, interactions with other parts and more. For example, just the PWM datasheet alone is 46 pages, the ADC datasheet is 30 pages, etc. They also note in every datasheet that you can get example code and sample projects right from within Creator by clicking "File -> Example Project". There you can filter by PSoC family, chip range and example type. There are 3 example projects just for the PSoC4, 4200 family, ADC which show the component in use (and you can compile and use the samples if you like).
The PSOC4 48-MHz clock does not deliver speed. A simple GPIO On--GPIO Off takes 1.4uSec to toggle one pin. To turn on or off a pin requires a method: GPIOpinWrite(1); GPIOpinWrite(0); iinstead of a simple bitx=1; bitx=0; using a fast one or two machine language instruction to achieve.
Once again, Cypress doesn't hide this. It talks about speed in the pins component and refers you to this document
http://www.cypress.com/?docID=42883. That document explains that the pin API's are there for convenience and even has oscilloscope graphs showing how fast the pins switch using the API's as well as how fast they switch using direct addressing. It also gives the code to directly toggle any GPIO pin the same way it's done with most other MCU's.
The clock is +-2% to +-5% accuracy making an external clock necessary for precise timing.
Same with any MCU
But the worst surprise is the 4 UDB limit which makes the chip useless except for the most trivial of useful intent!
Nonsense. It's a sub-$2 MCU with 32k of flash, a 48Mhz ARM M0 core, 36 GPIO's, that will run down to 1.7V, has dedicated op-amp, communication (UART/I2C,etc) and timer/counter/PWM blocks as well as 4 additional configurable blocks for whatever else you like such as comparators, DAC's, capsense, PRiSM LED color mixing, quadrature decoders, shift registers, LCD drivers, switch debouncers, edge detectors and more. It's hardly useless for anything beyond trivial uses.
Sorry if I sound harsh, but your complaints are just mostly bullshit. I'm sorry the PSoC didn't work out for you but I think you brought the wrong board for your application.