2923 Commits

Author SHA1 Message Date
Michael Ossmann
50a2e9dd56 h1r9: update clock drive strength for spin C 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
24f2c1d073 h1r9: MAX2839: always use the low LNA band 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
dc67fbd2ee h1r9: fix Opera Cake time mode compatibility
TIMER3 match register 3 was interfering with SCT, fixed by turning off
all ORing of timer outputs with SCT outputs.
2023-01-06 14:33:53 +00:00
Michael Ossmann
7b5d8da821 h1r9: swap RX Q inversion 2023-01-06 14:33:53 +00:00
Michael Ossmann
b15509c2d9 h1r9: MAX2839: emulate MAX2837 RX gain configuration 2023-01-06 14:33:53 +00:00
Michael Ossmann
5693f7b193 h1r9: MAX2839: support maximum TX gain, not minimum 2023-01-06 14:33:53 +00:00
Michael Ossmann
eb8ed45f9a h1r9: adjust PLLA according to source frequency 2023-01-06 14:33:53 +00:00
Michael Ossmann
7a0aec00ef h1r9: fix usb_vendor_request_reset()
The bootloader is configured by pin straps on certain pins. We use some
of those for other purposes in r9 which causes the bootloader to
misbehave if the device is reset from software. By switching these pins
from outputs to inputs just before reset this problem is avoided.
2023-01-06 14:33:53 +00:00
Michael Ossmann
ea3b804edf h1r9: workaround platform detection problem
On the first spin of r9 one of the pins used for platform detection is
pulled up to VAA, not VCC, and VAA hasn't been switched on yet at the
time of platform detection. This results in r9 being misidentified as OG
from time to time.

As a temporary workaround until the next board spin, change the platform
from OG to r9 if it is detected as OG but has r9 pin straps.
2023-01-06 14:33:53 +00:00
Michael Ossmann
3f73290524 h1r9: configure MAX2839 HPF
Without this, the RX baseband gain amplifies a DC offset.
2023-01-06 14:33:53 +00:00
Michael Ossmann
616705b7e5 h1r9: don't write to outputs in TIMER3 ext. match register
Writing to the output bits in the TIMER3 external match register
resulted in intermittent failures that varied in likelihood from board
to board and from commit to commit for no apparent reason.
2023-01-06 14:33:53 +00:00
Michael Ossmann
4db7e8d38a h1r9: more bring-up fixes 2023-01-06 14:33:53 +00:00
Michael Ossmann
edd0a80812 h1r9: stop writing MAX2837 registers to MAX2839 2023-01-06 14:33:53 +00:00
Michael Ossmann
f4817b60a3 h1r9: MAX2839 driver updates 2023-01-06 14:33:53 +00:00
Michael Ossmann
a72f084ff0 h1r9: fix CLKOUT_EN pin setup 2023-01-06 14:33:53 +00:00
Michael Ossmann
3738270e4f h1r9: use MAX2839 2023-01-06 14:33:53 +00:00
grvvy
14183a96ea h1r9: implement additional MAX2839 functions, change some mreg definition names, fix RF gain control math 2023-01-06 14:33:53 +00:00
grvvy
cbbe94c8fe h1r9: add preliminary MAX2839 driver and accompanying header file; add some convenience macros to regs_def 2023-01-06 14:33:53 +00:00
grvvy
dcb9cd1beb h1r9: add preliminary MAX2839 register definitions 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
4ffe3658be h1r9: add max2839_target.c 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
ae805c43c6 HackRF One: correct RXBB net names 2023-01-06 06:09:09 -05:00
Michael Ossmann
ec254ff7cf HackRF One: update R83 and R84 attributes 2023-01-06 06:09:09 -05:00
Michael Ossmann
ae2a983f51 HackRF One: change R60 from 0 ohms to 100 ohms
This matches R31 and was intended to be done when R31 was changed to 100
ohms.
2023-01-06 06:09:09 -05:00
Michael Ossmann
3a20745a6d HackRF One: populate R83 instead of R84
This removes clock buffer chaining which was intended to be done when
the RC delay was added.
2023-01-06 06:09:09 -05:00
Michael Ossmann
92c21ea953 HackRF One: clean up
- silkscreen
- fabrication attributes
- dates
- copyright
- README
2023-01-06 06:09:09 -05:00
Michael Ossmann
a0d7f1edfe hardware: update .gitignore for KiCad and plugin 2023-01-06 06:09:09 -05:00
Michael Ossmann
d08d2418fe HackRF One: update RF amplifier series resistance 2023-01-06 06:09:09 -05:00
Michael Ossmann
9b1ddf8a8f HackRF One: update clock termination passives 2023-01-06 06:09:09 -05:00
Michael Ossmann
220099e3d1 HackRF One: update IF balun tuning inductors 2023-01-06 06:09:08 -05:00
Michael Ossmann
04f7487a2f HackRF One: update 100 nF capacitor part selection 2023-01-06 06:09:08 -05:00
Michael Ossmann
643336b224 HackRF One: add SMA connector keepouts 2023-01-06 06:09:08 -05:00
Michael Ossmann
d352952f96 HackRF One: adjust clock phase with RC delay
Remove chaining of buffers to delay GCK2 and instead use an RC delay for
both GCK2 and SGPIO_CLK.
2023-01-06 06:09:08 -05:00
Michael Ossmann
f927c5c25b HackRF One: add sample clock distribution options 2023-01-06 06:09:08 -05:00
Michael Ossmann
d915f821e3 HackRF One: add second fiducial mark 2023-01-06 06:09:08 -05:00
Michael Ossmann
a4a007ed75 HackRF One: AC couple CLKIN
We've always specified that CLKIN should be DC (based on the Si5351C
documentation), but it has worked with AC input.  AC coupling the buffer
input restores this undocumented feature.
2023-01-06 06:09:08 -05:00
Michael Ossmann
2154b4227a HackRF One: add resistance to amplifier supplies
This may improve reliability since switching to a MOSFET with lower on
resistance.
2023-01-06 06:09:08 -05:00
Michael Ossmann
e15bb0e972 HackRF One: chain SGPIO_CLK and GCK2 buffers
This more closely emulates the clock phase relationships on prior
hardware revisions that used the Si5351C.

Update clock trace widths.
2023-01-06 06:09:08 -05:00
Michael Ossmann
9d71e91e74 HackRF One: change CLKIN_DETECT pin
- move CLKIN_DETECT to U23 pin 15, P4_8, CTIN_5
- move SGPIO13 to U23 pin 91, P2_5, GPIO5[5]
- rename SGPIO13 to TRIGGER_EN

This allows TIMER1/TIMER2 instead of TIMER3/TIMER0 to be used for CLKIN
detection, avoiding conflicts with PortaPack firmware.

SGPIO13 was never used for SGPIO, so it is renamed to reflect current
usage.
2023-01-06 06:09:08 -05:00
Michael Ossmann
155a4532f0 HackRF One: swap pins for platform detection
- move EN_1V8 to P5_0, U23 pin 37
- move !VAA_ENABLE to P6_10, U23 pin 100
- move !RX_AMP_PWR back to P2_12, U23 pin 106

Platform detection is now performed using P5_0 and P6_10 which avoids
the complication of having to detect a pull-up to VAA which may not yet
be switched on.
2023-01-06 06:09:08 -05:00
Michael Ossmann
40dca9ecf2 HackRF One: component selections, DNP, and Notes 2023-01-06 06:09:08 -05:00
Michael Ossmann
4f607f3f38 HackRF One: move !ANT_BIAS control from U4 to U23 2023-01-06 06:09:08 -05:00
Michael Ossmann
9175b4e7aa HackRF One: change U17 from MAX2837 to MAX2839 2023-01-06 06:09:08 -05:00
Michael Ossmann
fe42edf790 HackRF One: update hardware detection pin straps
Additionally swap:
 - EN_1V8, P6_10, U23 pin 100 (pull-down)
 - !RX_AMP_PWR, P2_12, U23 pin 106 (pull-up)

Detecting which has the pull-up and which has the pull-down enables
version detection that may be more reliable than the ADC method.
2023-01-06 06:09:08 -05:00
Michael Ossmann
d176b0a118 HackRF One: change U19 from Si5351C to Si5351A
add clock distribution and detection
2023-01-06 06:09:08 -05:00