I am hosting a weekly microcontroller study group at the ATX Hackerspace. If you are interested in learning about microcontrollers in a casual setting, come on by at 7:30pm tonight.
Tonight at 7:30pm we will hold our weekly evening of microcontroller exploration, otherwise known as Microcontroller Monday.
The idea is not to have a fixed agenda or format. This is not a class, though I’m pretty sure everyone who comes will learn something.
Some examples of things we might do on MM:
– start learning about the MSP430 and play with the MSP430 launchpads at the space
– have Danny and Christian teach us about the dsPIC
– build some USB devices and play with LUFA (the open source AVR USB library)
– corrupt Arduino users with the notion that there is something beyond analogWrite()
– discuss related topics, like circuit design, PCB layout, etc.
If any of this sounds interesting, consider stopping by tonight.
I plan to be at the space from 7:30 to around 10PM, but that doesn’t mean people can’t start hacking earlier or stay later. While this event is open to non-members, since a member needs to be present to keep the space open, non-members should adhere to the 7:30pm – 10pm schedule.
ATX Hackerspace maintains a calendar so you can stay up to date with this and other goings-on at the space.
Has anyone else noticed that the ATmega48/88/168 family of 8-bit AVR microcontrollers recently joined Atmel’s “mature devices” list, shown above?
Truthfully, I was not surprised to see this, having been tipped off by an Atmel sales rep earlier this year at ESC in San Jose.
The good news is that while these much-loved ATmega devices are slowly being obsoleted, they are being replaced by the largely-identical ‘PA’ series, which includes the ATmega48PA, ATmega88PA, ATmega168PA, and the ATmega328P. The ‘PA’ devices are enhanced versions of the former ‘P’ series, which added energy-saving picoPower functionality to the original devices.
Porting code to the new family should be fairly straightforward given that the PA family is designed to be a drop-in replacement. To help with the switchover, Atmel has released some migration notes, including AVR512, “Migration from ATmega48/88/168 to ATmega48P/88P/168P” and AVR528, “Migrating from ATmega48/88/168 and ATmega48P/88P/168P to ATmega48PA/88PA/168PA“. Regardless, check your header files and fuse bits for any changes.
I have never used Eclipse myself, so I can’t vouch for how well this works, but I would like to upgrade from the command line tools I am using (part of AVRMacPack, which is now called CrossPack). I could use Apple’s Xcode but last time I checked, the AVR integration in Xcode wasn’t that great.
Is anyone using Eclipse for AVR development? What do you like/dislike about it?
This all started last year, when I was playing with an ATmega168 microcontroller and did something silly. I programmed the RSTDISBL fuse bit, which effectively makes it impossible to reflash the chip using an ordinary (serial) programmer.
Instead of giving up and throwing out the “dead” chip, I decided to try to revive it using an obscure high voltage parallel programming mode that isn’t supported by most AVR programmers. Armed with my Arduino and the ATmega168 datasheet, I quickly designed and constructed a programmer using parts I already had on my workbench.
A few hours later, I tested my new programmer and it worked! I revived my “dead” AVR by using spare parts and a few lines of Arduino code. That week I published the schematics and Arduino sketch to the site and called it my Arduino-based AVR High Voltage Programmer.
The response was overwhelming. Since I first posted the design, many people have built their own and used it to fix their “dead” AVR microcontrollers by restoring the fuse bits to sane values. I even received several requests for a PCB and/or kit based on the design, which got me thinking…
Today I’m proud to introduce:
The AVR HV Rescue Shield
The AVR HV Rescue Shield is a high voltage parallel mode fuse programmer for Atmel AVR microcontrollers.
It currently supports the ATmega48/88/168/328 series and the ATtiny2313. The Rescue Shield does everything my original AVR High Voltage Programmer does, and a lot more. I think the new features make this a really useful tool for anyone working with AVR microcontrollers.
New features include:
Custom 2-layer PCB with silkscreen and soldermask. No more hacking and modifying perfboards to fit Arduino’s nonstandard pin spacing!
Onboard 12V DC-DC boost converter eliminates the need for an external 12V power supply
Support for two of the most common families of AVR microcontrollers, the ATmega48/88/168 and ATtiny2313
Support for programming the extended fuse (EFUSE) byte.
A new interactive mode, where desired fuses can be entered using the Arduino’s serial port.
Separate Ready and Burn indicators
Protection resistors on every single data, control, and supply line to the target AVR, meaning that your Arduino and AVR should survive any mishaps during programming, including inserting the AVR backwards or off by 1 pin.
I spent considerable time testing each new feature and documenting the Arduino sketch. I hope that you’ll find that the finished product was worth the wait!
Programming & Customizing PICmicro Microcontrollers, by Myke Predko, is probably the best book out there for someone who is starting out with the PIC series of microcontrollers from Microchip. I used Myke’s book as both a tutorial and reference when I created my PIC RGB Video Display. Since then, I have referred back to this book countless times even when working with other microcontrollers, like Atmel’s AVR family, because it contains so much useful architecture-independent technical information. I have referred to this book for information about topics including LCD interfacing, debouncing switches, RS-232 serial interfaces, and multiplexed LED drivers. As a technical reference it easily surpasses the majority of AVR books that are out there.
The book is starting to show it’s age by not including some of the latest PIC micros in the examples (like the PIC16F628), but the code is easily ported to newer/faster/better microcontrollers, a good learning excercise in itself.