- Availability of chips
- Reusability of chips ( Flash program storage )
- Capabilities
- Ease of use ( hardware; peripherals, I/O etc )
- Ease of coding
- Ease of getting the code into the chip
- 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.