Many years ago, I was asked to design a voltage to PWM (pulse-width modulation) controller. Even though microcontrollers (MCUs) were not uncommon in those days, the smallest was a 16-pin device that was presented in a DIL (dual in-line) lead through-hole package. Furthermore, although some were available with a PWM controller, there were precious few with an analog-to-digital converter (ADC), and none with both.
The MCU devices at that time were relatively pricey compared to the alternative, so I ended up with a constant current source charging a capacitor and a comparator. There was also a requirement for detecting that the motor (the PWM was driving a motor) was turning. Figure 1 shows what the resulting product looked like.
Figure 1. A voltage-to-PWM controller as part of a test jig. The H-bridge driver, driven by the PWM output, was on a mezzanine board.
Ever since that time, whenever I see a small MCU, I mentally evaluate whether I could have used it for that project and how the costs would have compared. Thus, when I saw Max's column — Silego Poised to Announce GPAK4 Mixed-Signal FPGA — I was intrigued by the “mixed-signal” reference and I decided to look further into Silego's offerings. (More recently, Max posted a follow-up article — Teeny-Tiny GPAK4 mixed-signal FPGAs for embedded systems .)
As it happens, I was an early adopter of programmable logic (see How It Was: Programmable Logic ), but I drifted away when so-called CMOS parts would happily chew many tens of milliamps (if not hundreds) and their capabilities exploded. I work in an area where simple logic and low power are the order of the day, so when I saw where the Silego GreenPAK series was positioned, I grew excited and the question of the PWM controller immediately re-surfaced.
Silego has four families named GreenPAK1 through 4. GreenPAK2 is a superset of its numerical predecessor and so I will ignore the original part. To call the GreenPAK2 an FPGA is, in my opinion, a misnomer. In fact, Silego calls it a Programmable Mixed Signal Array. To me, it is rather like the peripheral set of a microcontroller. You get an ADC, several counters (some can be used to implement finite state machines (FSMs)), an SPI interface, and several other devices including lookup tables (LUTs), delay lines, and D-type flip-flops. Like MCU peripherals, these can be reconfigured from timer to delay, number of ADC inputs and so on, but they are always there. You cannot re-allocate the chip resources for some other function. What is programmable is the interconnection between these components. I haven't spent as much time with the GreenPAK3, but it has fewer of the MCU-type peripherals like the SPI or ADC, and many more LUTs, so perhaps it does get to be more like an FPGA.
There is plenty of logic internal to these devices, but the user interface is completely graphical and pretty simple (with some quirks) and you don't need any knowledge of VHDL or Verilog. The device draws micro-amps and is about $0.55 in single units, which means it immediately got two thumbs up from me. So I proceeded to perform some evaluations to see if my PWM controller could be realised. It turns out there is an example for me to base my design on; you can see this in Figure 2.
Figure 2. A voltage-to-PWM controller represented in the GreenPAK2 Designer software. Only the components that are used are being displayed. It would be possible to detect the motor turning using a delay counter, I believe.
Testing is performed using the appropriate development kit. The approach is perhaps a little dated as a result of the way the device works and how small it is. The devices are tiny. When I originally saw the data sheet that said the GreenPAK2 was presented in a 2mm x 2mm square package, it didn't really make an impression, but if you think of an 0805 resistor with 12 pins (6 a side) you'll get the idea.
This is a one-time programmable (OTP) part (I will get into this later) that has an emulator mode that allows you to download and test the part without actually programming it. The development kit has a socket that allows you to place the device (you will need tweezers and a magnifying glass) for emulation and programming. Despite its versatility, the emulator is quite intuitive and I was up and running in a matter of minutes. You don't really need external equipment like a signal generator with this tool. Ironically the configurability of the development kit is achieved with another reconfigurable device — the PSoC3. The kit also has attachment points to allow you to wire it into your target application to see how it works in-situ.
Since the only way you can check the outputs on the kit is with the built in LEDs or with an oscilloscope, Silego also offers a third party plug-in USB oscilloscope to help with debugging. This plugs directly into the development kit and has an on board multiplexer to the four possible traces. It is an interesting concept, but to me still appears to be a work in progress (no USB cable, no user manual, trigger only on Channel 1 and more). Having said this, it is still probably worthwhile at only $69.
In my original controller, the motor required a minimum PWM (about 20%) to start turning. It is possible to adjust the PWM range in the software and — although the design rules checker objects (requiring 0-100%) — it will still be downloaded to the chip. So my original board of 75mm x 100mm (say 60mm x 80mm excluding the connectors, relay, and voltage regulator) would have been reduced to a 2mm x 2mm square, albeit with a sub-8-bit range on the PWM control.
I can see many possible uses for this device in my line of work. However there is one “large” drawback, and that is its size. No doubt there is one wizard out there who can hand-solder this thing, but when it comes to prototyping and possibly having to replace a part because of a flaw — good luck! As for programming the part, there is no question in my mind that you should use Silego's services. They will program as few as 10 pieces with a $50 NRE. Your sanity is worth it.
My PCB layout technician thought the PCB with traces this fine would command a premium, and as for connecting a probe to a pin — forget about it! I did buy a separate socket to look into making provision for it on my PCB to prove the prototype and then manufacture mounting the device directly. The footprint of the socket is 27mm x 19mm, thereby occupying 128 times more surface area than the part itself and perhaps losing one of the part's key advantages.
I have had a few interactions with Silego whilst I looked at their product, and they have been notably responsive and proactive, even suggesting that I attend an upcoming web seminar, which I recently did. Sometimes the GreenPAK2 seems to me to be an old approach (simple logic, standalone 8-bit ADC, OTP, low pin count package, low current consumption) with a very modern twist. It is positioned between discrete logic and small MCUs, and that is exactly where I work, so this is very definitely another arrow in my quiver, if only I could get the devices in a bigger package.
Incidentally Silego has a program for users to submit an app note, and the reward is rather interesting, so if you can come up with an idea, sharpen your (metaphorical) pen and start writing.
Do you think you could use one of these parts? If so, how do you feel about its size?
Join over 2,000 technical professionals and embedded systems hardware, software, and firmware developers at ESC Boston May 6-7, 2015, and learn about the latest techniques and tips for reducing time, cost, and complexity in the development process.
Passes for the ESC Boston 2015 Technical Conference are available at the conference's official site, with discounted advance pricing until May 1, 2015. Make sure to follow updates about ESC Boston's other talks, programs, and announcements via the Destination ESC blog on Embedded.com and social media accounts Twitter, Facebook, LinkedIn, and Google+.
The Embedded Systems Conference, EE Times, and Embedded.com are owned by UBM Canon.