Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: F401RE-USBHostMIDI_RecieveExample
Fork of F401RE-USBHost by
Diff: USBHost/USBHALHost.h
- Revision:
- 6:03ef38d6e1ba
- Parent:
- 5:10bfc10afcc8
- Child:
- 7:9a20482c9a7a
--- a/USBHost/USBHALHost.h Mon Jan 27 11:00:28 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-// Simple USBHost for FRDM-KL46Z
-#pragma once
-#include "mbed.h"
-#include "USBHostTypes.h"
-#include "USBEndpoint.h"
-
-struct SETUP_PACKET {
- uint8_t bmRequestType;
- uint8_t bRequest;
- uint16_t wValue;
- uint16_t wIndex;
- uint16_t wLength;
-};
-
-#define GET_CONFIGURATION 8
-
-// TOK_PID[5:2]
-#define Bus_Timeout 0x00
-#define Data_Error 0x0f
-
-enum ODD_EVEN {
- ODD = 0,
- EVEN = 1,
-};
-
-class Report {
-public:
- void clear();
- void print_errstat();
- // error count
- uint32_t errstat_piderr; // USBx_ERRSTAT[PIDERR]
- uint32_t errstat_crc5eof;// USBx_ERRSTAT[CRC5EOF]
- uint32_t errstat_crc16; // USBx_ERRSTAT[CRC16]
- uint32_t errstat_dfn8; // USBx_ERRSTAT[DFN8]
- uint32_t errstat_btoerr; // USBx_ERRSTAT[BTOERR]
- uint32_t errstat_dmaerr; // USBx_ERRSTAT[DMAERR]
- uint32_t errstat_bsterr; // USBx_ERRSTAT[BTSERR]
- //
- uint32_t nak;
- uint32_t stall;
-};
-
-class USBHALHost {
-public:
- uint8_t LastStatus;
- uint8_t prev_LastStatus;
- Report report;
-
-protected:
- USBHALHost();
- void init();
- virtual bool enumeration() = 0;
- bool lowSpeed;
- void setAddr(int addr);
- void setEndpoint(bool use_retry = false);
- void token_transfer_init();
- int token_setup(USBEndpoint* ep, SETUP_PACKET* setup, uint16_t wLength = 0);
- int token_in(USBEndpoint* ep, uint8_t* data = NULL, int size = 0, int retryLimit = 10);
- int token_out(USBEndpoint* ep, const uint8_t* data = NULL, int size = 0, int retryLimit = 10);
- int token_iso_in(USBEndpoint* ep, uint8_t* data, int size);
- void token_ready();
-private:
- static void _usbisr(void);
- void UsbIrqhandler();
- __IO bool attach_done;
- __IO bool token_done;
- void wait_attach();
- ODD_EVEN tx_ptr;
- ODD_EVEN rx_ptr;
- static USBHALHost * instHost;
-};
