Again, I can’t mention this enough, if you want to see my project fully realized, please vote for my project!
I think one of the areas where the PSoC series really shines is how it deals with communication ports. The ability to instantiate an extra UART or I2C or SPI and connect it to any physical pin is a feature that is seldom seen in microcontrollers. The typical ARM Cortex M offering from TI or ST only allows connections to the SCB modules through one or two fixed pin configurations. While this is acceptable as an options, it makes routing more difficult, especially for reduced layer count PCBs. It does not allow for flexibility during the prototyping process of a product.
Of course, engineering is all about tradeoffs, and all this flexibility is not free. Packaging on competitor offering can be as small as 4mm x 4mm, and the cost is typically more competitive because the extra flexibility requires extra silicon. All the advantages aside however, the biggest obstacle perhaps is portability. Going from one ARM Cortex M to another is typically very easy. However, if a custom block is instantiated in a design, then the product is stuck with the PSoC. In large volume consumer products, this weakness in the supply chain may make the PSoC less attractive.
For prototyping needs however, the flexibility could not be more helpful. In addition, I noticed that the tools have also improved drastically. I remember using the PSoC 5 a few years ago, and the first thing that was the amount of time required to complete a cycle of synthesis (when a change in the CPLD portion of the design is invoked). The synthesis time for the current version of PSoC Creator as decreased dramatically, along with the time it takes for a device programming cycle.
As for the Steady Clip, here’s the update. I was able to get a UART connected to the prototype board, along with an I2C connection to the MPU-9150 9 axis accel/gyro/magnetometer. I’ve attached a photo and a video of the Putty screen show the raw data being read from the device. The parts have come in for the custom PCB, but I have not yet gotten around to finishing assembly.
The next step is to create the complementary filter that will allow us to track the position of the device with relative accuracy. As an overall goal, I’d like to get started on the motor driving scheme by next weekend.