From b92ea1f985de8f014974920fe982027b3d82b2e0 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 22 Nov 2012 10:06:02 +0900 Subject: [PATCH] Fix endpoint buffer setting for AT90USB82/162. --- protocol/pjrc/MEMO.txt | 25 +++++++++++++++++++++++++ protocol/pjrc/usb.h | 2 +- protocol/pjrc/usb_mouse.h | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 protocol/pjrc/MEMO.txt diff --git a/protocol/pjrc/MEMO.txt b/protocol/pjrc/MEMO.txt new file mode 100644 index 00000000..b0f05983 --- /dev/null +++ b/protocol/pjrc/MEMO.txt @@ -0,0 +1,25 @@ +Endpoint configuration +---------------------- +0 Control endpoint +1 keyboard +2 mouse +3 debug +4 extra key(consumer/system) +5 nkro keyboard(supported only on ATmega32U4/16U4 and AT90USB64/128) + + +ATmega32U4/16U4, AT90USB64/128 +• Endpoint 0:programmable size FIFO up to 64 bytes, default control endpoint +• Endpoints 1 programmable size FIFO up to 256 bytes in ping-pong mode. +• Endpoints 2 to 6: programmable size FIFO up to 64 bytes in ping-pong mode. + +AT90USB82/162, ATmega8U2/16U2/32U2 +• Endpoint 0:programmable size FIFO up to 64 bytes, default control endpoint +• Endpoints 1 and 2: programmable size FIFO up to 64 bytes. +• Endpoints 3 and 4: programmable size FIFO up to 64 bytes with ping-pong mode. + +ping-pong mode means double buffer feature. + + +NOTE: ATmega8U2/16U2/32U2 is not supported with PJRC stack at this time. +TODO: Macro definition for ATmega8U2/16U2/32U2 in usb.h diff --git a/protocol/pjrc/usb.h b/protocol/pjrc/usb.h index 0eb58fc3..a195b671 100644 --- a/protocol/pjrc/usb.h +++ b/protocol/pjrc/usb.h @@ -122,7 +122,7 @@ void usb_remote_wakeup(void); #define KBD_INTERFACE 0 #define KBD_ENDPOINT 1 #define KBD_SIZE 8 -#define KBD_BUFFER EP_DOUBLE_BUFFER +#define KBD_BUFFER EP_SINGLE_BUFFER #define KBD_REPORT_KEYS (KBD_SIZE - 2) // secondary keyboard diff --git a/protocol/pjrc/usb_mouse.h b/protocol/pjrc/usb_mouse.h index eb305612..ce26887c 100644 --- a/protocol/pjrc/usb_mouse.h +++ b/protocol/pjrc/usb_mouse.h @@ -32,7 +32,7 @@ #define MOUSE_INTERFACE 1 #define MOUSE_ENDPOINT 2 #define MOUSE_SIZE 8 -#define MOUSE_BUFFER EP_DOUBLE_BUFFER +#define MOUSE_BUFFER EP_SINGLE_BUFFER #define MOUSE_BTN1 (1<<0) #define MOUSE_BTN2 (1<<1)