Michael Ossmann
094428357c
started firmware modifications for spiflash and cpld_jtag over USB
2013-02-16 13:23:20 -07:00
Michael Ossmann
44a4b02e52
oops: SWITCHCTRL_LP should be the absence of SWITCHCTRL_HP
2013-02-16 13:07:05 -07:00
Michael Ossmann
ea72dd59a6
configured usb_performance.c for 900 MHz RF
2013-02-16 07:46:00 -07:00
TitanMKD
013f1ea4f6
Modified firmware and host tools for portability Linux/Mingw, added fw rffc5071 & host hackrf_rffc5071 example.
2013-02-10 18:51:54 +01:00
Jared Boone
526a8e9e7a
Add typed request return value that indicates request is OK or requires endpoint STALL.
...
Changed vendor request to a lookup table, instead of an ever-growing switch statement.
2012-10-18 19:47:25 -07:00
Jared Boone
e8b30f3489
Oops. Request handlers called from setup handler could access the IN side of the endpoint, which does not get a copy of the SETUP bytes.
...
TODO: Make a single copy of the SETUP bytes, and provide a clean way to access those bytes regardless of whether you're holding the IN or OUT endpoint. (This was a problem in the IN complete handler, and probably other places, too.)
2012-10-18 19:42:36 -07:00
Jared Boone
549c943979
Add USB control of LPF baseband filter.
...
Add max2837_set_lpf_bandwidth() function to choose available LPF filter bandwidth based on bandwidth in Hz.
Change configuration of MAX2837 to set LPF_EN and FT at max2837_setup(), not in max2837_rx() or max2837_tx() (which was overriding prior filter configuration).
2012-10-17 17:00:36 -07:00
Jared Boone
9c4a0e94b0
Factor out sample_rate_set() from cpu_clock_init().
...
Implement switching between several supported sampling rates for Jellybean and Jawbreaker.
Commit bits of the Si5351C USB request support that I apparently missed in a prior commit.
2012-10-17 16:57:26 -07:00
Jared Boone
d4da08a3d7
Oops! Forgot to change MAX2837 mode from RX to TX when transceiver mode is changed.
...
Initialize MAX5864 earlier, in "transceiver" mode (where both ADC and DAC are active), and then shift SSP1 into MAX2837 mode and leave it there, for faster tuning and RX/TX switching.
2012-10-17 15:59:47 -07:00
Jared Boone
6babcbe579
Add USB vendor requests to read/write Si5351C registers.
2012-10-17 11:57:44 -07:00
Jared Boone
63b1a25979
Consolidate a few clock setup tasks that repeat among many projects into cpu_clock_init().
2012-10-17 11:45:30 -07:00
Jared Boone
6cd8da6930
Return of the hand-optimized assembly for SGPIO read and write interrupt.
...
Reset only the one SGPIO slice flag that is actually causing the interrupt.
2012-10-16 16:57:35 -07:00
Jared Boone
1391bfc61e
Flip endian-ness on USB MAX2837 register read request.
2012-10-16 16:56:25 -07:00
Jared Boone
bd2fab0a12
Move USB SET_CONFIGURATION-time initialization of SGPIO and bulk endpoints into a separate function.
...
Initialize transceiver mode at SET_CONFIGURATION time.
Provide switching of transceiver mode via vendor request.
Provide read/write access to MAX2837 registers via vendor requests.
Python utility to dump MAX2837 registers.
Python utility to switch transceiver RX/TX mode.
2012-10-14 12:37:16 -07:00
Jared Boone
a25d48f5d5
Switch default transceiver mode back to RX.
2012-10-14 12:25:22 -07:00
Jared Boone
f32c6b34ca
Create unions in usb_setup_t so that value, index, and length can be read as words, not just high/low bytes.
2012-10-13 17:06:24 -07:00
Jared Boone
3c17bad743
Stall USB endpoint if control request is not handled.
2012-10-13 17:03:28 -07:00
Jared Boone
048feb1316
Miscellaneous USB notes and naming clean-up.
2012-10-13 17:02:55 -07:00
Jared Boone
7e34950b24
Relocate compiler #defines for PACKED, ALIGNED, SECTION.
2012-10-13 17:01:42 -07:00
Jared Boone
57866227bf
Remove weird LDSCRIPT that isn't necessary now.
...
Change .bin generation to include only ROM-able sections.
TODO: Is there a better way to do the objcopy? It'd be great to put everything in the "rom" region into the .bin, instead of having to list out -j section for each of the sections that go to ROM.
2012-10-13 11:37:54 -07:00
Jared Boone
8d14de21ce
Fixed prior commit, where I lost the switch between endpoints based on RX or TX mode.
2012-10-12 09:46:49 -07:00
Jared Boone
9b579232a7
Consolidated single-slice SGPIO configuration functions into single sgpio_configure() function.
2012-10-11 15:45:28 -07:00
Jared Boone
1b5574d2b9
RX and TX sample buffer loops turned out to be the same, so they're consolidated.
2012-10-11 15:19:01 -07:00
Jared Boone
1bad2d8536
Consolidated two "deep" SGPIO configuration functions into one, qualified by transceiver mode (RX or TX). 95-ish % of the code was common.
2012-10-11 15:18:16 -07:00
Jared Boone
6f0fda0bee
Moved transceiver_mode_t to hackrf_core.h.
...
Changed transceiver_mode to volatile, since it's liable to be accessed at interrupt time.
2012-10-11 15:12:25 -07:00
Jared Boone
fb9ce63f7f
Add (manual) switch for TX and RX mode.
...
Add code for configuring TX mode.
TODO: Consolidate lots of repetitive code.
2012-10-11 13:06:27 -07:00
Jared Boone
d5db378647
Put RFFC5071 code back in place.
2012-10-10 16:17:57 -07:00
Jared Boone
788140f79a
Cast USB buffer address to eliminate compiler warning.
2012-10-10 16:17:23 -07:00
Jared Boone
693e61b31c
Removed block of assembly in favor of C code. TODO: Look at assembly and compiler -O options to avoid assembly.
2012-10-10 16:17:02 -07:00
Jared Boone
0253642b2e
Added extern for usb_set_configuration() to eliminate compiler warning. TODO: Eventually, this should be just a callback, not the complete SET_CONFIGURATION implementation.
2012-10-10 16:15:12 -07:00
Jared Boone
5dbbae6d9c
Removed unused functions to silence warnings.
2012-10-10 16:14:22 -07:00
Jared Boone
155d81da4e
Reworked USB code to pump SGPIO with an interrupt.
...
Relocated USB buffers to be split across two AHB memory regions, so that USB endpoint priming doesn't choke SGPIO transfers.
Added code to configure 2.4GHz front-end.
Changed USB and SGPIO priority levels (probably unnecessary because sample corruption was due to USB priming bursts).
2012-10-10 14:39:41 -07:00
Jared Boone
165997d09b
Changed USB queue head and transfer descriptor attributes to be explicitly aligned, instead of targeting a section.
...
Added miscellaneous internal USB functions.
Improved disabling of endpoints -- now clearing pending interrupts and flushing as well.
2012-10-10 14:39:03 -07:00
Jared Boone
aff5cc0c69
Oops, forgot license header on new files...
2012-10-06 19:11:19 -07:00
Jared Boone
749671029a
New version of the usb_performance test firmware, with the new (and functional) USB "stack".
2012-10-06 18:58:59 -07:00
Jared Boone
3451a3c3d8
Tons of new USB code. It should eventually migrate into common, or even libopencm3, once it's not a steaming pile of crap...
2012-10-06 18:58:18 -07:00
Jared Boone
cbd42cf970
Adjustments for new auto-generated #defines.
2012-09-27 17:04:14 -07:00
Jared Boone
c662309489
Hot steaming pile of in-progress USB test code. Eventually, this will morph into a proper stack. But first, to "make it work".
2012-09-11 11:36:30 -07:00
Jared Boone
ddd3796803
Makefile change to use RAM-only LDScript.
2012-09-11 11:33:26 -07:00
Jared Boone
2a6e3a89d3
USB performance test firmware project. It does absolutely nothing to start with, but at least the Makefile I just checked in won't blow up! :-)
2012-07-31 22:05:28 -07:00