X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fcom%2Fatmel%2Ffpslic%2FFpslicRawUsb.java;h=61b687bdded73c79b4406cb4a1d92dd0c537ebf1;hb=9752e92536ce2e72fd2a214690743d21d644df5a;hp=276b4e54ed9c51047caaae655270250b47bd76dd;hpb=e72abc67b542792d74ac3bb63460d23b10b40a52;p=slipway.git diff --git a/src/com/atmel/fpslic/FpslicRawUsb.java b/src/com/atmel/fpslic/FpslicRawUsb.java index 276b4e5..61b687b 100644 --- a/src/com/atmel/fpslic/FpslicRawUsb.java +++ b/src/com/atmel/fpslic/FpslicRawUsb.java @@ -19,22 +19,11 @@ public class FpslicRawUsb implements FpslicRaw { (1<<6) | (1<<7); - public FpslicRawUsb() throws IOException { - this(new FtdiUart(0x6666, 0x3133, 1500 * 1000)); - } public FpslicRawUsb(FtdiUart ftdiuart) throws IOException { this.ftdiuart = ftdiuart; reset(); } - void flush() throws IOException { ftdiuart.getOutputStream().flush(); } - - protected int dbits = 0; - protected synchronized void dbang(int bit, boolean val) throws IOException { - dbits = val ? (dbits | (1 << bit)) : (dbits & (~(1 << bit))); - ftdiuart.getOutputStream().write((byte)dbits); - } - public void reset() throws IOException { dmask = @@ -46,19 +35,12 @@ public class FpslicRawUsb implements FpslicRaw { (1<<5) | (1<<6) | (1<<7); - avrrst(false); - - flush(); - //purge(); - ftdiuart.dbus_mode(dmask); - flush(); + avrrst(false); clk(false); data(false); con(false); - flush(); - //try { Thread.sleep(500); } catch (Exception e) { } reset(false); flush(); @@ -73,64 +55,18 @@ public class FpslicRawUsb implements FpslicRaw { con(false); } - void config(boolean bit) throws IOException { config(bit?1:0, 1); } - void config(int dat) throws IOException { config(dat, 8); } - void config(int dat, int numbits) throws IOException { - for(int i=(numbits-1); i>=0; i--) { - boolean bit = (dat & (1<=0; i--) { + bits++; config((((in & 0xff) & (1< " + pin + " " + (pin ? green("good") : red("BAD"))); - reset(); - try { Thread.sleep(100); } catch (Exception e) { } - config(0,3); + getConfigStream(); + config(0,1); con(); config(0,6); flush(); - //flush(); config(Integer.parseInt("10110111", 2), 8); config(0, 2); flush(); @@ -195,13 +129,10 @@ public class FpslicRawUsb implements FpslicRaw { pin = initErr(); System.out.println("bad preamble #2 => " + pin + " " + (pin ? red("BAD") : green("good"))); - reset(); - try { Thread.sleep(100); } catch (Exception e) { } - config(0,3); + getConfigStream(); + config(0,1); con(); config(0,7); - flush(); - //flush(); config(Integer.parseInt("11110111", 2), 8); config(0, 1); flush(); @@ -209,4 +140,65 @@ public class FpslicRawUsb implements FpslicRaw { pin = initErr(); System.out.println("bad preamble #1 => " + pin + " " + (pin ? red("BAD") : green("good"))); } + + // Private ////////////////////////////////////////////////////////////////////////////// + + private void flush() throws IOException { ftdiuart.getOutputStream().flush(); } + + private int dbits = 0; + private void dbang(int bit, boolean val) throws IOException { + dbits = val ? (dbits | (1 << bit)) : (dbits & (~(1 << bit))); + ftdiuart.getOutputStream().write((byte)dbits); + } + + private void config(boolean bit) throws IOException { config(bit?1:0, 1); } + private void config(int dat) throws IOException { config(dat, 8); } + private void config(int dat, int numbits) throws IOException { + for(int i=(numbits-1); i>=0; i--) { + boolean bit = (dat & (1<