X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=firmware%2Fapps%2Fjtag%2Fjtag430asm.S;h=5bbf3520997b804f6e1e9696929a95ac81b96129;hb=002c3c7923311e13f0ff2fcdfb292aa1c94ebe89;hp=39dcb8f65ebfa9c62dbafb96f4112008b711cb3c;hpb=1fac05c130ba22b56a9af8961bce2b9553d30e67;p=goodfet diff --git a/firmware/apps/jtag/jtag430asm.S b/firmware/apps/jtag/jtag430asm.S index 39dcb8f..5bbf352 100644 --- a/firmware/apps/jtag/jtag430asm.S +++ b/firmware/apps/jtag/jtag430asm.S @@ -12,10 +12,14 @@ jtag430_tclk_flashpulses: // At 16MHz, 33 to 62 cycles/loop are allowed. jtag430_tclk_flashpulses_3mhz: mov #0x0031, r14 -pulseloop3: +pulseloop3: bis.b #2, @r14 ;SETTCLK, 3 cycles sub #1, r15 ; 1 cycle ;; 1+3+3+1+2=10, within limits + nop + nop + nop ;10+3=13 + bic.b #2, @r14 ;CLRTCLK, 3 cycles tst r15 ; 1 cycle jnz pulseloop3 ; 2 cycles @@ -28,7 +32,13 @@ pulseloop16: sub #1, r15 ; 1 cycle ;; 1+3+3+1+2=10, beneath limits, - ;; +3+2=5, repeat 5 times to get 10+25=35, within limits + ;; +3+2=5, repeat 8 times to get 10+40=50, within limits + push r11 ; 3 cycles + pop r11 ; 2 cycles + push r11 ; 3 cycles + pop r11 ; 2 cycles + push r11 ; 3 cycles + pop r11 ; 2 cycles push r11 ; 3 cycles pop r11 ; 2 cycles push r11 ; 3 cycles