191 Commits

Author SHA1 Message Date
Martin Ling
5a07b8629b Rename 'struct gpio_t' to 'struct gpio' to distinguish from gpio_t. 2026-03-03 09:30:37 +02:00
Michael Ossmann
547a851fba Store radio configuration in register banks 2026-02-20 11:28:56 -05:00
Michael Ossmann
72a96a77f8 Call a sample rate a sample rate
Previously we used "sample rate" to mean a rate that is twice the sample
rate in several places in firmware.
2026-02-20 11:28:15 -05:00
Martin Ling
afb6d1372f Move delay functions out of hackrf_core. 2026-02-06 18:29:54 +00:00
Michael Ossmann
9949100982 Don't try to self-test during clockgen shutdown 2026-01-01 15:41:23 -05:00
Michael Ossmann
1ad8adb449 Automatically configure Praline baseband LPF
For compatibility with old host software, the analog baseband filter is
automatically selected based on the sample rate and offset tuning
configuration. The bandwidth set by legacy vendor request is ignored.
2025-12-30 21:57:58 -05:00
Michael Ossmann
10e8b0d934 Decimate automatically in RX and RX sweep modes 2025-12-30 20:35:25 -05:00
Michael Ossmann
0ab032c4fc Rename hw_sync to trigger
Replace hw_sync_mode_t with bool.
2025-12-30 20:10:10 -05:00
Antoine van Gelder
3faf82ede6 firmware: move fpga selftest to a separate file to resolve blinky linker issues 2025-12-19 16:10:15 +02:00
Antoine van Gelder
4e90ee5c51 firmware: add register definitions for standard fpga bitstream 2025-12-19 16:10:15 +02:00
Michael Ossmann
2aaa2213c9 Ensure clock generator off before turning on
Do not try to activate clock generator if power supply is disabled on
Praline.
2025-12-17 09:54:24 -05:00
Michael Ossmann
6f862a1349 Add pin_shutdown()
Portions of pin_setup() that establish a safe, low-power state are moved
into the new pin_shutdown(). Use pin_shutdown() to prepare for sleep or
reset or prior to calling pin_setup().
2025-12-16 21:52:53 -05:00
Michael Ossmann
22e56a7076 Simplify pin_setup() 2025-12-16 21:30:50 -05:00
mndza
e4c0dd3cee Add safe defaults for the FPGA configuration pins in pin_setup() 2025-12-04 11:17:41 +01:00
Michael Ossmann
cde5d754d3 Remove 32 kHz oscillator self-test
Reliable oscillator start-up requires several hundred milliseconds which
is longer than we are willing to wait at every boot. We could add an
on-demand test in the future instead of an automatic self-test.
2025-11-25 20:31:44 -05:00
Michael Ossmann
29be31bf71 Add hackrf_debug option to read ADC
Co-authored-by: Martin Ling <martin-git@earth.li>
2025-11-25 20:08:20 -05:00
Michael Ossmann
409acbc3c9 Add support for HackRF Pro (code name: Praline)
Co-authored-by: mndza <diego.hdmp@gmail.com>
Co-authored-by: Martin Ling <martin-git@earth.li>
Co-authored-by: Antoine van Gelder <antoine@greatscottgadgets.com>
2025-11-24 20:53:41 -05:00
Jacob Graves
189b5bf693 wrap clkin init in r9 board check (#1307) 2023-04-19 13:32:32 -04:00
Michael Ossmann
c19f85ef24 h1r9: use single SSP configuration for MAX283x
During r9 hardware development it was thought that the MAX2839 would use
a different GPIO pin for chip select, but it ended up being the same pin
as is used for MAX2837 on other hardware revisions.

This takes the MAX283x abstraction a bit further and fixes a bug with
hackrf_debug -m.
2023-01-08 08:21:27 -05:00
Michael Ossmann
bdb6000bb4 h1r9: fix inverted spectrum on TX
Unify and clean up the firmware spectrum inversion handling for all
hardware platforms.
2023-01-06 14:33:56 +00:00
Mike Walters
bfe882a2fa h1r9: add MAX283x abstraction layer 2023-01-06 14:33:53 +00:00
Michael Ossmann
51bae663fc h1r9: update pin assignments for board spin B 2023-01-06 14:33:53 +00:00
Michael Ossmann
3738270e4f h1r9: use MAX2839 2023-01-06 14:33:53 +00:00
Michael Ossmann
b61c30a50d h1r9: bring-up wip 2023-01-06 14:33:53 +00:00
Michael Ossmann
1f73f2fd25 h1r9: add Si5351A support 2023-01-06 14:33:48 +00:00
Michael Ossmann
6d48671084 h1r9: initial GPIO definitions 2023-01-06 12:45:51 +00:00
Michael Ossmann
8aa79e9fe5 h1r9: use timer to detect external clock frequency 2023-01-06 12:45:46 +00:00
Michael Ossmann
173612ac77 add --led option to hackrf_debug
and corresponding changes to libhackrf and firmware
2022-12-18 07:22:17 -05:00
Michael Ossmann
b026c07000 firmware: fix duration of delay_us_at_mhz() 2022-09-26 16:43:43 -04:00
Michael Ossmann
06b9d7bee0 Clean up source code copyright notices. 2022-09-23 14:46:52 -04:00
Martin Ling
6d57709000 Move delay after enabling RF power to rad1o-specific code. 2022-09-19 10:46:01 +01:00
Martin Ling
c0d13de598 Add braces to all control statements without them. 2022-08-03 23:46:46 +01:00
Martin Ling
c3fdf402d7 Reformat all code to new clang-format standard. 2022-08-03 23:46:44 +01:00
Martin Ling
dbcc46d221 Mark code sections to be left alone by clang-format. 2022-08-03 23:03:15 +01:00
Martin Ling
b4c828915a Use an empty block for empty while loops. 2022-08-03 23:03:15 +01:00
Martin Ling
6b5193198b Realign GPIO assignments with spaces rather than tabs. 2022-08-03 23:03:15 +01:00
Martin Ling
405515d5b4 Implement NXP's recommended setup sequence for the PLL and M4 clock.
This follows the sequence described in:

UM10503 Rev 2.4 (Aug 2018), section 13.2.1.1, page 167
2022-06-13 16:49:45 +01:00
Martin Ling
273e6a1217 Add an accurate delay loop.
The existing 'delay' function is not calibrated to any specific measure
of time. Add a new function using a loop with a known cycle count, to
produce delays of a given duration at a given CPU clock speed.
2022-06-13 16:32:55 +01:00
Andreas Gibhardt
fc8b3c18d6 fix stream glitch on rate change 2021-12-02 16:27:43 +01:00
Schuyler St. Leger
9ee25ab48a operacake: add support for port switching using SCTimer
Based on Schuyler St. Leger's operacake-sctimer branch
2021-10-14 14:36:18 +01:00
Mike Walters
05b1650a6a Rename hackrf-ui.[ch]
Every other source file uses underscores! :(
2020-01-22 14:20:23 +00:00
Jared Boone
190c3972f4 Clock reference: Add UI hook. Simplify selection code. 2019-03-20 20:18:25 -07:00
Jared Boone
891eaa9e62 Clock reference: Return enum for selected clock source. 2019-03-20 14:38:18 -07:00
Jared Boone
dccb748216 PortaPack: Add check for PortaPack clock reference, use if present.
Wow, it takes a lot of ugly code to keep blinky happy...
2019-03-20 13:27:20 -07:00
Jared Boone
46fd11af5b Si5351C: Extract best block source function into hackrf_core.
It's not an Si5351C driver thing, but a HackRF thing. Also added a driver function to check if CLKIN signal is valid, and made use of it, instead of opaque register read code.
2019-03-20 11:16:44 -07:00
Dominic Spill
4fcfbec96a Merge pull request #601 from jboone/hygiene
rad1o: Remove extra(?) SCU setup. Cut & paste oops?
2019-03-06 17:32:35 -07:00
Dominic Spill
42c1a46bb3 Fix mismatched ifdefs of my making 2019-03-06 17:17:20 -07:00
Dominic Spill
e27038a098 Merge branch 'master' into cpld_sram_load 2019-03-04 12:40:14 +00:00
Dominic Spill
19f073fc5a Merge branch 'master' into hygiene 2019-03-03 22:29:12 +00:00
Dominic Spill
a4c1ab65c6 Merge pull request #602 from jboone/ui_restructuring
PortaPack and rad1o Ui restructuring, take 2
2019-03-03 22:27:57 +00:00