From 1569edbaee7c8ff330a7f3289856970c46082a12 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 20 Sep 2006 09:26:55 +0100 Subject: [PATCH] checkpoint --- .../atmel/FtdiChip.java => com/ftdi/usb/FtdiUart.java} | 11 +++++------ src/edu/berkeley/obits/device/atmel/Chip.java | 1 + src/edu/berkeley/obits/device/atmel/ChipImpl.java | 8 +++++++- src/edu/berkeley/obits/device/atmel/FtdiBoard.java | 1 + 4 files changed, 14 insertions(+), 7 deletions(-) rename src/{edu/berkeley/obits/device/atmel/FtdiChip.java => com/ftdi/usb/FtdiUart.java} (94%) diff --git a/src/edu/berkeley/obits/device/atmel/FtdiChip.java b/src/com/ftdi/usb/FtdiUart.java similarity index 94% rename from src/edu/berkeley/obits/device/atmel/FtdiChip.java rename to src/com/ftdi/usb/FtdiUart.java index aeea77e..14a2a3a 100644 --- a/src/edu/berkeley/obits/device/atmel/FtdiChip.java +++ b/src/com/ftdi/usb/FtdiUart.java @@ -1,8 +1,7 @@ -package edu.berkeley.obits.device.atmel; -import com.ftdi.usb.*; +package com.ftdi.usb; import java.io.*; -public class FtdiChip { +public class FtdiUart { protected int bits = 0; protected SWIGTYPE_p_ftdi_context context = example.new_ftdi_context(); @@ -10,7 +9,7 @@ public class FtdiChip { public OutputStream getOutputStream() { return out; } public InputStream getInputStream() { return in; } - public FtdiChip() { + public FtdiUart() { example.ftdi_init(context); example.ftdi_usb_open(context, 0x6666, 0x3133); example.ftdi_usb_reset(context); @@ -79,7 +78,7 @@ public class FtdiChip { while(true) { if (len==0) return 0; byte[] b0 = new byte[len]; - synchronized(FtdiChip.this) { + synchronized(FtdiUart.this) { result = example.ftdi_read_data(context, b0, len); } if (result>0) { @@ -102,7 +101,7 @@ public class FtdiChip { while(len > 0) { System.arraycopy(b, off, b2, 0, Math.min(b2.length, len)); int result; - synchronized(FtdiChip.this) { + synchronized(FtdiUart.this) { result = example.ftdi_write_data(context, b2, Math.min(b2.length, len)); } off += result; diff --git a/src/edu/berkeley/obits/device/atmel/Chip.java b/src/edu/berkeley/obits/device/atmel/Chip.java index 36c21c0..f239807 100644 --- a/src/edu/berkeley/obits/device/atmel/Chip.java +++ b/src/edu/berkeley/obits/device/atmel/Chip.java @@ -13,6 +13,7 @@ public interface Chip { public void porte(int pin, boolean b); public void con(boolean b); public boolean con(); + public boolean rcon(); //remove public void flush(); diff --git a/src/edu/berkeley/obits/device/atmel/ChipImpl.java b/src/edu/berkeley/obits/device/atmel/ChipImpl.java index c2c7752..05ed4f2 100644 --- a/src/edu/berkeley/obits/device/atmel/ChipImpl.java +++ b/src/edu/berkeley/obits/device/atmel/ChipImpl.java @@ -2,7 +2,7 @@ package edu.berkeley.obits.device.atmel; import com.ftdi.usb.*; import java.io.*; -public class ChipImpl extends FtdiChip implements Chip { +public class ChipImpl extends FtdiUart implements Chip { private int dmask = (1<<0) | @@ -107,6 +107,12 @@ public class ChipImpl extends FtdiChip implements Chip { dbangmode(dmask); return (readPins() & (1<<0)) != 0; } + public boolean rcon() { + flush(); + dmask &= ~(1<<0); + dbangmode(dmask); + return (readPins() & (1<<0)) != 0; + } public void con(boolean on) { flush(); dmask |= (1<<0); diff --git a/src/edu/berkeley/obits/device/atmel/FtdiBoard.java b/src/edu/berkeley/obits/device/atmel/FtdiBoard.java index 12b339a..05616af 100644 --- a/src/edu/berkeley/obits/device/atmel/FtdiBoard.java +++ b/src/edu/berkeley/obits/device/atmel/FtdiBoard.java @@ -102,6 +102,7 @@ public class FtdiBoard extends Board { d.flush(); init = d.initErr(); System.out.print("wrote " + bytes + " bytes, init="+init+" \r"); + d.rcon(); } if (!init) throw new RuntimeException("initialization failed at byte " + bytes + ", bit " + i); -- 1.7.10.4