551 Commits

Author SHA1 Message Date
Ben Gamari
24d5a5c4f1 usb: Add usb_endpoint_append_td
This implements the procedure for adding a TD to the end of an active
queue described in UM10503 Section 23.10.11.3.
2013-09-14 18:24:25 -04:00
Ben Gamari
1a44890095 usb_descriptor: Add description strings for configurations 2013-09-14 18:24:25 -04:00
Ben Gamari
21ad0778d2 usb_descriptor: Fix whitespace 2013-09-14 18:24:25 -04:00
Jared Boone
7075cc6c1c More constraints clean-up:
Associating timing specification groups on the NET declarations.
Updated setup/hold constraints -- old constraints were incomplete and possibly incorrect, though I'm still not *positive*.
2013-09-11 16:55:14 -07:00
Jared Boone
d628e2d09c Add CODEC_CLK to adc_data constraint group. 2013-09-11 16:22:39 -07:00
Jared Boone
e9236e50c2 Fix CPLD constraint to assume SGPIO frequency of 40MHz, not 20MHz. 2013-09-11 16:21:16 -07:00
Jared Boone
5a7b927db6 Change line endings in CPLD user constraints file license header to match the rest of the file. 2013-09-11 16:20:43 -07:00
Jared Boone
d7e2a8d133 Added note on generating XSVF inside Xilinx tools. 2013-09-11 15:54:17 -07:00
Jared Boone
042229ea19 Set transceiver mode to OFF whenever USB configuration changes. 2013-09-08 15:52:36 -07:00
Jared Boone
0411ffe3f0 Set RF path direction to "off" when transceiver_mode is OFF. 2013-09-08 15:44:37 -07:00
Jared Boone
98e33fbb5b Remove commented RFFC5071 code in set_transceiver_mode. 2013-09-08 15:36:25 -07:00
Jared Boone
d00123ed24 Update RFFC5071 enable state when switching RF path direction. TODO: There's some stuff here that needs refactoring -- duplicate code is showing up. 2013-09-08 15:20:47 -07:00
Jared Boone
a897c4f016 Add RF_PATH_DIRECTION_OFF enum and code. 2013-09-08 15:19:27 -07:00
Jared Boone
217630d82c Convert rf_path_set_direction from if/else to switch/case. 2013-09-08 15:13:44 -07:00
Jared Boone
9b2b7b0817 Move SGPIO ISRs to separate .c/.h files.
Move usb_bulk_buffer* to separate .c/.h files.
2013-09-08 15:10:19 -07:00
Jared Boone
1c81fa895c Bump mossmann/libopencm3 commit. 2013-09-07 22:34:36 -07:00
Jared Boone
ddf4c01f66 Forgot to propagate license to rf_path.[ch]. 2013-09-07 22:30:48 -07:00
Jared Boone
14eba3d947 Extract tuning code into separate .c/.h file. 2013-09-07 22:30:13 -07:00
Jared Boone
b5dc264d22 Extract rf_path code into a separate .c/.h.
Add an rf_path_init() function to do initial, idle configuration during start-up.
2013-09-07 22:22:03 -07:00
Jared Boone
7cf4058372 Move various switchctrl manipulation into clearly-defined rf_path_*() implementations. 2013-09-07 22:06:01 -07:00
Jared Boone
bf297e0e08 I might've been a bit hasty removing volatile from transceiver_mode. 2013-09-07 22:01:46 -07:00
Jared Boone
4ad3680428 Break SGPIO interrupt handlers in two -- RX and TX.
Assign an SGPIO interrupt handler function at runtime, based on RX or TX mode. NOTE: This is incompatible with placing the vector table in ROM, which is fine on a device with no internal flash).
Remove SGPIO interrupt-time dependency on volatile transceiver_mode variable. Side effect is that a few cycles are probably saved inside the SGPIO interrupt.
2013-09-07 21:04:36 -07:00
Jared Boone
e7c6408473 Add comment describing SWITCHCTRL pins vs. RF path configurations. 2013-09-07 20:21:43 -07:00
Jared Boone
d65314db37 Clean up switchctrl code a bit -- redundant #ifdefs and complex if conditions. 2013-09-07 20:20:48 -07:00
Jared Boone
bafe97e302 Extract knowledge of RF path configurations from the RFFC5071 driver.
Change initial RF path mode to SWITCHCTRL_SAFE. (Previously started at SWITCHCTRL_SAFE and then immediately switched to SWITCHCTRL_AMP_BYPASS.)
2013-09-07 12:59:57 -07:00
Jared Boone
6dee455ef2 Contain calls to rffc5071_(rx|tr) to a single location. 2013-09-07 12:40:09 -07:00
Jared Boone
518c46a111 Oops, missed a spot where I should've called a MAX2837 mode function. 2013-09-06 23:09:29 -07:00
Jared Boone
b89f43e97e Replace transceiver_mode dependent MAX2837 mode management with max2837_mode() -> max2837_set_mode() calls. 2013-09-06 22:50:04 -07:00
Jared Boone
a367f84d15 Add MAX2837 mode set/get functions. 2013-09-06 22:29:57 -07:00
Jared Boone
a5c0b5deeb Add MAX2837 functions to control operating mode.
Replace direct manipulation of GPIOs controlling MAX2837 with operating mode functions.
2013-09-06 21:29:31 -07:00
Jared Boone
7c5db57f02 Hide the MAX2837 intermediate frequency behind a function. It also prevents leakage of the freq_*_cache variables. 2013-09-06 16:46:03 -07:00
Jared Boone
1ac3d59875 Update libopencm3 submodule commit. 2013-09-06 16:02:01 -07:00
Jared Boone
5143456d6d Update libopencm3 submodule commit. 2013-09-06 15:25:34 -07:00
Jared Boone
b893b0a694 Merge remote-tracking branch 'bgamari/usb' into bgamari_usb_merge
Conflicts:
	firmware/hackrf_usb/hackrf_usb.c
	firmware/libopencm3
2013-09-06 15:20:58 -07:00
Jared Boone
266003f3af Added two CGU debugging tools:
- check_clock.py to decode the frequency monitor result.
- dump_cgu.py to display selected CGU registers in a legible format.
2013-09-04 16:34:20 -07:00
Jared Boone
6c0d803647 Cleaned up management of SGPIO and transceiver mode state vs. USB configuration state. This should help with power management. It may also be necessary when operating at low speed (48MHz), to keep the SGPIO interrupts from chewing up ALL available CPU cycles. 2013-09-04 16:27:43 -07:00
Jared Boone
1f5b979fd9 Added usb_set_configuration_changed_cb() call that bgamari fixed in his as-yet-unmerged USB branch. 2013-09-04 16:24:19 -07:00
Jared Boone
d76d72665e Adjusted cpu_clock_pll1_low_speed() to operate at 48MHz, as per several comments with the code. The actual MSEL value was previously selecting 84MHz. 2013-09-04 16:23:32 -07:00
Jared Boone
237bf6ecdb Pulled redundant PLL1 initialization code from cpu_clock_init(). Called cpu_clock_pll1_low_speed() instead. 2013-09-04 16:22:41 -07:00
Jared Boone
189d245868 Merge remote-tracking branch 'TitanMKD/master' into titanmkd_overclock_fix
Conflicts:
	firmware/hackrf_usb/hackrf_usb.c
2013-09-04 12:41:03 -07:00
Jared Boone
a90c3b2324 Merge pull request #100 from jboone/master
Incorporate bgamari changes for libopencm3 upstream.
2013-09-02 11:10:11 -07:00
TitanMKD
24ed48d93a Fix for "issues/62 fix PLL1 overclock bug" see hackrf_core.c -> cpu_clock_init()
Fix for "issues/78 startup current too high" see hackrf_core.c -> New functions cpu_clock_pll1_low_speed()/cpu_clock_pll1_max_speed() & hackrf_usb.c to switch low_speed/max_speed.
2013-08-28 22:01:57 +02:00
Michael Ossmann
2648107a0b added dfu-util requirement 2013-08-11 14:56:32 -06:00
Ben Gamari
3642fe9bc6 usb_queue: Kill dead declaration 2013-07-10 10:12:59 -04:00
Ben Gamari
f6b41dbda5 fix2 2013-07-07 23:21:18 -04:00
Ben Gamari
b738cd5294 fix1 2013-07-07 23:21:11 -04:00
Ben Gamari
bb69f655b1 usb_queue: Use while instead of for 2013-07-07 21:58:06 -04:00
Ben Gamari
f50253eaa3 usb_queue: Use ldrex/strex to avoid disabling interrupts 2013-07-07 21:54:25 -04:00
Ben Gamari
e23cc9bd6c usb_queue: Disable interrupts when allocating transfer 2013-07-07 21:25:31 -04:00
Ben Gamari
cce17c42fd libopencm3: Update 2013-07-07 21:24:13 -04:00