summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Gilling <konkers@android.com>2011-02-17 20:41:12 -0800
committerErik Gilling <konkers@android.com>2011-03-08 14:36:26 -0800
commitbb9ab4b7d243fd2bbf62462d972216eda03a7802 (patch)
tree82fac19f91413ebfc865d97a5d5654dd7989c149
parentf3572d731495a784029e746721b3100dca6d1aca (diff)
downloadarduino-bb9ab4b7d243fd2bbf62462d972216eda03a7802.tar.gz
HACK for AAA board pinout
Change-Id: I1b9b6caa299046dd275d6207869bd3bea0043880
-rw-r--r--USB_Host_Shield/Max3421e.cpp60
-rw-r--r--USB_Host_Shield/Max3421e.h6
-rw-r--r--USB_Host_Shield/Max3421e_constants.h2
3 files changed, 56 insertions, 12 deletions
diff --git a/USB_Host_Shield/Max3421e.cpp b/USB_Host_Shield/Max3421e.cpp
index 7b0f603..fec0945 100644
--- a/USB_Host_Shield/Max3421e.cpp
+++ b/USB_Host_Shield/Max3421e.cpp
@@ -8,16 +8,56 @@ static byte vbusState;
/* Functions */
+#define INT PE6
+#define INT_PORT PORTE
+#define INT_DDR DDRE
+#define INT_PIN PINE
+
+#define RST PJ2
+#define RST_PORT PORTJ
+#define RST_DDR DDRJ
+#define RST_PIN PINJ
+
+#define GPX PJ3
+#define GPX_PORT PORTJ
+#define GPX_DDR DDRJ
+#define GPX_PIN PINJ
+
+
+void MAX3421E::setRST(uint8_t val)
+{
+ if (val == LOW)
+ RST_PORT &= ~_BV(RST);
+ else
+ RST_PORT |= _BV(RST);
+}
+
+uint8_t MAX3421E::readINT(void)
+{
+ return INT_PIN & _BV(INT) ? HIGH : LOW;
+}
+
+uint8_t MAX3421E::readGPX(void)
+{
+ // return GPX_PIN & _BV(GPX) ? HIGH : LOW;
+ return LOW;
+}
+
+
+void MAX3421E::pinInit(void)
+{
+ INT_DDR &= ~_BV(INT);
+ RST_DDR |= _BV(RST);
+ digitalWrite(MAX_SS,HIGH);
+ setRST(HIGH);
+}
+
+
/* Constructor */
MAX3421E::MAX3421E()
{
spi_init();
- pinMode( MAX_INT, INPUT);
- pinMode( MAX_GPX, INPUT );
- pinMode( MAX_SS, OUTPUT );
- digitalWrite(MAX_SS,HIGH);
- pinMode( MAX_RESET, OUTPUT );
- digitalWrite( MAX_RESET, HIGH ); //release MAX3421E from reset
+ pinInit();
}
byte MAX3421E::getVbusState( void )
@@ -225,11 +265,11 @@ byte MAX3421E::Task( void )
byte pinvalue;
//Serial.print("Vbus state: ");
//Serial.println( vbusState, HEX );
- pinvalue = digitalRead( MAX_INT );
- if( pinvalue == LOW ) {
+ pinvalue = readINT();
+ if( pinvalue == LOW ) {
rcode = IntHandler();
}
- pinvalue = digitalRead( MAX_GPX );
+ pinvalue = readGPX();
if( pinvalue == LOW ) {
GpxHandler();
}
@@ -268,4 +308,4 @@ byte MAX3421E::GpxHandler()
//{
//
//
-//} \ No newline at end of file
+//}
diff --git a/USB_Host_Shield/Max3421e.h b/USB_Host_Shield/Max3421e.h
index cf40c5d..9b4f28b 100644
--- a/USB_Host_Shield/Max3421e.h
+++ b/USB_Host_Shield/Max3421e.h
@@ -29,6 +29,11 @@ class MAX3421E /* : public SPI */ {
byte GpxHandler();
byte Task();
private:
+ static void pinInit(void);
+ static void setRST(uint8_t val);
+ static uint8_t readINT(void);
+ static uint8_t readGPX(void);
+
static void spi_init() {
uint8_t tmp;
// initialize SPI pins
@@ -36,7 +41,6 @@ class MAX3421E /* : public SPI */ {
pinMode(MOSI_PIN, OUTPUT);
pinMode(MISO_PIN, INPUT);
pinMode(SS_PIN, OUTPUT);
- digitalWrite( SS_PIN, HIGH );
/* mode 00 (CPOL=0, CPHA=0) master, fclk/2. Mode 11 (CPOL=11, CPHA=11) is also supported by MAX3421E */
SPCR = 0x50;
SPSR = 0x01;
diff --git a/USB_Host_Shield/Max3421e_constants.h b/USB_Host_Shield/Max3421e_constants.h
index ed59a6b..a0ccaec 100644
--- a/USB_Host_Shield/Max3421e_constants.h
+++ b/USB_Host_Shield/Max3421e_constants.h
@@ -19,7 +19,7 @@
#define SS_PIN 10
#endif
-#define MAX_SS 10
+#define MAX_SS 53
#define MAX_INT 9
#define MAX_GPX 8
#define MAX_RESET 7