Table of Contents ← | ↑ ScratchMonkey | → Getting Started |
ScratchMonkey uses the Arduino serial port to communicate with the Arduino IDE (or the avrdude command line tool used internally by the Arduino IDE) using the STK500v2 protocol. It implements the following programming methods:
In-System Programming uses the 4 pin SPI (Serial Peripheral Interface Bus) protocol to communicate with the target MCU. This is very simple to set up, requiring only 4 signals and no additional hardware, and is supported by nearly all AVR MCUs.
The only drawback of ISP is that with certain fuse settings of the target MCU, ISP can be unusable (e.g. if the ISP feature or the RESET pin are disabled), or may be harder to implement (e.g. if an external clock is specified).
In ISP mode, ScratchMonkey works fairly similar to the ArduinoISP sketch included with the Arduino IDE. In fact, the Arduino pins used are exactly the same. However, ScratchMonkey is a little bit more versatile, supporting MCUs with more than 128K of flash memory, and can deal with strange clock settings.
High Voltage Serial Programming applies a +12V signal to the RESET pin of the target MCU and then uses a 4 pin serial protocol to program the target. This is slightly more difficult to setup than ISP, as the VCC and RESET pins have to follow a certain timing protocol, and the 12V signal has to be generated, but doing this is not prohibitively difficult.
The attraction of HVSP over ISP is that HVSP will always work, regardless of the fuse settings of the target MCU. HVSP is supported on all 8- and 14-pin AVR MCUs.
High Voltage Parallel Programming uses the same +12V signal protocol on the RESET pin as HVSP, but employs a parallel, not a serial protocol. This requires up to 17 signals, which, combined with the pins needed to control VCC and RESET, takes more pins than the Arduino has available!
While some High Voltage Parallel Programmers, notably the HV Rescue Shield (http://mightyohm.com/blog/products/hv-rescue-shield-2-x) solve this by reusing the TX/RX pins, ScratchMonkey takes the easy way out by delegating most of the control signals to a 74HC595 shift register (Feel free to explore the other approach if you want to save yourself the 50¢ expense).
Like HVSP, HVPP works regardless of the fuse settings. It is supported on most AVR MCUs with 20 pins or more.
Table of Contents ← | ↑ ScratchMonkey | → Getting Started |