As an embedded engineer I’m always looking for more and more functions from a smaller and smaller package. Over the last six months, Microchip has been releasing information about the smallest of its chips – PIC10F32x – and in this post I want to look at the new and interesting features coming to PICs.
Up till now when I have looked at the very small end of the micro range, the PIC10s have never offered anything that would get me excited or convince me that they are very usable. At ebmpapst, when I’m designing bottom-end tiny products, I need at least one PWM, so I have been using what I would have called a slightly overspec PIC12F615 for my products.
In the last few weeks however, Microchip has released the Data Sheet for the PIC10F320 and PIC10F322. These I have been looking at using for some time; however, it was the added features of these two new chips that stand out to me, and I’m not just talking about the added Flash and RAM or PWMs they now have.
The first new shiny feature is Configurable Logic Cells (CLC). The PIC10 is not the first to have these, as there is a new breed of PIC12s and 16s that have these too. However, having this and the other features on such a small chip is to me surprising and also powerful.
CLCs are chunks of combinational logic that can be configured to perform high-speed functions without needing core processing time. Each block has 8 inputs that can come from I/O pins, internal clocks, Peripherals, or even from register bits. These inputs can then be passed through one of a number of pre-configured logic blocks that perform functions like AND-OR, S-R, J-K and D type flip-flops. What’s then quite nice is that an external pin can be driven directly from this output, read internally, or it can even generate an interrupt. It may not have the flexibility and programmability of, say, a FPGA LAB, but I can see these becoming very useful glue logic tools for embedded engineers.
Another nice feature to find in such a small chip is the Complementary Waveform Generator (CWG). This allows you generate controllable waveforms for use in a half bridge or switching power supply for example. The module allows for selectable input sources and have some nice and simple auto-shutdown controls. Dead time is also programmable for both the rise and fall side. I’ve seen similar modules on the larger chips but found this much easier to understand and more independent of the code that may be running on the core.
Both the CLC and CWG could be really nice units if only you have a clock source that is easy to control and whose frequency is easy to set. Well the chips now also come with a Numerically Controlled Oscillator (NCO) that can be used to feed the above CLC and CWG modules. This is no Phase Lock Loop (PLL) but will allow for simple clock division. The module works by having a configured value added to an accumulator on each clock cycle. The overflow is then used as a raw output that can be used to drive the module in a number of modes. For example, simple toggling of the output allows for a fixed 50 percent duty, or you can use the module for pulsed frequencies with output pulse width control.
The new features could very well be a clue to where Microchip is going with new designs, maybe trying out these features on the smaller silicon before it makes its way up to the 32bit cores. However, these new features are a welcome sight to me as an embedded engineer. I like the idea of getting more and more features inside small chips – my designs do not need a lot of I/O pins but they need to be clever. I really don’t want to be using a whopping big QFP just to get the features, but suffer with the high pin count.