X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Finclude%2Favr.h;h=bcf76ef7573042faf5663fb2337411a8760af4f2;hp=75cd5043db3a9eb88495e7ac83452dade7d18a04;hb=ed8fe6653a821e893857c9491d576b8c6dee8dad;hpb=e2a75fc68bc3cedaadb2db57b9e579a0f4468380 diff --git a/firmware/include/avr.h b/firmware/include/avr.h index 75cd504..bcf76ef 100644 --- a/firmware/include/avr.h +++ b/firmware/include/avr.h @@ -3,7 +3,13 @@ \brief AVR SPI Programmer */ +#ifndef AVR_H +#define AVR_H + #include "spi.h" +#include "app.h" + +#define AVR 0x32 //! Setup the AVR pins. void avrsetup(); @@ -14,11 +20,27 @@ void avrconnect(); //! Enable AVR programming mode. void avr_prgen(); //! Read AVR device code. -u8 avr_devicecode(); +u8 avr_sig(u8 i); +//! Erase an AVR device +void avr_erase(); +//! Read lock bits. +u8 avr_lockbits(); +//! Write lock bits. +void avr_setlock(u8 bits); + +//! Read a byte of Flash +u8 avr_peekflash(u16 adr); +//! Read a byte of EEPROM. +u8 avr_peekeeprom(u16 adr); +//! Read a byte of EEPROM. +u8 avr_pokeeeprom(u16 adr, u8 val); + +//! Is the AVR ready or busy? +u8 avr_isready(); //Command codes. -//! Performa chip erase. +//! Perform a chip erase. #define AVR_ERASE 0xF0 //! Fetch RDY/!BSY byte. #define AVR_RDYBSY 0xF1 @@ -27,11 +49,21 @@ u8 avr_devicecode(); #define AVR_PEEKPGM 0x80 //! Read EEPROM #define AVR_PEEKEEPROM 0x81 +//! Write EEPROM +#define AVR_POKEEEPROM 0x91 //! Read lock bits. #define AVR_PEEKLOCK 0x82 +//! Write lock its. +#define AVR_POKELOCK 0x92 //! Read signature. #define AVR_PEEKSIG 0x83 //! Read fuse bits. #define AVR_READFUSES 0x84 //! Read calibration byte. #define AVR_READCAL 0x85 +//! Bulk load data +#define AVR_BULKLOAD 0x86 + +extern app_t const avr_app; + +#endif // AVR_H