TekNoir said:
What was the reasoning behind including the 12F5xx emulator on the Firefly?
For something that will potentially be marketed to beginners/students/hobbyists, this "feature" seems to be quite out of place.
I really like the idea of the Firefly being a tutor/programming platform when paired with your Inchworm ICD2. The cost and size will be a definite plus.
The 12Fxxx bit was added as seen in this web page, you could do much the same thing by putting a 16F87 in the socket and access B0-B5. The added cost is simply a 10/8 IDC pin connector.
**broken link removed**
I find a single 7 segment display of questionable value, don't get me wrong I love LED displays but it's only when you get into muxing them (like charlieplexing) before they become interesting...
The I/O pins were carefully chosen for IMO the best way of using them in such a simple circuit. B0/INT is special for generating edge driven irqs (handy for the jumper selectable IR in the newest schematic). The PWM output or CCP input was given an external use such as a servo, piezo or even an LED. RA2 has a D/A that can be rerouted to vref or a comparator input. Also can be reassigned as power or gnd for a DS18S20 temperature sensor.
RA4 being open collector is almost ideal for iButton & 1wire stuff, and it too is another A/D port. You could hook all sorts of stuff upto the USER port, POTs, Caps, LDRs...
The 10K pot on RA1 is the other half of the comparator that the CVREF controls (
your 16 step digital D/A inside the 16F88 or virtual pot#2)
RB0,1,4 have software pullups for the switches, RB4 has IRQ on change to play with. RA0,6,7 you get to play with Red/Green LEDs on a mux similar to charlieplexing. Your software will get busy playing in this mode, good way to learn about timer irqs. The serial port cheap as it is will function in half duplex mode and you can even experiment with bootloaders or hook up a serial LCD display or save your money and just use hyperterminal or something better (tera term comes to mind)
No crystal needed for the 16F88 (it's got an eight speed osc, from 31khz to 8mhz @ 1%)
The ZIF side (40 pin wide ZIF sockets aren't cheap $12CDn) is for those of us who got used to the old style but still popular way of programming.
An osc across pins 9 & 10 of the ZIF would allow you to get the debug mode fired up when a 16F876A was installed but the only I/O pins you'd have access to would be A0 thru A5, RB0 thru RB5, RC2 & RC4. I could put a header out to these pins space permitting you would have to be wary of using the "in use" pins as outputs as you could damage the chip. Same goes for the 12Fxxx simulator too.
Keep in mind those "features" if not installed would add no cost to the board. The're just holes and traces, and even installed just connectors. The connectors would be IDC and work similar to the Tech-Tools IDE (I used to use before I built the inchworm...)
**broken link removed**
On a sidenote I picked up the book "123 PIC Microcontroller Experiments for the Evil Genius" by Myke Predko. This book got mixed reviews on Amazon but Myke is a local and I liked his other books. He uses the PICKIT1 (he solders a ZIF socket to it) plus a handful of circuits. Most of his projects use the 16F684 (I prefer the 16F88 because of the debug mode) and a few of his projects are beyond the scope of the single pushbutton & pot on the PICKIT1 so there are a few schematics you'll need a solderless breadboard for. One I liked was a way to check the accuracy of different PICs by hooking a pair of PICs together with an LED. The Firefly could do this as you can program/run the ZIF PIC (bottom) or the 16F88 (on top) independantly. Of course you can simply jumper a pin from the 12Fxxx socket to one of the USER I/O pins on the 16F88 (you'd need a pair of 16F88 for that)