The AVR Device Programmer Project

This Project Has Been Terminated

Because of the difficulty in obtaining Atmel AVR AT90S1200A microprocessors in the UK, and the relatively high cost of this chip compared to the PIC microprocessors from Microchip; this project has been abandoned.





When choosing a microprocessor or microcontroller for use in a project, there are seven things which determine the choice to be made ...

  1. Availability of chips
  2. Reusability of chips ( Flash program storage )
  3. Capabilities
  4. Ease of use ( hardware; peripherals, I/O etc )
  5. Ease of coding
  6. Ease of getting the code into the chip
  7. Cost

Whilst large commercial organisations have a wide range of choice, with very few constraints on cost ( other than final component cost ), those who are developing software oriented projects as part of a hobby or within small organisations are rather more limited in choice.

Whilst component cost is important, one off projects are rather different to massive commercial projects and the list above, fairly accurately, represents the criteria potential users of a particular processing chip will apply when selecting one.

The one off builder is concerned primarily with implementing a solution in the shortest period of time at lowest total cost with the least effort involved; one off component costs, as long as they are reasonable, are far less important than seeing a solution implemented and working.

Providing a particular chip can do what is required of it, the cost of the chip is generally outweighed by these other requirements.

Almost everyone in this position, who wants a simple, standalone processor chip, with just a small amount of I/O capability, which can be repogrammed easily during the development phase, will eventually realise that the choice boils down to one of four offerings ...

These four manufacturers each offer solutions to the processor problem and each have their pro's and con's.

The great advantage that the Atmel AVR has is that it has freely available coding tools, a sensible instruction set ( with understandable mnemonics ), a Flash based core and code can be easily loaded into the chip from a PC without needing a complex device programmer or even an external power supply; the AVR AT90S1200A doesn't even require an external crystal. A simple device programmer, which plugs into a parallel port of a PC, can be built using just a few resistors and a DIL socket.

Unfortunately, despite the ease with which the Atmel AVR chips can have code loaded into them, there is very little information ( which is concise and fully documented for use by a PC user ) available.

It is for this reason that the AVR Device Programmer Project evolved.

Having realised that the Atmel AVR AT90S1200A was an ideal candidate for a project I was developing it became clear that I would need to create suitable device programming hardware and software to complete the project.

Accepting that I would have to put a bit of effort in, just to build the tools needed to do the job, it made sense to commit to the AVR AT90S1200A as the base upon which other projects could be built.

Obviously, if I was going to commit to the AVR fully, it made sense to design a reasonably complete development system which would make the effort worthwhile. This would include a device programmer and software plus other development hardware modules so the tools could be used, time and time again, without having to re-invent hardware platforms just to get projects off the ground.

Having had so much difficulty tracking down information, hardware designs and software to enable the AVR chips to be programmed myself, it was obvious that many others would also be going down the same route.

The development of these tools themselves turned into a project in its own right which could then, hopefully, be used by others to aid them in their own project developments using the same chips.

I therefore welcome you to the AVR Device Programmer Project and hope that the information you find here will be of some use if you are using, or plan to use, the Atmel AVR microcontrollers.


The Living Project

The AVR Device Programmer Project is not yet complete.

It would have been easy to just throw some circuits together, knock up a bit of software and throw it at a web page, however, that wouldn't really have helped anyone.

When I decided that this should become a project, I realised that detailed instructions on how the device programmer circuits work and how the device programmer software should be used would be needed.

I had two choices; publish the information as I went along or wait until the whole project was finished before publishing at all.

As there are a great many people out there who want to get straight into using the AVR AT90S1200 and AT90S1200A processors now; I felt it was best to release as much information as I could, as soon as possible, and have decided to publish information as I progress through the project.

This means that there is information missing at present, however, the device programming hardware and software is complete ( although it leaves a lot to be desired by way of documentation ) but there should be enough information to allow AVR development and code uploading to be undertaken now.


The AVR Device Programmer Development Kit

The AVR Device Programmer Development Kit is a comprehensive and cheap solution to programming and using the Atmel AVR processors ( only the AT90S1200 and AT90S1200A processors are supported at this time ) and consists of four components ...

The Device Programmer Hardware

    This is the hardware which must be built to allow you to load code into AVR processors.

    The device programmer, which connects to a standard PC's parallel port, is minimalistic in its design and uses only a few discrete components; a minimal bread-board version of the device programmer can easily be constructed in a couple of hours.

    The device programmer draws its power from the parallel port and does not require an external power supply although one may be used if desired.

    The device programmer is designed to allow it to be plugged into target hardware ( if it is fitted with a suitable interface connection ) so that target hardware may either be driven from a processor connected to the device programmer ( In-Circuit Debugging ) or a processor in the target hardware can be programmed, via the device programmer, in situ from a PC.

    The device programmer is also designed so that various Development Hardware Add-Ons can be used to develop software when target hardware is not available.

    Only the AT90S1200 and AT90S1200A processors are supported by the device programmer and accompanying software at this time.

The Device Programming Software

    The device programming software allows binary object files ( such as those created by Atmel's AVRASM assembler ) to be loaded into an AVR processor and executed.

    The device programming software automatically understands binary object files in Intel, Motorola and Generic format and support is provided for programming tools which generate files other than those with .ROM and .EEP extensions.

    The software is incredibly simple to use and supports device programmers connected to any line printer port of a PC. Non-default configurations can be specified by using .BAT batch files or an MS-DOS environment variable.

    Program code and EEPROM data can be loaded, separately or together, and each may be contained in either single or multiple files.

    The device programming software is provided with a comprehensive user manual; available for on-line viewing, and is also included ( in HTML format ) with the device programmer software download.

    Only the AT90S1200 and AT90S1200A processors are supported by the device programmer and accompanying software at this time.

    The software provided is designed to run on MS-DOS and can be used under Windows 3.xx, Windows 95 and Windows 98. Because the software accesses the line printer port hardware directly; it cannot be used under Windows NT - blame Microsoft not me.

    There are no plans to provide device programming software for Windows NT, Linux, Mac OS, OS/2 or any other platform in either the near or far future.

The User Manual

    A comprehensive user manual is available for on-line viewing and is also included ( in HTML format ) with the programmer software download.

    The user manual clearly explains how the device programmer hardware should be configured and how the device programming software should be installed, operated and how it works.

    The user manual also includes hyper-text links to relevant pages referred to on this site which are also included ( in HTML format ) with the device programmer software download.

Development Hardware Add-Ons

    A wide range of development hardware add-ons are available for use with the AVR Device Programmer.

    These can be simply connected to the device programmer and allow various projects to be designed and tested when complete, target hardware is unavailable for use.

    Each development hardware add-on is accompanied by a piece of demonstration software which illustrates how the development hardware add-ons may be used as well as being useful in testing the construction of such add-ons.

    Although the Development Hardware Add-Ons are primarily designed for use with the AVR Device Programmer; there is no reason that they cannot be used with other microprocessors if suitable connecting cables are constructed. Only development hardware add-ons for the AT90S1200 and AT90S1200A processors are provided at this time.

    The demonstration program sources are available for on-line viewing and are also included ( along with binary object files ) with the device programmer software download.

    Demonstration programs are provided for the AT90S1200 and AT90S1200A processors only at this time and not all combinations of Development Hardware Add-Ons are covered by the demonstration programs.


Licences, Registration, Usage, Redistribution, Support and Liability

Licence

    You do not require a licence to use the programming software provided nor to build or use the device programmer.

Registration

    You do not need to register to use the programming software provided nor to build or use the device programmer; the software is provided free of charge and the latest version may be downloaded without charge.

Permission to Use

    The device programmer hardware designs, the programming software and the development hardware add-on designs may be used by anyone, both for private and for commercial use, however none of the aforesaid must be used in the development of any program or application which relates to any of the following fields ...

    • Medical equipment in any form
    • Safety critical equipment in any form
    • Equipment of any form used in nuclear installations
    • Equipment of any form used in automotive or transportation systems
    • Weapon or armament systems of any kind
    • Military systems of any kind

    In addition, members of, or anyone employed ( directly or indirectly ) by, any of the following organisations and bodies or their subsiduaries are expressly prohibited from using the device programmer hardware designs, the programming software and the development hardware add-on designs ...

    • Government Departments or Government Agencies
    • Military Organisations or the Armed Forces
    • Police Departments or Police Authorities
    • Manufacturers of traffic speed cameras of any form
    • Watford District Council, United Kingdom
    • Scottish Courage Brand Ltd, United Kingdom
    • Abbey National plc, United Kingdom.

Redistribution

    You may redistribute the device programmer hardware designs, the programming software, the development hardware add-on designs, associated documentation and programming examples ( as downloaded ) providing that you do not charge anything more than a reasonable cost for the media upon which that redistribution is delivered.

Support

    The device programmer hardware designs, the programming software, the development hardware add-on designs, associated documentation and programming examples are all provided on an as is basis.

    The Happy Hippy is unable to provide additional technical support beyond that engrossed in the documentation provided on this site.

    If the documentation provided on this site is lacking or incorrect in some area; please let the Happy Hippy know so that ammendments and corrections can be made to the documentation.

    Please make sure that you have downloaded and have read the latest documentation fully before asking for help.

Liabilities

    The Happy Hippy declares that the information given regarding the implementation and usage of the AVR Device Programmer Project described is correct and accurate to the best of his knowledge but does not accept responsibility for any incorrect or inaccurate information so provided whether due to neglect, oversight, error, transcription error or for any other reason whatsoever.

    All the electronic circuits described, unless there are explicit statements associated with each circuit to the contrary, are theoretical and have not been implemented or tested for functionality or safety. They are provided for illustrative purposes only and should not be considered to be suitable for use without further modification.

    Any individual or group of individuals undertaking the implementation or installation of an AVR Device Programmer or similar or different system based upon the information so provided does so at their own risk and the Happy Hippy accepts no responsibility for any claims or damages that may arise from implementing or using an AVR Device Programmer or similar or different system based upon the information so provided in any manner or form whatsoever.


Copyright and Trademarks

To protect the work that has gone into the development of the AVR Device Programmer Project it has been necessary to protect the project by way of Copyright and Trademark assignments.

The intention is not to prevent any individual from benefiting from the AVR Device Programming Project but to prevent the project from being developed commercially using ideas and concepts within the project without some form of recognition or reward.

These Copyright and Trademark restrictions will not affect anyone who uses the fruits of the AVR Device Programming Project purely for their own, and others, entertainment or enjoyment and I hope that everyone will understand why such Copyright and Trademark assignments have been necessary; why should I have my hard work stolen for commercial profit ?

Copyright

    All software, programs, hardware descriptions and other documentation that forms part of The AVR Device Programmer Project is covered by copyright.

Trademarks

    The terms "The AVR Device Programmer", "The AVR Device Programmer Project" and "The AVR Device Programmer Development Kit" are trademarks belonging to The Happy Hippy.




Associated Articles

  Hardware
  Software
  Download
  User Manual
  Hardware Add-Ons



Sites to Visit

  Atmel
  Microchip
  NetMedia
  Scenix



Site Navigation

  Home Page
  What's New
  Search
  Add Bookmark
  Have Your Say
  Guestbook



The AVR Device Programmer Project TM © 1999-2004, The Happy Hippy


First published sometime before Tuesday the 16th of November, 1999
Last upload was on Wednesday the 7th of January, 2004 at 17:44:53