projects
/
slipway.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
45ad003
)
checkpoint
author
adam
<adam@megacz.com>
Thu, 21 Sep 2006 14:50:38 +0000
(15:50 +0100)
committer
adam
<adam@megacz.com>
Thu, 21 Sep 2006 14:50:38 +0000
(15:50 +0100)
src/com/atmel/fpslic/FpslicRawUsb.java
patch
|
blob
|
history
diff --git
a/src/com/atmel/fpslic/FpslicRawUsb.java
b/src/com/atmel/fpslic/FpslicRawUsb.java
index
689dde5
..
cbc6e80
100644
(file)
--- a/
src/com/atmel/fpslic/FpslicRawUsb.java
+++ b/
src/com/atmel/fpslic/FpslicRawUsb.java
@@
-40,25
+40,26
@@
public class FpslicRawUsb implements FpslicRaw {
avrrst(false);
clk(false);
data(false);
avrrst(false);
clk(false);
data(false);
- con(false);
- reset(false);
flush();
flush();
+ dmask |= (1<<0);
+ dbang(0, false);
+ ftdiuart.dbus_mode(dmask);
+
+ reset(false);
try { Thread.sleep(500); } catch (Exception e) { }
if (initErr()) throw new RuntimeException("INIT was still high after pulling RESET low");
reset(true);
try { Thread.sleep(500); } catch (Exception e) { }
if (initErr()) throw new RuntimeException("INIT was still high after pulling RESET low");
reset(true);
- flush();
try { Thread.sleep(500); } catch (Exception e) { }
if (!initErr()) throw new RuntimeException("INIT was still low after releasing RESET");
try { Thread.sleep(500); } catch (Exception e) { }
if (!initErr()) throw new RuntimeException("INIT was still low after releasing RESET");
- con(false);
+ config(0,2);
+ flush();
}
public OutputStream getConfigStream() throws IOException {
reset();
}
public OutputStream getConfigStream() throws IOException {
reset();
- config(0,2);
- flush();
return new OutputStream() {
int bytes = 0;
int bits = 0;
return new OutputStream() {
int bytes = 0;
int bits = 0;
@@
-66,7
+67,6
@@
public class FpslicRawUsb implements FpslicRaw {
for(int i=7; i>=0; i--) {
bits++;
config((((in & 0xff) & (1<<i))!=0)?1:0, 1);
for(int i=7; i>=0; i--) {
bits++;
config((((in & 0xff) & (1<<i))!=0)?1:0, 1);
- if (bits==1) con();
}
}
public void write(byte[] b, int off, int len) throws IOException {
}
}
public void write(byte[] b, int off, int len) throws IOException {
@@
-75,9
+75,9
@@
public class FpslicRawUsb implements FpslicRaw {
}
public void flush() throws IOException {
FpslicRawUsb.this.flush();
}
public void flush() throws IOException {
FpslicRawUsb.this.flush();
- //rcon();
}
public void close() throws IOException {
}
public void close() throws IOException {
+ rcon();
flush();
if (!initErr())
throw new RuntimeException("initialization failed at " + bytes);
flush();
if (!initErr())
throw new RuntimeException("initialization failed at " + bytes);
@@
-99,17
+99,11
@@
public class FpslicRawUsb implements FpslicRaw {
public OutputStream getOutputStream() { return ftdiuart.getOutputStream(); }
public InputStream getInputStream() { return ftdiuart.getInputStream(); }
public OutputStream getOutputStream() { return ftdiuart.getOutputStream(); }
public InputStream getInputStream() { return ftdiuart.getInputStream(); }
- private void preamble() throws IOException {
- config(0,7);
- flush();
- }
public void selfTest() throws Exception {
boolean pin;
getConfigStream();
public void selfTest() throws Exception {
boolean pin;
getConfigStream();
- config(0,1);
- con();
- config(0,7);
+ config(Integer.parseInt("00000000", 2), 8);
config(Integer.parseInt("10110111", 2), 8);
config(0,1);
flush();
config(Integer.parseInt("10110111", 2), 8);
config(0,1);
flush();
@@
-118,10
+112,7
@@
public class FpslicRawUsb implements FpslicRaw {
System.out.println("good preamble => " + pin + " " + (pin ? green("good") : red("BAD")));
getConfigStream();
System.out.println("good preamble => " + pin + " " + (pin ? green("good") : red("BAD")));
getConfigStream();
- config(0,1);
- con();
- config(0,6);
- flush();
+ config(Integer.parseInt("0000000", 2), 7);
config(Integer.parseInt("10110111", 2), 8);
config(0, 2);
flush();
config(Integer.parseInt("10110111", 2), 8);
config(0, 2);
flush();
@@
-130,9
+121,7
@@
public class FpslicRawUsb implements FpslicRaw {
System.out.println("bad preamble #2 => " + pin + " " + (pin ? red("BAD") : green("good")));
getConfigStream();
System.out.println("bad preamble #2 => " + pin + " " + (pin ? red("BAD") : green("good")));
getConfigStream();
- config(0,1);
- con();
- config(0,7);
+ config(Integer.parseInt("00000000", 2), 8);
config(Integer.parseInt("11110111", 2), 8);
config(0, 1);
flush();
config(Integer.parseInt("11110111", 2), 8);
config(0, 1);
flush();
@@
-179,24
+168,9
@@
public class FpslicRawUsb implements FpslicRaw {
private void data(boolean on) throws IOException { dbang(5, on); }
private boolean initErr() throws IOException { flush(); return (ftdiuart.readPins() & (1<<4))!=0; }
private void data(boolean on) throws IOException { dbang(5, on); }
private boolean initErr() throws IOException { flush(); return (ftdiuart.readPins() & (1<<4))!=0; }
- private boolean con() throws IOException {
- flush();
- //dmask &= ~(1<<0);
- ftdiuart.dbus_mode(dmask);
- return (ftdiuart.readPins() & (1<<0)) != 0;
- }
-
- private boolean rcon() throws IOException {
- flush();
+ private void rcon() throws IOException {
dmask &= ~(1<<0);
ftdiuart.dbus_mode(dmask);
dmask &= ~(1<<0);
ftdiuart.dbus_mode(dmask);
- return (ftdiuart.readPins() & (1<<0)) != 0;
- }
- private void con(boolean on) throws IOException {
- flush();
- dmask |= (1<<0);
- dbang(0, on);
- ftdiuart.dbus_mode(dmask);
}
private static String red(Object o) { return "\033[31m"+o+"\033[0m"; }
}
private static String red(Object o) { return "\033[31m"+o+"\033[0m"; }