From fbea7e84a9eb6caa46cf8853961c2d06d8362935 Mon Sep 17 00:00:00 2001 From: adam Date: Mon, 11 Sep 2006 14:43:38 +0100 Subject: [PATCH] checkpoint --- src/edu/berkeley/obits/device/atmel/FtdiBoard.java | 11 ++++++++--- src/edu/berkeley/obits/device/atmel/FtdiChip.java | 8 +++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/edu/berkeley/obits/device/atmel/FtdiBoard.java b/src/edu/berkeley/obits/device/atmel/FtdiBoard.java index 43cbf10..ffa0514 100644 --- a/src/edu/berkeley/obits/device/atmel/FtdiBoard.java +++ b/src/edu/berkeley/obits/device/atmel/FtdiBoard.java @@ -21,10 +21,7 @@ public class FtdiBoard extends Board { public FtdiBoard() throws Exception { chip = new ChipImpl(); - chip.porte(4, true); - boot(new InputStreamReader(new FileInputStream("bitstreams/usbdrone.bst"))); - in = chip.getInputStream(); out = chip.getOutputStream(); for(int i=0; i<255; i++) out.write(0); @@ -38,33 +35,41 @@ public class FtdiBoard extends Board { public void boot(Reader r) throws Exception { boolean pin; Chip d = chip; + d.buffered(true); d.doReset(); d.config(0,10); d.con(); + d.flush(); d.config(Integer.parseInt("10110111", 2), 8); d.config(0,1); + d.flush(); pin = d.initErr(); System.out.println("good preamble => " + pin + " " + (pin ? green("good") : red("BAD"))); d.doReset(); d.config(0,9); d.con(); + d.flush(); d.config(Integer.parseInt("10110111", 2), 8); d.config(0, 2); + d.flush(); pin = d.initErr(); System.out.println("bad preamble #2 => " + pin + " " + (pin ? red("BAD") : green("good"))); d.doReset(); d.config(0,10); d.con(); + d.flush(); d.config(Integer.parseInt("11110111", 2), 8); d.config(0, 1); + d.flush(); 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)); diff --git a/src/edu/berkeley/obits/device/atmel/FtdiChip.java b/src/edu/berkeley/obits/device/atmel/FtdiChip.java index fd96c64..4b8820a 100644 --- a/src/edu/berkeley/obits/device/atmel/FtdiChip.java +++ b/src/edu/berkeley/obits/device/atmel/FtdiChip.java @@ -24,7 +24,6 @@ public class FtdiChip { return b[0]; } - ByteArrayOutputStream baos = new ByteArrayOutputStream(); public void flush() { try { getOutputStream().flush(); @@ -51,9 +50,12 @@ public class FtdiChip { protected int dbits = 0; - public boolean buffered = false; + public boolean buffered = true; public void buffered() { buffered = true; } - public void buffered(boolean buf) { buffered = buf; } + public void buffered(boolean buf) { + if (!buf) flush(); + buffered = buf; + } protected synchronized void dbang(int bit, boolean val) { dbits = val ? (dbits | (1 << bit)) : (dbits & (~(1 << bit))); -- 1.7.10.4