X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fslipway%2FFtdiBoard.java;h=283a6267b62ef22cba52b71f8e21931f0788c087;hb=3212d3617ec8c1b2dce1e8a0991f196f03236ef9;hp=a2a21239b87da6556d7c2d6eea97fdd8de9eaa65;hpb=cadac01133f837417e095159308867aeb166cc86;p=slipway.git diff --git a/src/edu/berkeley/slipway/FtdiBoard.java b/src/edu/berkeley/slipway/FtdiBoard.java index a2a2123..283a626 100644 --- a/src/edu/berkeley/slipway/FtdiBoard.java +++ b/src/edu/berkeley/slipway/FtdiBoard.java @@ -13,7 +13,7 @@ public class FtdiBoard extends Board { System.load(new File("build/"+System.mapLibraryName("FtdiUartNative")).getAbsolutePath()); } - private final ChipImpl chip; + private final Chip chip; private final InputStream in; private final OutputStream out; @@ -37,118 +37,32 @@ public class FtdiBoard extends Board { } public void boot(Reader r) throws Exception { - boolean pin; Chip d = chip; - //d.buffered(false); + d.selfTest(); - d.doReset(); - d.config(0,3); - d.con(); - d.config(0,7); - d.flush(); - //d.flush(); - d.config(Integer.parseInt("10110111", 2), 8); - d.config(0,1); - d.flush(); - try { Thread.sleep(100); } catch (Exception e) { } - pin = d.initErr(); - System.out.println("good preamble => " + pin + " " + (pin ? green("good") : red("BAD"))); - - d.doReset(); - try { Thread.sleep(100); } catch (Exception e) { } - d.config(0,3); - d.con(); - d.config(0,6); - d.flush(); - //d.flush(); - d.config(Integer.parseInt("10110111", 2), 8); - d.config(0, 2); - d.flush(); - try { Thread.sleep(100); } catch (Exception e) { } - pin = d.initErr(); - System.out.println("bad preamble #2 => " + pin + " " + (pin ? red("BAD") : green("good"))); - - d.doReset(); - try { Thread.sleep(100); } catch (Exception e) { } - d.config(0,3); - d.con(); - d.config(0,7); - d.flush(); - //d.flush(); - d.config(Integer.parseInt("11110111", 2), 8); - d.config(0, 1); - d.flush(); - try { Thread.sleep(100); } catch (Exception e) { } - pin = d.initErr(); - System.out.println("bad preamble #1 => " + pin + " " + (pin ? red("BAD") : green("good"))); - - d.doReset(); - - d.config(0,10); - d.con(); - //d.config(Integer.parseInt("10110111", 2)); - //d.config(0); + OutputStream os = d.getConfigStream(); BufferedReader br = new BufferedReader(r); br.readLine(); + int bytes = 0; - //System.out.println("cts="+""+" pins=" + pad(Integer.toString(d.readPins()&0xff,2),8)); while(true) { String s = br.readLine(); if (s==null) break; int in = Integer.parseInt(s, 2); bytes++; - for(int i=7; i>=0; i--) { - d.config((((in & 0xff) & (1< false"); - d.avrrst(false); - try { Thread.sleep(500); } catch (Exception e) { } - //System.out.println("cts="+""+" pins=" + pad(Integer.toString(d.readPins()&0xff,2),8)); - - //((ChipImpl)d).avr(); - - //System.out.println("avr reset => true"); - chip.purge(); - chip.uart_and_cbus_mode(1<<1, 1<<1); - - //d.avrrst(true); - //try { Thread.sleep(500); } catch (Exception e) { } - //System.out.println("cts="+""+" pins=" + pad(Integer.toString(d.readPins()&0xff,2),8)); + os.close(); } public static String pad(String s, int i) { if (s.length() >= i) return s; return "0"+pad(s, i-1); } - public static String red(Object o) { return "\033[31m"+o+"\033[0m"; } - public static String green(Object o) { return "\033[32m"+o+"\033[0m"; } }