Michael Ossmann
1f9f597ea8
firmware: use python3 interpreter, not python
2022-09-26 16:46:04 -04:00
Michael Ossmann
f3d10dcc62
firmware: improve platform detection
...
Slow down the detection of pull-up and pull-down resistors to make
detection more reliable.
2022-09-26 16:44:38 -04:00
Michael Ossmann
b026c07000
firmware: fix duration of delay_us_at_mhz()
2022-09-26 16:43:43 -04:00
Michael Ossmann
04614c616a
blinky: support platform detection
2022-09-23 15:08:22 -04:00
Michael Ossmann
06b9d7bee0
Clean up source code copyright notices.
2022-09-23 14:46:52 -04:00
Michael Ossmann
92b15f226e
Merge pull request #1172 from martinling/amp-startup
...
Fix initial state of RF path GPIOs.
2022-09-21 15:19:04 -04:00
Martin Ling
3dd2e51d71
Initialise rf_path->switchctrl to SWITCHCTRL_SAFE.
...
This was previously never being initialised.
2022-09-21 12:22:58 +01:00
Martin Ling
cf34beebb0
Remove extra call to switchctrl_set and global switchctrl variable.
...
This call is not required since the GPIOs are already configured in
rf_path_pin_setup(). The global switchctrl is not used anywhere else.
2022-09-21 12:17:18 +01:00
Martin Ling
eec6963759
Initialise RF path GPIOs to safe settings.
...
Previously these calls were leaving the amplifiers on, since the
control settings passed were missing SWITCHCTRL_NO_TX_AMP_PWR and
SWITCHCTRL_NO_RX_AMP_PWR. Use the predefined SWITCHCTRL_SAFE here.
Also move these calls before setting the GPIO pins to output mode,
to avoid driving them to the wrong states briefly first.
2022-09-21 12:05:17 +01:00
Martin Ling
767db9f06c
Don't start baseband streaming until TX buffer is first filled.
2022-09-20 11:13:25 +01:00
Michael Ossmann
e623c7aed7
Merge pull request #1103 from dizcza/master
...
fixed firmware manual build docs
2022-09-19 21:30:22 -04:00
Martin Ling
44511c6c3b
Move RFFC5072 setup before enabling RF power.
2022-09-19 13:02:29 +01:00
Martin Ling
5d78302d97
Change default RFFC5072 register settings to disable antenna bias.
2022-09-19 13:02:01 +01:00
Martin Ling
6d57709000
Move delay after enabling RF power to rad1o-specific code.
2022-09-19 10:46:01 +01:00
Danylo Ulianych
a2c30a8896
Update firmware/README
...
Co-authored-by: Martin Ling <martin-github@earth.li>
2022-09-15 07:39:48 +03:00
Michael Ossmann
75e3137d55
Merge pull request #1155 from greatscottgadgets/platform-detect
...
Detect hardware platform at run-time.
2022-09-14 17:45:58 -04:00
Michael Ossmann
9329c5e44e
Detect hardware platform at run-time.
...
Firmware now detects the hardware it is running on at startup and
refuses to run if it is compiled for the wrong platform. The board ID
returned by firmware to the host is now derived from run-time detection
rather than a compile-time value. A separate method to retrieve
compile-time supported platform is added.
On HackRF One, pin straps are checked to determine hardware revision.
This is informational to aid troubleshooting and does not affect any
function.
2022-09-14 07:08:47 -04:00
Michael Ossmann
2104291594
firmware: use consistent clock source
...
CLKOUT now switches to the active clock source whenever the internal
clocks change source. It previously did so only when (re)enabled.
2022-09-10 06:54:51 -04:00
grvvy
5d7b203058
operacake: disable the usage of time mode when a portapack is installed
2022-09-01 14:03:18 -06:00
Martin Ling
ba148ee047
Add a simpler way to check CLKIN status.
2022-08-05 09:37:38 +01:00
Martin Ling
c0d13de598
Add braces to all control statements without them.
2022-08-03 23:46:46 +01:00
Martin Ling
55bea828ea
Add missing stdbool.h include to rom_iap.h.
...
Fixes a clang-tidy error.
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
ebb9e43fde
Move some trailing comments on long lines.
2022-08-03 23:42:55 +01:00
Martin Ling
b50aeb4082
fixup clang-format off
2022-08-03 23:34:28 +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
6cd9ca9483
sgpio: Clean up comments.
2022-08-03 23:03:15 +01:00
Martin Ling
51b76d33a6
sgpio: Remove a redundant variable.
2022-08-03 23:03:15 +01:00
Martin Ling
efd5603c80
Reformat sct.h to avoid long lines.
2022-08-03 23:03:15 +01:00
Martin Ling
445253be1e
usb_descriptor: Realign descriptor comments.
2022-08-03 23:03:15 +01:00
Martin Ling
a66492b8b7
rom_iap: Clean up comments and realign with spaces.
2022-08-03 23:03:15 +01:00
Martin Ling
1acc71bebf
rf_path: Realign scu_pinmux calls.
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
3418f6e249
Use a #define for USB transfer size.
2022-07-25 10:54:07 +01:00
Martin Ling
a943610cd4
Simpify TX loop in the same way as RX loop.
2022-07-25 10:44:15 +01:00
Martin Ling
0175c2e84e
Simplify rx_mode loop and prevent it stalling.
...
On rad1o, the UI update could block this loop from running for long
enough that it could stall in a state where neither of the conditions
was met.
Fix this by removing the 'phase' variable, in favour of a counter
tracking the number of bytes that have been scheduled for USB transfer.
Whenever there are enough bytes to schedule the next transfer, do so.
Meanwhile, the M0 count is prevented from wrapping around and clobbering
data not yet sent, because the M0 code monitors the m4_count variable
which is updated as each transfer completes.
2022-07-25 10:35:05 +01:00
Martin Ling
bc0fbc3184
Merge pull request #1072 from martinling/fix-stack-variables
...
Fix USB requests that were responding with data from the stack.
2022-06-13 23:03:20 +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
dizcza
fc79b0ffb1
fixed firmware manual build docs
2022-06-05 11:18:48 +03:00
Veloman Yunkan
3157111d08
Bugfix in retuning rate
...
In sweep mode, frequency switching (retuning) must occur only
AFTER the requested number of samples has been received.
2022-04-13 18:36:12 +04:00
Martin Ling
077095451a
Schedule ACK after CLEAR_FEATURE / ENDPOINT_HALT request.
2022-03-30 00:34:32 +01:00
Martin Ling
2fba08cf42
Reset endpoint specified in request, not the one it arrived on.
2022-03-29 23:40:08 +01:00
Martin Ling
84898a0bcb
Implement USB CLEAR_FEATURE request for ENDPOINT_HALT.
...
From USB 2.0, section 9.4.5:
"For endpoints using data toggle, regardless of whether an endpoint has
the Halt feature set, a ClearFeature(ENDPOINT_HALT) request always
results in the data toggle being reinitialized to DATA0."
2022-03-29 14:11:00 +01:00
Martin Ling
c2509e7c4d
Fix USB requests that were responding with data from the stack.
2022-03-20 13:51:13 +00:00
Michael Ossmann
3344ea8fce
Merge pull request #982 from martinling/bug-180
...
Firmware sample buffer management overhaul, including safe handling of TX underruns
2022-03-01 19:07:07 -05:00
Martin Ling
ad3216435a
Fix overlapping register allocations.
2022-02-28 23:02:34 +00:00
Michael Ossmann
de76404e60
Merge pull request #1045 from martinling/usb-isr
...
Move transceiver mode changes out of USB ISR.
2022-02-14 10:15:29 -07:00
Martin Ling
1fe06b425a
Rename m0_state.{c,h} to usb_api_m0_state.{c,h}
2022-02-13 17:53:34 +00:00