checkpoint
authoradam <adam@megacz.com>
Mon, 11 Sep 2006 14:01:52 +0000 (15:01 +0100)
committeradam <adam@megacz.com>
Mon, 11 Sep 2006 14:01:52 +0000 (15:01 +0100)
src/edu/berkeley/obits/device/atmel/ChipImpl.java
src/edu/berkeley/obits/device/atmel/FtdiBoard.java
src/edu/berkeley/obits/device/atmel/FtdiChip.java

index df0e97e..0b58130 100644 (file)
@@ -10,23 +10,34 @@ public class ChipImpl extends FtdiChip implements Chip {
     }
 
     public void doReset() {
+        flush();
+
+        buffered(false);
+        flush();
+
         dbangmode(dmask);
+        flush();
+
         clk(false);
+        flush();
+
         data(false);
+        flush();
 
         con(false);
         flush();
 
-        buffered(false);
         reset(false);
-        //avrrst(false);
+        flush();
         try { Thread.sleep(200); } catch (Exception e) { }
+
         reset(true);
-        //avrrst(true);
+        flush();
         try { Thread.sleep(200); } catch (Exception e) { }
 
         dmask &= ~(1<<7);
         dbangmode(dmask);
+        flush();
     }
 
     int porte = 0;
@@ -38,9 +49,6 @@ public class ChipImpl extends FtdiChip implements Chip {
         }
     }
 
-
-    //
-
     public void config(boolean bit) { config(bit?1:0, 1); }
     public void config(int dat) { config(dat, 8); }
     public void config(int dat, int numbits) {
@@ -70,13 +78,15 @@ public class ChipImpl extends FtdiChip implements Chip {
     public void clk(boolean on)    { dbang(6, on); }
     public void data(boolean on)   { dbang(5, on); }
 
-    public boolean initErr()       { return (readPins() & (1<<4))!=0; }
+    public boolean initErr()       { flush(); return (readPins() & (1<<4))!=0; }
     public boolean con() {
+        flush();
         dmask &= ~(1<<0);
         dbangmode(dmask);
         return (readPins() & (1<<0)) != 0;
     }
     public void con(boolean on) {
+        flush();
         dmask |= (1<<0);
         dbangmode(dmask);
         dbang(0, on);
index 447ab84..5d1aec5 100644 (file)
@@ -35,6 +35,7 @@ public class FtdiBoard extends Board {
     public void boot(Reader r) throws Exception {
         boolean pin;
         Chip d = chip;
+
         d.doReset();
         d.config(0,10);
         d.con();
@@ -65,11 +66,9 @@ public class FtdiBoard extends Board {
         pin = d.initErr();
         System.out.println("bad preamble #1 => " + pin + " " + (pin ? red("BAD") : green("good")));
 
-        d.buffered(false);
         d.doReset();
 
         d.config(0,10);
-        d.flush();
         d.con();
         //d.config(Integer.parseInt("10110111", 2));
         //d.config(0);
index 4b8820a..30a6ba8 100644 (file)
@@ -50,7 +50,7 @@ public class FtdiChip {
 
     protected int dbits = 0;
 
-    public boolean buffered = true;
+    public boolean buffered = false;
     public void buffered() { buffered = true; }
     public void buffered(boolean buf) {
         if (!buf) flush();