USB Host Driver with Socket Modem support. Works with revision 323 of mbed-src but broken with any later version.

Dependencies:   FATFileSystem

Fork of F401RE-USBHost by Norimasa Okamoto

Revision:
2:0cdac6bcc534
Parent:
1:c072d9e580b0
--- a/USBHost.h	Tue Jan 21 08:59:28 2014 +0000
+++ b/USBHost.h	Thu Jan 23 08:32:54 2014 +0000
@@ -1,35 +1,9 @@
 // Simple USBHost for FRDM-KL46Z
-#include "mbed.h"
 #pragma once
-
-struct SETUP_PACKET {
-    uint8_t bmRequestType;
-    uint8_t bRequest;
-    uint16_t wValue;
-    uint16_t wIndex;
-    uint16_t wLength;
-};
+#include "mbed.h"
+#include "USBHALHost.h"
 
-#define SET_ADDRESS 5
-#define GET_DESCRIPTOR 6
-#define GET_CONFIGURATION 8
-#define SET_CONFIGURATION 9
-
-// TOK_PID[5:2]
-#define DATA0 0x03
-#define DATA1 0x0b
-#define ACK   0x02
-#define STALL 0x0e
-#define NAK   0x0a
-#define Bus_Timeout 0x00
-#define Data_Error 0x0f
-
-enum ODD_EVEN {
-    ODD = 0,
-    EVEN = 1,
-};
-
-class USBHost {
+class USBHost : public USBHALHost {
 public:
     static USBHost* getHostInst();
     int InterruptRead(uint8_t* data, int size);
@@ -37,33 +11,11 @@
     int ControlWrite(SETUP_PACKET* setup, uint8_t* data = NULL, int size = 0);
     int BulkRead(uint8_t* data, int size);
     int BulkWrite(const uint8_t* data, int size);
-    uint8_t LastStatus;
-
-protected:
-    USBHost();
-    void init();
-    void wait_attach();
-    bool enumeration();
-    uint8_t ep_int_in;
-    uint8_t ep_bulk_in;
-    uint8_t ep_bulk_out;
-    int MaxPacketSize0;
-    bool lowSpeed;
-    int dev_addr;
 
 private:
-    static void _usbisr(void);
-    int token_setup(SETUP_PACKET* setup, uint16_t wLength = 0);
-    int token_in(uint8_t ep, uint8_t* data = NULL, int size = 0);
-    int token_out(uint8_t ep, const uint8_t* data = NULL, int size = 0);
-    void token_ready();
-    void UsbIrqhandler();
-    __IO bool attach_done;
-    __IO bool token_done;
-    ODD_EVEN tx_ptr;
-    ODD_EVEN rx_ptr;
-    uint8_t tx_data01[16];
-    uint8_t rx_data01[16];
+    USBHost();
     static USBHost* inst;
+    virtual bool enumeration();
+    int dev_addr;
 };