

The next step in my plan is to write a program that tests undocumented serial programming instructions in order to discover the correct command for writing the signature page. To read the 32 bytes of calibration data (which is just the odd bytes of the signature page), make the equivalent change for memory "calibration". To get AVRdude to read 32 bytes of signature data instead of just 3, make the following changes to the ATtiny85 section of the nf file: The nf file contains information on the command sequences to use for different protocols such as standard serial and high-voltage programming. Fortunately, the programming sequences used by AVRdude are not hard-coded in the source.

While my ultimate goal is to create an AVR programmer that will read and write the signature table, a simple first step is to have AVRdude read the signature. It would also be possible to store other calibration data such as a more precise measurement of the internal voltage reference than what is specified in the datasheet. Having the default OSCCAL value correspond to a clock speed close to 7372.8Mhz means debugWire will run at a baud rate of 7372.8/128 = 57.6 kbps. One of my goals for reprogramming the signature page is to have a UART-friendly clock rate for debugWire. Since the default OSCCAL value is stored in the signature table, it would be possible to tune the frequency to a different default value. The practical use for reading the signature page is when you can also reprogram it. Since each chip seems to have slightly different data in the reserved signature area, it could be used for a sort of serial number to keep track of different chips. I even tried setting the reserved bits in SPMCSR on the t13 in case reading the signature through software is an undocumented feature, but that did not work.įor most users, the ability to read the extended signature bytes is likely academic. The ATtiny13 does not not support reading the signature in software, so the only way to read it is through the serial programming interfaces. Most AVRs have the ability to read the signature table in software using the SPM instruction and the RSIG bit in SPMCSR. For devices like the ATtiny25 and ATtiny13 with a 32-byte page size, the signature table addresses only go up to 0x1F. The last row in the table has an error, since the page size of the t85 is 64 bytes, the signature table addresses go up to 0x3F, not 0x2A.
