Robert Fisk
2983da24b2
Changed Upstream and Downstream SPI transfers back to DMA. DMA works
...
correctly now, either because SPI is in 16-bit mode, or because I found
all the other bugs!
Doubled SPI baudrate to 10.5Mbps. Transfer speed now limited (again) by
Downstream's lack of FIFO buffering in the USB host controller.
Also disabled DMA transaction half-complete interrupt in
stm32f4xx_hal_dma.c, as it wasn't doing anything useful.
9 years ago
Robert Fisk
cd663a0651
Two bugfixes for Upstream's SPI packet handling:
...
- Use asynchronous free packet callback for Upstream_MSC_BeginRead
- Upstream_MSC_BeginWrite freed packet too early
9 years ago
Robert Fisk
d643fbdf87
Previous commit missed an unsupported-device-flash-LED check.
...
NOTE: Downstream's full-speed host controller is flakey when connecting
to low-speed devices. One mouse enumerates on only 50% of connection
events, while another mouse enumerates on 90% of connections. Grrr.
9 years ago
Robert Fisk
226e163adf
Improve Downstream error handling:
...
- Slow flash fault LED when unsupported device connected
- Disconnect downstream USB host on error
9 years ago
Robert Fisk
3eb95c683c
Add images for wiki.
9 years ago
Robert Fisk
5e85aa069d
Remove generated files from Upstream/Debug/ folder
9 years ago
Robert Fisk
431a527e24
Tidy up commented DMA init code
9 years ago
Robert Fisk
dda307dbe5
Readme!
9 years ago
Robert Fisk
58308c4a89
Added Mozilla Public License information to file headers.
...
Mozilla Public License v2.0 is compatible with the various licenses used
by ST and ARM.
9 years ago
Robert Fisk
2e3293e84f
Increase SPI interface speed 4x, to 5.25Mbps. Required modifications to
...
SPI peripheral library. At this speed SPI requires ~60% CPU time at -Og
optimisation level. This could be further improved by trimming down the
SPI interrupt. But...
Speed is now limited by Downstream's single-packet-per-URB restriction,
to about 460kB/s. USB Middleware does not implement TX FIFO empty
interrupt, so a bit of work is required here.
9 years ago
Robert Fisk
5cd9ddbd98
Merge branch 'MassiveDebug'
9 years ago
Robert Fisk
08c8c7a6d6
Code tidyup - remove unused SPI Tx-only and Rx-only routines
9 years ago
Robert Fisk
d48815d8d9
IT. WORKS. !!!!!!!
9 years ago
Robert Fisk
ce03845623
Completed moving Upstream to interrupt-based SPI.
...
Although I am not entirely convinced this is necessary, as the SPI data
stall issue only appeared with optimisation off (-O0). Perhaps re-visit
this if Upstream needs more free CPU time later...
9 years ago
Robert Fisk
b9cc31d036
Crazy hardware issues, about to revert Upstream SPI from DMA to
...
interrupt transfers
9 years ago
Robert Fisk
48a6c2e2a4
Bugfixes for Downstream, including one in the USB host stack!
...
Downstream now enumerates and accepts attached USB storage devices.
9 years ago
Robert Fisk
750c2f3a21
- Implement notification of Downstream USB device removal, and
...
corresponding Upstream disconnection
- Improve Upstream handling of TxOk signal from Downstream
- Misc tweaks
9 years ago
Robert Fisk
f24714cd8c
Revisit Upstream project to:
...
- Implement Upstream state machine, with Downstream-dependent device
emulation
- Add fault LED flashing
- Improve fault handling and freakouts
- Misc bug fixes
9 years ago
Robert Fisk
fc522bae0a
Added priority elevation to Downstream USB host processing code that
...
interacts with SPI.
It elevates to USB_OTG priority to avoid preemption by SPI, DMA, or USB
interrupts thus avoiding synchronisation issues between USB host stack
and SPI interface.
Also minor improvements to Downstream error handling.
9 years ago
Robert Fisk
c1b2c191c4
Improved Downstream error handling:
...
- More sensible handling of error cases on SPI interface
- Improved Freakout macros
- Implemented automatic fault LED blinking
9 years ago
Robert Fisk
0e1fed6047
Full implementation of Downstream MSC interface, including significant
...
modifications to USB host MSC.
Also, minor tweaks to Upstream.
9 years ago
Robert Fisk
b9b6123642
Commit of Downstream before diving into USB MSC class driver
...
modifications.
Also correct project settings to compile for Cortex M4 architecture.
9 years ago
Robert Fisk
674cb621a7
Initial implementation of Downstream SPI interface and state machine.
9 years ago
Robert Fisk
b271e038a3
More refactoring in Upstream project
9 years ago
Robert Fisk
4350666330
Refactor a bunch of stuff in Upstream project to avoid endless confusion
...
with Downstream project.
Also fixed a couple of things in upstream_spi.c and
upstream_interface_msc.c but due to file rename the diff is not
obvious...
9 years ago
Robert Fisk
7b4e4b3c14
Continued polishing work on Downstream project.
9 years ago
Robert Fisk
503d79de56
Streamlining Downstream project
9 years ago
Robert Fisk
55c8a21aad
Initial commit of Downstream template project.
9 years ago
Robert Fisk
8f41552214
Updated STM32 library from v1.4.0 to v1.7.0
...
Significant changes to:
- stm32f4xx_hal_spi.c
- stm32f4xx_hal_gpio.c
- stm32f4xx_ll_usb.c
- usbd_core.c
- usbd_ctrlreq.c
9 years ago
Robert Fisk
18e2218280
Fixed Eclipse's Debug and Release configurations
9 years ago
Robert Fisk
69d1490faa
Upstream debugged and working again, emulating a 128MB storage device.
...
Implemented mock downstream_interface_msc.c for debugging purposes.
Multiple bugfixes and tweaks to:
- downstream_interface_msc.c
- downstream_spi.c
- usbd_core.c
- usbd_msc.c
- usbd_msc_scsi.c
- stm32f4xx_hal_pcd.c
9 years ago
Robert Fisk
aa72df1bbf
Minor tweaks to downstream interface
9 years ago
Robert Fisk
d3da69eb07
Draft implementation of downstream SPI interface. Significant mods
...
required to USB MSC class, mainly in usbd_msc_scsi.c. Currently
untested!
9 years ago
Robert Fisk
5acf8bbb88
Add OpenOCD config file for Olimex STM32-H405 development board.
10 years ago
Robert Fisk
6d7d86b2f5
Initial commit!
...
Upstream (device) firmware builds, emulates a small USB block device
filled with zeroes.
10 years ago