spider prog content

Not rated 22,142

spider prog content
spider prog content

The avr-gcc/binutils combination can generate Intel Hex files that are suitable for uploading to an AVR microcontroller using sp12. If assembly language is being used, an assembler is necessary to convert human-readable assembly into microcontroller-readable machine code. Tom Mortensen has developed an assembler that is available for both DOS and Linux. AVR Studio 4 is a professional Integrated Development Environment (IDE) for writing and debugging AVR applications in Windows environments. It supports various AVR development tools, including ICE50, JTAGICE, ICE200, STK500/501/502, and AVRISP. The IAR AVR Assembler is a fully featured command-line assembler for the AVR family of microcontrollers, which includes a linker and librarian and is compatible with AVR Studio, with documentation provided in PDF format. A programmer is also required to upload code to the microcontroller, regardless of the programming language used. A schematic for a simple board is provided, which includes a zip-socket for the microcontroller, possibly a crystal or resonator, and minimal additional components. Modern PCs typically provide a modest voltage of around 3.5V through their parallel ports, which is sufficient for low-voltage AVR microcontrollers, though some devices, like the ATMega161, may require more. The software supports in-circuit programming, necessitating access to MOSI, MISO, SCK, and Reset pins on the target board. A 10K resistor between the reset pin and Vcc ensures power-on reset and allows sp12 sufficient access. When using the sp12 standalone programming hardware and a standard cable, the 10K/100n time constant on reset is not required, as the microcontroller manages its own start-up delay. However, a time constant on the reset pin can mitigate issues with power stability and prevent spurious resets. The board connects to the Centronics parallel port of a PC, and while a standard cable is often adequate, a specialized 'dongle' designed by Ken Huntington can enhance signal quality and ensure high-Z status for programming lines except when sp12 is active. This dongle can be integrated into the cable and is transparent to the software, drawing power from the port. The reset circuit should consist of a 10K resistor between Vcc and the microcontroller's reset pin. Sp12 version 2.1 functions as a serial mode (in-circuit) programmer for the AVR family of microcontrollers. New AVR microcontrollers can be supported by adding a plain text entry to the runtime configuration file _sp12dev, which also allows customization of how sp12 interacts with existing microcontrollers. Customization includes defining write (high, extended) fuse commands to prevent accidental alteration of bits that could lock access to the microcontroller. For example, the Mega8 and Tiny15 allow serial mode access to RSTDISBL, which can disable the reset pin, thus terminating serial mode programming access. The Tiny15 also permits writing to SPIEN. Using the provided _sp12dev entries ensures that these fuses remain unaltered by user errors. Sp12 is one of the few programmers capable of uploading new software to multiple microcontrollers on a single target simultaneously.

The described circuit primarily focuses on the interfacing of an AVR microcontroller with a parallel port programmer, specifically the sp12. The schematic involves a simple board that includes a zip-socket for the microcontroller, a 10K pull-up resistor connected to the reset pin, and capacitors for stabilization. The reset circuitry is critical for ensuring reliable operation, as it manages the power-on reset and guards against unintended resets during operation. The use of a low-resistance pull-up resistor ensures that the reset pin is held high during normal operation, while the capacitor can help filter out noise and provide a stable reset signal.

The connection to the Centronics parallel port is established using a standard cable, with considerations made for signal integrity and voltage levels. The integration of the dongle enhances the reliability of the programming interface by ensuring that the programming lines are in a high-impedance state when not actively driven by the sp12 programmer. This reduces the chance of interference and ensures that the microcontroller can communicate effectively with the programming hardware.

The flexibility of the sp12 programmer is a notable feature, allowing users to add support for new microcontroller models easily. This is facilitated by the runtime configuration file, which can be edited to include new devices or customize the programming process. The ability to define fuse settings and prevent accidental lockout of the microcontroller is a significant advantage, particularly for development environments where multiple users may interact with the programming hardware.

Overall, the design emphasizes reliability, flexibility, and ease of use, making it suitable for both novice and experienced users in the AVR microcontroller development community.The avr-gcc/binutils combination is able to provide Intel Hex files, suitable for upload to an AVR uC using sp12. More about that in the Linux section below. If you will be using assembly, then the next thing you want is an assembler, to convert your human-readable assembly into uC-readable machine code.

Tom Mortensen has written a pretty go od one, which is available for Dos as well as Linux. You`ll find it on his page: AVR Studio: AVR Studio 4 is the new professional Integrated Development Environment (IDE) for writing and debugging AVR applications in Windows 9x/NT/2000 environments. AVR Studio 4 supports the following AVR development tools: ICE50, JTAGICE, ICE200, STK500/501/502 and AVRISP.

IAR AVR Assembler: Archive Containing the IAR Assembler Version 1. 50 for the AVR family of microcontrollers. Fully featured command line assembler. Includes Linker and Librarian. Compatible with AVR Studio. Documentation inlcluded in PDF format. The final item on the list is a programmer, to upload the code to the uC. You will need this no matter what language you use. A convenient, fully documented programmer wasn`t available, so we wrote one ourselves. Here you have the diagram for a little board containing just a a zip-socket for the uC, perhaps a crystal or resonator (but there will often be an internal RC clock) and very few other parts, as used by our programmer: Note that the parallel ports of modern PC`s usually provide a rather modest voltage, around 3. 5V. Quite enough for low voltage AVR uC`s, but some devices really do require more, an example being the ATMega161.

But the software is just as suitable for `in circuit` programming. In that case, the target board must allow free access to MOSI, MISO, SCK and Reset. A 10K resistor between the reset pin and Vcc ensures power-on reset and allows sp12 sufficient access: When using the sp12 `stand alone` programming hardware and a plain cable, the 10K/100N time constant on reset isn`t required. The uC does its own start-up delay when Vcc goes high, and that works fine if it is powered by the parallel port.

But I`ve noticed that reset does fail occasionally if power doesn`t switch on cleanly - like when an adapter is plugged in to feed a target board. The time constant on the reset pin solves that, and also guards against spurious resets (which occurred when I used the 1200 in a charging ciruit, where relatively high currents were switched).

A short cable connects the board to the Centronics parallel port of a PC. In most cases a plain cable will do well enough, but Ken Huntington has designed a nice `dongle` to improve the signal quality and make the programming lines high-Z except when sp12 is active. The dongle can be part of the cable, and is perfectly transparent to the software. It has no power requirements, as it receives its Vcc from the port (and passes it on to a low power target board if required).

The reset circuit should at least consist of a 10K resistor between Vcc and the uC`s reset pin. Here is the schematic: Sp12 version 2. 1 is a serial mode (in-circuit) programmer for the AVR family of microcontrollers. When new AVR uCs arrive, you can easily add support for them yourself, by adding a plain text entry to the new runtime configuration file _sp12dev. Editing this file also allows you to customize the way sp12 deals with existing uCs. Customization means, among other things, that you can define the write (high, extended) fuses commands so they won`t touch the bits that can lock you out of your uC.

For instance, the Mega8 and the Tiny15 both allow serial mode access to RSTDISBL, which can take away the resetpin - thus ending serial mode programming access. The Tiny15 also permits writing to SPIEN. If you use the _sp12dev entries as provided, these fuses will never be altered by user errors. Sp12 is one of the few programmers capable of uploading new software to several uCs on a single target, in one

🔗 External reference