summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
8e3df20)
"""Read the target's lockbits."""
self.writecmd(self.AVRAPP,0x92,1,[bits]);
return self.lockbits();
"""Read the target's lockbits."""
self.writecmd(self.AVRAPP,0x92,1,[bits]);
return self.lockbits();
+ def lock(self):
+ self.setlockbits(0xFC);
def eeprompeek(self, adr):
"""Read a byte of the target's EEPROM."""
self.writecmd(self.AVRAPP,0x81 ,2,
def eeprompeek(self, adr):
"""Read a byte of the target's EEPROM."""
self.writecmd(self.AVRAPP,0x81 ,2,
avrsetup(); //Cut this?
SETSS;
avrsetup(); //Cut this?
SETSS;
//Pulse !RST (SS) at least twice while CLK is low.
CLRCLK;
CLRSS;
//Pulse !RST (SS) at least twice while CLK is low.
CLRCLK;
CLRSS;
//Enable programming
avr_prgen();
//Enable programming
avr_prgen();
P5OUT^=BIT7;//Normal
//This oughtn't be necessary, but glitches repeat without it.
P5OUT^=BIT7;//Normal
//This oughtn't be necessary, but glitches repeat without it.
- //TACTL=0; //disable counter.
+ TACTL=0; //disable counter.
//P5OUT^=BIT7;//Normal
return;
//P5OUT^=BIT7;//Normal
return;
break;
case START:
//Testing mode, for looking at the glitch waveform.
break;
case START:
//Testing mode, for looking at the glitch waveform.
- glitchvoltages(0xFFF,0);//Inverted VCC and GND.
+ glitchvoltages(0,0xFFF);//Minimum glitch, for noise test.
+ //glitchvoltages(0,0);//Drop VCC
+ //glitchvoltages(0xFFF,0xFFF);//Raise Ground
P5OUT|=BIT7;//Normal
P5DIR|=BIT7;
while(1){
P5OUT&=~BIT7;//Glitch
P5OUT|=BIT7;//Normal
P5DIR|=BIT7;
while(1){
P5OUT&=~BIT7;//Glitch
- //asm("nop");//asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
- //asm("nop"); //Not necessary.
+ //asm("nop"); //Not Necessary
P5OUT|=BIT7;//Normal
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
P5OUT|=BIT7;//Normal
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");