Talk:Embedded Systems/Atmel AVR

Keep up the good work guys!

Possible Merge?
Several other similar pages, such as 8051, The 8051 Microcontroller, and PIC were all merged into the Embedded Systems book. Of course, all those other pages were very small stubs, or half-books, and were easy to say goodbye to. This book is a little more substantial, but suffers from the fact that it is only a single monolithic page, and isn't broken up into any kind of book format. I would like to suggest we merge this book into the Embedded Systems book as well, although I would like to hear from some contributers here before I put up the mergeto template, and get the ball rolling. If people here would like to merge this book, I would personally take care of most of the work, and I would divide this information up into a more managable page hierarchy. --Whiteknight T C E 23:53, 17 November 2005 (UTC)

External Memory Interface?
Could it be a good idea to add a topic on how to use the AVR's external memory interface (hardware and software wise)? If I knew how it worked I would be eager to help, but I can't find any information on what kind of SRAM and latch chip to use.


 * I've taken notice of this article, and will be adding material, replacing ASCII art with images, and attempting to (justifiably) get rid of the rewrite tag at the top of the article. Pfagerburg 15:34, 25 July 2007 (UTC)

Rather than draw my own picture, I'll refer to you the "External Memory Interface" section of the datasheets for devices that can use external SRAM, e.g. the Mega162. The requirements for the latch are clearly described (a '573 or equivalent) as well as the connections of the various signals from the AVR to the SRAM. Pfagerburg (talk) 20:51, 6 February 2008 (UTC)

Working on the article
Here are my plans to improve the article so that the "needs improvement" tag can be legitimately removed.
 * Remove (!!!) where it shows up, after considering the text and possibly changing it
 * Rewrite description of interrupts.
 * Minor editing to GPIO section Not so minor after all.
 * Replace ASCII art with a proper drawing in RS-232 section
 * Add explanation of "true" SPI and hardware-assisted like the USI (Universial Serial Interface) found on some of the AVR's, e.g. Tiny26.
 * Protocol issues section might need to be removed entirely.
 * JTAG section needs some parenthetical comments removed.
 * JTAGICE mkII section contains links to several development boards; these need to go into a separate section.
 * JTAGICE references in section 10 (AVR selection) may need to move up to section 8 (debugging interfaces).
 * "AVR Selection" section needs some reorganization.
 * "Firmware Programming" section needs an introduction, possibly some reorganization. Might also want to look for dead links.
 * "Programmer Tools" is a link farm and FAQ, needs cleanup. Some of it (AVRDude) might move up to the in-system programming section.
 * Make "References" its own section.
 * Add a quick overview before section 1 ("Memory"), probably just borrow heavily from the Wikipedia article.
 * Add circuit diagram for using external memory, per request on the talk page.
 * Add drawing/SPI block diagram to SPI section. Datasheets have much better diagrams; point there.
 * "References" is a link farm, needs a lot of cleanup. Some should move up to other sections where particular tools are mentioned.
 * The Timer/Counter section needs clean-up
 * There are several variants of timers on the AVR, 8-bit, 16-bit, PWM, high-speed, and these are not adequately explained. Could use more explanations, but at least there's something there now.
 * Timer1 is not always a 16-bit timer.
 * There was an image that was removed for being unlicensed, needs to be replaced, but what was the image so I know what to replace it with? The image didn't add much, and is in all the datasheets anyway
 * Fix the in the JTAG section one way or the other.
 * Final scan for ?!?, TBD/TODO, etc.'s, ...'s and other signs of needed clean-up.
 * Remove clean-up tag.

I'll be working through the article from start to finish. I'm sure there's more than just this list. I appreciate the efforts of the folks who created this section, and hope that my edits will add to the quality and make it even more useful to other readers. Pfagerburg 17:22, 2 August 2007 (UTC)


 * It's done. Sort of.  The article can always use improvement (and I will continue working on it), but I feel that I have it to a place where it doesn't need the clean-up tag any longer. Pfagerburg (talk) 23:28, 13 March 2008 (UTC)

AVR Butterfly Demo Board
I re-worded the Butterfly Demo Board section, specifically mentioning the company that designed the board. I removed the link to smileymicros.com, since they sell the board, but did not design it. I realize that this promotes Ecros over Smiley (since both sell the board), but I think this is unavoidable. If, for every protoboard and development tool listed, we have to have a link to every vendor that sells it, things get messy very fast.

For example, Olimex makes a lot of great protoboards and tools for the AVR, and they are specifically mentioned in the article as making a JTAG clone. Since SparkFun Electronics stocks many Olimex products, should we put in a link to SparkFun's website? BTW, SparkFun is in Boulder, CO, about 2 miles from where I used to work, and I've bought several things from them. They're great folks, and if not for some serious self-control, I could spend a fortune on all the nifty stuff they carry. Should they have a link in this article every time a product that someone else designed happens to be stocked at SparkFun? I say no.

So, nothing against SmileyMicros, but the wiki is not a place to advertise that you sell someone else's product. Pfagerburg (talk) 19:42, 1 February 2008 (UTC)


 * OK, I admit it: I'm a living organ donor. I donated my brain, since I seem to have so little use for it.


 * It turns out I was the one that put that link to Smiley Micros in the first place, and now I remember why. I was looking for a particular part, found it at Smiley, and in the process, noted that they stocked the Butterfly carrier board, and so added the information to the wiki.  A little more careful research at the time would have led me to the designer of the board (Ecros).  Someone (an IP addr) added the link to Ecros, and the diff brought that to my attention.


 * I apologize for any confusion or offense I may have caused. Pfagerburg (talk) 19:54, 1 February 2008 (UTC)

serial communication
I agree that this Embedded Systems book needs to talk about all kinds of serial protocols -- RS-232, RS-485, SPI, etc. However, lots of different CPUs use these protocols. Is there some more appropriate chapter of the Embedded Systems book to discuss serial communication in general? That way we can avoid explaining these things over and over again, in the chapter for each specific CPU. Or should we move most of that information to another book entirely, one on the serial communications bookshelf ? --DavidCary (talk) 18:09, 19 April 2008 (UTC)

I removed the circuit diagram for using a few resistors to talk to an RS-232 port. As I had noted in the text when I first replaced the ASCII art with a proper picture, it is a poor choice for anything but a "one-off" system. One thing I failed to note is that you can't use the hardware UART with this circuit; the polarity is reversed compared to what the RS-232 port expects to see. Aside from that, it's not specific to the AVR, so if this particular circuit belongs in Wikibooks at all, a more appropriate place would be the general article on serial communication. Pfagerburg (talk) 19:14, 18 August 2008 (UTC)

Submitting your AVR project to this page
A few edits in the past month have been obvious self-promotion. I'm not completely sure what to do about that in cases where there aren't many resources in the category already, or the project is in some way notable. e.g. if someone from Kanda edited this page to mention some new debugger that they were making, I don't think I would have an issue with that. However, I also don't want to see this page cluttered with 20 different BASIC compilers or interpreters, etc. For right now, I'm just going to clean up the ad copy that a few people have posted, and later I will come back and see if I can tone some of this down.

You do realize that AVRFreaks has a complete list of every tool? So you can get your stuff listed there, for free as far as I know? It's pure supposition on my part, but I believe that when people are looking for AVR tools, they are going to look at AVRFreaks before they look at wikibooks. But that's just my guess. Pfagerburg (talk) 04:38, 11 September 2008 (UTC)