959 Commits

Author SHA1 Message Date
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
fc9632f19d Add code to control MAX2837 B1 through B7 from Jellybean. Another feeble attempt to control DC bias. 2012-10-17 22:28:10 -07:00
Jared Boone
143d845b05 Add code to control RXHP pin on MAX2837 (Jellybean only). I was hoping this would control the baseband DC offset problem, but no, it doesn't seem to help at all. 2012-10-17 21:48:41 -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
7fdfde9314 Make use of i2c0_init() argument to control duty cycle, when APB1 clock shifts from IRC (~12MHz) to PLL1 (204MHz). 2012-10-17 11:48:35 -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
14e90781be Merge branch 'master' of https://github.com/mossmann/hackrf 2012-10-14 12:37:28 -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
Will Code
334366aac3 Merge remote-tracking branch 'upstream/master' 2012-10-14 08:15:23 -04: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
d398cfcc1d Use new ssp_transfer() function instead of ssp_write().
Implement max2837_spi_read().
2012-10-13 16:58:22 -07:00
Jared Boone
5a428a460f Merge branch 'master' of https://github.com/mossmann/hackrf 2012-10-13 13:48:21 -07:00
Will Code
4c9df75d84 max2837: fix a couple math errors in the def file 2012-10-13 16:27:02 -04:00
Michael Ossmann
0d53da8593 fixed MAX2837 zero length register fields 2012-10-13 13:59:37 -06:00
Jared Boone
4cf0ba236d Extended common Makefile to include targets for DFU file generation and programming. 2012-10-13 12:29:03 -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
168c92a3d0 Now that RxVGA gain control is working correctly, gain needs to be backed WAAAY off to get a usable capture in a fairly noisy 2.4GHz environment. 2012-10-13 11:07:17 -07:00
Jared Boone
f4b6f08500 Fixed incorrect field with for MAX2837 VGAgain_SPI_EN field. For boards that have no B7:B1 connections, this could prove extra problematic...and for boards that do, but aren't driving those pins from the LPC. 2012-10-13 11:06:39 -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
9824a723b7 Moved invariant in sgpio_configure() loop out of loop. Originally, so I could use the value to calculate another invariant. 2012-10-12 09:45:18 -07:00
Jared Boone
a1af4356b6 Reworked sgpio.c to make use of #defines for fields, instead of hard-coding shifts. Proper. 2012-10-11 20:46:21 -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
8291d7fac0 Add SGPIO configuration function for "deep" (8-slice) TX mode. 2012-10-11 13:04:30 -07:00
Michael Ossmann
04160f49cc increased MAX2837 RX output common-mode voltage to maximum 2012-10-10 21:38:03 -06:00
Jared Boone
3a9d7432c3 Changed compile optimization flag to -Os from -O2. TitanMKD demonstrated conclusively that it's a good thing. 2012-10-10 16:27:05 -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
8a54e09e15 Elimination of unused argument warnings. 2012-10-10 16:13:37 -07:00
Jared Boone
c02bf358d1 Added license/copyright to several Makefiles. 2012-10-10 15:50:31 -07:00
Jared Boone
092c5b7b0f Removed removing of .usbram section from .bin file output. Because there's no more .usbram section! 2012-10-10 15:42:30 -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
5989465eb9 Add SGPIO configuration API and code, extracted from existing SGPIO projects. 2012-10-10 14:30:28 -07:00