Robert Fisk
41c0624459
Startup LED flash is now asynchronous.
...
Not only a faster startup process, but also catches some HID devices
that only work if initialised within 500ms of powerup.
8 years ago
Robert Fisk
42d6030e7b
Refactor and improve HID report item parsing
8 years ago
Robert Fisk
a98af92c23
Correctly parse HID report descriptor items with unusual lengths.
...
Thanks Logitech.
8 years ago
Robert Fisk
00ccd39199
So I tested this innocent-looking Transcend flash drive...
...
It will sometimes NAK part-way through a multi-packet OUT URB. And what
it wants is for the host to resend beginning from the last even-numbered
packet. NOT the last packet it received, and NOT the beginning of that
URB.
8 years ago
Robert Fisk
12a576b5af
Don't fail if device stalls on SetIdle command (*cough* Logitech mice)
8 years ago
Robert Fisk
c68151698b
Bugfixes for keyboard support: works!!!
8 years ago
Robert Fisk
bc2bf01cbe
Keyboard support implemented, but not tested
8 years ago
Robert Fisk
9b2b8972a4
Incomplete and untested implementation of keyboard support
8 years ago
Robert Fisk
8aec6a6ca3
Fix for occasional problem when attaching mouse after powerup.
...
It turned out we were getting a "device disconnected" interrupt while
waiting for the port to enable following reset. Simply ignoring the
disconnect interrupt allows everything to work! WTF...
8 years ago
Robert Fisk
975f2d00af
Fix dynamic crystal frequency detection based on board revision
8 years ago
Robert Fisk
85f965eaa0
Fix for occasional timeout on writes...
...
...Downstream was not always changing state correctly after closely
spaced interrupts.
Also improve flash-write-lockout function to avoid dependency on
optimisation level.
8 years ago
Robert Fisk
6b67970f6b
Tweak USB middleware to avoid compiler warning
9 years ago
Robert Fisk
637f67fc14
Implement dynamic crystal frequency selection based on board revision.
...
Also fixed minor issue in hardware revision-detection function.
9 years ago
Robert Fisk
a152cb6037
Ignore Mass Storage subclass, and try to talk with transparent SCSI
...
anyway. This may or may not be helpful!
9 years ago
Robert Fisk
05f71ca098
Implemented FIFO support in Downstream host, significant speed increase!
...
Each USB transaction passed to the driver now consists of multiple
64-byte packets. 8 packets when receiving, 4 packets when transmitting.
The STM32 silicon bugs out when more than 4 packets are scheduled to
write at a time :(
Reads 1.0MB/sec, writes 967kB/sec, not CPU limited :)
9 years ago
Robert Fisk
f9b7416df0
Sleep instead of busy-wait, approx 50% power reduction!
9 years ago
Robert Fisk
6d52d3b8fc
Merge branch 'HID_parse_error_check' into USG_1.0
9 years ago
Robert Fisk
bca451bf05
Improve HID parser error checking
9 years ago
Robert Fisk
b4326d8ffa
Improve handling of >8bit input values
9 years ago
Robert Fisk
a64b89175e
Improved HID report parser compatibility
9 years ago
Robert Fisk
650d10f22c
Support disconnect/reconnect of attached HID device
9 years ago
Robert Fisk
18e811b4ee
HID report parser now handles collections.
9 years ago
Robert Fisk
c78f5b1150
HID parser and wheel support works!
9 years ago
Robert Fisk
fd14db8ccb
Implemented HID report parser. Untested!
9 years ago
Robert Fisk
6f944a33db
Fixed click-drag issue.
...
TODO: find out why 8-byte device interrupt endpoints totally fail.
WTF???
9 years ago
Robert Fisk
a5f4e52e02
More work on enumerating cheap POS mice, arrrrgh.
...
Added timeout checks and retry functionality to control transaction
state machine. But some times the device just won't talk, so we flash
the fault LED slowly to give the user some clue about what happened.
9 years ago
Robert Fisk
474b95e475
Remove unused HID header
9 years ago
Robert Fisk
b80b99d9ec
Fixed enumeration issues with low-speed devices:
...
- Unexpected second port-connected interrupt on cold boot with low-speed
device connected.
- Retry on failure to get device descriptor. (We still fail after three
attempts, but that is better than failing after the first one!)
Also changed eclipse project to use external builder.
9 years ago
Robert Fisk
2ae9850438
Add HID files that went missing in merge
9 years ago
Robert Fisk
cde20e2fce
Merge branch 'HID_devel' into USG_1.0
9 years ago
Robert Fisk
9918cfcb19
Mouse WORKS!11111 ...but only in boot mode, so no scroll wheel :(
9 years ago
Robert Fisk
b7298c5f65
Restructure & bugfix Upstream HID. Still some issue with Downstream...
9 years ago
Robert Fisk
4d9e26b6ef
Upstream HID bugfixes.
9 years ago
Robert Fisk
cda254c8bb
Downstream HID SPI interface done, untested.
9 years ago
Robert Fisk
56e8b99ae5
Downstream mouse support working!
9 years ago
Robert Fisk
e8a445a071
Work on Downstream HID support. Also a bunch of random tweaks.
9 years ago
Robert Fisk
a366a425fd
Messing with debug configurations again.
...
Our custom OpenOCD scripts are now linked directly into the Eclipse
debug configurations. No need to manually copy the files into OpenOCD's
script directory.
9 years ago
Robert Fisk
6886ccd2d4
Tweak device descriptor strings
9 years ago
Robert Fisk
59ae1cb45c
Revert "Initial commit of ST Cube HID drivers"
...
This reverts commit 08068c25d4
.
9 years ago
Robert Fisk
08068c25d4
Initial commit of ST Cube HID drivers
9 years ago
Robert Fisk
90e236561d
Increase Downstream's host command timeout to 5 seconds. It turns out
...
some flash drives can take up to 2 seconds to write a single block.
9 years ago
Robert Fisk
b9c1b23e4b
Supported device classes that fail sanity checks are now reported with a
...
slow 'unsupported device' flash, rather than a fast 'freakout' flash.
9 years ago
Robert Fisk
0d2d4d6341
Implement flash write lockout by spamming the unlock register, then
...
checking that the correct unlock sequence fails.
9 years ago
Robert Fisk
9d966d4e89
Tidy up misc files and settings
9 years ago
Robert Fisk
e94aea019e
Moved OpenOCD config to its own folder
9 years ago
Robert Fisk
25ff531917
Tweaks to 1.0 firmware. Not completely working yet :(
9 years ago
Robert Fisk
e29ef84861
Modify firmware for v1.0 hardware with STM32F401RC micro:
...
- Processor-specific header
- Startup file
- Linker script
- Project settings
- Debugger config script
- Debugger project settings
- Board revision detection routines
9 years ago
Robert Fisk
1262c5337a
All tabs to spaces
9 years ago
Robert Fisk
08e6846cc5
Add missing option to clock configuration
9 years ago
Robert Fisk
21de622469
Added hardware check on bootup: fault LED will light if Upstream
...
firmware is placed on Downstream hardware or vice versa.
9 years ago