Remove doc folder
@ -3,7 +3,7 @@
|
||||
This repository contains hardware designs and software for HackRF,
|
||||
a low cost, open source Software Defined Radio platform.
|
||||
|
||||

|
||||

|
||||
|
||||
(photo by fd0 from https://github.com/fd0/hackrf-one-pictures)
|
||||
|
||||
|
@ -1,5 +0,0 @@
|
||||
The primary source of documentation is on Read the Docs (https://hackrf.readthedocs.io/) or in the docs folder in the HackRF repository on GitHub (https://github.com/mossmann/hackrf/tree/master/docs).
|
||||
|
||||
This directory contains supplemental documentation.
|
||||
|
||||
(photo jawbreaker-fd0-145436.jpeg by fd0 from https://github.com/fd0/jawbreaker-pictures)
|
@ -1,127 +0,0 @@
|
||||
|
||||
OLS version used from: git://github.com/jawi/ols.git
|
||||
Warning sometimes there's a bug between Mode3 & Mode0 in OLS 0.9.6b3
|
||||
Expected is when /CS = 0 at first SCK Rising Edge data shall be read.
|
||||
|
||||
1) Read JDEC ID:
|
||||
----------------
|
||||
SPI Standard, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz:
|
||||
Send(MOSI)=0x9F(Read JDEC ID)
|
||||
Receive(MISO)=0xEF => Manufacturer ID(Winbond) and 0x40, 0x14 => Device ID
|
||||
|
||||
2) Read Status Register-2:
|
||||
--------------------------
|
||||
SPI Standard, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz:
|
||||
Send(MOSI)=0x35(Read Status Register-2)
|
||||
Receive(MISO)=0x02 (Status Register-2 => S15-S8)
|
||||
|
||||
3) Read Unknown Command 0xA3 (maybe for other SPIFI memory ??):
|
||||
---------------------------------------------------------------
|
||||
SPI Standard, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz:
|
||||
Send(MOSI)=0xA3
|
||||
Receive(MISO)=0x00 0x00 0x00
|
||||
|
||||
4) Fast Read Quad I/O with "Continuous Read Mode"(0xEB):
|
||||
--------------------------------------------------------
|
||||
SPI Standard, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz:
|
||||
Send(MOSI)=0xEB(Fast Read Quad I/O)
|
||||
SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS:
|
||||
Send(IO0 to IO3) hexa:
|
||||
00 00 00 (A23-16) (A15-8) (A7-0)
|
||||
A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled)
|
||||
A5 A5 (Dummy 2 bytes)
|
||||
Receive(IO0 to IO3) hexa:
|
||||
00 00 02 10 B1 01 00 14 (Data) => Vect Table = 0x10020000(Stack Pointer), 0x140001B1(Thumb) Real Addr=0x140001B0 (Reset_Handler/ResetISR)
|
||||
79 01 00 14 7B 01 00 14 (Data)
|
||||
7D 01 00 14 7F 01 00 14 (Data)
|
||||
Dump from Debug (Big Endian to swap 32bits):
|
||||
0x80000000 00000210 B1010014 79010014 7B010014 ....±...y...{...
|
||||
0x80000010 7D010014 7F010014 }.......
|
||||
|
||||
5) Fast Read Quad I/O with "Continuous Read Mode"(0xEB):
|
||||
--------------------------------------------------------
|
||||
SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS, SCK=About 32MHz:
|
||||
Send(IO0 to IO3) hexa:
|
||||
00 01 B0 (A23-16) (A15-8) (A7-0) (Corresponds to Real Addr=0x140001B0 (Reset_Handler/ResetISR))
|
||||
A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled)
|
||||
A5 A5 (Dummy 2 bytes)
|
||||
Receive(IO0 to IO3) hexa:
|
||||
10 B5 72 B6 19 4B 1A 4A (Data)
|
||||
1A 60 1A 4A 5A 60 1A 4A (Data)
|
||||
4F F0 FF 33 13 60 53 60 (Data)
|
||||
Dump from Debug (Big Endian to swap 32bits):
|
||||
0x800001B0 10B572B6 194B1A4A 1A601A4A 5A601A4A .µr¶.K.J.`.JZ`.J
|
||||
0x800001C0 4FF0FF33 13605360 Oðÿ3.`S`
|
||||
|
||||
6) Fast Read Quad I/O with "Continuous Read Mode"(0xEB):
|
||||
--------------------------------------------------------
|
||||
SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS:
|
||||
Send(IO0 to IO3) hexa:
|
||||
00 02 18 (A23-16) (A15-8) (A7-0)
|
||||
A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled)
|
||||
A5 A5 (Dummy 2 bytes)
|
||||
Receive(IO0 to IO3) hexa:
|
||||
FE E7 00 BF 00 31 05 40 (Data)
|
||||
00 00 DF 10 FF F7 DF 01 (Data)
|
||||
80 E2 00 E0 14 01 00 14 (Data)
|
||||
Dump from Debug (Big Endian to swap 32bits):
|
||||
0x80000218 FEE700BF 00310540 0000DF10 FFF7DF01 þç.¿.1.@..ß.ÿ÷ß.
|
||||
0x80000228 80E200E0 14010014 .â.à....
|
||||
|
||||
7) Fast Read Quad I/O with "Continuous Read Mode"(0xEB):
|
||||
--------------------------------------------------------
|
||||
SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS:
|
||||
Send(IO0 to IO3) hexa:
|
||||
00 01 C8 (A23-16) (A15-8) (A7-0)
|
||||
A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled)
|
||||
A5 A5 (Dummy 2 bytes)
|
||||
Receive(IO0 to IO3) hexa:
|
||||
93 60 D3 60 13 61 53 61 (Data)
|
||||
93 61 D3 61 62 B6 15 4C (Data)
|
||||
Dump from Debug (Big Endian to swap 32bits):
|
||||
0x800001C8 9360D360 13615361 9361D361 62B6154C .`Ó`.aSa.aÓab¶.L
|
||||
|
||||
8) Fast Read Quad I/O with "Continuous Read Mode"(0xEB):
|
||||
--------------------------------------------------------
|
||||
SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS:
|
||||
Send(IO0 to IO3) hexa:
|
||||
00 02 30 (A23-16) (A15-8) (A7-0)
|
||||
A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled)
|
||||
A5 A5 (Dummy 2 bytes)
|
||||
Receive(IO0 to IO3) hexa:
|
||||
50 01 00 14 78 01 00 14 (Data)
|
||||
Dump from Debug (Big Endian to swap 32bits):
|
||||
0x80000230 50010014 78010014 P...x...
|
||||
|
||||
9) Fast Read Quad I/O with "Continuous Read Mode"(0xEB):
|
||||
--------------------------------------------------------
|
||||
SPI Quad, Mode3, 8bits, MSB first, Show /CS & Honour /CS:
|
||||
Send(IO0 to IO3) hexa:
|
||||
00 01 D8 (A23-16) (A15-8) (A7-0)
|
||||
A5 (M7-0) => A5 = 1010 0101 (Continuous Read Mode enabled)
|
||||
A5 A5 (Dummy 2 bytes)
|
||||
Receive(IO0 to IO3) hexa:
|
||||
05 E0 20 68 61 68 A2 68 (Data)
|
||||
0C 34 FF F7 D2 FF 12 4B (Data
|
||||
9C 42 F6 D3 04 E0 20 68 (Data)
|
||||
61 68 08 34 FF F7 D2 FF (Data)
|
||||
0E 4B 9C 42 F7 D3 DF F8 (Data)
|
||||
Dump from Debug (Big Endian to swap 32bits):
|
||||
0x800001D8 05E02068 6168A268 0C34FFF7 D2FF124B .à hah¢h.4ÿ÷Òÿ.K
|
||||
0x800001E8 9C42F6D3 04E02068 61680834 FFF7D2FF .BöÓ.à hah.4ÿ÷Òÿ
|
||||
0x800001F8 0E4B9C42 F7D3DFF8 .K.B÷Óßø
|
||||
|
||||
Nota:
|
||||
Tested on JellyBean.
|
||||
SCK is about 32MHz After about 620us from startup.
|
||||
SCK change to about 660KHz/700KHz during about 400us. (During Read from 00 0C 78 => During CGU SetPLL1 code).
|
||||
SCK change from 4MHz to about 8MHz during about 15us. (Read from 00 0D 98 => During CGU SetPLL1 code).
|
||||
SCK stabilize to 8MHz during 122us (no data anymore OLS memory is full) (Read from 00 05 B0).
|
||||
|
||||
...
|
||||
During Code running the SCK run at 8MHz MCU is configured at 72MHz => 12MHz(IRC)*6.
|
||||
SPIFI CLK(0x40050070) = 0xD000800 0x0D=IDIVB & 0x800=AUTOBLOCK_CLOCK_BIT Enabled
|
||||
IDIVB_CTRL(0x4005004C) = 0x9000820 => IDIB=1000(8+1)=9 => for 72MHz Core => 72/9=8MHz
|
||||
IDIVB_CTRL(0x4005004C) = 0x9000800 => IDIB=0000(0+1)=1 => for 72MHz Core => 72/1=72MHz => This configuration just crash.
|
||||
IDIVB_CTRL(0x4005004C) = 0x9000800 => IDIB=0000(0+1)=1 => for 72MHz Core => 72/2=36MHz => This configuration works fine.
|
||||
|
Before Width: | Height: | Size: 159 KiB |
Before Width: | Height: | Size: 434 KiB |
Before Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 651 KiB |
Before Width: | Height: | Size: 372 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 100 KiB |
@ -1,185 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg3324"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
width="992.5"
|
||||
height="743.75"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="Day2-04.HackRF A Low Cost Software Defined Radio Platform by Benjamin Vernoux.pdf"><metadata
|
||||
id="metadata3330"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs3328"><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath3338"><path
|
||||
d="m 0,-0.2 793.6,0 0,595.2 L 0,595 0,-0.2 z"
|
||||
clip-rule="evenodd"
|
||||
id="path3340" /></clipPath><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath3438"><path
|
||||
d="m 397,81 0,0 0,433.1 0,0 0,-433.1 z"
|
||||
id="path3440" /></clipPath></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="953"
|
||||
inkscape:window-height="745"
|
||||
id="namedview3326"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.31731092"
|
||||
inkscape:cx="496.25"
|
||||
inkscape:cy="371.875"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="19"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g3332" /><g
|
||||
id="g3332"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Day2-04.HackRF A Low Cost Software Defined Radio Platform by Benjamin Vernoux"
|
||||
transform="matrix(1.25,0,0,-1.25,0,743.75)"><g
|
||||
id="g3334"><g
|
||||
id="g3336"
|
||||
clip-path="url(#clipPath3338)"><path
|
||||
d="m 0,595 793.7,0 0,-595.2 L 0,-0.2 0,595 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="path3342" /><g
|
||||
id="g3344" /><g
|
||||
id="g3350"><text
|
||||
transform="matrix(1,0,0,-1,46.8,497.9)"
|
||||
id="text3352"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:60;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 50.04 89.94 128.82 168.78 215.4 255.36 275.4 322.02 342.06 381.96 402 428.58 468.54 488.52 508.56 551.88 578.46 619.32 659.28"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3354">HackRF Digital Stage</tspan></text>
|
||||
</g><path
|
||||
d="m 37.4,443.7 c 0,12.7 19.1,25.4 38.2,25.4 l 249,0 c 19.1,0 38.3,-12.7 38.3,-25.4 l 0,-165.2 c 0,-12.7 -19.2,-25.4 -38.3,-25.4 l -249,0 c -19.1,0 -38.2,12.7 -38.2,25.4 l 0,165.2 z"
|
||||
style="fill:#99ccff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="path3356" /><g
|
||||
id="g3358"><path
|
||||
d="m 37.4,443.7 c 0,12.7 19.1,25.4 38.2,25.4 l 249,0 c 19.1,0 38.3,-12.7 38.3,-25.4 l 0,-165.2 c 0,-12.7 -19.2,-25.4 -38.3,-25.4 l -249,0 c -19.1,0 -38.2,12.7 -38.2,25.4 l 0,165.2 z"
|
||||
style="fill:none;stroke:none"
|
||||
id="path3360" /></g><g
|
||||
id="g3362"><path
|
||||
d="m 37.4,469.1 0,0 z"
|
||||
style="fill:none;stroke:none"
|
||||
id="path3364" /></g><g
|
||||
id="g3366"><path
|
||||
d="m 362.9,253.1 0,0 z"
|
||||
style="fill:none;stroke:none"
|
||||
id="path3368" /></g><g
|
||||
id="g3370"><text
|
||||
transform="matrix(1,0,0,-1,76,404.3)"
|
||||
id="text3372"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:48;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 45.36 82.656 119.952 151.92 183.984 215.952"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3374">MAX5864</tspan></text>
|
||||
</g><g
|
||||
id="g3376"><text
|
||||
transform="matrix(1,0,0,-1,92.7,340.9)"
|
||||
id="text3378"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:44;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 34.276 68.376 102.652 114.84 147.136 180.444"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3380">ADC/DAC</tspan></text>
|
||||
</g><g
|
||||
id="g3382"><text
|
||||
transform="matrix(1,0,0,-1,47.1,278.8)"
|
||||
id="text3384"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:44;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 36.652 66.088 80.696 100.232 129.58 144.188 173.536 202.884 244.376 281.028"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3386">Up to 22MHz</tspan></text>
|
||||
</g><path
|
||||
d="m 457.6,443.7 c 0,12.7 16.9,25.4 33.8,25.4 l 220.5,0 c 16.9,0 33.9,-12.7 33.9,-25.4 l 0,-165.2 c 0,-12.7 -17,-25.4 -33.9,-25.4 l -220.5,0 c -16.9,0 -33.8,12.7 -33.8,25.4 l 0,165.2 z"
|
||||
style="fill:#99ccff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="path3388" /><g
|
||||
id="g3390"><path
|
||||
d="m 457.6,443.7 c 0,12.7 16.9,25.4 33.8,25.4 l 220.5,0 c 16.9,0 33.9,-12.7 33.9,-25.4 l 0,-165.2 c 0,-12.7 -17,-25.4 -33.9,-25.4 l -220.5,0 c -16.9,0 -33.8,12.7 -33.8,25.4 l 0,165.2 z"
|
||||
style="fill:none;stroke:none"
|
||||
id="path3392" /></g><g
|
||||
id="g3394"><path
|
||||
d="m 457.6,469.1 0,0 z"
|
||||
style="fill:none;stroke:none"
|
||||
id="path3396" /></g><g
|
||||
id="g3398"><path
|
||||
d="m 745.8,253.1 0,0 z"
|
||||
style="fill:none;stroke:none"
|
||||
id="path3400" /></g><g
|
||||
id="g3402"><text
|
||||
transform="matrix(1,0,0,-1,545.7,376)"
|
||||
id="text3404"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:48;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 39.888 77.184"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3406">NXP</tspan></text>
|
||||
</g><g
|
||||
id="g3408"><text
|
||||
transform="matrix(1,0,0,-1,485.5,308.3)"
|
||||
id="text3410"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:48;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 32.064 66.72 104.016 135.984 168.048 200.016"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3412">LPC43xx</tspan></text>
|
||||
</g><g
|
||||
id="g3414"><path
|
||||
d="m 429.9,361.1 -39.4,0"
|
||||
style="fill:none;stroke:#000000;stroke-opacity:1;stroke-width:7.07499;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none"
|
||||
id="path3416" /></g><path
|
||||
d="m 457.6,361.1 -28.9,9.6 0,-19.3 28.9,9.7 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="path3418" /><path
|
||||
d="m 362.8,361.1 28.9,-9.7 0,19.3 -28.9,-9.6 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="path3420" /><text
|
||||
transform="matrix(1,0,0,-1,49,181.9)"
|
||||
id="text3422"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:48;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 45.264 77.328 109.296 125.28 173.28 205.248 253.248 269.232 301.2 333.264 378.528 418.512 445.104 461.088 498.384 535.68 572.976 586.32 621.504 657.984 695.28"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3424">Maximum 20MHz ADC/DAC </tspan></text>
|
||||
<text
|
||||
transform="matrix(1,0,0,-1,142.3,114.2)"
|
||||
id="text3426"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:48;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 15.888 31.872 79.872 95.76 117.12 149.088 181.152 197.136 229.104 258.384 274.272 314.256 348.912 386.208 418.176 434.16 474.144"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3428">limited by USB2 HS</tspan></text>
|
||||
<text
|
||||
transform="matrix(1,0,0,-1,192.5,46.5)"
|
||||
id="text3430"><tspan
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Arial;font-variant:normal;font-weight:900;font-size:48;writing-mode:lr;-inkscape-font-specification:Arial-Black"
|
||||
x="0 18.672 51.216 83.184 115.152 147.216 168.48 184.464 216.432 248.496 293.76 309.744 347.04 360.336 389.616"
|
||||
y="0"
|
||||
sodipodi:role="line"
|
||||
id="tspan3432">(about 40MiB/s)</tspan></text>
|
||||
</g></g><g
|
||||
id="g3434"><g
|
||||
id="g3436" /><g
|
||||
id="g3442"><g
|
||||
clip-path="url(#clipPath3438)"
|
||||
opacity="0.5"
|
||||
id="g3444" /></g></g></g></svg>
|
Before Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 679 KiB After Width: | Height: | Size: 679 KiB |