]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/usb_cdc.c
fixed USB GPIO bug reported by gregy, and fixed 'hf 14a reader' command
[proxmark3-svn] / armsrc / usb_cdc.c
index b8aee5a498a29c31a33539b7f69632c9018d52a0..fa1f849e4c150ec0f15f130213356ac28aaa2b6e 100644 (file)
@@ -34,6 +34,7 @@
 \r
 #include "usb_cdc.h"\r
 #include "util.h"\r
+#include "config_gpio.h"\r
 \r
 #define MIN(a, b) (((a) < (b)) ? (a) : (b))\r
 #define MAX(a, b) (((a) > (b)) ? (a) : (b))\r
@@ -217,12 +218,12 @@ byte_t btConnection    = 0;
 byte_t btReceiveBank   = AT91C_UDP_RX_DATA_BK0;\r
 \r
 //*----------------------------------------------------------------------------\r
-//* \fn    AT91F_USB_Disable\r
+//* \fn    usb_disable\r
 //* \brief This function deactivates the USB device\r
 //*----------------------------------------------------------------------------\r
 void usb_disable() {\r
-  // Disconnect and reconnect USB controller for 100ms\r
-  AT91C_BASE_PIOA->PIO_ODR = AT91C_PIO_PA24;\r
+  // Disconnect the USB device\r
+  AT91C_BASE_PIOA->PIO_ODR = GPIO_USB_PU;\r
   SpinDelay(100);\r
   \r
   // Clear all lingering interrupts\r
@@ -232,7 +233,7 @@ void usb_disable() {
 }\r
 \r
 //*----------------------------------------------------------------------------\r
-//* \fn    AT91F_USB_Enable\r
+//* \fn    usb_enable\r
 //* \brief This function Activates the USB device\r
 //*----------------------------------------------------------------------------\r
 void usb_enable() {\r
@@ -246,25 +247,25 @@ void usb_enable() {
   \r
   // Enable UDP PullUp (USB_DP_PUP) : enable & Clear of the corresponding PIO\r
   // Set in PIO mode and Configure in Output\r
-  AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA16; // Set in PIO mode\r
-       AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA16; // Configure as Output\r
+  AT91C_BASE_PIOA->PIO_PER = GPIO_USB_PU; // Set in PIO mode\r
+       AT91C_BASE_PIOA->PIO_OER = GPIO_USB_PU; // Configure as Output\r
   \r
-  // Clear for set the Pul up resistor\r
-       AT91C_BASE_PIOA->PIO_CODR = AT91C_PIO_PA16;\r
+  // Clear for set the Pullup resistor\r
+       AT91C_BASE_PIOA->PIO_CODR = GPIO_USB_PU;\r
   \r
-  // Disconnect and USB device\r
+  // Disconnect and reconnect USB controller for 100ms\r
   usb_disable();\r
   \r
   // Wait for a short while\r
   SpinDelay(100);\r
 \r
   // Reconnect USB reconnect\r
-  AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA24;\r
-  AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA24;\r
+  AT91C_BASE_PIOA->PIO_SODR = GPIO_USB_PU;\r
+  AT91C_BASE_PIOA->PIO_OER = GPIO_USB_PU;\r
 }\r
 \r
 //*----------------------------------------------------------------------------\r
-//* \fn    AT91F_UDP_IsConfigured\r
+//* \fn    usb_check\r
 //* \brief Test if the device is configured and handle enumeration\r
 //*----------------------------------------------------------------------------\r
 bool usb_check() {\r
@@ -295,7 +296,7 @@ bool usb_poll()
 }\r
 \r
 //*----------------------------------------------------------------------------\r
-//* \fn    AT91F_UDP_Read\r
+//* \fn    usb_read\r
 //* \brief Read available data from Endpoint OUT\r
 //*----------------------------------------------------------------------------\r
 uint32_t usb_read(byte_t* data, size_t len) {\r
@@ -328,7 +329,7 @@ uint32_t usb_read(byte_t* data, size_t len) {
 }\r
 \r
 //*----------------------------------------------------------------------------\r
-//* \fn    AT91F_CDC_Write\r
+//* \fn    usb_write\r
 //* \brief Send through endpoint 2\r
 //*----------------------------------------------------------------------------\r
 uint32_t usb_write(const byte_t* data, const size_t len) {\r
Impressum, Datenschutz