Jared Boone
c0274cd2d3
Merge remote-tracking branch 'bgamari/usb' into bgamari_usb_merge
...
Conflicts:
firmware/hackrf_usb/hackrf_usb.c
firmware/hackrf_usb/usb.c
firmware/hackrf_usb/usb_queue.c
firmware/hackrf_usb/usb_queue.h
firmware/hackrf_usb/usb_standard_request.c
2013-09-16 15:18:14 -07:00
Ben Gamari
4cd7662f7c
hackrf_usb_rom_to_ram: Add usb_queue to Makefile
2013-09-15 18:29:33 -04:00
Ben Gamari
b3f6134fc1
hackrf_cpldjtag: Update for new hackrf_cpld_write interface
2013-09-14 18:24:26 -04:00
Ben Gamari
d21d616576
libhackrf: Rework hackrf_cpld_write to use new firmware interface
...
We now use a separate USB configuration for CPLD updates. To avoid
misuse of the interface, hackrf_cpld_write is now a one-shot call,
expecting the entire CPLD buffer. The library will then take care that
the device is placed in the CPLD update configuration and the entire
buffer uploaded. Unfortunately, this means that users of the interface
will have substantially fewer opportunities to provide status updates to
the user.
2013-09-14 18:24:26 -04:00
Ben Gamari
67a181ac36
hackrf_usb: Update transceiver_mode on all configuration changes
2013-09-14 18:24:26 -04:00
Ben Gamari
64ef3f71c0
hackrf_usb: Make main loop non-blocking
2013-09-14 18:24:26 -04:00
Ben Gamari
3ba8d33de8
hackrf: Enter cpld_update from main loop
...
Otherwise we never respond to SET_CONFIGURATION
2013-09-14 18:24:26 -04:00
Ben Gamari
dc9c6c9667
cpld: Stream CPLD data from host
...
Previously CPLD programming involved a large 64kbyte buffer into which
the the entire bitstream would be completely downloaded, and at which
point the programming process would commence. This is needlessly
wasteful of memory. Moreover, it could lead to USB timeouts as the
firmware needs to wait the entire duration of the programming process
before returning an ACK to the host after the final SETUP data phase
packet.
Instead, we now receive 512 byte chunks of the bitstream and stream them
to the CPLD one at a time. We wait for each packet to be streamed out to
the CPLD before ACKing the packet to prevent active data being
overwritten.
2013-09-14 18:24:25 -04:00
Ben Gamari
d2b2b11998
xapp058/ports: Clean up comments and dead code
...
It's still not pretty but it's an improvement
2013-09-14 18:24:25 -04:00
Ben Gamari
8e897be975
usb_standard_request: Multiple config support
...
GET_DESCRIPTOR would only return one configurations. This fixes that.
2013-09-14 18:24:25 -04:00
Ben Gamari
34fabad121
usb_standard_request: Sent descriptors can be const
2013-09-14 18:24:25 -04:00
Ben Gamari
4773ee5a53
hackrf_usb: Port to use usb_queue
2013-09-14 18:24:25 -04:00
Ben Gamari
693c262134
libhackrf: Stop streaming before killing transfer thread
2013-09-14 18:24:25 -04:00
Ben Gamari
500aa5888c
usb_queue: Introduce queue management
2013-09-14 18:24:25 -04:00
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
5cad831075
Fixed cut-and-paste oops in variable name.
2013-09-06 15:37:24 -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
d5cebd92de
Merge pull request #98 from mikeryan/blockdiagram-images
...
doc: block diagram of HackRF
2013-09-04 10:44:41 -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
Mike Ryan
10d67a8265
doc: block diagram of HackRF
...
Source: http://2013.hackitoergosum.org/presentations/Day2-04.HackRF%20A%20Low%20Cost%20Software%20Defined%20Radio%20Platform%20by%20Benjamin%20Vernoux.pdf
2013-08-17 10:08:19 -07:00
Michael Ossmann
2648107a0b
added dfu-util requirement
2013-08-11 14:56:32 -06:00
Jared Boone
11156d958d
Delete jawbreaker_boot_mode.pdf
...
Document is wrong (ON and OFF reversed) and redundant -- information is in Wiki and LPC43xx UM10503.
2013-08-11 12:51:50 -07:00
Jared Boone
d0f0090474
Delete jawbreaker_boot_mode.ods
...
Document is wrong (ON and OFF reversed) and redundant -- information is in Wiki and LPC43xx UM10503.
2013-08-11 12:51:40 -07:00
Michael Ossmann
b056efcaf8
.so and .pc version update
2013-07-26 18:30:46 -06:00
Ben Gamari
3642fe9bc6
usb_queue: Kill dead declaration
2013-07-10 10:12:59 -04:00
Ben Gamari
0e14a38403
fix3
2013-07-07 23:22:34 -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
Ben Gamari
df400eced6
Bump libopencm3
2013-07-07 21:08:57 -04:00
Ben Gamari
4822512dac
Bump libopencm3
2013-07-07 18:51:50 -04:00
Ben Gamari
a9f8103fec
hackrf_stop_rx: First set mode, then kill transfer thread
...
Killing the transfer thread first means that the host stops polling the
device for reads, causing the device to hang while scheduling the dTD
2013-07-07 17:50:54 -04:00
Ben Gamari
d30d7309d9
usb_queue: Mark queues as volatile
2013-07-07 17:50:54 -04:00
Ben Gamari
36cf222ef4
usb_queue: Add some interrupt disabling around critical sections
2013-07-07 17:50:53 -04:00
Ben Gamari
14526cd1c2
hackrf_usb: Be more careful in transceiver_mode check
2013-07-07 17:50:53 -04:00
Ben Gamari
9f2dca3e4e
usb_standard_request: Always call configuration_changed_cb
...
For reasons I don't entirely understand, bulk requests are suddenly
ignored after a SET_CONFIGURATION request (even if the configuration did
not change) unless the endpoints are reinitialized. This is done by
configuration_changed_cb, therefore we call it for every request.
2013-07-07 17:50:53 -04:00
Ben Gamari
f12defebc6
usb: Ensure endpoint queue is flushed on disable/init
2013-07-07 17:50:53 -04:00