mirror of
https://github.com/jankae/LibreVNA.git
synced 2025-12-06 07:12:10 +01:00
Compare commits
155 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a7b985fa9 | ||
|
|
7bdbcde9be | ||
|
|
fbef4b364f | ||
|
|
da1228c9b1 | ||
|
|
3aac724298 | ||
|
|
0f9510e7a0 | ||
|
|
65bc247a65 | ||
|
|
d0c8a1ae8e | ||
|
|
9923038d6c | ||
|
|
72d547eb08 | ||
|
|
d853571aea | ||
|
|
64791e6d4e | ||
|
|
b6718c57b2 | ||
|
|
87ab2fccca | ||
|
|
56dbec82d4 | ||
|
|
bbd1bce0b8 | ||
|
|
937b002dfb | ||
|
|
d77215aecb | ||
|
|
7acb847a2b | ||
|
|
92088ec646 | ||
|
|
be123420db | ||
|
|
273dfa8037 | ||
|
|
6e2079fcfb | ||
|
|
ed699cfd6a | ||
|
|
f51c6a0bce | ||
|
|
5d00d4786b | ||
|
|
3e327e7e6b | ||
|
|
b2fd49d800 | ||
|
|
f327a4b4a0 | ||
|
|
5947584e63 | ||
|
|
3071d8de72 | ||
|
|
d882bca547 | ||
|
|
f0c7f289cb | ||
|
|
8b44421ea3 | ||
|
|
66d5bdd91b | ||
|
|
10ba138104 | ||
|
|
2f018e3867 | ||
|
|
68e8d29e0c | ||
|
|
1b3c1c4b3b | ||
|
|
38b4a6ba39 | ||
|
|
abe2aefcf9 | ||
|
|
3483b7baec | ||
|
|
1a21a49dfd | ||
|
|
8f689637ff | ||
|
|
67cffbb69e | ||
|
|
2f256117db | ||
|
|
8e917faed4 | ||
|
|
c1705290ff | ||
|
|
ceaf412c2a | ||
|
|
514fcd180c | ||
|
|
b3eb1735cc | ||
|
|
3330cee2ba | ||
|
|
d8f042dcaa | ||
|
|
d615089afe | ||
|
|
d6020a6a26 | ||
|
|
a2b3146f1c | ||
|
|
b5da8015b5 | ||
|
|
162309e54a | ||
|
|
fde6707c9c | ||
|
|
8a56b36166 | ||
|
|
c808c6d4e4 | ||
|
|
8a172d7f40 | ||
|
|
0cdc4b138a | ||
|
|
6b81b307b7 | ||
|
|
69bb1e493e | ||
|
|
8a5d56ee39 | ||
|
|
199bb7bbd7 | ||
|
|
b3b3fa7718 | ||
|
|
4f63a28b61 | ||
|
|
8a30f95aa7 | ||
|
|
5827f2b927 | ||
|
|
47db70a12e | ||
|
|
0818cda62e | ||
|
|
51c9ef2795 | ||
|
|
b8600be086 | ||
|
|
798ffc4867 | ||
|
|
b1c4c4ffad | ||
|
|
a28dd50e36 | ||
|
|
c296111bcc | ||
|
|
57615f1b39 | ||
|
|
345ab827c0 | ||
|
|
8d219c0523 | ||
|
|
1fb1c85208 | ||
|
|
91e4a87dc0 | ||
|
|
eb3098a2ad | ||
|
|
5ea02a71fe | ||
|
|
c96101960f | ||
|
|
a39b9465a6 | ||
|
|
99d34a39ce | ||
|
|
7370fda2c7 | ||
|
|
b133728f1d | ||
|
|
224b2abc5c | ||
|
|
cbd7d7149c | ||
|
|
cef3b7483d | ||
|
|
05d6112605 | ||
|
|
2d5609b1c5 | ||
|
|
8c3b76e2d0 | ||
|
|
7eaa72529a | ||
|
|
1405d0a599 | ||
|
|
9da7edc31f | ||
|
|
86fbe929d4 | ||
|
|
28150307ca | ||
|
|
d3610011e6 | ||
|
|
a4c1cd5274 | ||
|
|
af26764539 | ||
|
|
b9523b4864 | ||
|
|
72e2a331da | ||
|
|
b6f26eb6dc | ||
|
|
9660b4e58b | ||
|
|
e131c4c996 | ||
|
|
54eb6c8cd3 | ||
|
|
1fa3516612 | ||
|
|
269c7b9859 | ||
|
|
0966466686 | ||
|
|
3c7534a35c | ||
|
|
e47ca98b95 | ||
|
|
fa9e90df24 | ||
|
|
2b9b623dd0 | ||
|
|
351b040237 | ||
|
|
d722f62947 | ||
|
|
705661e322 | ||
|
|
8962cab40c | ||
|
|
3f64653ed3 | ||
|
|
3e0f3df48c | ||
|
|
0205ab494d | ||
|
|
77a3fc5039 | ||
|
|
15db0236a8 | ||
|
|
c56fdf0ce5 | ||
|
|
d4df1c1b22 | ||
|
|
ef8cdeccd7 | ||
|
|
50bde261af | ||
|
|
523946447a | ||
|
|
ab9605cb85 | ||
|
|
185f8a9e16 | ||
|
|
cd83921f49 | ||
|
|
ca25969574 | ||
|
|
733d0ffbf4 | ||
|
|
b77ba278de | ||
|
|
8df7d1b7be | ||
|
|
a4faeb28b0 | ||
|
|
24314e2361 | ||
|
|
a2abc0c2af | ||
|
|
70ac53aa75 | ||
|
|
acb79fa3bc | ||
|
|
4725942727 | ||
|
|
e8482783f7 | ||
|
|
73a2a64158 | ||
|
|
677415bee8 | ||
|
|
69f255d181 | ||
|
|
a62f9a77f1 | ||
|
|
2d319bcc76 | ||
|
|
a247d304f1 | ||
|
|
5ce832b7ec | ||
|
|
54149bfcb2 | ||
|
|
83e948803c |
68
.github/workflows/Build.yml
vendored
68
.github/workflows/Build.yml
vendored
|
|
@ -17,7 +17,7 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev
|
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev libqt6svg6-dev libgl-dev
|
||||||
qtchooser -install qt6 $(which qmake6)
|
qtchooser -install qt6 $(which qmake6)
|
||||||
|
|
||||||
- name: Get build timestamp
|
- name: Get build timestamp
|
||||||
|
|
@ -57,7 +57,7 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev
|
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev libqt6svg6-dev
|
||||||
|
|
||||||
- name: Get build timestamp
|
- name: Get build timestamp
|
||||||
id: id_date
|
id: id_date
|
||||||
|
|
@ -88,22 +88,22 @@ jobs:
|
||||||
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI
|
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI
|
||||||
|
|
||||||
PC_Application_Windows:
|
PC_Application_Windows:
|
||||||
runs-on: windows-2019
|
runs-on: windows-2022
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: msys2/setup-msys2@v2
|
- uses: msys2/setup-msys2@v2
|
||||||
|
|
||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v4
|
||||||
with:
|
with:
|
||||||
version: '6.2.0'
|
version: '6.2.4'
|
||||||
arch: 'win64_mingw81'
|
arch: 'win64_mingw'
|
||||||
|
|
||||||
- name: Download libusb
|
- name: Download libusb
|
||||||
run: |
|
run: |
|
||||||
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.7z
|
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.7z
|
||||||
7z x libusb.7z -r -olibusb
|
7z x libusb.7z -r -olibusb
|
||||||
Xcopy /E /I /Y libusb\include ..\Qt\6.2.0\mingw81_64\include
|
Xcopy /E /I /Y libusb\include %QT_ROOT_DIR%\include
|
||||||
Xcopy /E /I /Y libusb\MinGW64\static\libusb-1.0.a Software\PC_Application\LibreVNA-GUI
|
Xcopy /E /I /Y libusb\MinGW64\static\libusb-1.0.a Software\PC_Application\LibreVNA-GUI
|
||||||
shell: cmd
|
shell: cmd
|
||||||
|
|
||||||
|
|
@ -134,10 +134,9 @@ jobs:
|
||||||
cd Software/PC_Application/LibreVNA-GUI/release
|
cd Software/PC_Application/LibreVNA-GUI/release
|
||||||
del *.o *.cpp
|
del *.o *.cpp
|
||||||
windeployqt.exe .
|
windeployqt.exe .
|
||||||
copy ..\..\..\..\..\Qt\6.2.0\mingw81_64\bin\libwinpthread-1.dll .
|
copy %QT_ROOT_DIR%\bin\libwinpthread-1.dll .
|
||||||
copy ..\..\..\..\..\Qt\6.2.0\mingw81_64\bin\libgcc_s_seh-1.dll .
|
copy %QT_ROOT_DIR%\bin\libgcc_s_seh-1.dll .
|
||||||
copy "..\..\..\..\..\Qt\6.2.0\mingw81_64\bin\libstdc++-6.dll" .
|
copy %QT_ROOT_DIR%\bin\Qt6OpenGL.dll .
|
||||||
copy ..\..\..\..\..\Qt\6.2.0\mingw81_64\bin\Qt6OpenGL.dll .
|
|
||||||
shell: cmd
|
shell: cmd
|
||||||
|
|
||||||
- name: Upload
|
- name: Upload
|
||||||
|
|
@ -188,11 +187,54 @@ jobs:
|
||||||
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: LibreVNA-GUI-OSX-${{env.LIBREVNA_VERSION}}
|
name: LibreVNA-GUI-OSX-latest-${{env.LIBREVNA_VERSION}}
|
||||||
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
|
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
|
||||||
|
|
||||||
|
PC_Application_OSX_13:
|
||||||
|
runs-on: macos-13
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
brew install qt@6 pcre
|
||||||
|
|
||||||
|
- name: Set Environment
|
||||||
|
run: |
|
||||||
|
echo "/usr/local/opt/qt@6/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
|
- name: Get build timestamp
|
||||||
|
id: id_date
|
||||||
|
run: echo "timestamp=$(date +%Y-%m-%d-%H-%M-%S)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Get app version
|
||||||
|
id: id_version
|
||||||
|
run: |
|
||||||
|
cd Software/PC_Application/LibreVNA-GUI
|
||||||
|
fw_major=`pcregrep -o '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
|
||||||
|
fw_minor=`pcregrep -o '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
|
||||||
|
fw_patch=`pcregrep -o '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
|
||||||
|
echo "app_version=v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Build application
|
||||||
|
run: |
|
||||||
|
cd Software/PC_Application/LibreVNA-GUI
|
||||||
|
qmake LibreVNA-GUI.pro
|
||||||
|
make -j9
|
||||||
|
macdeployqt LibreVNA-GUI.app
|
||||||
|
zip -ry LibreVNA-GUI.zip LibreVNA-GUI.app
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
env:
|
||||||
|
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: LibreVNA-GUI-OSX-13.7-${{env.LIBREVNA_VERSION}}
|
||||||
|
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
|
||||||
|
|
||||||
Embedded_Firmware:
|
Embedded_Firmware:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
|
|
||||||
5
.github/workflows/HIL_Tests.yml
vendored
5
.github/workflows/HIL_Tests.yml
vendored
|
|
@ -5,9 +5,6 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
- HIL_actions
|
- HIL_actions
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
Get_Repository:
|
Get_Repository:
|
||||||
|
|
@ -22,7 +19,7 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev
|
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev qt6-svg-dev
|
||||||
|
|
||||||
- name: Build application
|
- name: Build application
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
70
.github/workflows/Release_tag_stable.yml
vendored
70
.github/workflows/Release_tag_stable.yml
vendored
|
|
@ -17,7 +17,7 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev zip
|
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev libqt6svg6-dev libgl-dev zip
|
||||||
qtchooser -install qt6 $(which qmake6)
|
qtchooser -install qt6 $(which qmake6)
|
||||||
|
|
||||||
- name: Get app version
|
- name: Get app version
|
||||||
|
|
@ -72,7 +72,7 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev
|
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev qt6-svg-dev
|
||||||
|
|
||||||
- name: Get app version
|
- name: Get app version
|
||||||
id: id_version
|
id: id_version
|
||||||
|
|
@ -97,29 +97,29 @@ jobs:
|
||||||
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.PC_Application_Ubuntu.outputs.upload_url }}
|
upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }}
|
||||||
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
|
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
|
||||||
asset_name: LibreVNA-GUI-RPi5-${{env.LIBREVNA_VERSION}}.zip
|
asset_name: LibreVNA-GUI-RPi5-${{env.LIBREVNA_VERSION}}.zip
|
||||||
asset_content_type: application/tar+gzip
|
asset_content_type: application/tar+gzip
|
||||||
|
|
||||||
PC_Application_Windows:
|
PC_Application_Windows:
|
||||||
needs: PC_Application_Ubuntu
|
needs: PC_Application_Ubuntu
|
||||||
runs-on: windows-2019
|
runs-on: windows-2022
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: msys2/setup-msys2@v2
|
- uses: msys2/setup-msys2@v2
|
||||||
|
|
||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v2
|
uses: jurplel/install-qt-action@v4
|
||||||
with:
|
with:
|
||||||
version: '6.2.0'
|
version: '6.2.4'
|
||||||
arch: 'win64_mingw81'
|
arch: 'win64_mingw'
|
||||||
|
|
||||||
- name: Download libusb
|
- name: Download libusb
|
||||||
run: |
|
run: |
|
||||||
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.7z
|
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.7z
|
||||||
7z x libusb.7z -r -olibusb
|
7z x libusb.7z -r -olibusb
|
||||||
Xcopy /E /I /Y libusb\include ..\Qt\6.2.0\mingw81_64\include
|
Xcopy /E /I /Y libusb\include %QT_ROOT_DIR%\include
|
||||||
Xcopy /E /I /Y libusb\MinGW64\static\libusb-1.0.a Software\PC_Application\LibreVNA-GUI
|
Xcopy /E /I /Y libusb\MinGW64\static\libusb-1.0.a Software\PC_Application\LibreVNA-GUI
|
||||||
shell: cmd
|
shell: cmd
|
||||||
|
|
||||||
|
|
@ -145,10 +145,9 @@ jobs:
|
||||||
cd Software/PC_Application/LibreVNA-GUI/release
|
cd Software/PC_Application/LibreVNA-GUI/release
|
||||||
del *.o *.cpp
|
del *.o *.cpp
|
||||||
windeployqt.exe .
|
windeployqt.exe .
|
||||||
copy ..\..\..\..\..\Qt\6.2.0\mingw81_64\bin\libwinpthread-1.dll .
|
copy %QT_ROOT_DIR%\bin\libwinpthread-1.dll .
|
||||||
copy ..\..\..\..\..\Qt\6.2.0\mingw81_64\bin\libgcc_s_seh-1.dll .
|
copy %QT_ROOT_DIR%\bin\libgcc_s_seh-1.dll .
|
||||||
copy "..\..\..\..\..\Qt\6.2.0\mingw81_64\bin\libstdc++-6.dll" .
|
copy %QT_ROOT_DIR%\bin\Qt6OpenGL.dll .
|
||||||
copy ..\..\..\..\..\Qt\6.2.0\mingw81_64\bin\Qt6OpenGL.dll .
|
|
||||||
shell: cmd
|
shell: cmd
|
||||||
|
|
||||||
- name: Zip app
|
- name: Zip app
|
||||||
|
|
@ -209,12 +208,55 @@ jobs:
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }}
|
upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }}
|
||||||
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
|
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
|
||||||
asset_name: LibreVNA-GUI-OSX-${{env.LIBREVNA_VERSION}}.zip
|
asset_name: LibreVNA-GUI-OSX-latest-${{env.LIBREVNA_VERSION}}.zip
|
||||||
|
asset_content_type: application/tar+gzip
|
||||||
|
|
||||||
|
PC_Application_OSX_13:
|
||||||
|
needs: PC_Application_Ubuntu
|
||||||
|
runs-on: macos-13
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
brew install qt@6 pcre
|
||||||
|
|
||||||
|
- name: Set Environment
|
||||||
|
run: |
|
||||||
|
echo "/usr/local/opt/qt@6/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
|
- name: Get app version
|
||||||
|
id: id_version
|
||||||
|
run: |
|
||||||
|
cd Software/PC_Application/LibreVNA-GUI
|
||||||
|
fw_major=`pcregrep -o '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
|
||||||
|
fw_minor=`pcregrep -o '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
|
||||||
|
fw_patch=`pcregrep -o '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
|
||||||
|
echo "app_version=v$fw_major.$fw_minor.$fw_patch" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Build application
|
||||||
|
run: |
|
||||||
|
cd Software/PC_Application/LibreVNA-GUI
|
||||||
|
qmake LibreVNA-GUI.pro
|
||||||
|
make -j9
|
||||||
|
macdeployqt LibreVNA-GUI.app
|
||||||
|
zip -ry LibreVNA-GUI.zip LibreVNA-GUI.app
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: 'Upload release asset'
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }}
|
||||||
|
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
|
||||||
|
asset_name: LibreVNA-GUI-OSX-13.7-${{env.LIBREVNA_VERSION}}.zip
|
||||||
asset_content_type: application/tar+gzip
|
asset_content_type: application/tar+gzip
|
||||||
|
|
||||||
Embedded_Firmware:
|
Embedded_Firmware:
|
||||||
needs: PC_Application_Ubuntu
|
needs: PC_Application_Ubuntu
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
|
|
||||||
2
.github/workflows/Test.yml
vendored
2
.github/workflows/Test.yml
vendored
|
|
@ -17,7 +17,7 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev
|
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev libqt6svg6-dev libgl-dev
|
||||||
qtchooser -install qt6 $(which qmake6)
|
qtchooser -install qt6 $(which qmake6)
|
||||||
|
|
||||||
- name: Build Tests
|
- name: Build Tests
|
||||||
|
|
|
||||||
61
CHANGELOG.md
61
CHANGELOG.md
|
|
@ -1,5 +1,66 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v1.6.4
|
||||||
|
|
||||||
|
Critical bugfix for the embedded firmware:
|
||||||
|
|
||||||
|
- Fix SPI flash timing, see #315
|
||||||
|
|
||||||
|
Minor improvement for the GUI:
|
||||||
|
|
||||||
|
- Option to add titles to graphs
|
||||||
|
- Show trace names even when only enabled on secondary Y axis
|
||||||
|
- Add x axis variable to the available variables for formulas in "from math" traces
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## v1.6.3
|
||||||
|
|
||||||
|
Bugfixes and quality of life improvements
|
||||||
|
|
||||||
|
- Windows and macOS: add icon to GUI application
|
||||||
|
- From math traces:
|
||||||
|
- Validate formula immediately and show error messages
|
||||||
|
- Bugfix: do not reset variable names when opening trace edit dialog again
|
||||||
|
- Fix crash when combining with de-embedding
|
||||||
|
- Calibration:
|
||||||
|
- Interpolate points using mag/phase instead of real/imag (minor improvements in accuracy)
|
||||||
|
- Update widget when changing span
|
||||||
|
- Fix race condition when aborting measurement
|
||||||
|
- Reset LibreCAL port settings when aborting measurement
|
||||||
|
- Manual improvement: typos and wording
|
||||||
|
- Increase USB buffer timeout during sweep (should prevent disconnect when CPU is very busy)
|
||||||
|
- Include actual serial of connected device in SCPI \*IDN? response
|
||||||
|
- Allow group delay plot for reflection traces
|
||||||
|
- Configurable default Y axis limits per Y axis type
|
||||||
|
- Fix streaming server output for zero span sweeps
|
||||||
|
- Synchronization improvements for compound device
|
||||||
|
- Allow name changes for existing modes
|
||||||
|
|
||||||
|
## v1.6.2
|
||||||
|
|
||||||
|
Mostly bugfixes with only minor new features
|
||||||
|
|
||||||
|
- New features:
|
||||||
|
- New SCPI commands:
|
||||||
|
- Temperatures readout
|
||||||
|
- Complete control over manual control via SCPI
|
||||||
|
- Padding option for TDR/DFT to increase resolution
|
||||||
|
- Support for dwell time (adjustable delay before each point in the sweep)
|
||||||
|
- Bugfixes:
|
||||||
|
- Fix crash when deleting traces with TDR/DFT math
|
||||||
|
- Spectrum analyzer: Improve tracking generator frequency accuracy
|
||||||
|
- Fix swapped LO and Source unlock LEDs
|
||||||
|
- Reduce amount of mode switches when starting and loading setups (faster loading time)
|
||||||
|
- Use correct units on spectrum analyzer graphs (dBm instead of dB)
|
||||||
|
- Fix Touchstone export file ending
|
||||||
|
- Update eye diagram when changing settings while the trace data does not change
|
||||||
|
- Keep eye diagram trace visible when other trace is deleted
|
||||||
|
- Resolve math references when duplicating "from math" traces
|
||||||
|
- Update LibreCAL API, detect LibreCALs with bad factory coefficients
|
||||||
|
- Fix impedance renormalization (general formulas for parameter conversions)
|
||||||
|
- Fix rare and random phase reversals of S parameter measurements
|
||||||
|
|
||||||
## v1.6.1
|
## v1.6.1
|
||||||
|
|
||||||
Mostly bugfixes with only minor new features
|
Mostly bugfixes with only minor new features
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -13,6 +13,7 @@
|
||||||
{geometry}
|
{geometry}
|
||||||
\usepackage{tikz}
|
\usepackage{tikz}
|
||||||
\usepackage{siunitx}
|
\usepackage{siunitx}
|
||||||
|
\usepackage{minibox}
|
||||||
\DeclareSIUnit{\belmilliwatt}{Bm}
|
\DeclareSIUnit{\belmilliwatt}{Bm}
|
||||||
\DeclareSIUnit{\dBm}{\deci\belmilliwatt}
|
\DeclareSIUnit{\dBm}{\deci\belmilliwatt}
|
||||||
|
|
||||||
|
|
@ -534,6 +535,26 @@ $$ f_{firstBin} = \frac{SR_{ADC} * DFT\_FIRST\_BIN}{2^{16}}$$
|
||||||
$$ \Delta f = \frac{SR_{ADC} * DFT\_FREQ\_SPACING}{2^{24}}$$
|
$$ \Delta f = \frac{SR_{ADC} * DFT\_FREQ\_SPACING}{2^{24}}$$
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsection{SETTLING\_TIME: 0x14}
|
||||||
|
\begin{center}
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\bitrect{16}{16-\bit}
|
||||||
|
\rwbits{0}{16}{SETTLING\_TIME[15:0]}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{center}
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{SETTLING\_TIME[19:0]:} This value determines the time delay between applying the stimulus signal and the beginning of the ADC sampling.
|
||||||
|
$$ t_{delay} = \frac{1}{\SI{102.4}{\mega\hertz}} SETTLING\_TIME $$
|
||||||
|
\end{itemize}
|
||||||
|
\subsection{SETTLING\_TIME: 0x15}
|
||||||
|
\begin{center}
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\bitrect{16}{16-\bit}
|
||||||
|
\robits{0}{12}{reserved}
|
||||||
|
\rwbits{12}{4}{SETTLING\_TIME[19:16]}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
\section{SweepConfig}
|
\section{SweepConfig}
|
||||||
\label{sweepconfig}
|
\label{sweepconfig}
|
||||||
The SweepConfig contains data for the source and LO1 PLL as well as the attenuator and source filter. Each point in the sweep, needs a valid SweepConfig before the sweep is started.
|
The SweepConfig contains data for the source and LO1 PLL as well as the attenuator and source filter. Each point in the sweep, needs a valid SweepConfig before the sweep is started.
|
||||||
|
|
@ -542,7 +563,9 @@ The SweepConfig contains data for the source and LO1 PLL as well as the attenuat
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\bitrect{16}{96-\bit}
|
\bitrect{16}{96-\bit}
|
||||||
\rwbits{0}{1}{HS}
|
\rwbits{0}{1}{HS}
|
||||||
\rwbits{1}{2}{SettlingTime}
|
%\rwbits{1}{2}{SettlingTime}
|
||||||
|
\rwbits{1}{1}{\tiny LO N[6]}
|
||||||
|
\rwbits{2}{1}{\minibox{\tiny Source\\N[6]}}
|
||||||
\rwbits{3}{3}{Samples}
|
\rwbits{3}{3}{Samples}
|
||||||
\rwbits{6}{2}{SourceFilter}
|
\rwbits{6}{2}{SourceFilter}
|
||||||
\rwbits{8}{8}{LO M[11:4]}
|
\rwbits{8}{8}{LO M[11:4]}
|
||||||
|
|
@ -580,17 +603,17 @@ The SweepConfig contains data for the source and LO1 PLL as well as the attenuat
|
||||||
\end{center}
|
\end{center}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{HS: Halt sweep.} If set, settling and sampling of this sweep point will be postponed until the sweep resume command is issued.
|
\item \textbf{HS: Halt sweep.} If set, settling and sampling of this sweep point will be postponed until the sweep resume command is issued.
|
||||||
\item \textbf{SettlingTime:} Amount of time between locking of PLLs and beginning of ADC sampling
|
%\item \textbf{SettlingTime:} Amount of time between locking of PLLs and beginning of ADC sampling
|
||||||
\begin{center}
|
%\begin{center}
|
||||||
\begin{tabular}{ c|c }
|
%\begin{tabular}{ c|c }
|
||||||
Setting & Time\\
|
%Setting & Time\\
|
||||||
\hline
|
%\hline
|
||||||
00 & \SI{20}{\micro\second}\\
|
%00 & \SI{20}{\micro\second}\\
|
||||||
01 & \SI{60}{\micro\second}\\
|
%01 & \SI{60}{\micro\second}\\
|
||||||
10 & \SI{180}{\micro\second}\\
|
%10 & \SI{180}{\micro\second}\\
|
||||||
11 & \SI{540}{\micro\second}\\
|
%11 & \SI{540}{\micro\second}\\
|
||||||
\end{tabular}
|
%\end{tabular}
|
||||||
\end{center}
|
%\end{center}
|
||||||
\item \textbf{Samples:} Number of ADC samples to take
|
\item \textbf{Samples:} Number of ADC samples to take
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tabular}{ c|c|c }
|
\begin{tabular}{ c|c|c }
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -123,6 +123,7 @@
|
||||||
\usepackage{xifthen}
|
\usepackage{xifthen}
|
||||||
\newcommand{\vna}{LibreVNA}
|
\newcommand{\vna}{LibreVNA}
|
||||||
\newcommand{\gui}{\vna{}-GUI}
|
\newcommand{\gui}{\vna{}-GUI}
|
||||||
|
\newcommand{\subsubsubsection}[1]{\paragraph{#1}\mbox{}\\\\}
|
||||||
|
|
||||||
\newcommand{\screenshot}[2]{\begin{center}
|
\newcommand{\screenshot}[2]{\begin{center}
|
||||||
\includegraphics[width=#1\textwidth]{Screenshots/#2}
|
\includegraphics[width=#1\textwidth]{Screenshots/#2}
|
||||||
|
|
@ -153,7 +154,8 @@
|
||||||
\begin{document}
|
\begin{document}
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
\setcounter{tocdepth}{3}
|
\setcounter{tocdepth}{4}
|
||||||
|
\setcounter{secnumdepth}{4}
|
||||||
\tableofcontents
|
\tableofcontents
|
||||||
|
|
||||||
\clearpage
|
\clearpage
|
||||||
|
|
@ -211,7 +213,11 @@ VNA:FREQ:SPAN? # Read the current span
|
||||||
\section{Commands}
|
\section{Commands}
|
||||||
\subsection{General Commands}
|
\subsection{General Commands}
|
||||||
\subsubsection{*IDN}
|
\subsubsection{*IDN}
|
||||||
\query{Returns the identifications string}{*IDN?}{None}{LibreVNA,LibreVNA-GUI,dummy\_serial,<software version>}
|
\query{Returns the identifications string}{*IDN?}{None}{LibreVNA,LibreVNA-GUI,<serial>,<software version>}
|
||||||
|
\begin{itemize}
|
||||||
|
\item The serial number is the serial number from the connected LibreVNA. If none is connected, it will be set to ``Not connected''
|
||||||
|
\item The software version is the version of the \gui{}, not the firmware version of the connected \vna{}
|
||||||
|
\end{itemize}
|
||||||
\subsubsection{*RST}
|
\subsubsection{*RST}
|
||||||
\event{Resets the GUI (and any connected device) to the default state}{*RST}{None}
|
\event{Resets the GUI (and any connected device) to the default state}{*RST}{None}
|
||||||
\subsubsection{*CLS}
|
\subsubsection{*CLS}
|
||||||
|
|
@ -257,14 +263,6 @@ This section contains general device commands, available regardless of the curre
|
||||||
206039903350
|
206039903350
|
||||||
\end{example}
|
\end{example}
|
||||||
|
|
||||||
\subsubsection{DEVice:UPDATE}
|
|
||||||
\event{Updates the firmware of the connected device}{DEVice:UPDATE <fw\_file>}{<fw\_file> Path to the firmware file}
|
|
||||||
Important points when saving/loading setup files through SCPI commands:
|
|
||||||
\begin{itemize}
|
|
||||||
\item The path must be either absolute or relative to the location of the GUI application.
|
|
||||||
\item If the LibreVNA-GUI (and thus also the SCPI server) is running on a different machine than the SCPI client, the firmware file must be stored on the machine that runs the GUI.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\subsubsection{DEVice:LIST}
|
\subsubsection{DEVice:LIST}
|
||||||
\query{Lists all available devices by their serial numbers}{DEVice:LIST?}{None}{List of serialnumbers}
|
\query{Lists all available devices by their serial numbers}{DEVice:LIST?}{None}{List of serialnumbers}
|
||||||
\begin{example}
|
\begin{example}
|
||||||
|
|
@ -343,12 +341,6 @@ Important points when saving/loading setup files through SCPI commands:
|
||||||
:DEV:INF:HWREV?
|
:DEV:INF:HWREV?
|
||||||
B
|
B
|
||||||
\end{example}
|
\end{example}
|
||||||
\subsubsection{DEVice:INFo:TEMPeratures}
|
|
||||||
\query{Queries the temperatures of certain chips}{DEVice:INFo:TEMPeratures?}{None}{<source>/<1.LO>/<CPU>}
|
|
||||||
\begin{example}
|
|
||||||
:DEV:INF:TEMP?
|
|
||||||
45/51/31
|
|
||||||
\end{example}
|
|
||||||
|
|
||||||
\subsubsection{DEVice:INFo:LIMits:MINFrequency}
|
\subsubsection{DEVice:INFo:LIMits:MINFrequency}
|
||||||
\query{Queries the lowest frequency the device can measure}{DEVice:INFo:LIMits:MINFrequency?}{None}{lowest frequency in Hz}
|
\query{Queries the lowest frequency the device can measure}{DEVice:INFo:LIMits:MINFrequency?}{None}{lowest frequency in Hz}
|
||||||
|
|
@ -471,6 +463,21 @@ If single sweep is enabled, the acquisition is stopped when the required number
|
||||||
\item Issue the command again (i.e. VNA:ACQ:SINGLE TRUE always triggers a new sweep)
|
\item Issue the command again (i.e. VNA:ACQ:SINGLE TRUE always triggers a new sweep)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsubsection{VNA:ACQuisition:FREQuency}
|
||||||
|
\query{Returns the current frequency of the sweep}{VNA:ACQuisition:FREQuency?}{None}{<Frequency in Hz>}
|
||||||
|
|
||||||
|
This command only returns valid data when a sweep is running and the the sweep is a frequency sweep.
|
||||||
|
|
||||||
|
\subsubsection{VNA:ACQuisition:POWer}
|
||||||
|
\query{Returns the current power of the sweep}{VNA:ACQuisition:POWer?}{None}{<Power in dBm>}
|
||||||
|
|
||||||
|
This command only returns valid data when a sweep is running and the the sweep is a power sweep.
|
||||||
|
|
||||||
|
\subsubsection{VNA:ACQuisition:TIME}
|
||||||
|
\query{Returns the current time of the sweep}{VNA:ACQuisition:TIME?}{None}{<Time in seconds>}
|
||||||
|
|
||||||
|
This command only returns valid data when a sweep is running and the the sweep is a zero-span sweep.
|
||||||
|
|
||||||
\subsubsection{VNA:STIMulus:LVL}
|
\subsubsection{VNA:STIMulus:LVL}
|
||||||
\event{Sets the output power of the stimulus signal when sweep type is frequency}{VNA:STIMulus:LVL}{<power>, in dBm}
|
\event{Sets the output power of the stimulus signal when sweep type is frequency}{VNA:STIMulus:LVL}{<power>, in dBm}
|
||||||
\query{Queries the currently selected output power}{VNA:STIMulus:LVL?}{None}{power in dBm}
|
\query{Queries the currently selected output power}{VNA:STIMulus:LVL?}{None}{power in dBm}
|
||||||
|
|
@ -610,6 +617,9 @@ If no de-embedding is configured for the selected trace, enabling the de-embeddi
|
||||||
\hspace{1cm}LOAD\\
|
\hspace{1cm}LOAD\\
|
||||||
\hspace{1cm}THROUGH\\
|
\hspace{1cm}THROUGH\\
|
||||||
\hspace{1cm}ISOLATION\\
|
\hspace{1cm}ISOLATION\\
|
||||||
|
\hspace{1cm}SLIDINGLOAD\\
|
||||||
|
\hspace{1cm}REFLECT\\
|
||||||
|
\hspace{1cm}LINE\\
|
||||||
{[<standard>]}, calibration kit standard name, optional\\}
|
{[<standard>]}, calibration kit standard name, optional\\}
|
||||||
|
|
||||||
\subsubsection{VNA:CALibration:TYPE}
|
\subsubsection{VNA:CALibration:TYPE}
|
||||||
|
|
@ -618,7 +628,10 @@ If no de-embedding is configured for the selected trace, enabling the de-embeddi
|
||||||
\hspace{1cm}SHORT\\
|
\hspace{1cm}SHORT\\
|
||||||
\hspace{1cm}LOAD\\
|
\hspace{1cm}LOAD\\
|
||||||
\hspace{1cm}THROUGH\\
|
\hspace{1cm}THROUGH\\
|
||||||
\hspace{1cm}ISOLATION\\}
|
\hspace{1cm}ISOLATION\\
|
||||||
|
\hspace{1cm}SLIDINGLOAD\\
|
||||||
|
\hspace{1cm}REFLECT\\
|
||||||
|
\hspace{1cm}LINE\\}
|
||||||
|
|
||||||
\subsubsection{VNA:CALibration:PORT}
|
\subsubsection{VNA:CALibration:PORT}
|
||||||
\event{Sets the port for the specified measurement}{VNA:CALibration:PORT}{<measurement number> <port number>}
|
\event{Sets the port for the specified measurement}{VNA:CALibration:PORT}{<measurement number> <port number>}
|
||||||
|
|
@ -646,6 +659,371 @@ Important points when saving/loading calibration files through SCPI commands:
|
||||||
\subsubsection{VNA:CALibration:LOAD}
|
\subsubsection{VNA:CALibration:LOAD}
|
||||||
\query{Loads a calibration file}{VNA:CALibration:LOAD?}{<filename>}{TRUE or FALSE}
|
\query{Loads a calibration file}{VNA:CALibration:LOAD?}{<filename>}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{VNA:CALibration:KIT:MANufacturer}
|
||||||
|
\event{Sets the manufacturer name of the calibration kit}{VNA:CALibration:KIT:MANufacturer}{<manufacturer>}
|
||||||
|
\query{Returns the manufacturer name of the calibration kit}{VNA:CALibration:KIT:MANufacturer?}{None}{<manufacturer>}
|
||||||
|
|
||||||
|
\subsubsection{VNA:CALibration:KIT:SERial}
|
||||||
|
\event{Sets the serial number of the calibration kit}{VNA:CALibration:KIT:SERial}{<serial number>}
|
||||||
|
\query{Returns the serial number of the calibration kit}{VNA:CALibration:KIT:SERial?}{None}{<serial number>}
|
||||||
|
|
||||||
|
\subsubsection{VNA:CALibration:KIT:DESCription}
|
||||||
|
\event{Sets the description of the calibration kit}{VNA:CALibration:KIT:DESCription}{<description>}
|
||||||
|
\query{Returns the description of the calibration kit}{VNA:CALibration:KIT:DESCription?}{None}{<description>}
|
||||||
|
|
||||||
|
\subsubsection{VNA:CALibration:KIT:FILEname}
|
||||||
|
\query{Returns the filename of the calibration kit}{VNA:CALibration:KIT:FILEname?}{None}{<filename>}
|
||||||
|
|
||||||
|
The filename is only available if the calibration kit was loaded from a dedicated file. If it was loaded as part of a calibration file or has not been loaded since the GUI started, no filename will be returned.
|
||||||
|
|
||||||
|
\subsubsection{VNA:CALibration:KIT:SAVE}
|
||||||
|
\event{Saves the active calibration kit to a file}{VNA:CALibration:KIT:SAVE}{<filename>}
|
||||||
|
Important points when saving/loading calibration kit files through SCPI commands:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Filenames must be either absolute or relative to the location of the GUI application.
|
||||||
|
\item If the LibreVNA-GUI (and thus also the SCPI server) is running on a different machine than the SCPI client, the calibration kit files will be saved/loaded from the machine that runs the GUI.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsubsection{VNA:CALibration:KIT:LOAD}
|
||||||
|
\query{Loads a calibration kit file}{VNA:CALibration:KIT:LOAD?}{<filename>}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{Common calibration kit standards commands}
|
||||||
|
The calibration kit supports an arbitrary amount of standards. This requires a flexible SCPI API which adjusts to the currently configured standards.
|
||||||
|
|
||||||
|
A few calibration kit standard commands are always available and they can be used to create and delete calibration standards. Every created calibration standard adds their own commands. They can be accessed by including the calibration standard number in the command (shown as ``x'' in the following commands).
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:CLEAR}
|
||||||
|
\event{Resets the calibration kit to default values (ideal standards)}{VNA:CALibration:KIT:STAndard:CLEAR}{None}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:NUMber}
|
||||||
|
\query{Returns the number of configured calibration standards}{VNA:CALibration:KIT:STAndard:NUMber?}{None}{<number of calibration standards>}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:TYPE}
|
||||||
|
\query{Returns the type of a created calibration standard}{VNA:CALibration:KIT:STAndard:TYPE?}{<x> Number of calibration standard}{Type of standard, one of:\\
|
||||||
|
\hspace{1cm}Open\\
|
||||||
|
\hspace{1cm}Short\\
|
||||||
|
\hspace{1cm}Load\\
|
||||||
|
\hspace{1cm}Reflect\\
|
||||||
|
\hspace{1cm}Through\\
|
||||||
|
\hspace{1cm}Line\\}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:NEW}
|
||||||
|
\event{Adds a new calibration standard}{VNA:CALibration:KIT:STAndard:NEW}{<type> Type of calibration standard, one of:\\
|
||||||
|
\hspace{1cm}Open\\
|
||||||
|
\hspace{1cm}Short\\
|
||||||
|
\hspace{1cm}Load\\
|
||||||
|
\hspace{1cm}Reflect\\
|
||||||
|
\hspace{1cm}Through\\
|
||||||
|
\hspace{1cm}Line\\
|
||||||
|
<name> User selectable name of new standard}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:DELete}
|
||||||
|
\event{Removes a calibration standard}{VNA:CALibration:KIT:STAndard:DELete}{<x> Number of standard to delete}
|
||||||
|
|
||||||
|
\subsubsection{OPEN standard commands}
|
||||||
|
The following commands are only valid for a calibration standard of type ``Open''. The ``x'' in the command names must be replaced with the calibration standard number.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:NAME}
|
||||||
|
\event{Sets the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME}{<name> User selectable name}
|
||||||
|
\query{Queries the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME?}{None}{<name> User selectable name}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:Z0}
|
||||||
|
\event{Sets the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0}{<Z> Characteristic impedance in Ohm}
|
||||||
|
\query{Queries the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0?}{None}{<Z> Characteristic impedance in Ohm}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:DELAY}
|
||||||
|
\event{Sets the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
\query{Queries the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY?}{None}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:LOSS}
|
||||||
|
\event{Sets the loss of the standard}{VNA:CALibration:KIT:STAndard:x:LOSS}{<loss> Loss in \unit{\giga\ohm\per\second}}
|
||||||
|
\query{Queries the loss of the standard}{VNA:CALibration:KIT:STAndard:x:LOSS?}{None}{<loss> Loss in \unit{\giga\ohm\per\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:C0}
|
||||||
|
\event{Sets the fringing capacitance polynom term 0 of the standard}{VNA:CALibration:KIT:STAndard:x:C0}{<C0> in \num{d-15}\unit{\farad}}
|
||||||
|
\query{Queries the fringing capacitance polynom term 0 of the standard}{VNA:CALibration:KIT:STAndard:x:C0?}{None}{<C0> in \num{d-15}\unit{\farad}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:C1}
|
||||||
|
\event{Sets the fringing capacitance polynom term 1 of the standard}{VNA:CALibration:KIT:STAndard:x:C1}{<C1> in \num{d-27}\unit{\farad\per\hertz}}
|
||||||
|
\query{Queries the fringing capacitance polynom term 1 of the standard}{VNA:CALibration:KIT:STAndard:x:C1?}{None}{<C1> in \num{d-27}\unit{\farad\per\hertz}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:C2}
|
||||||
|
\event{Sets the fringing capacitance polynom term 2 of the standard}{VNA:CALibration:KIT:STAndard:x:C2}{<C2> in \num{d-36}\unit{\farad\per\hertz\squared}}
|
||||||
|
\query{Queries the fringing capacitance polynom term 2 of the standard}{VNA:CALibration:KIT:STAndard:x:C2?}{None}{<C2> in \num{d-36}\unit{\farad\per\hertz\squared}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:C3}
|
||||||
|
\event{Sets the fringing capacitance polynom term 3 of the standard}{VNA:CALibration:KIT:STAndard:x:C3}{<C3> in \num{d-45}\unit{\farad\per\hertz\cubed}}
|
||||||
|
\query{Queries the fringing capacitance polynom term 3 of the standard}{VNA:CALibration:KIT:STAndard:x:C3?}{None}{<C3> in \num{d-45}\unit{\farad\per\hertz\cubed}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:FILE}
|
||||||
|
\event{Loads the coefficients for the calibration standard from a touchstone file}{VNA:CALibration:KIT:STAndard:x:FILE}{<filename>\\<port> sets the port from the file which is used to define the standard, optional}
|
||||||
|
|
||||||
|
\subsubsection{SHORT standard commands}
|
||||||
|
The following commands are only valid for a calibration standard of type ``Short''. The ``x'' in the command names must be replaced with the calibration standard number.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:NAME}
|
||||||
|
\event{Sets the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME}{<name> User selectable name}
|
||||||
|
\query{Queries the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME?}{None}{<name> User selectable name}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:Z0}
|
||||||
|
\event{Sets the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0}{<Z> Characteristic impedance in Ohm}
|
||||||
|
\query{Queries the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0?}{None}{<Z> Characteristic impedance in Ohm}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:DELAY}
|
||||||
|
\event{Sets the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
\query{Queries the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY?}{None}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:LOSS}
|
||||||
|
\event{Sets the loss of the standard}{VNA:CALibration:KIT:STAndard:x:LOSS}{<loss> Loss in \unit{\giga\ohm\per\second}}
|
||||||
|
\query{Queries the loss of the standard}{VNA:CALibration:KIT:STAndard:x:LOSS?}{None}{<loss> Loss in \unit{\giga\ohm\per\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:L0}
|
||||||
|
\event{Sets the residual inductance polynom term 0 of the standard}{VNA:CALibration:KIT:STAndard:x:L0}{<L0> in \num{d-12}\unit{\henry}}
|
||||||
|
\query{Queries the residual inductance polynom term 0 of the standard}{VNA:CALibration:KIT:STAndard:x:L0?}{None}{<L0> in \num{d-12}\unit{\henry}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:L1}
|
||||||
|
\event{Sets the residual inductance polynom term 1 of the standard}{VNA:CALibration:KIT:STAndard:x:L1}{<L1> in \num{d-24}\unit{\henry\per\hertz}}
|
||||||
|
\query{Queries the residual inductance polynom term 1 of the standard}{VNA:CALibration:KIT:STAndard:x:L1?}{None}{<L1> in \num{d-24}\unit{\henry\per\hertz}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:L2}
|
||||||
|
\event{Sets the residual inductance polynom term 2 of the standard}{VNA:CALibration:KIT:STAndard:x:L2}{<L2> in \num{d-33}\unit{\henry\per\hertz\squared}}
|
||||||
|
\query{Queries the residual inductance polynom term 2 of the standard}{VNA:CALibration:KIT:STAndard:x:L2?}{None}{<L2> in \num{d-33}\unit{\henry\per\hertz\squared}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:L3}
|
||||||
|
\event{Sets the residual inductance polynom term 3 of the standard}{VNA:CALibration:KIT:STAndard:x:L3}{<L3> in \num{d-42}\unit{\henry\per\hertz\cubed}}
|
||||||
|
\query{Queries the residual inductance polynom term 3 of the standard}{VNA:CALibration:KIT:STAndard:x:L3?}{None}{<L3> in \num{d-42}\unit{\henry\per\hertz\cubed}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:FILE}
|
||||||
|
\event{Loads the coefficients for the calibration standard from a touchstone file}{VNA:CALibration:KIT:STAndard:x:FILE}{<filename>\\<port> sets the port from the file which is used to define the standard, optional}
|
||||||
|
|
||||||
|
\subsubsection{LOAD standard commands}
|
||||||
|
The following commands are only valid for a calibration standard of type ``Load''. The ``x'' in the command names must be replaced with the calibration standard number.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:NAME}
|
||||||
|
\event{Sets the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME}{<name> User selectable name}
|
||||||
|
\query{Queries the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME?}{None}{<name> User selectable name}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:RESistance}
|
||||||
|
\event{Sets the resistance of the standard}{VNA:CALibration:KIT:STAndard:x:RESistance}{<R> in \unit{\ohm}}
|
||||||
|
\query{Queries the resistance of the standard}{VNA:CALibration:KIT:STAndard:x:RESistance?}{None}{<R> in \unit{\ohm}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:Z0}
|
||||||
|
\event{Sets the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0}{<Z> Characteristic impedance in Ohm}
|
||||||
|
\query{Queries the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0?}{None}{<Z> Characteristic impedance in Ohm}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:DELAY}
|
||||||
|
\event{Sets the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
\query{Queries the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY?}{None}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:LOSS}
|
||||||
|
\event{Sets the loss of the standard}{VNA:CALibration:KIT:STAndard:x:LOSS}{<loss> Loss in \unit{\giga\ohm\per\second}}
|
||||||
|
\query{Queries the loss of the standard}{VNA:CALibration:KIT:STAndard:x:LOSS?}{None}{<loss> Loss in \unit{\giga\ohm\per\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:CARallel}
|
||||||
|
\event{Sets the residual capacitance polynom of the standard}{VNA:CALibration:KIT:STAndard:x:CARallel}{<C> in \unit{\farad}}
|
||||||
|
\query{Queries the residual capacitance of the standard}{VNA:CALibration:KIT:STAndard:x:CARallel?}{None}{<C> in \unit{\farad}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:LSERies}
|
||||||
|
\event{Sets the residual inductance of the standard}{VNA:CALibration:KIT:STAndard:x:LSERies}{<L> in \unit{\henry}}
|
||||||
|
\query{Queries the residual inductance of the standard}{VNA:CALibration:KIT:STAndard:x:LSERies?}{None}{<L> in \unit{\henry}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:CFIRST}
|
||||||
|
\event{Sets the order of residual capacitance/inductance}{VNA:CALibration:KIT:STAndard:x:CFIRST}{TRUE or FALSE}
|
||||||
|
\query{Queries the order of residual capacitance/inductance}{VNA:CALibration:KIT:STAndard:x:CFIRST?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:FILE}
|
||||||
|
\event{Loads the coefficients for the calibration standard from a touchstone file}{VNA:CALibration:KIT:STAndard:x:FILE}{<filename>\\<port> sets the port from the file which is used to define the standard, optional}
|
||||||
|
|
||||||
|
\subsubsection{REFLECT standard commands}
|
||||||
|
The following commands are only valid for a calibration standard of type ``Reflect''. The ``x'' in the command names must be replaced with the calibration standard number.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:NAME}
|
||||||
|
\event{Sets the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME}{<name> User selectable name}
|
||||||
|
\query{Queries the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME?}{None}{<name> User selectable name}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:SHORT}
|
||||||
|
\event{Sets the type of reflection standard}{VNA:CALibration:KIT:STAndard:x:SHORT}{TRUE for short standard or FALSE for open standard}
|
||||||
|
\query{Queries the type of reflection standard}{VNA:CALibration:KIT:STAndard:x:SHORT?}{None}{TRUE for short standard or FALSE for open standard}
|
||||||
|
|
||||||
|
\subsubsection{THROUGH standard commands}
|
||||||
|
The following commands are only valid for a calibration standard of type ``Through''. The ``x'' in the command names must be replaced with the calibration standard number.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:NAME}
|
||||||
|
\event{Sets the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME}{<name> User selectable name}
|
||||||
|
\query{Queries the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME?}{None}{<name> User selectable name}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:Z0}
|
||||||
|
\event{Sets the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0}{<Z> Characteristic impedance in Ohm}
|
||||||
|
\query{Queries the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0?}{None}{<Z> Characteristic impedance in Ohm}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:DELAY}
|
||||||
|
\event{Sets the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
\query{Queries the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY?}{None}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:LOSS}
|
||||||
|
\event{Sets the loss of the standard}{VNA:CALibration:KIT:STAndard:x:LOSS}{<loss> Loss in \unit{\giga\ohm\per\second}}
|
||||||
|
\query{Queries the loss of the standard}{VNA:CALibration:KIT:STAndard:x:LOSS?}{None}{<loss> Loss in \unit{\giga\ohm\per\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:FILE}
|
||||||
|
\event{Loads the coefficients for the calibration standard from a touchstone file}{VNA:CALibration:KIT:STAndard:x:FILE}{<filename>\\
|
||||||
|
<port1> selects the first port from the file which is used to define the standard\\
|
||||||
|
<port1> selects the second port from the file which is used to define the standard}
|
||||||
|
|
||||||
|
\subsubsection{LINE standard commands}
|
||||||
|
The following commands are only valid for a calibration standard of type ``Line''. The ``x'' in the command names must be replaced with the calibration standard number.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:NAME}
|
||||||
|
\event{Sets the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME}{<name> User selectable name}
|
||||||
|
\query{Queries the name of the standard}{VNA:CALibration:KIT:STAndard:x:NAME?}{None}{<name> User selectable name}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:Z0}
|
||||||
|
\event{Sets the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0}{<Z> Characteristic impedance in Ohm}
|
||||||
|
\query{Queries the characteristic impedance of the standard}{VNA:CALibration:KIT:STAndard:x:Z0?}{None}{<Z> Characteristic impedance in Ohm}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:DELAY}
|
||||||
|
\event{Sets the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
\query{Queries the delay of the standard}{VNA:CALibration:KIT:STAndard:x:DELAY?}{None}{<delay> Delay in \unit{\pico\second}}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:CALibration:KIT:STAndard:x:FILE}
|
||||||
|
\event{Loads the coefficients for the calibration standard from a touchstone file}{VNA:CALibration:KIT:STAndard:x:FILE}{<filename>\\
|
||||||
|
<port1> selects the first port from the file which is used to define the standard\\
|
||||||
|
<port1> selects the second port from the file which is used to define the standard}
|
||||||
|
|
||||||
|
\subsubsection{Common Deembedding Commands}
|
||||||
|
The VNA supports various deembedding options which can also be configured through the SCPI API. Because the deembedding system is flexible and supports any number of deembedding options at the same time, the SCPI API is also flexible. Instead of fixed commands, the available commands change depending on the configured deembedding options.
|
||||||
|
|
||||||
|
A few deembedding commands are always available and they can be used to create, delete and swap deembedding options. Every created deembedding option adds their own commands. They can be accessed by including the option number in the command (shown as ``x'' in the following commands).
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:NUMber}
|
||||||
|
\query{Returns the number of configured deembedding options}{VNA:DEEMBedding:NUMber?}{None}{<number of deembedding options>}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:TYPE}
|
||||||
|
\query{Returns the type of a configured deembedding option}{VNA:DEEMBedding:TYPE?}{<x> Number of deembedding option}{Type of option, one of:\\
|
||||||
|
\hspace{1cm}Port\_Extension\\
|
||||||
|
\hspace{1cm}2xThru\\
|
||||||
|
\hspace{1cm}Matching\_Network\\
|
||||||
|
\hspace{1cm}Impedance\_Renormalization\\}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:NEW}
|
||||||
|
\event{Adds a new deembedding option}{VNA:DEEMBedding:NEW}{<type> Type of option, one of:\\
|
||||||
|
\hspace{1cm}Port\_Extension\\
|
||||||
|
\hspace{1cm}2xThru\\
|
||||||
|
\hspace{1cm}Matching\_Network\\
|
||||||
|
\hspace{1cm}Impedance\_Renormalization\\}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:DELete}
|
||||||
|
\event{Removes a deembedding option}{VNA:DEEMBedding:DELete}{<x> Number of option to delete}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:SWAP}
|
||||||
|
\event{Swaps the order of two deembedding options}{VNA:DEEMBedding:SWAP}{<x1> Number of option 1 to swap\\<x2> Number of option 2 to swap}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:CLEAR}
|
||||||
|
\event{Delete all deembedding options}{VNA:DEEMBedding:CLEAR}{None}
|
||||||
|
|
||||||
|
\subsubsection{Port Extension Deembedding Commands}
|
||||||
|
The following commands are only valid for a deembedding option of type ``Port\_Extension''. The ``x'' in the command names must be replaced with the option number.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:PORT}
|
||||||
|
\event{Sets the port}{VNA:DEEMBedding:x:PORT}{<port>, 1...n}
|
||||||
|
\query{Queries the selected port}{VNA:DEEMBedding:x:PORT?}{None}{<port>, 1...n}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:DELAY}
|
||||||
|
\event{Sets the delay of the port extension}{VNA:DEEMBedding:x:DELAY}{<delay> Delay in seconds}
|
||||||
|
\query{Queries the delay of the port extension}{VNA:DEEMBedding:x:DELAY?}{None}{<delay> Delay in seconds}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:DCLOSS}
|
||||||
|
\event{Sets the DC loss of the port extension}{VNA:DEEMBedding:x:DCLOSS}{<loss> Loss at DC in dB}
|
||||||
|
\query{Queries the DC loss of the port extension}{VNA:DEEMBedding:x:DCLOSS?}{None}{<loss> Loss at DC in dB}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:LOSS}
|
||||||
|
\event{Sets the loss of the port extension at the configured frequency}{VNA:DEEMBedding:x:LOSS}{<loss> Loss at frequency in dB}
|
||||||
|
\query{Queries the loss of the port extension at the configured frequency}{VNA:DEEMBedding:x:LOSS?}{None}{<loss> Loss at frequency in dB}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:FREQuency}
|
||||||
|
\event{Sets the frequency for the specified loss of the port extension}{VNA:DEEMBedding:x:FREQuency}{<freq> Frequency for loss in Hz}
|
||||||
|
\query{Queries the frequency for the specified loss of the port extension}{VNA:DEEMBedding:x:FREQuency?}{None}{<freq> Frequency for loss in Hz}
|
||||||
|
|
||||||
|
\subsubsection{2xThru Deembedding Commands}
|
||||||
|
The 2xThru deembedding does not have a SCPI API so far because it requires the user to manually make specific connections and take additional measurements.
|
||||||
|
|
||||||
|
\subsubsection{Matching Network Deembedding Commands}
|
||||||
|
The following commands are only valid for a deembedding option of type ``Matching\_Network''. The ``x'' in the command names must be replaced with the option number.
|
||||||
|
|
||||||
|
Similarly to the deembedding options, the matching network itself is also flexible and requires a flexible API as well. A similar approach is used where components in the matching network are given a number. This number is shown as ``y'' in the following commands.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:PORT}
|
||||||
|
\event{Sets the port at which the matching network is added}{VNA:DEEMBedding:x:PORT}{<port>, 1...n}
|
||||||
|
\query{Queries the port at which the matching network is added}{VNA:DEEMBedding:x:PORT?}{None}{<port>, 1...n}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:ADD}
|
||||||
|
\event{Selects whether the network is added or removed during the deembedding}{VNA:DEEMBedding:x:ADD}{TRUE if the effect of the network should be added. FALSE if the effect of the\\
|
||||||
|
\hspace{1cm}network should be subtracted}
|
||||||
|
\query{Queries whether the network is added or removed during the deembedding}{VNA:DEEMBedding:x:ADD?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:NUMber}
|
||||||
|
\query{Returns the number of configured matching network components}{VNA:DEEMBedding:x:NUMber?}{None}{<number of matching network components>}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:TYPE}
|
||||||
|
\query{Returns the type of a configured matching network component}{VNA:DEEMBedding:x:TYPE? <y>}{<y> Number of matching component}{Type of component, one of:\\
|
||||||
|
\hspace{1cm}SeriesR\\
|
||||||
|
\hspace{1cm}SeriesL\\
|
||||||
|
\hspace{1cm}SeriesC\\
|
||||||
|
\hspace{1cm}ParallelR\\
|
||||||
|
\hspace{1cm}ParallelL\\
|
||||||
|
\hspace{1cm}ParallelC\\
|
||||||
|
\hspace{1cm}Touchstone\_Through\\
|
||||||
|
\hspace{1cm}Touchstone\_Shunt\\}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:NEW}
|
||||||
|
\event{Adds a new matching network component}{VNA:DEEMBedding:x:NEW}{<type> Type of component, one of:\\
|
||||||
|
\hspace{1cm}SeriesR\\
|
||||||
|
\hspace{1cm}SeriesL\\
|
||||||
|
\hspace{1cm}SeriesC\\
|
||||||
|
\hspace{1cm}ParallelR\\
|
||||||
|
\hspace{1cm}ParallelL\\
|
||||||
|
\hspace{1cm}ParallelC\\
|
||||||
|
\hspace{1cm}Touchstone\_Through\\
|
||||||
|
\hspace{1cm}Touchstone\_Shunt\\
|
||||||
|
<pos> position at which the component will be added. A value of 0 adds the\\
|
||||||
|
\hspace{1cm}component closest to the port. This parameter is optional. If it is omitted,\\
|
||||||
|
\hspace{1cm}the component is added closest to the DUT}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:DELete}
|
||||||
|
\event{Removes a matching network component}{VNA:DEEMBedding:x:DELete}{<y> Number of component to delete}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:CLEAR}
|
||||||
|
\event{Removes all matching network components}{VNA:DEEMBedding:x:DELete}{None}
|
||||||
|
|
||||||
|
\subsubsection{Impedance Renormalization Deembedding Commands}
|
||||||
|
The following commands are only valid for a deembedding option of type ``Impedance\_Renormalization''. The ``x'' in the command names must be replaced with the option number.
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:IMPedance}
|
||||||
|
\event{Sets the target impedance}{VNA:DEEMBedding:x:IMPedance}{<impedance> Impedance in Ohm}
|
||||||
|
\query{Queries the target impedance}{VNA:DEEMBedding:x:IMPedance?}{None}{<impedance> Impedance in Ohm}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:y:VALue}
|
||||||
|
\event{Sets the value of a matching network component}{VNA:DEEMBedding:x:y:VALue}{<value>, either in Ohm, Farad or Henry}
|
||||||
|
\query{Queries the value of a matching network component}{VNA:DEEMBedding:x:y:VALue?}{None}{<port>, either in Ohm, Farad or Henry}
|
||||||
|
|
||||||
|
This command is only available for a component of these types:
|
||||||
|
\begin{itemize}
|
||||||
|
\item SeriesR
|
||||||
|
\item SeriesL
|
||||||
|
\item SeriesC
|
||||||
|
\item ParallelR
|
||||||
|
\item ParallelL
|
||||||
|
\item ParallelC
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsubsubsection{VNA:DEEMBedding:x:y:FILE}
|
||||||
|
\event{Loads a matching network component values from a Touchstone file}{VNA:DEEMBedding:x:y:FILE}{<filename>}
|
||||||
|
|
||||||
|
This command is only available for a component of these types:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Touchstone\_Through
|
||||||
|
\item Touchstone\_Shunt
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Signal Generator Commands}
|
\subsection{Signal Generator Commands}
|
||||||
These commands change or query signal generator settings. Although most of them are available regardless of the current device mode, they usually only have an effect once the generator mode is active.
|
These commands change or query signal generator settings. Although most of them are available regardless of the current device mode, they usually only have an effect once the generator mode is active.
|
||||||
|
|
||||||
|
|
@ -758,6 +1136,16 @@ If single sweep is enabled, the acquisition is stopped when the required number
|
||||||
\event{Enables/disables signal identification}{SA:ACQuisition:SIGid}{<enabled>, option are TRUE, FALSE, 1 or 0}
|
\event{Enables/disables signal identification}{SA:ACQuisition:SIGid}{<enabled>, option are TRUE, FALSE, 1 or 0}
|
||||||
\query{Queries whether signal identification is enabled}{SA:ACQuisition:SIGid?}{None}{TRUE or FALSE}
|
\query{Queries whether signal identification is enabled}{SA:ACQuisition:SIGid?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{SA:ACQuisition:FREQuency}
|
||||||
|
\query{Returns the current frequency of the sweep}{SA:ACQuisition:FREQuency?}{None}{<Frequency in Hz>}
|
||||||
|
|
||||||
|
This command only returns valid data when a sweep is running and the the sweep is a frequency sweep.
|
||||||
|
|
||||||
|
\subsubsection{SA:ACQuisition:TIME}
|
||||||
|
\query{Returns the current time of the sweep}{SA:ACQuisition:TIME?}{None}{<Time in seconds>}
|
||||||
|
|
||||||
|
This command only returns valid data when a sweep is running and the the sweep is a zero-span sweep.
|
||||||
|
|
||||||
\subsubsection{SA:TRACKing:ENable}
|
\subsubsection{SA:TRACKing:ENable}
|
||||||
\event{Enables/disables the tracking generator}{SA:TRACKing:ENable}{<enabled>, option are TRUE, FALSE, 1 or 0}
|
\event{Enables/disables the tracking generator}{SA:TRACKing:ENable}{<enabled>, option are TRUE, FALSE, 1 or 0}
|
||||||
\query{Queries whether tracking generator is enabled}{SA:TRACKing:ENable?}{None}{TRUE or FALSE}
|
\query{Queries whether tracking generator is enabled}{SA:TRACKing:ENable?}{None}{TRUE or FALSE}
|
||||||
|
|
@ -861,6 +1249,261 @@ Port1,Port2
|
||||||
\event{Sets the storage type of a trace}{SA:TRACe:TYPE}{<trace>, either by name or by index\\<type>, options are OVERWRITE, MAXHOLD or MINHOLD}
|
\event{Sets the storage type of a trace}{SA:TRACe:TYPE}{<trace>, either by name or by index\\<type>, options are OVERWRITE, MAXHOLD or MINHOLD}
|
||||||
\query{Queries the storage type of a trace}{SA:TRACe:TYPE?}{<trace>, either by name or by index}{OVERWRITE, MAXHOLD or MINHOLD}
|
\query{Queries the storage type of a trace}{SA:TRACe:TYPE?}{<trace>, either by name or by index}{OVERWRITE, MAXHOLD or MINHOLD}
|
||||||
|
|
||||||
|
\section{Custom Driver Commands}
|
||||||
|
The \gui{} is mainly intended to be used with the \vna{}. However, the interface between the \gui{} and the actual VNA is abstracting certain hardware features to allow the \gui{} to interact with other devices as well. This is mainly intended for future extensions and only very few other devices are supported for testing and demonstration purposes.
|
||||||
|
|
||||||
|
Each device driver may implement additional SCPI commands that are too specific to be useful with every device. These commands are only available when the \gui{} is connected to the device.
|
||||||
|
|
||||||
|
\subsection{LibreVNA Version 1}
|
||||||
|
The following commands are available when connected to a LibreVNA (hardware version 1):
|
||||||
|
|
||||||
|
\subsubsection{DEVice:UPDATE}
|
||||||
|
\event{Updates the firmware of the connected device}{DEVice:UPDATE <fw\_file>}{<fw\_file> Path to the firmware file}
|
||||||
|
Important points when saving/loading setup files through SCPI commands:
|
||||||
|
\begin{itemize}
|
||||||
|
\item The path must be either absolute or relative to the location of the GUI application.
|
||||||
|
\item If the LibreVNA-GUI (and thus also the SCPI server) is running on a different machine than the SCPI client, the firmware file must be stored on the machine that runs the GUI.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsubsection{DEVice:INFo:TEMPeratures}
|
||||||
|
\query{Queries the temperatures of certain chips}{DEVice:INFo:TEMPeratures?}{None}{<source>/<1.LO>/<CPU>}
|
||||||
|
\begin{example}
|
||||||
|
:DEV:INF:TEMP?
|
||||||
|
45/51/31
|
||||||
|
\end{example}
|
||||||
|
|
||||||
|
\subsubsection{MANual:STArt}
|
||||||
|
\event{Starts the manual device control dialog}{MANual:STArt}{None}
|
||||||
|
|
||||||
|
The manual device control dialog allows the user to directly access all the hardware components. This can be considered as a forth mode (in addition to VNA, signal generator and spectrum analyzer). As long as it is active, it takes priority over any other mode. After starting the manual control dialog, all hardware components are disabled by default. While the manual control dialog is active, additional SCPI commands are available to configure the hardware and retrieve ADC readings.
|
||||||
|
|
||||||
|
\subsubsection{MANual:STOp}
|
||||||
|
\event{Stops the manual device control dialog}{MANual:STOp}{None}
|
||||||
|
|
||||||
|
\subsubsection{MANual:HSRC\_CE}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the chip enable for the highband source}{MANual:HSRC\_CE}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the chip enable for the highband source}{MANual:HSRC\_CE?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:HSRC\_RFEN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the RF enable for the highband source}{MANual:HSRC\_RFEN}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the RF enable for the highband source}{MANual:HSRC\_RFEN?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:HSRC\_LOCKed}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the lock status of the highband source}{MANual:HSRC\_LOCKed?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:HSRC\_PWR}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the output power of the highband source}{MANual:HSRC\_PWR}{<power>, output power in dBm, allowed values are -4, -1, 2 and 5}
|
||||||
|
\query{Queries the output power of the highband source}{MANual:HSRC\_PWR?}{None}{<power>, output power in dBm}
|
||||||
|
|
||||||
|
\subsubsection{MANual:HSRC\_FREQ}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the target frequency of the highband source}{MANual:HSRC\_FREQ}{<freq>, frequency in Hz}
|
||||||
|
\query{Queries the target frequency of the highband source}{MANual:HSRC\_FREQ?}{None}{<freq>, frequency in Hz}
|
||||||
|
|
||||||
|
\subsubsection{MANual:HSRC\_LPF}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the lowpass filter of the highband source}{MANual:HSRC\_LPF}{<cutoff>, Cutoff frequency in MHz, allowed values are 947, 1880, 3500 and\\0 (no filter)}
|
||||||
|
\query{Queries the lowpass filter setting of the highband source}{MANual:HSRC\_LPF?}{None}{<cutoff>, Cutoff frequency in MHz}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LSRC\_EN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the enable signal for the lowband source}{MANual:LSRC\_EN}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the enable signal for the lowband source}{MANual:LSRC\_EN?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LSRC\_PWR}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the output power of the lowband source}{MANual:LSRC\_PWR}{<power>, output power in mA, allowed values are 2, 4, 6 and 8}
|
||||||
|
\query{Queries the output power of the lowband source}{MANual:LSRC\_PWR?}{None}{<power>, output power in mA}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LSRC\_FREQ}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the target frequency of the lowband source}{MANual:LSRC\_FREQ}{<freq>, frequency in Hz}
|
||||||
|
\query{Queries the target frequency of the lowband source}{MANual:LSRC\_FREQ?}{None}{<freq>, frequency in Hz}
|
||||||
|
|
||||||
|
\subsubsection{MANual:BAND\_SW}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the band selector switch}{MANual:BAND\_SW}{TRUE for highband, FALSE for lowband}
|
||||||
|
\query{Queries the status of the band selector switch}{MANual:BAND\_SW?}{None}{TRUE for highband, FALSE for lowband}
|
||||||
|
|
||||||
|
\subsubsection{MANual:ATTenuator}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the attenuator value}{MANual:ATTenuator}{<att>, Attenuation in dB, values between -31.75 and 0}
|
||||||
|
\query{Queries the attenuator value}{MANual:ATTenuator?}{None}{<att>, Attenuation in dB}
|
||||||
|
|
||||||
|
\subsubsection{MANual:AMP\_EN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the enable signal for the amplifier}{MANual:AMP\_EN}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the enable signal for the amplifier}{MANual:AMP\_EN?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT\_SW}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the port selector switch}{MANual:PORT\_SW}{<port>, either 1 or 2}
|
||||||
|
\query{Queries the status of the port selector switch}{MANual:PORT\_SW?}{None}{<port>}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LO1\_CE}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the chip enable for the LO1 PLL}{MANual:LO1\_CE}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the chip enable for the LO1 PLL}{MANual:LO1\_CE?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LO1\_RFEN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the RF enable for the LO1 PLL}{MANual:LO1\_RFEN}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the RF enable for the LO1 PLL}{MANual:LO1\_RFEN?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LO1\_LOCKed}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the lock status of the LO1 PLL}{MANual:LO1\_LOCKed?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LO1\_FREQ}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the target frequency of the LO1 PLL}{MANual:LO1\_FREQ}{<freq>, frequency in Hz}
|
||||||
|
\query{Queries the target frequency of the LO1 PLL}{MANual:LO1\_FREQ?}{None}{<freq>, frequency in Hz}
|
||||||
|
|
||||||
|
\subsubsection{MANual:IF1\_FREQ}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the IF1 frequency}{MANual:IF1\_FREQ}{<freq>, frequency in Hz}
|
||||||
|
\query{Queries the IF1 frequency}{MANual:IF1\_FREQ?}{None}{<freq>, frequency in Hz}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LO2\_EN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the enable signal for the LO2 PLL}{MANual:LO2\_EN}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the enable signal for the LO2 PLL}{MANual:LO2\_EN?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:LO2\_FREQ}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the target frequency of the LO2 PLL}{MANual:LO2\_FREQ}{<freq>, frequency in Hz}
|
||||||
|
\query{Queries the target frequency of the LO2 PLL}{MANual:LO2\_FREQ?}{None}{<freq>, frequency in Hz}
|
||||||
|
|
||||||
|
\subsubsection{MANual:IF2\_FREQ}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the IF2 frequency}{MANual:IF2\_FREQ}{<freq>, frequency in Hz}
|
||||||
|
\query{Queries the IF2 frequency}{MANual:IF2\_FREQ?}{None}{<freq>, frequency in Hz}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT1\_EN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the enable signal for the port 1 receiver}{MANual:PORT1\_EN}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the enable signal for the port 1 receiver}{MANual:PORT1\_EN?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT2\_EN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the enable signal for the port 2 receiver}{MANual:PORT2\_EN}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the enable signal for the port 2 receiver}{MANual:PORT2\_EN?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:REF\_EN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Controls the enable signal for the reference receiver}{MANual:REF\_EN}{TRUE or FALSE}
|
||||||
|
\query{Queries the status of the enable signal for the reference receiver}{MANual:REF\_EN?}{None}{TRUE or FALSE}
|
||||||
|
|
||||||
|
\subsubsection{MANual:SAMPLES}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the number of ADC samples per reading}{MANual:SAMPLES}{<samples>, value between 16 and 131072 in increments of 16}
|
||||||
|
\query{Queries the number of ADC samples per reading}{MANual:SAMPLES?}{None}{<samples>}
|
||||||
|
|
||||||
|
\subsubsection{MANual:WINdow}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\event{Sets the window for the DFT calculation}{MANual:WINdow}{<window>, either NONE, KAISER, HANN or FLATTOP}
|
||||||
|
\query{Queries the window for the DFT calculatio}{MANual:WINdow?}{None}{NONE, KAISER, HANN or FLATTOP}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT1\_MIN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the minimum observed port 1 ADC value in the last sampling period}{MANual:PORT1\_MIN?}{None}{minimum ADC value}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT1\_MAX}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the maximum observed port 1 ADC value in the last sampling period}{MANual:PORT1\_MAX?}{None}{maximum ADC value}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT1\_MAG}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the observerd magnitude at port 1 in the last sampling period}{MANual:PORT1\_MAG?}{None}{port 1 magnitude (linear unit, arbitrary scale)}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT1\_PHAse}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the observed phase at port 1 in the last sampling period}{MANual:PORT1\_PHAse?}{None}{phase in degree (random value because it is relativ to an internal sampling clock)}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT1\_REFerenced}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the observed signal at port 1 relative to the reference in the last sampling period}{MANual:PORT1\_REFerenced?}{None}{<real>, <imag>}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT2\_MIN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the minimum observed port 2 ADC value in the last sampling period}{MANual:PORT2\_MIN?}{None}{minimum ADC value}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT2\_MAX}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the maximum observed port 2 ADC value in the last sampling period}{MANual:PORT2\_MAX?}{None}{maximum ADC value}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT2\_MAG}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the observerd magnitude at port 2 in the last sampling period}{MANual:PORT2\_MAG?}{None}{port 1 magnitude (linear unit, arbitrary scale)}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT2\_PHAse}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the observed phase at port 2 in the last sampling period}{MANual:PORT2\_PHAse?}{None}{phase in degree (random value because it is relativ to an internal sampling clock)}
|
||||||
|
|
||||||
|
\subsubsection{MANual:PORT2\_REFerenced}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the observed signal at port 2 relative to the reference in the last sampling period}{MANual:PORT2\_REFerenced?}{None}{<real>, <imag>}
|
||||||
|
|
||||||
|
\subsubsection{MANual:REF\_MIN}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the minimum observed reference ADC value in the last sampling period}{MANual:REF\_MIN?}{None}{minimum ADC value}
|
||||||
|
|
||||||
|
\subsubsection{MANual:REF\_MAX}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the maximum observed reference ADC value in the last sampling period}{MANual:REF\_MAX?}{None}{maximum ADC value}
|
||||||
|
|
||||||
|
\subsubsection{MANual:REF\_MAG}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the observerd magnitude at the reference receiver in the last sampling period}{MANual:REF\_MAG?}{None}{port 1 magnitude (linear unit, arbitrary scale)}
|
||||||
|
|
||||||
|
\subsubsection{MANual:REF\_PHAse}
|
||||||
|
Only available when the manual control dialog is active.
|
||||||
|
|
||||||
|
\query{Queries the observed phase at the reference receiver in the last sampling period}{MANual:REF\_PHAse?}{None}{phase in degree (random value because it is relativ to an internal sampling clock)}
|
||||||
|
|
||||||
\section{Streaming data}
|
\section{Streaming data}
|
||||||
The SCPI server works well for configuring the device and also for reading trace data once an acquition is done. But it isn't very well suited for reading data while the device is capturing it. For some applications (e.g. when running continuous sweeps) it may be beneficial to process the data externally as it getting captured. For this purpose, the LibreVNA-GUI supports streaming the data over dedicated ports.
|
The SCPI server works well for configuring the device and also for reading trace data once an acquition is done. But it isn't very well suited for reading data while the device is capturing it. For some applications (e.g. when running continuous sweeps) it may be beneficial to process the data externally as it getting captured. For this purpose, the LibreVNA-GUI supports streaming the data over dedicated ports.
|
||||||
|
|
||||||
|
|
@ -878,13 +1521,27 @@ There are a total of 5 streaming servers available. They can all be enabled and
|
||||||
|
|
||||||
\vspace{0.5cm}
|
\vspace{0.5cm}
|
||||||
|
|
||||||
All servers output a newline-terminated line of json formatted data for each measurement point in the sweep:
|
All servers output a newline-terminated line of json formatted data for each measurement point in the sweep. The format of the output data changes depending on the configured sweep type.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item VNA frequency or power sweeps:
|
||||||
\begin{example}
|
\begin{example}
|
||||||
{"Z0":50.0,"dBm":-20.0,"frequency":42993000.0,"measurements":{"S11_imag":-0.061379313997181856,"S11_real":0.023033630841401063,"S12_imag":0.3205479840477101,"S12_real":-0.5742283570681822,"S21_imag":-0.3746074656570865,"S21_real":0.6126114195570408,"S22_imag":0.06312766256272641,"S22_real":-0.018668561526968372},"pointNum":7}
|
{"Z0":50.0,"dBm":-20.0,"frequency":42993000.0,"measurements":{"S11_imag":-0.061379313997181856,"S11_real":0.023033630841401063,"S12_imag":0.3205479840477101,"S12_real":-0.5742283570681822,"S21_imag":-0.3746074656570865,"S21_real":0.6126114195570408,"S22_imag":0.06312766256272641,"S22_real":-0.018668561526968372},"pointNum":7}
|
||||||
\end{example}
|
\end{example}
|
||||||
|
\item VNA zero span sweeps:
|
||||||
|
\begin{example}
|
||||||
|
{"Z0":50.0,"measurements":{"S11_imag":0.0697879786634009,"S11_real":0.11959939538177566,"S12_imag":-0.2820494760489866,"S12_real":0.4134518710922877,"S21_imag":0.11201366122663228,"S21_real":-0.4258244924547545,"S22_imag":-0.004193267854043776,"S22_real":0.028964823536021114},"pointNum":7,"time":2.438674}
|
||||||
|
\end{example}
|
||||||
|
\item Spectrum analyzer non zero span sweeps:
|
||||||
\begin{example}
|
\begin{example}
|
||||||
{"frequency":2182396.0,"measurements":{"PORT1":7.343487141042715e-06,"PORT2":6.78117066854611e-06},"pointNum":445}
|
{"frequency":2182396.0,"measurements":{"PORT1":7.343487141042715e-06,"PORT2":6.78117066854611e-06},"pointNum":445}
|
||||||
\end{example}
|
\end{example}
|
||||||
|
\item Spectrum analyzer zero span sweeps:
|
||||||
|
\begin{example}
|
||||||
|
{"measurements":{"PORT1":2.595309979369631e-06,"PORT2":1.4385256008608849e-06},"pointNum":7,"time":0.344095}
|
||||||
|
\end{example}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
For zero span sweeps, the time in seconds since the beginning of the sweep is given instead of a frequency of power level. The time is always relative to point 0 of the current sweep and point 0 will have a time of 0.
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
|
@ -191,9 +191,9 @@ The implemented USB device is limited to USB 2.0 Fullspeed and data transmission
|
||||||
\subsection{External Power}
|
\subsection{External Power}
|
||||||
Input jack for external DC power (\SI{5}{\volt}, \SI{1.5}{\ampere}, positive center pin). If a power source is connected, no current is drawn from the USB port anymore.
|
Input jack for external DC power (\SI{5}{\volt}, \SI{1.5}{\ampere}, positive center pin). If a power source is connected, no current is drawn from the USB port anymore.
|
||||||
\subsection{RF ports}
|
\subsection{RF ports}
|
||||||
RF connector to connect the DUT. Both ports are identical and the device architecture support full S-Parameter measurements (S11, S21, S12 and S22).
|
RF connector to connect the DUT. Both ports are identical and the device architecture supports full S-Parameter measurements (S11, S21, S12 and S22).
|
||||||
\begin{important}
|
\begin{important}
|
||||||
The RF ports have no input protection, do not apply a signal with more than +\SI{10}{\dBm} of power.
|
The RF ports have no input protection, so do not apply a signal with more than +\SI{10}{\dBm} of power.
|
||||||
\end{important}
|
\end{important}
|
||||||
\subsection{LEDs}
|
\subsection{LEDs}
|
||||||
Ten LEDs indicate the status:
|
Ten LEDs indicate the status:
|
||||||
|
|
@ -219,7 +219,7 @@ Due to the high impedance input, the external input may detect a valid signal wh
|
||||||
|
|
||||||
\section{Getting started}
|
\section{Getting started}
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Connect the \vna{} to a computer using the USB port. After a couple of seconds, only the "Power" and "Ready" LEDs should stay on. If the "Ready" LED does not turn on or the "Booting" LED indicates an error code, there is a problem und the device will not function properly. See section~\ref{troubleshooting} for possible solutions.
|
\item Connect the \vna{} to a computer using the USB port. After a couple of seconds, only the "Power" and "Ready" LEDs should stay on. If the "Ready" LED does not turn on or the "Booting" LED indicates an error code, there is a problem and the device will not function properly. See section~\ref{troubleshooting} for possible solutions.
|
||||||
\item Start the PC application to connect to the \vna{}. The window should look similar to this:
|
\item Start the PC application to connect to the \vna{}. The window should look similar to this:
|
||||||
\makebox[\textwidth][c]{
|
\makebox[\textwidth][c]{
|
||||||
\includegraphics[width=\textwidth]{Screenshots/ApplicationOverview.png}
|
\includegraphics[width=\textwidth]{Screenshots/ApplicationOverview.png}
|
||||||
|
|
@ -402,7 +402,16 @@ Every trace can receive its data from one of three source:
|
||||||
|
|
||||||
\paragraph{Live Capture}
|
\paragraph{Live Capture}
|
||||||
\screenshot{0.5}{LiveCapture.png}
|
\screenshot{0.5}{LiveCapture.png}
|
||||||
The trace is constantly updated by the data received from a connected and sweeping LibreVNA. Available settings are the S parameter from which the data is updated and a simple Max Hold and Min Hold function (based on signal magnitude).
|
The trace is constantly updated by the data received from a connected and sweeping LibreVNA. The available Live Capture parameters are:
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{Type:} Live Captures can be 3 different types:
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{Overwrite:} The trace data is overwritten each sweep
|
||||||
|
\item \textbf{Max hold:} The trace data with the highest signal magnitude is persisted
|
||||||
|
\item \textbf{Min hold:} The trace data with the lowest signal magnitude is persisted
|
||||||
|
\end{itemize}
|
||||||
|
\item \textbf{Parameter:} The S-Parameter you want traced
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\paragraph{From File}
|
\paragraph{From File}
|
||||||
\screenshot{0.5}{FromFile.png}
|
\screenshot{0.5}{FromFile.png}
|
||||||
|
|
@ -477,7 +486,7 @@ Adjustable settings:
|
||||||
\item \textbf{Bandpass:} Input samples may use any frequency and span. Only an impulse response can be calculated as the DC point is unknown.
|
\item \textbf{Bandpass:} Input samples may use any frequency and span. Only an impulse response can be calculated as the DC point is unknown.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item \textbf{Compute Step Response:} Enable calculation of step response as well (only available in lowpass mode)
|
\item \textbf{Compute Step Response:} Enable calculation of step response as well (only available in lowpass mode)
|
||||||
\item \textbf{DC point:} Chose between extrapolating the DC point from frequency data or specifying it manually (only available in lowpass mode)
|
\item \textbf{DC point:} Choose between extrapolating the DC point from frequency data or specifying it manually (only available in lowpass mode)
|
||||||
\item \textbf{Window:} A window is applied before performing the transformation. Available windows are:
|
\item \textbf{Window:} A window is applied before performing the transformation. Available windows are:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Rectangular
|
\item Rectangular
|
||||||
|
|
@ -750,7 +759,7 @@ Performing a calibration, especially when multiple ports are used, can require a
|
||||||
|
|
||||||
To start the electronic calibration, select \menu[,]{Calibration,Electronic Calibration} or \menu[,]{Calibration,Calibration Measurements,Electronic Calibration}. There is no need to create a calibration kit first, as the electronic calibration will use the calibration coefficients stored in the LibreCAL.
|
To start the electronic calibration, select \menu[,]{Calibration,Electronic Calibration} or \menu[,]{Calibration,Calibration Measurements,Electronic Calibration}. There is no need to create a calibration kit first, as the electronic calibration will use the calibration coefficients stored in the LibreCAL.
|
||||||
\begin{important}
|
\begin{important}
|
||||||
The electronic calibration will delete and replace any currently active calibration and also the calibration kit standards. Please store any unsaved calibration data before starting the electronic calibration.
|
The electronic calibration will delete and replace any currently active calibration and calibration kit. Please store any unsaved calibration data before starting the electronic calibration.
|
||||||
\end{important}
|
\end{important}
|
||||||
|
|
||||||
\screenshot{0.6}{eCal.png}
|
\screenshot{0.6}{eCal.png}
|
||||||
|
|
@ -762,8 +771,8 @@ Steps required to perform the electronic calibration:
|
||||||
\item Start the electronic calibration dialog
|
\item Start the electronic calibration dialog
|
||||||
\item Select the correct LibreCAL device and the coefficients:
|
\item Select the correct LibreCAL device and the coefficients:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Device:} Serialnumber of the LibreCAL. Usually, only one should be connected and the serialnumber will be automatically selected when the dialog is first opened
|
\item \textbf{Device:} The serial number of the LibreCAL. Usually, only one should be connected and the serial number will be automatically selected when the dialog is first opened
|
||||||
\item \textbf{Coefficients:} Select the coefficient set to be used. The LibreCAL can store multiple sets of coefficients. Please the manual\footnote{\url{https://github.com/jankae/LibreCAL/blob/main/Documentation/manual.pdf}} of the LibreCAL for detailed information on coefficient sets.
|
\item \textbf{Coefficients:} Select the coefficient set to be used. The LibreCAL can store multiple sets of coefficients. Refer to the LibreCAL manual\footnote{\url{https://github.com/jankae/LibreCAL/blob/main/Documentation/manual.pdf}} for detailed information on coefficient sets.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item Check and adjust the port assignments. Ports between the \vna{} and LibreCAL can be connected in any order. Match the ports in the dialog to your physical setup.
|
\item Check and adjust the port assignments. Ports between the \vna{} and LibreCAL can be connected in any order. Match the ports in the dialog to your physical setup.
|
||||||
\item Press the "Start" button. This will perform the following steps:
|
\item Press the "Start" button. This will perform the following steps:
|
||||||
|
|
@ -771,7 +780,7 @@ Steps required to perform the electronic calibration:
|
||||||
\item Fill the calibration kit based on the coefficients extracted from the LibreCAL
|
\item Fill the calibration kit based on the coefficients extracted from the LibreCAL
|
||||||
\item Take an open, short and load measurement for every port of the \vna{}
|
\item Take an open, short and load measurement for every port of the \vna{}
|
||||||
\item Take a through measurement for any combination of ports
|
\item Take a through measurement for any combination of ports
|
||||||
\item Apply the SOLT calibration. For the FACTORY coefficient set, the reference plane will be at the ports of the LibreCAL´
|
\item Apply the SOLT calibration. For the FACTORY coefficient set, the reference plane will be at the ports of the LibreCAL
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
|
|
@ -835,7 +844,7 @@ Any combination of these components can be dragged into the signal path between
|
||||||
|
|
||||||
Further settings:
|
Further settings:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Operation:} Chose between embedding and de-embedding
|
\item \textbf{Operation:} Choose between embedding and de-embedding
|
||||||
\item \textbf{Port:} Port of the \vna{}
|
\item \textbf{Port:} Port of the \vna{}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
If a matching network is required at multiple ports, add this option once for each port.
|
If a matching network is required at multiple ports, add this option once for each port.
|
||||||
|
|
@ -848,17 +857,17 @@ The \vna{} is a \SI{50}{\ohm} system. S parameter measurements are reported with
|
||||||
\section{Signal Generator}
|
\section{Signal Generator}
|
||||||
In the signal generator mode, measurements are stopped and the \vna{} only outputs a CW signal.
|
In the signal generator mode, measurements are stopped and the \vna{} only outputs a CW signal.
|
||||||
\screenshot{0.8}{Signalgenerator.png}
|
\screenshot{0.8}{Signalgenerator.png}
|
||||||
The hardware is not optimized for signal generation which means that the output level is not very accurate, especially at higher frequencies (also see section~\ref{amplitude:calibration}). Also, the signal will contain higher levels of harmonics than one would normally expect from a signal generator.
|
The hardware is not optimized for signal generation which means that the output level is not very accurate, especially at higher frequencies (see also section~\ref{amplitude:calibration}). Also, the signal will contain higher levels of harmonics than one would normally expect from a signal generator.
|
||||||
\section{Spectrum Analyzer}
|
\section{Spectrum Analyzer}
|
||||||
Although the \vna{} hardware is not designed to be used as a spectrum analyzer, the general hardware architecture of a spectrum analyzer is similar enough to that of a VNA to implement basic two-channel spectrum measurements. This is in no way on the same performance level as a dedicated spectrum analyzer but for simple measurements it might suffice if no other equipment is available. The main differences to a real spectrum analyzer are:
|
Although the \vna{} hardware is not designed to be used as a spectrum analyzer, the general hardware architecture of a spectrum analyzer is similar enough to that of a VNA to implement basic two-channel spectrum measurements. This is in no way on the same performance level as a dedicated spectrum analyzer but for simple measurements it might suffice if no other equipment is available. The main differences to a real spectrum analyzer are:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{No input attenuator or pre-amplifier:} This means that the measurement range is essentially fixed to approximately \SI{-110}{\dBm} to \SI{-10}{\dBm}.
|
\item \textbf{No input attenuator or pre-amplifier:} This means that the measurement range is essentially fixed to approximately \SI{-110}{\dBm} to \SI{-10}{\dBm}.
|
||||||
\item \textbf{No amplitude calibration:} The displayed signal level is not very accurate, especially at higher frequencies (also see section~\ref{amplitude:calibration}).
|
\item \textbf{No amplitude calibration:} The displayed signal level is not very accurate, especially at higher frequencies (see also section~\ref{amplitude:calibration}).
|
||||||
\item \textbf{No image rejection filters:} This is probably the most severe limitation, because it means that for every real signal several other signals will show up in the spectrum that are not actually present at the input. Most of the images can be filtered out by signal identification but some will remain (at lower amplitude) in the reported data.
|
\item \textbf{No image rejection filters:} This is probably the most severe limitation, because it means that for every real signal several other signals will show up in the spectrum that are not actually present at the input. Most of the images can be filtered out by signal identification but some will remain (at lower amplitude) in the reported data.
|
||||||
\item \textbf{Highest resolution bandwidth is quite low:} The sweep speed is too slow to cover the complete frequency range of \SI{1}{\mega\hertz} to \SI{6}{\giga\hertz} in an acceptable time.
|
\item \textbf{Highest resolution bandwidth is quite low:} The sweep speed is too slow to cover the complete frequency range of \SI{1}{\mega\hertz} to \SI{6}{\giga\hertz} in an acceptable time.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Most control elements (Frequencies, Span, Traces, Marker, ...) are indentical to the vector network analyzer mode.
|
Most control elements (Frequencies, Span, Traces, Marker, ...) are identical to the vector network analyzer mode.
|
||||||
\subsection{Acquisition Toolbar}
|
\subsection{Acquisition Toolbar}
|
||||||
\screenshot{0.7}{ToolbarSAAcquisition.png}
|
\screenshot{0.7}{ToolbarSAAcquisition.png}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
|
@ -902,7 +911,7 @@ A tracking generator at either port is available in the spectum analyzer. If the
|
||||||
DFT acquisition is not available when the tracking generator is active. Also, due to hardware limitations, the tracking generator is unable to reach every frequency exactly. For narrow spans this could result in "drops" in the spectrum where the signal of the tracking generator is outside of the RBW filters passband. The frequency resolution is frequency dependent. A warning message appears if this could be a problem with the selected span and stop frequency.
|
DFT acquisition is not available when the tracking generator is active. Also, due to hardware limitations, the tracking generator is unable to reach every frequency exactly. For narrow spans this could result in "drops" in the spectrum where the signal of the tracking generator is outside of the RBW filters passband. The frequency resolution is frequency dependent. A warning message appears if this could be a problem with the selected span and stop frequency.
|
||||||
|
|
||||||
\section{Graphs}
|
\section{Graphs}
|
||||||
In VNA and spectrum analyzer mode, the trace data in displayed on graphs. Several different graph types are available and most can be customized as well.
|
In VNA and spectrum analyzer mode, the trace data is displayed on graphs. Several different graph types are available and most can be customized as well.
|
||||||
\subsection{General graph settings}
|
\subsection{General graph settings}
|
||||||
Common settings for the behavior and appearance of all graphs can be found in \menu[,]{Window,Preferences,Graphs}:
|
Common settings for the behavior and appearance of all graphs can be found in \menu[,]{Window,Preferences,Graphs}:
|
||||||
\screenshot{1.0}{GraphSettings.png}
|
\screenshot{1.0}{GraphSettings.png}
|
||||||
|
|
@ -920,20 +929,20 @@ Graphs use an underlying tile system. Each tile can either:
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
For split tiles, the position of the split can be adjusted manually by using the cursor.
|
For split tiles, the position of the split can be adjusted manually by using the cursor.
|
||||||
|
|
||||||
To create new graphs, an empty tile must be available. If all tiles are showing graphs (the default when starting the GUI), an empty one must be created first. This can be done by right-clicking a graph and either selecting \menu{close} to remove it from its tile or selecting \menu{Add tile...} and chosing in which direction the new tile should be added.
|
To create new graphs, an empty tile must be available. If all tiles are showing graphs (the default when starting the GUI), an empty one must be created first. This can be done by right-clicking a graph and either selecting \menu{close} to remove it from its tile or selecting \menu{Add tile...} and choosing in which direction the new tile should be added.
|
||||||
|
|
||||||
From the empty tile, all graph types are available:
|
From the empty tile, all graph types are available:
|
||||||
\screenshot{0.5}{GraphEmptyTile.png}
|
\screenshot{0.5}{GraphEmptyTile.png}
|
||||||
|
|
||||||
\begin{information}
|
\begin{information}
|
||||||
For a quick enlarged view of a graph, double-click it. The graph will take up the whole tile area. Another double-click returns the graph to its original size.
|
For a quick enlarged view of a graph, double-click it. The graph will take up the whole trace display area. Another double-click returns the graph to its original size.
|
||||||
\end{information}
|
\end{information}
|
||||||
|
|
||||||
\subsection{Adding and removing traces}
|
\subsection{Adding and removing traces}
|
||||||
When a new graph is created, it is empty by default and traces must be added to show up. There are two ways to add traces:
|
When a new graph is created, it is empty by default and traces must be added to show up. There are two ways to add traces:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Drag-and-drop traces from the trace list onto the graph
|
\item Drag-and-drop traces from the trace list onto the graph
|
||||||
\item Right-click a graph and select the trace to add. Traces can also be removed be deselecting them in the context menu
|
\item Right-click on the graph and select the trace to add. Traces can also be removed be deselecting them in the context menu
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Smithchart}
|
\subsection{Smithchart}
|
||||||
|
|
@ -944,21 +953,22 @@ There are a few smithchart specific settings in the setup dialog:
|
||||||
\screenshot{1.0}{GraphSmithchartSetup.png}
|
\screenshot{1.0}{GraphSmithchartSetup.png}
|
||||||
The left side of the dialog contains settings on how data is displayed:
|
The left side of the dialog contains settings on how data is displayed:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Display mode (Frequency)} There are three options on how much of a trace is visible in the frequency range:
|
\item \textbf{Display mode (Frequency):} There are three options on how much of a trace is visible in the frequency range:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Limit to current span} Shows all traces only in the frequency range of the currently selected span, even when the trace contains data outside of the span
|
\item \textbf{Limit to current span:} Shows all traces only in the frequency range of the currently selected span, even when the trace contains data outside of the span
|
||||||
\item \textbf{Show complete traces} Always shows the complete trace, regardless of the selected span
|
\item \textbf{Show complete traces:} Always shows the complete trace, regardless of the selected span
|
||||||
\item \textbf{Manual frequency range} Allows selection of an abitrary frequency range to display
|
\item \textbf{Manual frequency range:} Allows selection of an abitrary frequency range to display
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item \textbf{Display mode (Impedance)} There are two options on how much of a trace impedance is visible:
|
\item \textbf{Display mode (Impedance):} There are two options on how much of a trace impedance is visible:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Limit to visible are} Clips the trace data at the edge of the smithchart circle
|
\item \textbf{Limit to visible are:} Clips the trace data at the edge of the smithchart circle
|
||||||
\item \textbf{Show complete traces} Always shows the complete trace, even when the trace data falls outside of the smithchart circle
|
\item \textbf{Show complete traces:} Always shows the complete trace, even when the trace data falls outside of the smithchart circle
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item \textbf{Zoom} Allows to change the center position and zoom factor of the smithchart. Zooming is also possible by using the mousewheel on the graph
|
\item \textbf{Zoom:} Allows to change the center position and zoom factor of the smithchart. Zooming is also possible by using the mousewheel on the graph
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
The right side of the dialog allows the user to add lines of constant values to the smithchart for a quick visual comparisation of trace data to these values. Four types of lines are available:
|
The right side of the dialog allows the user to add lines of constant values to the smithchart for a quick visual comparison of trace data to these values.
|
||||||
|
\textbf{Constant Lines:} Available types are:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Constant VSWR
|
\item Constant VSWR
|
||||||
\item Constant resistance
|
\item Constant resistance
|
||||||
|
|
@ -971,9 +981,9 @@ For each line, the color and constant value must be manually selected.
|
||||||
\screenshot{1.0}{GraphXYplot.png}
|
\screenshot{1.0}{GraphXYplot.png}
|
||||||
The XY-plot is the most versatile graph. It can display every trace type if configured correctly. The XY-plot consists of up to three axes:
|
The XY-plot is the most versatile graph. It can display every trace type if configured correctly. The XY-plot consists of up to three axes:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{X-axis} Always present
|
\item \textbf{X-axis:} Always present
|
||||||
\item \textbf{Primary Y-axis} Optional, on the left side of the graph
|
\item \textbf{Primary Y-axis:} Optional, on the left side of the graph
|
||||||
\item \textbf{Secondary Y-axis} Optional, on the right side of the graph
|
\item \textbf{Secondary Y-axis:} Optional, on the right side of the graph
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
Different types can be used for the X-axis and the selected type must match the output domain of all displayed traces. Available types are:
|
Different types can be used for the X-axis and the selected type must match the output domain of all displayed traces. Available types are:
|
||||||
\begin{center}
|
\begin{center}
|
||||||
|
|
@ -1114,12 +1124,24 @@ For every axis, the displayed range can either be determined automatically or ma
|
||||||
\subsubsection{Limit lines}
|
\subsubsection{Limit lines}
|
||||||
The XY-plot also supports custom limit lines:
|
The XY-plot also supports custom limit lines:
|
||||||
\screenshot{1.0}{GraphXYplotLimit.png}
|
\screenshot{1.0}{GraphXYplotLimit.png}
|
||||||
Limit lines can be added and removed in the bottom part of the Axis Setup Dialog. Each line is a list of manually defined points, a selectable color and can be configured either as a high limit, low limit or just as a constant line without any limit checking:
|
Limit lines can be added, removed, imported and exported in the bottom part of the Axis Setup Dialog. Creating a new Limit line by pressing the + button or doubleclicking on an existing one will open up the Edit line window.
|
||||||
\screenshot{1.0}{GraphXYplotLine.png}
|
\screenshot{1.0}{GraphXYplotLine.png}
|
||||||
|
On the left side, you will find limit line parameters and on the right side, you need to plot your limit line by adding points
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{Name:} The name of the limit
|
||||||
|
\item \textbf{Color:} The color of the limit as it will appear on the graph
|
||||||
|
\item \textbf{Axis:} The X-Axis you want to apply the limit to: Primary or Secondary
|
||||||
|
\item \textbf{Pass/Fail:} The limit behavior:
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{Dont Care:} Visual line only
|
||||||
|
\item \textbf{High Limit:} Fails when plot goes above the line
|
||||||
|
\item \textbf{Low Limit:} Fails when the plot goes below the line
|
||||||
|
\end{itemize}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Waterfall}
|
\subsection{Waterfall}
|
||||||
\screenshot{1.0}{GraphWaterfall.png}
|
\screenshot{1.0}{GraphWaterfall.png}
|
||||||
The waterfall graph can display the amplitude trend of a single trace over multiple sweeps. Its specific settings are mostly a subset of the XY-plot, the Y-axis configuration is almost identical.
|
The waterfall graph can display the amplitude trend of a single trace over multiple sweeps. Its specific settings are mostly a subset of the XY-plot and the Y-axis configuration is almost identical.
|
||||||
\screenshot{0.8}{GraphWaterfallSetup.png}
|
\screenshot{0.8}{GraphWaterfallSetup.png}
|
||||||
Other settings include:
|
Other settings include:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
|
@ -1127,14 +1149,14 @@ Other settings include:
|
||||||
\item \textbf{Pixels per line:} Provides a simple vertical zoom feature
|
\item \textbf{Pixels per line:} Provides a simple vertical zoom feature
|
||||||
\item \textbf{Mode:} Determines whether sweep data that doesn't fit onto the graph anymore is kept or deleted (a resize of the graph would reveal kept data)
|
\item \textbf{Mode:} Determines whether sweep data that doesn't fit onto the graph anymore is kept or deleted (a resize of the graph would reveal kept data)
|
||||||
\item \textbf{Number of sweeps:} The maximum number of sweeps kept if mode is set to "Keep offscreen data"
|
\item \textbf{Number of sweeps:} The maximum number of sweeps kept if mode is set to "Keep offscreen data"
|
||||||
\item \textbf{Alignment:} The waterfall can be aligned to a XY-plot of equal size and peaks in the trace data of both plots will line up.
|
\item \textbf{Alignment:} The waterfall can be aligned to an XY-plot of equal size, so that trace peaks of both plots line up
|
||||||
\begin{important}
|
\begin{important}
|
||||||
Both plots are still completely independent of each other. For the alignment to work, they must have the same width and one must be placed exactly below the other.
|
Both plots are still completely independent of each other. For the alignment to work, they must have the same width and one must be placed exactly below the other.
|
||||||
\end{important}
|
\end{important}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\subsection{Polar Chart}
|
\subsection{Polar Chart}
|
||||||
\screenshot{0.6}{GraphPolarplot.png}
|
\screenshot{0.6}{GraphPolarplot.png}
|
||||||
The Polar Chart looks similar to the smithchart but doesn't perform the transformation from S-paramter to impedance. Furthermore, through measurements can be displayed as well. The available settings are identical to the smithchart but the Polar Chart does not support adding custom constant lines:
|
The Polar Chart looks similar to the smithchart but doesn't perform the transformation from S-parameter to impedance. Furthermore, through measurements can be displayed as well. The available settings are identical to the smithchart but the Polar Chart does not support adding custom constant lines:
|
||||||
\screenshot{0.6}{GraphPolarchartSetup.png}
|
\screenshot{0.6}{GraphPolarchartSetup.png}
|
||||||
|
|
||||||
\subsection{Eye Diagram}
|
\subsection{Eye Diagram}
|
||||||
|
|
@ -1143,14 +1165,14 @@ The eye diagram graph shows how a simulated signal would look like after being p
|
||||||
\screenshot{1.0}{GraphEyeDiagramSetup.png}
|
\screenshot{1.0}{GraphEyeDiagramSetup.png}
|
||||||
|
|
||||||
\section{Markers}
|
\section{Markers}
|
||||||
Markers provide an easy read-out of trace data at specific points. Each marker is assigned to one trace and will show up on any graph that show the trace at the marker position.
|
Markers provide an easy read-out of trace data at specific points. Each marker is assigned to a single trace and will show up on all graphs that have that trace selected.
|
||||||
|
|
||||||
Some general marker settings are available in the preferences:
|
Some general marker settings are available in the preferences:
|
||||||
\screenshot{1.0}{MarkerPreferences.png}
|
\screenshot{1.0}{MarkerPreferences.png}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Show data on graphs:} Marker data (X-coordinate, trace value) will be shown by default to the right of any graph the marker is visible on
|
\item \textbf{Show data on graphs:} Marker data (X-coordinate, trace value) will be shown by default to the right of any graph the marker is visible on
|
||||||
\item \textbf{Show data in all available formats:} All available formats for the marker data will be shown by default
|
\item \textbf{Show data in all available formats:} All available formats for the marker data will be shown by default
|
||||||
\item \textbf{Positioning:} When moving markers by hand, the can either snap to the individual trace points or be interpolated along the plotted trace
|
\item \textbf{Positioning:} When moving markers by hand, they can either be snapped to the individual trace points or be interpolated along the plotted trace
|
||||||
\item \textbf{Sort order on graphs:} Defines the order of marker data to the right of a graph
|
\item \textbf{Sort order on graphs:} Defines the order of marker data to the right of a graph
|
||||||
\item \textbf{Symbol style:} Various symbol styles for drawing markers on the graphs are available
|
\item \textbf{Symbol style:} Various symbol styles for drawing markers on the graphs are available
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
@ -1164,11 +1186,11 @@ The marker dock provides a quick overview of all markers:
|
||||||
\item \textbf{Marker \#:} The marker number as shown on the graphs
|
\item \textbf{Marker \#:} The marker number as shown on the graphs
|
||||||
\item \includesvg[height=8pt]{Screenshots/visible}/\includesvg[height=10pt]{Screenshots/invisible}: Enable/disable global visibility: Shows/hides the marker an all graphs
|
\item \includesvg[height=8pt]{Screenshots/visible}/\includesvg[height=10pt]{Screenshots/invisible}: Enable/disable global visibility: Shows/hides the marker an all graphs
|
||||||
\item \includegraphics[height=8pt]{Screenshots/chainlink.png}: Indicates linked markers. Markers with the same number are linked and all of them move when one changes its position
|
\item \includegraphics[height=8pt]{Screenshots/chainlink.png}: Indicates linked markers. Markers with the same number are linked and all of them move when one changes its position
|
||||||
\item \textbf{Trace:} The trace name the markers is assigned to
|
\item \textbf{Trace:} The trace name the marker is assigned to
|
||||||
\item \textbf{Type:} Various marker types are available, see section~\ref{marker:types}
|
\item \textbf{Type:} Various marker types are available, see section~\ref{marker:types}
|
||||||
\item \textbf{Settings:} Depends on the marker type, allows configuration of the marker
|
\item \textbf{Settings:} Allows for configuration of the marker based on marker type
|
||||||
\item \textbf{Restrict:} Forces the marker to a specific frequency range (or power/time range if the trace uses another domain)
|
\item \textbf{Restrict:} Forces the marker to a specific frequency range (or power/time range if the trace uses another domain)
|
||||||
\item \textbf{Data:} The trace data at the marker position. Can be displayed in different formats
|
\item \textbf{Data:} The trace data at the marker position which can be displayed in different formats
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Various other settings are also available in the \textbf{context menu}. The context menu can be reached by right-clicking the marker, either in the marker dock or on the marker symbol in any graph.
|
Various other settings are also available in the \textbf{context menu}. The context menu can be reached by right-clicking the marker, either in the marker dock or on the marker symbol in any graph.
|
||||||
|
|
@ -1225,7 +1247,7 @@ This marker type is only available for through measurements.
|
||||||
\subsubsection{TOI/IP3}
|
\subsubsection{TOI/IP3}
|
||||||
\screenshot{1.0}{MarkerTOIGraph.png}
|
\screenshot{1.0}{MarkerTOIGraph.png}
|
||||||
\screenshot{1.0}{MarkerTOITable.png}
|
\screenshot{1.0}{MarkerTOITable.png}
|
||||||
This marker type calculated the third-order intercept point. It is only available in spectrum analyzer mode. Initially a peak search is executed to find the two highest peaks. The frequencies of the intermodulation products are calculated from these peak frequencies and helper markers placed on each of these frequencies. Finally, the third-order intercept point as well as the tone and distortion signal amplitudes are calculated.
|
This marker type calculates the third-order intercept point. It is only available in spectrum analyzer mode. Initially a peak search is executed to find the two highest peaks. Helper markers suffixed with "p", that show these peaks, are added to the parent marker. These helper markers show up on the graph and in the marker dock by clicking the expand/collapse arrow to the left of the marker \#. The frequencies of the intermodulation products are calculated from the two peak helper markers and a new helper marker is placed at each of these frequencies. One suffixed "l" to the left of the first peak and one suffixed "r" to the right of the second peak. Finally, the third-order intercept point as well as the tone and distortion signal amplitudes are calculated.
|
||||||
\subsubsection{Phase noise}
|
\subsubsection{Phase noise}
|
||||||
\screenshot{1.0}{MarkerPhasenoiseGraph.png}
|
\screenshot{1.0}{MarkerPhasenoiseGraph.png}
|
||||||
\screenshot{1.0}{MarkerPhasenoiseTable.png}
|
\screenshot{1.0}{MarkerPhasenoiseTable.png}
|
||||||
|
|
@ -1366,42 +1388,42 @@ $Quality factor$\\
|
||||||
|
|
||||||
\subsection{Linking markers}
|
\subsection{Linking markers}
|
||||||
\label{marker:linking}
|
\label{marker:linking}
|
||||||
Normally, markers can be moved individually and are only connected to one trace. This creates a problem when reading out trace data from multiple traces at the same position. If the position is changed, all markers need to be moved manually to the new position. Linked markers provide a solution to this problem: All markers within a linked group always use the same position. If one marker is moved, the others move as well. The linked group of each marker is indicated in the marker dock (empty if the marker does not belong to any linked group.
|
Normally, markers can be moved individually and are only connected to one trace. This creates a problem when reading out trace data from multiple traces at the same position. If the position is changed, all markers need to be moved manually to the new position. Linked markers provide a solution to this problem: All markers within a linked group always use the same position. If one marker is moved, the others move as well. The linked group of each marker is indicated in the marker dock (empty if the marker does not belong to any linked group).
|
||||||
|
|
||||||
Only markers that are movable can be added to linked groups. If a marker type performs automatic positioning of the marker (e.g. the maximum marker type), it can not be added.
|
Only markers that are movable can be added to linked groups. Markers that perform automatic positioning (e.g. a marker with the type maximum) cannot be added to a linked group.
|
||||||
|
|
||||||
\subsubsection{Creating a new linked group}
|
\subsubsection{Creating a new linked group}
|
||||||
Select multiple markers in the marker dock, right-click and select "link selected".
|
Select multiple markers in the marker dock, right-click and select "link selected".
|
||||||
\subsubsection{Adding a marker to an existing linked group}
|
\subsubsection{Adding a marker to an existing linked group}
|
||||||
Open the markers context menu, chose "Add to linked group" and select the linked group the marker should be added to.
|
Open the marker's context menu, choose "Add to linked group" and select the linked group the marker should be added to.
|
||||||
\subsubsection{Removing a marker from a linked group}
|
\subsubsection{Removing a marker from a linked group}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Open the markers context menu, chose "Remove from linked group"
|
\item Open the marker's context menu, choose "Remove from linked group"
|
||||||
\item Select multiple linked markers in the marker dock, right-click and select "Break links" to remove all selected markers from their linked groups.
|
\item Select multiple linked markers in the marker dock, right-click and select "Break links" to remove all selected markers from their linked groups.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\section{Compound Device}
|
\section{Compound Device}
|
||||||
The LibreVNA supports combining multiple hardware units to a "Compound Device". When used, the configured physical LibreVNAs are combined into a virtual device with more ports. When connected to such a device, additional measurement paramaters are available (e.g. measuring S23 in VNA mode or port 3 in spectrumanalyzer mode).
|
The LibreVNA supports combining multiple hardware units into a "Compound Device". When used, the configured physical LibreVNAs are combined into a virtual device with more ports. When connected to such a device, additional measurement paramaters are available (e.g. measuring S23 in VNA mode or port 3 in spectrum analyzer mode).
|
||||||
|
|
||||||
\begin{important}
|
\begin{important}
|
||||||
When connected to a compound device and in VNA mode, there is no phase information for through measurements between different physical devices. This is a hardware limitation and the phase is set to zero in the software. Through measurements within a physical device and all reflection measurements retain their phase information.
|
When connected to a compound device and in VNA mode, there is no phase information for through measurements between different physical devices. This is a hardware limitation and the phase is set to zero in the software. Through measurements within a physical device and all reflection measurements retain their phase information.
|
||||||
\end{important}
|
\end{important}
|
||||||
|
|
||||||
\subsection{Creating a compound device}
|
\subsection{Creating a compound device}
|
||||||
Compound devices must be configured in the preferences: \menu[,]{Window,Preferences,Compound Devices}
|
Compound devices must be configured in the preferences:\linebreak\menu[,]{Window,Preferences,Device Drivers,LibreVNA/Compound}
|
||||||
\screenshot{1.0}{CompoundDeviceList.png}
|
\screenshot{1.0}{CompoundDeviceList.png}
|
||||||
Create and remove compound devices with the buttons on the right. Edit an existing compound device by double-clicking it:
|
Create and remove compound devices with the buttons on the right. Edit an existing compound device by double-clicking it:
|
||||||
\screenshot{1.0}{CompoundDeviceEdit.png}
|
\screenshot{1.0}{CompoundDeviceEdit.png}
|
||||||
Required steps when creating a compound device:
|
Required steps when creating a compound device:
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Assign a name to the new compound device
|
\item Assign a name to the new compound device
|
||||||
\item Select the synchronization method between devices. At the moment, only USB synchronization is supported but future hardware versions might support faster synchronization via dedicated trigger ports
|
\item Select the synchronization method between devices. At the moment, only GUI synchronization is supported but future hardware versions might support faster synchronization via dedicated trigger ports
|
||||||
\item Drag-and-drop a LibreVNA symbol into the configuration area for every physical device in the compound device
|
\item Drag-and-drop a LibreVNA symbol into the configuration area for every physical device in the compound device
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item At least two physical devices must be used
|
\item At least two physical devices must be used
|
||||||
\item At most four physical devices can be combined with a maximum of eight virtual ports
|
\item At most four physical devices can be combined with a maximum of eight virtual ports
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item Assign the serialnumbers for each physical device. Serialnumbers for all currently connected devices are available as suggestions but it is also possible to enter a different serialnumber manually
|
\item Assign serial numbers to each physical device. Serial numbers for all currently connected devices are available in the dropdown but it is also possible to enter a different serial number manually
|
||||||
\item Assign the virtual ports of the compound device:
|
\item Assign the virtual ports of the compound device:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Each port number must appear only once
|
\item Each port number must appear only once
|
||||||
|
|
@ -1412,7 +1434,7 @@ Required steps when creating a compound device:
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
\subsection{Connecting to a compound device}
|
\subsection{Connecting to a compound device}
|
||||||
Configured compound devices appear in the device list with their name when all required physical devices are connected. Once connected, new measurements or ports are available depending on the number of configured ports in the compound device.
|
Configured compound devices appear in the device list when all required physical devices are connected. Once connected, new measurements or ports are available depending on the number of configured ports in the compound device.
|
||||||
|
|
||||||
\begin{information}
|
\begin{information}
|
||||||
Through measurements between physical devices depend on precise matching of the stimulus frequency. Depending on the accuracy of the internal frequency source and the selected IF bandwidth, the stimulus signal from the generating device may fall outside of the IF bandwidth of the receiving device, resulting in a reported lower amplitude than actually present. Either align both internal oscillators precisely with the frequency calibration or (recommended) switch to using the external reference input when using a compound device.
|
Through measurements between physical devices depend on precise matching of the stimulus frequency. Depending on the accuracy of the internal frequency source and the selected IF bandwidth, the stimulus signal from the generating device may fall outside of the IF bandwidth of the receiving device, resulting in a reported lower amplitude than actually present. Either align both internal oscillators precisely with the frequency calibration or (recommended) switch to using the external reference input when using a compound device.
|
||||||
|
|
@ -1433,26 +1455,26 @@ Certain features are not available when connected to a compound device. To use t
|
||||||
\label{amplitude:calibration}
|
\label{amplitude:calibration}
|
||||||
This section is about calibrating the source output level and spectrum analyzer level. It does not affect VNA measurements at all. For the VNA calibration, see section~\ref{vna:calibration}.
|
This section is about calibrating the source output level and spectrum analyzer level. It does not affect VNA measurements at all. For the VNA calibration, see section~\ref{vna:calibration}.
|
||||||
|
|
||||||
Both the internal signal source and the receiver paths used in the generator or spectrum analyzer mode have no means of ensuring accurate amplitudes (as imperfections are removed by the VNA calibration, the hardware is not optimized for absolute amplitude accuracy). In order to improve the accuracy of both the generator and the spectrum analyzer (especially with enabled tracking generator), frequency dependent amplitude calibrations are available. They are permanently stored in the device and are only required to be performed once. The \textbf{Source Calibration} corrects the ouput of the (tracking) generator, while the \textbf{Receiver Calibration} corrects the measurement of the spectrum analyzer.
|
Both the internal signal source and the receiver paths used in the signal generator or spectrum analyzer modes have no means of ensuring accurate amplitudes (as imperfections are removed by the VNA calibration, the hardware is not optimized for absolute amplitude accuracy). Frequency dependent amplitude calibrations are available in order to improve the accuracy of both the signal generator and the spectrum analyzer (especially when the tracking generator option is enabled in the spectrum analyzer). These calibrations are permanently stored in the device and are only required to be performed once. The \textbf{Source Calibration} corrects the output of the signal generator and the spectrum analyzer's tracking generator, while the \textbf{Receiver Calibration} corrects the measurement of the spectrum analyzer.
|
||||||
|
|
||||||
For both calibrations, other test equipment is required, ideally covering the whole range of \SI{1}{\mega\hertz} to \SI{6}{\giga\hertz} (a calibration of only the partial frequeny range is also possible but signals/measurements outside the calibrated range will be inaccurate). The Soure Calibration requires a way to measure the output of the \vna{} (e.g. a spectrum analyzer or power meter), the Receiver Calibration requires a signal source (e.g. a signal generator). Once either calibration has been completed, the \vna{} can also infer the other one with reasonable accuracy.
|
For both calibrations, other test equipment is required, ideally covering the whole range of \SI{1}{\mega\hertz} to \SI{6}{\giga\hertz} (a calibration of only the partial frequency range is also possible but signals/measurements outside the calibrated range will be inaccurate). The Source Calibration requires a way to measure the output of the \vna{} (e.g. a spectrum analyzer or power meter), the Receiver Calibration requires a signal source (e.g. a signal generator). Once either calibration has been completed, the \vna{} can also infer the other one with reasonable accuracy.
|
||||||
|
|
||||||
\subsection{Source Calibration}
|
\subsection{Source Calibration}
|
||||||
Select \menu[,]{Device,Source Calibration}. A window showing the current source calibration opens:
|
Select \menu[,]{Device,Source Calibration}. A window showing the current source calibration opens:
|
||||||
\screenshot{1.0}{SourceCalibration.png}
|
\screenshot{1.0}{SourceCalibration.png}
|
||||||
These are the necessary steps:
|
These are the necessary steps:
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item \textbf{Set up the calibration frequencies:} Add or remove points according to your needs. Ideally, they should be evenly spaced across the range to calibrate, maybe with a slight emphasis on higher frequencies (signal levels generally vary more at higher frequencies). Additionally, it is advisable to set one point at \SI{25}{\mega\hertz} and one just below (at \SI{25}{\mega\hertz} a band is switched, resulting in an amplitude discontinuity). Up to 64 points can be used.
|
\item \textbf{Set up the calibration frequencies:} Add or remove points according to your needs. Ideally, they should be evenly spaced across the calibration range, maybe with a slight emphasis on higher frequencies (signal levels generally vary more at higher frequencies). Additionally, it is advisable to set one point at \SI{25}{\mega\hertz} and another point just below it (at \SI{25}{\mega\hertz} a band is switched, resulting in an amplitude discontinuity). Up to 64 points can be used.
|
||||||
\item \textbf{Select the calibration mode:} Either calibrate both ports separately (best accuracy but more work) or assume that they are identical and use the measurement at one port for both.
|
\item \textbf{Select the calibration mode:} Either calibrate both ports separately (best accuracy but more work) or assume that they are identical and use the measurement at one port for both.
|
||||||
\item \textbf{Perform the calibration:} For each frequency and port, select the corresponding cell in the table. The \vna{} will generate a signal at the selected frequency and port with (what it thinks are) \SI{-20}{\dBm}. Use external equipment to determine the actual output level and enter the measured value into the selected cell.
|
\item \textbf{Perform the calibration:} For each frequency and port, select the corresponding cell in the table. The \vna{} will generate a signal at the selected frequency, on the selected port, at (what it thinks is) \SI{-20}{\dBm}. Use your external equipment to determine the actual output level and enter it into the selected cell.
|
||||||
\item \textbf{Save the calibration:} Once all measurements have been taken, the "Save to Device" button becomes available. There is no way to save intermediate results, you have to calibrate all frequencies you have chosen in step 1.
|
\item \textbf{Save the calibration:} Once all measurements have been taken, the "Save to Device" button becomes available. There is no way to save intermediate results, you have to calibrate all frequencies you have chosen in step 1.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
If the Receiver Calibration is already done, it is also possible to infer the Source Calibration from that. Press \keys{Automatic measurement} and connect both ports of the \vna{} directly to each other. This connection should be as ideal as possible (short, low loss cable) as every imperfection directly translates into calibration errors. During the automatic calibration, the \vna{} uses the already established frequency points from the Receiver Calibration and measures the output amplitude by itself to determine the coefficients of the Source Calibration.
|
If you've already done a Receiver Calibration, it's possible to infer the Source Calibration from it. Press \keys{Automatic measurement}, connect both ports of the \vna{} directly to each other and press \keys{Start Measurement}. This connection should be as ideal as possible (short, low loss cable) as every imperfection directly translates into calibration errors. During the automatic calibration, the \vna{} uses the already established frequency points from the Receiver Calibration and measures the output amplitude by itself to determine the coefficients of the Source Calibration.
|
||||||
\subsection{Receiver Calibration}
|
\subsection{Receiver Calibration}
|
||||||
Select \menu[,]{Device,Receiver Calibration}. The Receiver Calibration works almost identically to the Source Calibration. The only difference is in step 3:
|
Select \menu[,]{Device,Receiver Calibration}. The Receiver Calibration works almost identically to the Source Calibration. The only difference is in step 3:
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\setcounter{enumi}{2}
|
\setcounter{enumi}{2}
|
||||||
\item \textbf{Perform the calibration:} For each frequency and port, select the corresponding cell in the table and apply a signal with known level at the selected frequency and port. The signal level should be in the range of \SI{-40}{\dBm} to \SI{-10}{\dBm}. Higher signal levels might already compress in the receiver while lower levels unnecessarily increase calibration errors due to noise. The \vna{} tunes its receiver to the selected frequency and measures the amplitude. Apply the signal for at least \SI{2}{\second} and enter its actual amplitude into the selected cell while the signal is still active.
|
\item \textbf{Perform the calibration:} For each frequency and port, select the corresponding cell in the table and apply a signal with known level at the selected frequency and port. The signal level should be in the range of \SI{-40}{\dBm} to \SI{-10}{\dBm}. Higher signal levels might already compress in the receiver while lower levels unnecessarily increase calibration errors due to noise. The \vna{} tunes its receiver to the selected frequency and measures the applied signal's amplitude. Enter the actual amplitude into the selected cell while the signal is still being applied. The signal should be applied for a minimum of \SI{2}{\second} to ensure an accurate measurement.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\section{Troubleshooting}
|
\section{Troubleshooting}
|
||||||
\label{troubleshooting}
|
\label{troubleshooting}
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,8 @@ architecture Behavioral of MCP33131 is
|
||||||
signal adc_data : std_logic_vector(15 downto 0);
|
signal adc_data : std_logic_vector(15 downto 0);
|
||||||
type States is (Idle, Conversion, WAIT_tEN, Transmission, Done);
|
type States is (Idle, Conversion, WAIT_tEN, Transmission, Done);
|
||||||
signal state : States;
|
signal state : States;
|
||||||
|
signal ready_int : std_logic;
|
||||||
|
signal ready_delay : integer range 0 to 30;
|
||||||
signal min_int, max_int, data_int : signed(15 downto 0);
|
signal min_int, max_int, data_int : signed(15 downto 0);
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
|
@ -61,7 +63,7 @@ begin
|
||||||
DATA <= std_logic_vector(data_int);
|
DATA <= std_logic_vector(data_int);
|
||||||
SCLK <= sclk_phase;
|
SCLK <= sclk_phase;
|
||||||
|
|
||||||
process(SCLK)
|
process(SCLK, START)
|
||||||
begin
|
begin
|
||||||
if(falling_edge(SCLK)) then
|
if(falling_edge(SCLK)) then
|
||||||
adc_data <= adc_data(14 downto 0) & SDO;
|
adc_data <= adc_data(14 downto 0) & SDO;
|
||||||
|
|
@ -74,6 +76,7 @@ begin
|
||||||
if(RESET = '1') then
|
if(RESET = '1') then
|
||||||
state <= Idle;
|
state <= Idle;
|
||||||
READY <= '0';
|
READY <= '0';
|
||||||
|
ready_int <= '0';
|
||||||
CONVSTART <= '0';
|
CONVSTART <= '0';
|
||||||
sclk_phase <= '0';
|
sclk_phase <= '0';
|
||||||
CONVSTART <= '0';
|
CONVSTART <= '0';
|
||||||
|
|
@ -94,16 +97,30 @@ begin
|
||||||
max_int <= data_int;
|
max_int <= data_int;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
|
READY <= '0';
|
||||||
|
if ready_int = '1' then
|
||||||
|
ready_delay <= 3;
|
||||||
|
else
|
||||||
|
if ready_delay > 0 then
|
||||||
|
ready_delay <= ready_delay - 1;
|
||||||
|
end if;
|
||||||
|
if ready_delay = 1 then
|
||||||
|
READY <= '1';
|
||||||
|
data_int <= signed(adc_data);
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
|
||||||
case state is
|
case state is
|
||||||
when Idle =>
|
when Idle =>
|
||||||
READY <= '0';
|
ready_int <= '0';
|
||||||
bit_cnt <= 0;
|
|
||||||
if START = '1' then
|
if START = '1' then
|
||||||
state <= Conversion;
|
state <= Conversion;
|
||||||
conv_cnt <= 0;
|
conv_cnt <= 0;
|
||||||
CONVSTART <= '1';
|
CONVSTART <= '1';
|
||||||
end if;
|
end if;
|
||||||
when Conversion =>
|
when Conversion =>
|
||||||
|
ready_int <= '0';
|
||||||
if(conv_cnt < CONVCYCLES-1) then
|
if(conv_cnt < CONVCYCLES-1) then
|
||||||
conv_cnt <= conv_cnt + 1;
|
conv_cnt <= conv_cnt + 1;
|
||||||
else
|
else
|
||||||
|
|
@ -112,8 +129,10 @@ begin
|
||||||
state <= WAIT_tEN;
|
state <= WAIT_tEN;
|
||||||
end if;
|
end if;
|
||||||
when WAIT_tEN =>
|
when WAIT_tEN =>
|
||||||
|
ready_int <= '0';
|
||||||
state <= Transmission;
|
state <= Transmission;
|
||||||
when Transmission =>
|
when Transmission =>
|
||||||
|
ready_int <= '0';
|
||||||
if(div_cnt < (CLK_DIV/2)-1) then
|
if(div_cnt < (CLK_DIV/2)-1) then
|
||||||
div_cnt <= div_cnt + 1;
|
div_cnt <= div_cnt + 1;
|
||||||
else
|
else
|
||||||
|
|
@ -123,6 +142,7 @@ begin
|
||||||
sclk_phase <= '0';
|
sclk_phase <= '0';
|
||||||
if bit_cnt = 15 then
|
if bit_cnt = 15 then
|
||||||
state <= Done;
|
state <= Done;
|
||||||
|
bit_cnt <= 0;
|
||||||
else
|
else
|
||||||
bit_cnt <= bit_cnt + 1;
|
bit_cnt <= bit_cnt + 1;
|
||||||
end if;
|
end if;
|
||||||
|
|
@ -130,8 +150,7 @@ begin
|
||||||
div_cnt <= 0;
|
div_cnt <= 0;
|
||||||
end if;
|
end if;
|
||||||
when Done =>
|
when Done =>
|
||||||
data_int <= signed(adc_data);
|
ready_int <= '1';
|
||||||
READY <= '1';
|
|
||||||
state <= Idle;
|
state <= Idle;
|
||||||
end case;
|
end case;
|
||||||
end if;
|
end if;
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ entity SPICommands is
|
||||||
SWEEP_POINTS : out STD_LOGIC_VECTOR (12 downto 0);
|
SWEEP_POINTS : out STD_LOGIC_VECTOR (12 downto 0);
|
||||||
NSAMPLES : out STD_LOGIC_VECTOR (12 downto 0);
|
NSAMPLES : out STD_LOGIC_VECTOR (12 downto 0);
|
||||||
STAGES : out STD_LOGIC_VECTOR (2 downto 0);
|
STAGES : out STD_LOGIC_VECTOR (2 downto 0);
|
||||||
|
SETTLING_TIME : out STD_LOGIC_VECTOR (19 downto 0);
|
||||||
SYNC_ENABLED : out STD_LOGIC;
|
SYNC_ENABLED : out STD_LOGIC;
|
||||||
SYNC_MASTER : out STD_LOGIC;
|
SYNC_MASTER : out STD_LOGIC;
|
||||||
PORT1_STAGE : out STD_LOGIC_VECTOR (2 downto 0);
|
PORT1_STAGE : out STD_LOGIC_VECTOR (2 downto 0);
|
||||||
|
|
@ -90,7 +91,8 @@ end SPICommands;
|
||||||
|
|
||||||
architecture Behavioral of SPICommands is
|
architecture Behavioral of SPICommands is
|
||||||
COMPONENT spi_slave
|
COMPONENT spi_slave
|
||||||
Generic(W : integer);
|
Generic(W : integer;
|
||||||
|
PREWIDTH : integer);
|
||||||
PORT(
|
PORT(
|
||||||
SPI_CLK : in STD_LOGIC;
|
SPI_CLK : in STD_LOGIC;
|
||||||
MISO : out STD_LOGIC;
|
MISO : out STD_LOGIC;
|
||||||
|
|
@ -99,7 +101,9 @@ architecture Behavioral of SPICommands is
|
||||||
BUF_OUT : out STD_LOGIC_VECTOR (W-1 downto 0) := (others => '0');
|
BUF_OUT : out STD_LOGIC_VECTOR (W-1 downto 0) := (others => '0');
|
||||||
BUF_IN : in STD_LOGIC_VECTOR (W-1 downto 0);
|
BUF_IN : in STD_LOGIC_VECTOR (W-1 downto 0);
|
||||||
CLK : in STD_LOGIC;
|
CLK : in STD_LOGIC;
|
||||||
COMPLETE : out STD_LOGIC
|
COMPLETE : out STD_LOGIC;
|
||||||
|
PRE_COMPLETE : out STD_LOGIC;
|
||||||
|
PRE_BUF_OUT : out STD_LOGIC_VECTOR (PREWIDTH-1 downto 0)
|
||||||
);
|
);
|
||||||
END COMPONENT;
|
END COMPONENT;
|
||||||
|
|
||||||
|
|
@ -107,6 +111,8 @@ architecture Behavioral of SPICommands is
|
||||||
signal spi_buf_out : std_logic_vector(15 downto 0);
|
signal spi_buf_out : std_logic_vector(15 downto 0);
|
||||||
signal spi_buf_in : std_logic_vector(15 downto 0);
|
signal spi_buf_in : std_logic_vector(15 downto 0);
|
||||||
signal spi_complete : std_logic;
|
signal spi_complete : std_logic;
|
||||||
|
signal spi_pre_complete : std_logic;
|
||||||
|
signal spi_pre_buf_out : std_logic_vector(2 downto 0);
|
||||||
signal word_cnt : integer range 0 to 19;
|
signal word_cnt : integer range 0 to 19;
|
||||||
type SPI_states is (FirstWord, WriteSweepConfig, ReadResult, WriteRegister);
|
type SPI_states is (FirstWord, WriteSweepConfig, ReadResult, WriteRegister);
|
||||||
signal state : SPI_states;
|
signal state : SPI_states;
|
||||||
|
|
@ -127,7 +133,8 @@ architecture Behavioral of SPICommands is
|
||||||
signal sweepconfig_buffer : std_logic_vector(79 downto 0);
|
signal sweepconfig_buffer : std_logic_vector(79 downto 0);
|
||||||
begin
|
begin
|
||||||
SPI: spi_slave
|
SPI: spi_slave
|
||||||
GENERIC MAP(w => 16)
|
GENERIC MAP(W => 16,
|
||||||
|
PREWIDTH => 3)
|
||||||
PORT MAP(
|
PORT MAP(
|
||||||
SPI_CLK => SCLK,
|
SPI_CLK => SCLK,
|
||||||
MISO => MISO,
|
MISO => MISO,
|
||||||
|
|
@ -136,7 +143,9 @@ begin
|
||||||
BUF_OUT => spi_buf_out,
|
BUF_OUT => spi_buf_out,
|
||||||
BUF_IN => spi_buf_in,
|
BUF_IN => spi_buf_in,
|
||||||
CLK => CLK,
|
CLK => CLK,
|
||||||
COMPLETE =>spi_complete
|
COMPLETE => spi_complete,
|
||||||
|
PRE_COMPLETE => spi_pre_complete,
|
||||||
|
PRE_BUF_OUT => spi_pre_buf_out
|
||||||
);
|
);
|
||||||
|
|
||||||
SWEEP_WRITE(0) <= sweep_config_write;
|
SWEEP_WRITE(0) <= sweep_config_write;
|
||||||
|
|
@ -204,89 +213,113 @@ begin
|
||||||
word_cnt <= 0;
|
word_cnt <= 0;
|
||||||
spi_buf_in <= interrupt_status;
|
spi_buf_in <= interrupt_status;
|
||||||
state <= FirstWord;
|
state <= FirstWord;
|
||||||
elsif spi_complete = '1' then
|
else
|
||||||
word_cnt <= word_cnt + 1;
|
-- handle read operations when the first PREWIDTH bits are complete
|
||||||
|
if spi_pre_complete = '1' then
|
||||||
case state is
|
case state is
|
||||||
when FirstWord =>
|
when FirstWord =>
|
||||||
-- initial word determines action
|
-- initial word determines the action
|
||||||
case spi_buf_out(15 downto 13) is
|
case spi_pre_buf_out is
|
||||||
when "000" => state <= WriteSweepConfig;
|
when "010" => state <= FirstWord;
|
||||||
-- also extract the point number
|
spi_buf_in <= "1111000010100101";
|
||||||
SWEEP_ADDRESS <= spi_buf_out(12 downto 0);
|
when "101" => state <= ReadResult;-- can use same state as read result, but the latched data will contain the DFT values
|
||||||
when "001" => state <= FirstWord;
|
latched_result(175 downto 0) <= DFT_OUTPUT(191 downto 16);
|
||||||
SWEEP_RESUME <= '1';
|
spi_buf_in <= DFT_OUTPUT(15 downto 0);
|
||||||
when "010" => state <= FirstWord;
|
dft_next <= '1';
|
||||||
spi_buf_in <= "1111000010100101";
|
when "110" => state <= ReadResult;
|
||||||
when "011" => state <= FirstWord;
|
latched_result <= SAMPLING_RESULT(303 downto 16);
|
||||||
RESET_MINMAX <= '1';
|
spi_buf_in <= SAMPLING_RESULT(15 downto 0);
|
||||||
when "100" => state <= WriteRegister;
|
unread_sampling_data <= '0';
|
||||||
selected_register <= to_integer(unsigned(spi_buf_out(4 downto 0)));
|
when "111" => state <= ReadResult; -- can use same state as read result, but the latched data will contain the min/max ADC values
|
||||||
when "101" => state <= ReadResult;-- can use same state as read result, but the latched data will contain the DFT values
|
latched_result(79 downto 0) <= ADC_MINMAX(95 downto 16);
|
||||||
latched_result(175 downto 0) <= DFT_OUTPUT(191 downto 16);
|
spi_buf_in <= ADC_MINMAX(15 downto 0);
|
||||||
spi_buf_in <= DFT_OUTPUT(15 downto 0);
|
--ignore other options
|
||||||
dft_next <= '1';
|
when others =>
|
||||||
when "110" => state <= ReadResult;
|
|
||||||
latched_result <= SAMPLING_RESULT(303 downto 16);
|
|
||||||
spi_buf_in <= SAMPLING_RESULT(15 downto 0);
|
|
||||||
unread_sampling_data <= '0';
|
|
||||||
when "111" => state <= ReadResult; -- can use same state as read result, but the latched data will contain the min/max ADC values
|
|
||||||
latched_result(79 downto 0) <= ADC_MINMAX(95 downto 16);
|
|
||||||
spi_buf_in <= ADC_MINMAX(15 downto 0);
|
|
||||||
when others => state <= FirstWord;
|
|
||||||
end case;
|
end case;
|
||||||
when WriteRegister =>
|
when ReadResult =>
|
||||||
-- write received data into previously selected register
|
-- pass on next word of latched result
|
||||||
case selected_register is
|
spi_buf_in <= latched_result(15 downto 0);
|
||||||
when 0 => interrupt_mask <= spi_buf_out;
|
latched_result <= "0000000000000000" & latched_result(287 downto 16);
|
||||||
when 1 => SWEEP_POINTS <= spi_buf_out(12 downto 0);
|
when others =>
|
||||||
when 2 => NSAMPLES <= spi_buf_out(12 downto 0);
|
|
||||||
when 3 => PORTSWITCH_EN <= spi_buf_out(0);
|
|
||||||
PORT1_EN <= spi_buf_out(15);
|
|
||||||
PORT2_EN <= spi_buf_out(14);
|
|
||||||
REF_EN <= spi_buf_out(13);
|
|
||||||
AMP_SHDN <= not spi_buf_out(12);
|
|
||||||
SOURCE_RF_EN <= spi_buf_out(11);
|
|
||||||
LO_RF_EN <= spi_buf_out(10);
|
|
||||||
LEDS <= not spi_buf_out(9 downto 7);
|
|
||||||
WINDOW_SETTING <= spi_buf_out(6 downto 5);
|
|
||||||
SOURCE_CE_EN <= spi_buf_out(4);
|
|
||||||
LO_CE_EN <= spi_buf_out(3);
|
|
||||||
SYNC_MASTER <= spi_buf_out(1);
|
|
||||||
when 4 => ADC_PRESCALER <= spi_buf_out(7 downto 0);
|
|
||||||
when 5 => ADC_PHASEINC <= spi_buf_out(11 downto 0);
|
|
||||||
when 6 => STAGES <= spi_buf_out(15 downto 13);
|
|
||||||
SYNC_ENABLED <= spi_buf_out(12);
|
|
||||||
PORT1_STAGE <= spi_buf_out(5 downto 3);
|
|
||||||
PORT2_STAGE <= spi_buf_out(2 downto 0);
|
|
||||||
when 7 => SPI_OVERWRITE_ENABLED <= spi_buf_out(15);
|
|
||||||
SPI_OVERWRITE_DATA <= spi_buf_out(14 downto 0);
|
|
||||||
when 8 => MAX2871_DEF_0(15 downto 0) <= spi_buf_out;
|
|
||||||
when 9 => MAX2871_DEF_0(31 downto 16) <= spi_buf_out;
|
|
||||||
when 10 => MAX2871_DEF_1(15 downto 0) <= spi_buf_out;
|
|
||||||
when 11 => MAX2871_DEF_1(31 downto 16) <= spi_buf_out;
|
|
||||||
when 12 => MAX2871_DEF_3(15 downto 0) <= spi_buf_out;
|
|
||||||
when 13 => MAX2871_DEF_3(31 downto 16) <= spi_buf_out;
|
|
||||||
when 14 => MAX2871_DEF_4(15 downto 0) <= spi_buf_out;
|
|
||||||
when 15 => MAX2871_DEF_4(31 downto 16) <= spi_buf_out;
|
|
||||||
when 18 => DFT_BIN1_PHASEINC <= spi_buf_out;
|
|
||||||
when 19 => DFT_DIFFBIN_PHASEINC <= spi_buf_out;
|
|
||||||
when others =>
|
|
||||||
end case;
|
|
||||||
selected_register <= selected_register + 1;
|
|
||||||
when WriteSweepConfig =>
|
|
||||||
if word_cnt = 6 then
|
|
||||||
-- Sweep config data is complete pass on
|
|
||||||
SWEEP_DATA <= sweepconfig_buffer & spi_buf_out;
|
|
||||||
sweep_config_write <= '1';
|
|
||||||
else
|
|
||||||
-- shift next word into buffer
|
|
||||||
sweepconfig_buffer <= sweepconfig_buffer(63 downto 0) & spi_buf_out;
|
|
||||||
end if;
|
|
||||||
when ReadResult =>
|
|
||||||
-- pass on next word of latched result
|
|
||||||
spi_buf_in <= latched_result(15 downto 0);
|
|
||||||
latched_result <= "0000000000000000" & latched_result(287 downto 16);
|
|
||||||
end case;
|
end case;
|
||||||
|
end if;
|
||||||
|
-- handle write operations when the whole word is complete
|
||||||
|
if spi_complete = '1' then
|
||||||
|
word_cnt <= word_cnt + 1;
|
||||||
|
case state is
|
||||||
|
when FirstWord =>
|
||||||
|
-- initial word determines action
|
||||||
|
case spi_buf_out(15 downto 13) is
|
||||||
|
when "000" => state <= WriteSweepConfig;
|
||||||
|
-- also extract the point number
|
||||||
|
SWEEP_ADDRESS <= spi_buf_out(12 downto 0);
|
||||||
|
when "001" => state <= FirstWord;
|
||||||
|
SWEEP_RESUME <= '1';
|
||||||
|
when "011" => state <= FirstWord;
|
||||||
|
RESET_MINMAX <= '1';
|
||||||
|
when "100" => state <= WriteRegister;
|
||||||
|
selected_register <= to_integer(unsigned(spi_buf_out(4 downto 0)));
|
||||||
|
-- ignore read options (already handled in other state machine)
|
||||||
|
when "010" =>
|
||||||
|
when "101" =>
|
||||||
|
when "110" =>
|
||||||
|
when "111" =>
|
||||||
|
when others => state <= FirstWord;
|
||||||
|
end case;
|
||||||
|
when WriteRegister =>
|
||||||
|
-- write received data into previously selected register
|
||||||
|
case selected_register is
|
||||||
|
when 0 => interrupt_mask <= spi_buf_out;
|
||||||
|
when 1 => SWEEP_POINTS <= spi_buf_out(12 downto 0);
|
||||||
|
when 2 => NSAMPLES <= spi_buf_out(12 downto 0);
|
||||||
|
when 3 => PORTSWITCH_EN <= spi_buf_out(0);
|
||||||
|
PORT1_EN <= spi_buf_out(15);
|
||||||
|
PORT2_EN <= spi_buf_out(14);
|
||||||
|
REF_EN <= spi_buf_out(13);
|
||||||
|
AMP_SHDN <= not spi_buf_out(12);
|
||||||
|
SOURCE_RF_EN <= spi_buf_out(11);
|
||||||
|
LO_RF_EN <= spi_buf_out(10);
|
||||||
|
LEDS <= not spi_buf_out(9 downto 7);
|
||||||
|
WINDOW_SETTING <= spi_buf_out(6 downto 5);
|
||||||
|
SOURCE_CE_EN <= spi_buf_out(4);
|
||||||
|
LO_CE_EN <= spi_buf_out(3);
|
||||||
|
SYNC_MASTER <= spi_buf_out(1);
|
||||||
|
when 4 => ADC_PRESCALER <= spi_buf_out(7 downto 0);
|
||||||
|
when 5 => ADC_PHASEINC <= spi_buf_out(11 downto 0);
|
||||||
|
when 6 => STAGES <= spi_buf_out(15 downto 13);
|
||||||
|
SYNC_ENABLED <= spi_buf_out(12);
|
||||||
|
PORT1_STAGE <= spi_buf_out(5 downto 3);
|
||||||
|
PORT2_STAGE <= spi_buf_out(2 downto 0);
|
||||||
|
when 7 => SPI_OVERWRITE_ENABLED <= spi_buf_out(15);
|
||||||
|
SPI_OVERWRITE_DATA <= spi_buf_out(14 downto 0);
|
||||||
|
when 8 => MAX2871_DEF_0(15 downto 0) <= spi_buf_out;
|
||||||
|
when 9 => MAX2871_DEF_0(31 downto 16) <= spi_buf_out;
|
||||||
|
when 10 => MAX2871_DEF_1(15 downto 0) <= spi_buf_out;
|
||||||
|
when 11 => MAX2871_DEF_1(31 downto 16) <= spi_buf_out;
|
||||||
|
when 12 => MAX2871_DEF_3(15 downto 0) <= spi_buf_out;
|
||||||
|
when 13 => MAX2871_DEF_3(31 downto 16) <= spi_buf_out;
|
||||||
|
when 14 => MAX2871_DEF_4(15 downto 0) <= spi_buf_out;
|
||||||
|
when 15 => MAX2871_DEF_4(31 downto 16) <= spi_buf_out;
|
||||||
|
when 18 => DFT_BIN1_PHASEINC <= spi_buf_out;
|
||||||
|
when 19 => DFT_DIFFBIN_PHASEINC <= spi_buf_out;
|
||||||
|
when 20 => SETTLING_TIME(15 downto 0) <= spi_buf_out;
|
||||||
|
when 21 => SETTLING_TIME(19 downto 16) <= spi_buf_out(3 downto 0);
|
||||||
|
when others =>
|
||||||
|
end case;
|
||||||
|
selected_register <= selected_register + 1;
|
||||||
|
when WriteSweepConfig =>
|
||||||
|
if word_cnt = 6 then
|
||||||
|
-- Sweep config data is complete pass on
|
||||||
|
SWEEP_DATA <= sweepconfig_buffer & spi_buf_out;
|
||||||
|
sweep_config_write <= '1';
|
||||||
|
else
|
||||||
|
-- shift next word into buffer
|
||||||
|
sweepconfig_buffer <= sweepconfig_buffer(63 downto 0) & spi_buf_out;
|
||||||
|
end if;
|
||||||
|
-- read already handled in pre_complete, ignore
|
||||||
|
when ReadResult =>
|
||||||
|
end case;
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ entity Sweep is
|
||||||
CONFIG_DATA : in STD_LOGIC_VECTOR (95 downto 0);
|
CONFIG_DATA : in STD_LOGIC_VECTOR (95 downto 0);
|
||||||
USER_NSAMPLES : in STD_LOGIC_VECTOR (12 downto 0);
|
USER_NSAMPLES : in STD_LOGIC_VECTOR (12 downto 0);
|
||||||
NSAMPLES : out STD_LOGIC_VECTOR (12 downto 0);
|
NSAMPLES : out STD_LOGIC_VECTOR (12 downto 0);
|
||||||
|
SETTLING_TIME : in STD_LOGIC_VECTOR (19 downto 0);
|
||||||
SAMPLING_BUSY : in STD_LOGIC;
|
SAMPLING_BUSY : in STD_LOGIC;
|
||||||
SAMPLING_DONE : in STD_LOGIC;
|
SAMPLING_DONE : in STD_LOGIC;
|
||||||
START_SAMPLING : out STD_LOGIC;
|
START_SAMPLING : out STD_LOGIC;
|
||||||
|
|
@ -92,8 +93,7 @@ architecture Behavioral of Sweep is
|
||||||
signal point_cnt : unsigned(12 downto 0);
|
signal point_cnt : unsigned(12 downto 0);
|
||||||
type Point_states is (WaitInitialLow, TriggerSetup, SettingUp, Settling, WaitTriggerHigh, Exciting, WaitTriggerLow, SamplingDone, NextPoint, Done);
|
type Point_states is (WaitInitialLow, TriggerSetup, SettingUp, Settling, WaitTriggerHigh, Exciting, WaitTriggerLow, SamplingDone, NextPoint, Done);
|
||||||
signal state : Point_states;
|
signal state : Point_states;
|
||||||
signal settling_cnt : unsigned(15 downto 0);
|
signal settling_cnt : unsigned(19 downto 0);
|
||||||
signal settling_time : unsigned(15 downto 0);
|
|
||||||
signal stage_cnt : unsigned (2 downto 0);
|
signal stage_cnt : unsigned (2 downto 0);
|
||||||
signal config_reg : std_logic_vector(95 downto 0);
|
signal config_reg : std_logic_vector(95 downto 0);
|
||||||
signal source_active : std_logic;
|
signal source_active : std_logic;
|
||||||
|
|
@ -103,7 +103,7 @@ begin
|
||||||
|
|
||||||
-- assemble registers
|
-- assemble registers
|
||||||
-- source register 0: N divider and fractional division value
|
-- source register 0: N divider and fractional division value
|
||||||
SOURCE_REG_0 <= MAX2871_DEF_0(31) & "0000000000" & config_reg(5 downto 0) & config_reg(26 downto 15) & "000";
|
SOURCE_REG_0 <= MAX2871_DEF_0(31) & "000000000" & config_reg(93) & config_reg(5 downto 0) & config_reg(26 downto 15) & "000";
|
||||||
-- source register 1: Modulus value
|
-- source register 1: Modulus value
|
||||||
SOURCE_REG_1 <= MAX2871_DEF_1(31 downto 15) & config_reg(38 downto 27) & "001";
|
SOURCE_REG_1 <= MAX2871_DEF_1(31 downto 15) & config_reg(38 downto 27) & "001";
|
||||||
-- source register 3: VCO selection
|
-- source register 3: VCO selection
|
||||||
|
|
@ -112,7 +112,7 @@ begin
|
||||||
SOURCE_REG_4 <= MAX2871_DEF_4(31 downto 23) & config_reg(14 downto 12) & MAX2871_DEF_4(19 downto 9) & "000" & MAX2871_DEF_4(5) & config_reg(47 downto 46) & "100";
|
SOURCE_REG_4 <= MAX2871_DEF_4(31 downto 23) & config_reg(14 downto 12) & MAX2871_DEF_4(19 downto 9) & "000" & MAX2871_DEF_4(5) & config_reg(47 downto 46) & "100";
|
||||||
|
|
||||||
-- LO register 0: N divider and fractional division value
|
-- LO register 0: N divider and fractional division value
|
||||||
LO_REG_0 <= MAX2871_DEF_0(31) & "0000000000" & config_reg(54 downto 49) & config_reg(75 downto 64) & "000";
|
LO_REG_0 <= MAX2871_DEF_0(31) & "000000000" & config_reg(94) & config_reg(54 downto 49) & config_reg(75 downto 64) & "000";
|
||||||
-- LO register 1: Modulus value
|
-- LO register 1: Modulus value
|
||||||
LO_REG_1 <= MAX2871_DEF_1(31 downto 15) & config_reg(87 downto 76) & "001";
|
LO_REG_1 <= MAX2871_DEF_1(31 downto 15) & config_reg(87 downto 76) & "001";
|
||||||
-- LO register 3: VCO selection
|
-- LO register 3: VCO selection
|
||||||
|
|
@ -184,13 +184,7 @@ begin
|
||||||
-- highest bit in config_reg determines whether the sweep should be halted prior to sampling
|
-- highest bit in config_reg determines whether the sweep should be halted prior to sampling
|
||||||
SWEEP_HALTED <= config_reg(95);
|
SWEEP_HALTED <= config_reg(95);
|
||||||
RELOAD_PLL_REGS <= '0';
|
RELOAD_PLL_REGS <= '0';
|
||||||
case config_reg(94 downto 93) is
|
settling_cnt <= unsigned(SETTLING_TIME);
|
||||||
when "00" => settling_time <= to_unsigned(2048, 16); -- 20us
|
|
||||||
when "01" => settling_time <= to_unsigned(6144, 16); -- 60us
|
|
||||||
when "10" => settling_time <= to_unsigned(18432, 16); -- 180us
|
|
||||||
when others => settling_time <= to_unsigned(55296, 16); -- 540us
|
|
||||||
end case;
|
|
||||||
settling_cnt <= settling_time;
|
|
||||||
if PLL_RELOAD_DONE = '1' and PLL_LOCKED = '1' then
|
if PLL_RELOAD_DONE = '1' and PLL_LOCKED = '1' then
|
||||||
-- check if halted sweep is resumed
|
-- check if halted sweep is resumed
|
||||||
if config_reg(95) = '0' or SWEEP_RESUME = '1' then
|
if config_reg(95) = '0' or SWEEP_RESUME = '1' then
|
||||||
|
|
@ -257,7 +251,7 @@ begin
|
||||||
else
|
else
|
||||||
state <= NextPoint;
|
state <= NextPoint;
|
||||||
end if;
|
end if;
|
||||||
settling_cnt <= settling_time;
|
settling_cnt <= unsigned(SETTLING_TIME);
|
||||||
when NextPoint =>
|
when NextPoint =>
|
||||||
NEW_DATA <= '0';
|
NEW_DATA <= '0';
|
||||||
if point_cnt < unsigned(NPOINTS) then
|
if point_cnt < unsigned(NPOINTS) then
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,8 @@ ARCHITECTURE behavior OF Test_SPI IS
|
||||||
-- Component Declaration for the Unit Under Test (UUT)
|
-- Component Declaration for the Unit Under Test (UUT)
|
||||||
|
|
||||||
COMPONENT spi_slave
|
COMPONENT spi_slave
|
||||||
GENERIC(W : integer);
|
GENERIC(W : integer;
|
||||||
|
PREWIDTH : integer);
|
||||||
PORT(
|
PORT(
|
||||||
SPI_CLK : IN std_logic;
|
SPI_CLK : IN std_logic;
|
||||||
MISO : OUT std_logic;
|
MISO : OUT std_logic;
|
||||||
|
|
@ -49,7 +50,9 @@ ARCHITECTURE behavior OF Test_SPI IS
|
||||||
BUF_OUT : OUT std_logic_vector(W-1 downto 0);
|
BUF_OUT : OUT std_logic_vector(W-1 downto 0);
|
||||||
BUF_IN : IN std_logic_vector(W-1 downto 0);
|
BUF_IN : IN std_logic_vector(W-1 downto 0);
|
||||||
CLK : IN std_logic;
|
CLK : IN std_logic;
|
||||||
COMPLETE : OUT std_logic
|
COMPLETE : OUT std_logic;
|
||||||
|
PRE_COMPLETE : out STD_LOGIC;
|
||||||
|
PRE_BUF_OUT : out STD_LOGIC_VECTOR (PREWIDTH-1 downto 0)
|
||||||
);
|
);
|
||||||
END COMPONENT;
|
END COMPONENT;
|
||||||
|
|
||||||
|
|
@ -65,10 +68,12 @@ ARCHITECTURE behavior OF Test_SPI IS
|
||||||
signal MISO : std_logic;
|
signal MISO : std_logic;
|
||||||
signal BUF_OUT : std_logic_vector(15 downto 0);
|
signal BUF_OUT : std_logic_vector(15 downto 0);
|
||||||
signal COMPLETE : std_logic;
|
signal COMPLETE : std_logic;
|
||||||
|
signal PRE_COMPLETE : std_logic;
|
||||||
|
signal PRE_BUF_OUT : std_logic_vector(2 downto 0);
|
||||||
|
|
||||||
-- Clock period definitions
|
-- Clock period definitions
|
||||||
constant CLK_period : time := 10 ns;
|
constant CLK_period : time := 9.765625 ns;
|
||||||
constant SPI_CLK_period : time := 100 ns;
|
constant SPI_CLK_period : time := 25 ns;
|
||||||
|
|
||||||
signal data_signal : std_logic_vector(15 downto 0);
|
signal data_signal : std_logic_vector(15 downto 0);
|
||||||
|
|
||||||
|
|
@ -76,7 +81,7 @@ BEGIN
|
||||||
|
|
||||||
-- Instantiate the Unit Under Test (UUT)
|
-- Instantiate the Unit Under Test (UUT)
|
||||||
uut: spi_slave
|
uut: spi_slave
|
||||||
GENERIC MAP(W => 16)
|
GENERIC MAP(W => 16, PREWIDTH => 3)
|
||||||
PORT MAP (
|
PORT MAP (
|
||||||
SPI_CLK => SPI_CLK,
|
SPI_CLK => SPI_CLK,
|
||||||
MISO => MISO,
|
MISO => MISO,
|
||||||
|
|
@ -85,7 +90,9 @@ BEGIN
|
||||||
BUF_OUT => BUF_OUT,
|
BUF_OUT => BUF_OUT,
|
||||||
BUF_IN => BUF_IN,
|
BUF_IN => BUF_IN,
|
||||||
CLK => CLK,
|
CLK => CLK,
|
||||||
COMPLETE => COMPLETE
|
COMPLETE => COMPLETE,
|
||||||
|
PRE_COMPLETE => PRE_COMPLETE,
|
||||||
|
PRE_BUF_OUT => PRE_BUF_OUT
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Clock process definitions
|
-- Clock process definitions
|
||||||
|
|
|
||||||
|
|
@ -41,33 +41,63 @@ ARCHITECTURE behavior OF Test_SPICommands IS
|
||||||
|
|
||||||
COMPONENT SPICommands
|
COMPONENT SPICommands
|
||||||
PORT(
|
PORT(
|
||||||
CLK : IN std_logic;
|
CLK : in STD_LOGIC;
|
||||||
RESET : IN std_logic;
|
RESET : in STD_LOGIC;
|
||||||
SCLK : IN std_logic;
|
SCLK : in STD_LOGIC;
|
||||||
MOSI : IN std_logic;
|
MOSI : in STD_LOGIC;
|
||||||
MISO : OUT std_logic;
|
MISO : out STD_LOGIC;
|
||||||
NSS : IN std_logic;
|
NSS : in STD_LOGIC;
|
||||||
NEW_SAMPLING_DATA : IN std_logic;
|
NEW_SAMPLING_DATA : in STD_LOGIC;
|
||||||
SAMPLING_RESULT : IN std_logic_vector(303 downto 0);
|
SAMPLING_RESULT : in STD_LOGIC_VECTOR (303 downto 0);
|
||||||
SOURCE_UNLOCKED : IN std_logic;
|
ADC_MINMAX : in STD_LOGIC_VECTOR(95 downto 0);
|
||||||
LO_UNLOCKED : IN std_logic;
|
SOURCE_UNLOCKED : in STD_LOGIC;
|
||||||
MAX2871_DEF_4 : OUT std_logic_vector(31 downto 0);
|
LO_UNLOCKED : in STD_LOGIC;
|
||||||
MAX2871_DEF_3 : OUT std_logic_vector(31 downto 0);
|
MAX2871_DEF_4 : out STD_LOGIC_VECTOR (31 downto 0);
|
||||||
MAX2871_DEF_1 : OUT std_logic_vector(31 downto 0);
|
MAX2871_DEF_3 : out STD_LOGIC_VECTOR (31 downto 0);
|
||||||
MAX2871_DEF_0 : OUT std_logic_vector(31 downto 0);
|
MAX2871_DEF_1 : out STD_LOGIC_VECTOR (31 downto 0);
|
||||||
SWEEP_DATA : OUT std_logic_vector(95 downto 0);
|
MAX2871_DEF_0 : out STD_LOGIC_VECTOR (31 downto 0);
|
||||||
SWEEP_ADDRESS : OUT std_logic_vector(12 downto 0);
|
SWEEP_DATA : out STD_LOGIC_VECTOR (95 downto 0);
|
||||||
SWEEP_WRITE : OUT std_logic_vector(0 downto 0);
|
SWEEP_ADDRESS : out STD_LOGIC_VECTOR (12 downto 0);
|
||||||
SWEEP_POINTS : OUT std_logic_vector(12 downto 0);
|
SWEEP_WRITE : out STD_LOGIC_VECTOR (0 downto 0);
|
||||||
NSAMPLES : OUT std_logic_vector(12 downto 0);
|
SWEEP_POINTS : out STD_LOGIC_VECTOR (12 downto 0);
|
||||||
PORT1_EN : OUT std_logic;
|
NSAMPLES : out STD_LOGIC_VECTOR (12 downto 0);
|
||||||
PORT2_EN : OUT std_logic;
|
STAGES : out STD_LOGIC_VECTOR (2 downto 0);
|
||||||
REF_EN : OUT std_logic;
|
SETTLING_TIME : out STD_LOGIC_VECTOR (19 downto 0);
|
||||||
AMP_SHDN : OUT std_logic;
|
SYNC_ENABLED : out STD_LOGIC;
|
||||||
SOURCE_RF_EN : OUT std_logic;
|
SYNC_MASTER : out STD_LOGIC;
|
||||||
LO_RF_EN : OUT std_logic;
|
PORT1_STAGE : out STD_LOGIC_VECTOR (2 downto 0);
|
||||||
LEDS : OUT std_logic_vector(2 downto 0);
|
PORT2_STAGE : out STD_LOGIC_VECTOR (2 downto 0);
|
||||||
INTERRUPT_ASSERTED : OUT std_logic
|
PORT1_EN : out STD_LOGIC;
|
||||||
|
PORT2_EN : out STD_LOGIC;
|
||||||
|
REF_EN : out STD_LOGIC;
|
||||||
|
AMP_SHDN : out STD_LOGIC;
|
||||||
|
SOURCE_RF_EN : out STD_LOGIC;
|
||||||
|
LO_RF_EN : out STD_LOGIC;
|
||||||
|
SOURCE_CE_EN : out STD_LOGIC;
|
||||||
|
LO_CE_EN : out STD_LOGIC;
|
||||||
|
PORTSWITCH_EN : out STD_LOGIC;
|
||||||
|
LEDS : out STD_LOGIC_VECTOR(2 downto 0);
|
||||||
|
WINDOW_SETTING : out STD_LOGIC_VECTOR(1 downto 0);
|
||||||
|
ADC_PRESCALER : out STD_LOGIC_VECTOR(7 downto 0);
|
||||||
|
ADC_PHASEINC : out STD_LOGIC_VECTOR(11 downto 0);
|
||||||
|
INTERRUPT_ASSERTED : out STD_LOGIC;
|
||||||
|
RESET_MINMAX : out STD_LOGIC;
|
||||||
|
SWEEP_HALTED : in STD_LOGIC;
|
||||||
|
SWEEP_RESUME : out STD_LOGIC;
|
||||||
|
|
||||||
|
-- hardware overwrite signals
|
||||||
|
SPI_OVERWRITE_ENABLED : out STD_LOGIC;
|
||||||
|
SPI_OVERWRITE_DATA : out STD_LOGIC_VECTOR(14 downto 0);
|
||||||
|
|
||||||
|
-- DFT signals
|
||||||
|
DFT_BIN1_PHASEINC : out STD_LOGIC_VECTOR (15 downto 0);
|
||||||
|
DFT_DIFFBIN_PHASEINC : out STD_LOGIC_VECTOR (15 downto 0);
|
||||||
|
DFT_RESULT_READY : in STD_LOGIC;
|
||||||
|
DFT_OUTPUT : in STD_LOGIC_VECTOR (191 downto 0);
|
||||||
|
DFT_NEXT_OUTPUT : out STD_LOGIC;
|
||||||
|
DFT_ENABLE : out STD_LOGIC;
|
||||||
|
|
||||||
|
DEBUG_STATUS : in STD_LOGIC_VECTOR(10 downto 0)
|
||||||
);
|
);
|
||||||
END COMPONENT;
|
END COMPONENT;
|
||||||
|
|
||||||
|
|
@ -104,8 +134,8 @@ ARCHITECTURE behavior OF Test_SPICommands IS
|
||||||
signal INTERRUPT_ASSERTED : std_logic;
|
signal INTERRUPT_ASSERTED : std_logic;
|
||||||
|
|
||||||
-- Clock period definitions
|
-- Clock period definitions
|
||||||
constant CLK_period : time := 6.25 ns;
|
constant CLK_period : time := 9.765625 ns;
|
||||||
constant SPI_CLK_period : time := 100 ns;
|
constant SPI_CLK_period : time := 23.52941176 ns;
|
||||||
|
|
||||||
signal data_signal : std_logic_vector(15 downto 0);
|
signal data_signal : std_logic_vector(15 downto 0);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
@ -120,6 +150,7 @@ BEGIN
|
||||||
NSS => NSS,
|
NSS => NSS,
|
||||||
NEW_SAMPLING_DATA => NEW_SAMPLING_DATA,
|
NEW_SAMPLING_DATA => NEW_SAMPLING_DATA,
|
||||||
SAMPLING_RESULT => SAMPLING_RESULT,
|
SAMPLING_RESULT => SAMPLING_RESULT,
|
||||||
|
ADC_MINMAX => (others => '0'),
|
||||||
SOURCE_UNLOCKED => SOURCE_UNLOCKED,
|
SOURCE_UNLOCKED => SOURCE_UNLOCKED,
|
||||||
LO_UNLOCKED => LO_UNLOCKED,
|
LO_UNLOCKED => LO_UNLOCKED,
|
||||||
MAX2871_DEF_4 => MAX2871_DEF_4,
|
MAX2871_DEF_4 => MAX2871_DEF_4,
|
||||||
|
|
@ -138,7 +169,11 @@ BEGIN
|
||||||
SOURCE_RF_EN => SOURCE_RF_EN,
|
SOURCE_RF_EN => SOURCE_RF_EN,
|
||||||
LO_RF_EN => LO_RF_EN,
|
LO_RF_EN => LO_RF_EN,
|
||||||
LEDS => LEDS,
|
LEDS => LEDS,
|
||||||
INTERRUPT_ASSERTED => INTERRUPT_ASSERTED
|
INTERRUPT_ASSERTED => INTERRUPT_ASSERTED,
|
||||||
|
SWEEP_HALTED => '0',
|
||||||
|
DFT_RESULT_READY => '0',
|
||||||
|
DFT_OUTPUT => (others => '0'),
|
||||||
|
DEBUG_STATUS => (others => '0')
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Clock process definitions
|
-- Clock process definitions
|
||||||
|
|
@ -258,9 +293,28 @@ BEGIN
|
||||||
wait for 100 ns;
|
wait for 100 ns;
|
||||||
RESET <= '0';
|
RESET <= '0';
|
||||||
wait for CLK_period*10;
|
wait for CLK_period*10;
|
||||||
|
-- read static test register
|
||||||
|
NSS <= '0';
|
||||||
|
SPI("0100000000000000");
|
||||||
|
SPI("0000000000000000");
|
||||||
|
NSS <= '1';
|
||||||
|
|
||||||
|
wait for CLK_period*50;
|
||||||
|
-- write register 3 = 0xFFFF (enable all periphery)
|
||||||
|
NSS <= '0';
|
||||||
|
SPI("1000000000000011");
|
||||||
|
SPI("1111111111111111");
|
||||||
|
NSS <= '1';
|
||||||
|
|
||||||
|
wait for CLK_period*50;
|
||||||
|
-- set sampling result and read first 4 words
|
||||||
|
SAMPLING_RESULT(63 downto 0) <= "1111000011110000101010101010101001010101010101010000111100001111";
|
||||||
NSS <= '0';
|
NSS <= '0';
|
||||||
SPI("1100000000000000");
|
SPI("1100000000000000");
|
||||||
SPI("0000000000000000");
|
SPI("0000000000000000");
|
||||||
|
SPI("0000000000000000");
|
||||||
|
SPI("0000000000000000");
|
||||||
|
SPI("0000000000000000");
|
||||||
NSS <= '1';
|
NSS <= '1';
|
||||||
|
|
||||||
wait for CLK_period*50;
|
wait for CLK_period*50;
|
||||||
|
|
|
||||||
|
|
@ -41,11 +41,11 @@
|
||||||
<file xil_pn:fileType="FILE_VHDL_INSTTEMPLATE" xil_pn:name="Synchronizer.vhi"/>
|
<file xil_pn:fileType="FILE_VHDL_INSTTEMPLATE" xil_pn:name="Synchronizer.vhi"/>
|
||||||
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_DFT_isim_beh.exe"/>
|
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_DFT_isim_beh.exe"/>
|
||||||
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_MAX2871_isim_beh.exe"/>
|
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_MAX2871_isim_beh.exe"/>
|
||||||
<file xil_pn:fileType="FILE_XST_PROJECT" xil_pn:name="Test_MCP33131_beh.prj"/>
|
|
||||||
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_MCP33131_isim_beh.exe"/>
|
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_MCP33131_isim_beh.exe"/>
|
||||||
<file xil_pn:fileType="FILE_ISIM_MISC" xil_pn:name="Test_MCP33131_isim_beh.wdb"/>
|
|
||||||
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_PLL_isim_beh.exe"/>
|
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_PLL_isim_beh.exe"/>
|
||||||
|
<file xil_pn:fileType="FILE_XST_PROJECT" xil_pn:name="Test_SPICommands_beh.prj"/>
|
||||||
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_SPICommands_isim_beh.exe"/>
|
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_SPICommands_isim_beh.exe"/>
|
||||||
|
<file xil_pn:fileType="FILE_ISIM_MISC" xil_pn:name="Test_SPICommands_isim_beh.wdb"/>
|
||||||
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_SPI_isim_beh.exe"/>
|
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_SPI_isim_beh.exe"/>
|
||||||
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_Sampling_isim_beh.exe"/>
|
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_Sampling_isim_beh.exe"/>
|
||||||
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_SinCos_isim_beh.exe"/>
|
<file xil_pn:branch="BehavioralSim" xil_pn:fileType="FILE_ISIM_EXE" xil_pn:name="Test_SinCos_isim_beh.exe"/>
|
||||||
|
|
@ -137,7 +137,7 @@
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708955295" xil_pn:in_ck="-3235419683908193302" xil_pn:name="TRAN_copyAbstractToPostAbstractSimulation" xil_pn:start_ts="1708955295">
|
<transform xil_pn:end_ts="1735897915" xil_pn:in_ck="-3235419683908193302" xil_pn:name="TRAN_copyAbstractToPostAbstractSimulation" xil_pn:start_ts="1735897915">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<status xil_pn:value="OutOfDateForInputs"/>
|
<status xil_pn:value="OutOfDateForInputs"/>
|
||||||
|
|
@ -167,17 +167,18 @@
|
||||||
<outfile xil_pn:name="top.vhd"/>
|
<outfile xil_pn:name="top.vhd"/>
|
||||||
<outfile xil_pn:name="window.vhd"/>
|
<outfile xil_pn:name="window.vhd"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708955295" xil_pn:name="TRAN_xawsToSimhdl" xil_pn:prop_ck="-1206566934435318832" xil_pn:start_ts="1708955295">
|
<transform xil_pn:end_ts="1735898132" xil_pn:name="TRAN_xawsToSimhdl" xil_pn:prop_ck="9011583378592605907" xil_pn:start_ts="1735898132">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708955295" xil_pn:name="TRAN_schematicsToHdlSim" xil_pn:prop_ck="-273551377395144626" xil_pn:start_ts="1708955295">
|
<transform xil_pn:end_ts="1735898132" xil_pn:name="TRAN_schematicsToHdlSim" xil_pn:prop_ck="2919554697640690001" xil_pn:start_ts="1735898132">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708955295" xil_pn:in_ck="-4366097307991745463" xil_pn:name="TRAN_regenerateCoresSim" xil_pn:prop_ck="-2723611991789822717" xil_pn:start_ts="1708955295">
|
<transform xil_pn:end_ts="1735887598" xil_pn:in_ck="-4366097307991745463" xil_pn:name="TRAN_regenerateCoresSim" xil_pn:prop_ck="-2723611991789822717" xil_pn:start_ts="1735887598">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
|
<status xil_pn:value="OutOfDateForInputs"/>
|
||||||
<outfile xil_pn:name="ipcore_dir/DSP_SLICE.ngc"/>
|
<outfile xil_pn:name="ipcore_dir/DSP_SLICE.ngc"/>
|
||||||
<outfile xil_pn:name="ipcore_dir/DSP_SLICE.vhd"/>
|
<outfile xil_pn:name="ipcore_dir/DSP_SLICE.vhd"/>
|
||||||
<outfile xil_pn:name="ipcore_dir/PLL.vhd"/>
|
<outfile xil_pn:name="ipcore_dir/PLL.vhd"/>
|
||||||
|
|
@ -188,7 +189,7 @@
|
||||||
<outfile xil_pn:name="ipcore_dir/result_bram.ngc"/>
|
<outfile xil_pn:name="ipcore_dir/result_bram.ngc"/>
|
||||||
<outfile xil_pn:name="ipcore_dir/result_bram.vhd"/>
|
<outfile xil_pn:name="ipcore_dir/result_bram.vhd"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708955295" xil_pn:in_ck="-9185925483828391381" xil_pn:name="TRAN_copyPostAbstractToPreSimulation" xil_pn:start_ts="1708955295">
|
<transform xil_pn:end_ts="1735897915" xil_pn:in_ck="-9185925483828391381" xil_pn:name="TRAN_copyPostAbstractToPreSimulation" xil_pn:start_ts="1735897915">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<status xil_pn:value="OutOfDateForInputs"/>
|
<status xil_pn:value="OutOfDateForInputs"/>
|
||||||
|
|
@ -224,7 +225,7 @@
|
||||||
<outfile xil_pn:name="top.vhd"/>
|
<outfile xil_pn:name="top.vhd"/>
|
||||||
<outfile xil_pn:name="window.vhd"/>
|
<outfile xil_pn:name="window.vhd"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708955298" xil_pn:in_ck="-9185925483828391381" xil_pn:name="TRAN_ISimulateBehavioralModelRunFuse" xil_pn:prop_ck="-3530939538078141760" xil_pn:start_ts="1708955295">
|
<transform xil_pn:end_ts="1735898134" xil_pn:in_ck="-9185925483828391381" xil_pn:name="TRAN_ISimulateBehavioralModelRunFuse" xil_pn:prop_ck="-8439971377188504826" xil_pn:start_ts="1735898132">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<status xil_pn:value="OutOfDateForInputs"/>
|
<status xil_pn:value="OutOfDateForInputs"/>
|
||||||
|
|
@ -232,32 +233,32 @@
|
||||||
<status xil_pn:value="OutOfDateForOutputs"/>
|
<status xil_pn:value="OutOfDateForOutputs"/>
|
||||||
<status xil_pn:value="InputChanged"/>
|
<status xil_pn:value="InputChanged"/>
|
||||||
<status xil_pn:value="OutputChanged"/>
|
<status xil_pn:value="OutputChanged"/>
|
||||||
<outfile xil_pn:name="Test_MCP33131_beh.prj"/>
|
<outfile xil_pn:name="Test_SPICommands_beh.prj"/>
|
||||||
<outfile xil_pn:name="Test_MCP33131_isim_beh.exe"/>
|
<outfile xil_pn:name="Test_SPICommands_isim_beh.exe"/>
|
||||||
<outfile xil_pn:name="fuse.log"/>
|
<outfile xil_pn:name="fuse.log"/>
|
||||||
<outfile xil_pn:name="isim"/>
|
<outfile xil_pn:name="isim"/>
|
||||||
<outfile xil_pn:name="isim.log"/>
|
<outfile xil_pn:name="isim.log"/>
|
||||||
<outfile xil_pn:name="xilinxsim.ini"/>
|
<outfile xil_pn:name="xilinxsim.ini"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708955298" xil_pn:in_ck="4191604156099045257" xil_pn:name="TRAN_ISimulateBehavioralModel" xil_pn:prop_ck="6352116336892055917" xil_pn:start_ts="1708955298">
|
<transform xil_pn:end_ts="1735898134" xil_pn:in_ck="4191604156099045257" xil_pn:name="TRAN_ISimulateBehavioralModel" xil_pn:prop_ck="-6574364550222252173" xil_pn:start_ts="1735898134">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<status xil_pn:value="OutOfDateForPredecessor"/>
|
<status xil_pn:value="OutOfDateForPredecessor"/>
|
||||||
<status xil_pn:value="OutOfDateForOutputs"/>
|
<status xil_pn:value="OutOfDateForOutputs"/>
|
||||||
<status xil_pn:value="OutputChanged"/>
|
<status xil_pn:value="OutputChanged"/>
|
||||||
<outfile xil_pn:name="Test_MCP33131_isim_beh.wdb"/>
|
<outfile xil_pn:name="Test_SPICommands_isim_beh.wdb"/>
|
||||||
<outfile xil_pn:name="isim.cmd"/>
|
<outfile xil_pn:name="isim.cmd"/>
|
||||||
<outfile xil_pn:name="isim.log"/>
|
<outfile xil_pn:name="isim.log"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1600270761" xil_pn:name="TRAN_copyInitialToXSTAbstractSynthesis" xil_pn:start_ts="1600270761">
|
<transform xil_pn:end_ts="1735835257" xil_pn:name="TRAN_copyInitialToXSTAbstractSynthesis" xil_pn:start_ts="1735835257">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1600270761" xil_pn:name="TRAN_schematicsToHdl" xil_pn:prop_ck="6623951845608321876" xil_pn:start_ts="1600270761">
|
<transform xil_pn:end_ts="1735835257" xil_pn:name="TRAN_schematicsToHdl" xil_pn:prop_ck="6623951845608321876" xil_pn:start_ts="1735835257">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708953094" xil_pn:in_ck="-4366097307991745463" xil_pn:name="TRAN_regenerateCores" xil_pn:prop_ck="-2723611991789822717" xil_pn:start_ts="1708953094">
|
<transform xil_pn:end_ts="1736097035" xil_pn:in_ck="-4366097307991745463" xil_pn:name="TRAN_regenerateCores" xil_pn:prop_ck="-2723611991789822717" xil_pn:start_ts="1736097035">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<outfile xil_pn:name="ipcore_dir/DSP_SLICE.ngc"/>
|
<outfile xil_pn:name="ipcore_dir/DSP_SLICE.ngc"/>
|
||||||
|
|
@ -270,23 +271,23 @@
|
||||||
<outfile xil_pn:name="ipcore_dir/result_bram.ngc"/>
|
<outfile xil_pn:name="ipcore_dir/result_bram.ngc"/>
|
||||||
<outfile xil_pn:name="ipcore_dir/result_bram.vhd"/>
|
<outfile xil_pn:name="ipcore_dir/result_bram.vhd"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1600270761" xil_pn:in_ck="277585929807082169" xil_pn:name="TRAN_SubProjectAbstractToPreProxy" xil_pn:start_ts="1600270761">
|
<transform xil_pn:end_ts="1735835257" xil_pn:in_ck="-2664127494180108140" xil_pn:name="TRAN_SubProjectAbstractToPreProxy" xil_pn:start_ts="1735835257">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1600270761" xil_pn:name="TRAN_xawsTohdl" xil_pn:prop_ck="-9042377951913232490" xil_pn:start_ts="1600270761">
|
<transform xil_pn:end_ts="1735835257" xil_pn:name="TRAN_xawsTohdl" xil_pn:prop_ck="-9042377951913232490" xil_pn:start_ts="1735835257">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1600270761" xil_pn:in_ck="277585929807082169" xil_pn:name="TRAN_SubProjectPreToStructuralProxy" xil_pn:prop_ck="250970745955965653" xil_pn:start_ts="1600270761">
|
<transform xil_pn:end_ts="1735835257" xil_pn:in_ck="-2664127494180108140" xil_pn:name="TRAN_SubProjectPreToStructuralProxy" xil_pn:prop_ck="250970745955965653" xil_pn:start_ts="1735835257">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1600270761" xil_pn:name="TRAN_platgen" xil_pn:prop_ck="6527189854873920525" xil_pn:start_ts="1600270761">
|
<transform xil_pn:end_ts="1735835257" xil_pn:name="TRAN_platgen" xil_pn:prop_ck="6527189854873920525" xil_pn:start_ts="1735835257">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708958126" xil_pn:in_ck="2241500006820465658" xil_pn:name="TRANEXT_xstsynthesize_spartan6" xil_pn:prop_ck="3256065936432453276" xil_pn:start_ts="1708958116">
|
<transform xil_pn:end_ts="1736097046" xil_pn:in_ck="2241500006820465658" xil_pn:name="TRANEXT_xstsynthesize_spartan6" xil_pn:prop_ck="3256065936432453276" xil_pn:start_ts="1736097035">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="WarningsGenerated"/>
|
<status xil_pn:value="WarningsGenerated"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
|
|
@ -304,11 +305,11 @@
|
||||||
<outfile xil_pn:name="webtalk_pn.xml"/>
|
<outfile xil_pn:name="webtalk_pn.xml"/>
|
||||||
<outfile xil_pn:name="xst"/>
|
<outfile xil_pn:name="xst"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708952937" xil_pn:in_ck="934418963425178690" xil_pn:name="TRAN_compileBCD2" xil_pn:prop_ck="6693835875156060939" xil_pn:start_ts="1708952937">
|
<transform xil_pn:end_ts="1736097046" xil_pn:in_ck="934418963425178690" xil_pn:name="TRAN_compileBCD2" xil_pn:prop_ck="6693835875156060939" xil_pn:start_ts="1736097046">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708958131" xil_pn:in_ck="5411862124762956458" xil_pn:name="TRANEXT_ngdbuild_FPGA" xil_pn:prop_ck="4604875190571501774" xil_pn:start_ts="1708958126">
|
<transform xil_pn:end_ts="1736097050" xil_pn:in_ck="5411862124762956458" xil_pn:name="TRANEXT_ngdbuild_FPGA" xil_pn:prop_ck="4604875190571501774" xil_pn:start_ts="1736097046">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<outfile xil_pn:name="_ngo"/>
|
<outfile xil_pn:name="_ngo"/>
|
||||||
|
|
@ -317,7 +318,7 @@
|
||||||
<outfile xil_pn:name="top.ngd"/>
|
<outfile xil_pn:name="top.ngd"/>
|
||||||
<outfile xil_pn:name="top_ngdbuild.xrpt"/>
|
<outfile xil_pn:name="top_ngdbuild.xrpt"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708958154" xil_pn:in_ck="8512332261572065657" xil_pn:name="TRANEXT_map_spartan6" xil_pn:prop_ck="-4668962392366239264" xil_pn:start_ts="1708958131">
|
<transform xil_pn:end_ts="1736097131" xil_pn:in_ck="8512332261572065657" xil_pn:name="TRANEXT_map_spartan6" xil_pn:prop_ck="-4668962392366239264" xil_pn:start_ts="1736097050">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="WarningsGenerated"/>
|
<status xil_pn:value="WarningsGenerated"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
|
|
@ -331,8 +332,9 @@
|
||||||
<outfile xil_pn:name="top_summary.xml"/>
|
<outfile xil_pn:name="top_summary.xml"/>
|
||||||
<outfile xil_pn:name="top_usage.xml"/>
|
<outfile xil_pn:name="top_usage.xml"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708958170" xil_pn:in_ck="1117507038335044978" xil_pn:name="TRANEXT_par_spartan6" xil_pn:prop_ck="-1085068593928086116" xil_pn:start_ts="1708958154">
|
<transform xil_pn:end_ts="1736097154" xil_pn:in_ck="1117507038335044978" xil_pn:name="TRANEXT_par_spartan6" xil_pn:prop_ck="-1085068593928086116" xil_pn:start_ts="1736097131">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
|
<status xil_pn:value="WarningsGenerated"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<outfile xil_pn:name="_xmsgs/par.xmsgs"/>
|
<outfile xil_pn:name="_xmsgs/par.xmsgs"/>
|
||||||
<outfile xil_pn:name="top.ncd"/>
|
<outfile xil_pn:name="top.ncd"/>
|
||||||
|
|
@ -345,7 +347,7 @@
|
||||||
<outfile xil_pn:name="top_pad.txt"/>
|
<outfile xil_pn:name="top_pad.txt"/>
|
||||||
<outfile xil_pn:name="top_par.xrpt"/>
|
<outfile xil_pn:name="top_par.xrpt"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708958180" xil_pn:in_ck="154288912438" xil_pn:name="TRANEXT_bitFile_spartan6" xil_pn:prop_ck="3274353840855015246" xil_pn:start_ts="1708958170">
|
<transform xil_pn:end_ts="1736097164" xil_pn:in_ck="154288912438" xil_pn:name="TRANEXT_bitFile_spartan6" xil_pn:prop_ck="3274353840855015246" xil_pn:start_ts="1736097154">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<outfile xil_pn:name="_xmsgs/bitgen.xmsgs"/>
|
<outfile xil_pn:name="_xmsgs/bitgen.xmsgs"/>
|
||||||
|
|
@ -398,8 +400,9 @@
|
||||||
<status xil_pn:value="InputChanged"/>
|
<status xil_pn:value="InputChanged"/>
|
||||||
<status xil_pn:value="InputRemoved"/>
|
<status xil_pn:value="InputRemoved"/>
|
||||||
</transform>
|
</transform>
|
||||||
<transform xil_pn:end_ts="1708958170" xil_pn:in_ck="8512326635937592693" xil_pn:name="TRAN_postRouteTrce" xil_pn:prop_ck="445577401284416184" xil_pn:start_ts="1708958166">
|
<transform xil_pn:end_ts="1736097154" xil_pn:in_ck="8512326635937592693" xil_pn:name="TRAN_postRouteTrce" xil_pn:prop_ck="445577401284416184" xil_pn:start_ts="1736097149">
|
||||||
<status xil_pn:value="SuccessfullyRun"/>
|
<status xil_pn:value="SuccessfullyRun"/>
|
||||||
|
<status xil_pn:value="WarningsGenerated"/>
|
||||||
<status xil_pn:value="ReadyToRun"/>
|
<status xil_pn:value="ReadyToRun"/>
|
||||||
<outfile xil_pn:name="_xmsgs/trce.xmsgs"/>
|
<outfile xil_pn:name="_xmsgs/trce.xmsgs"/>
|
||||||
<outfile xil_pn:name="top.twr"/>
|
<outfile xil_pn:name="top.twr"/>
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,11 @@
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="MCP33131.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="MCP33131.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="12"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="12"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="Test_MCP33131.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="Test_MCP33131.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
||||||
<association xil_pn:name="PostMapSimulation" xil_pn:seqID="5"/>
|
<association xil_pn:name="PostMapSimulation" xil_pn:seqID="5"/>
|
||||||
<association xil_pn:name="PostRouteSimulation" xil_pn:seqID="5"/>
|
<association xil_pn:name="PostRouteSimulation" xil_pn:seqID="5"/>
|
||||||
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="5"/>
|
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="5"/>
|
||||||
|
|
@ -55,11 +55,11 @@
|
||||||
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="49"/>
|
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="49"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="spi_slave.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="spi_slave.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="2"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="2"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="SPIConfig.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="SPIConfig.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
|
||||||
<association xil_pn:name="Implementation" xil_pn:seqID="9"/>
|
<association xil_pn:name="Implementation" xil_pn:seqID="9"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="Sweep.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="Sweep.vhd" xil_pn:type="FILE_VHDL">
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="77"/>
|
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="77"/>
|
||||||
</file>
|
</file>
|
||||||
<file xil_pn:name="Test_SPICommands.vhd" xil_pn:type="FILE_VHDL">
|
<file xil_pn:name="Test_SPICommands.vhd" xil_pn:type="FILE_VHDL">
|
||||||
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
|
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="3"/>
|
||||||
<association xil_pn:name="PostMapSimulation" xil_pn:seqID="115"/>
|
<association xil_pn:name="PostMapSimulation" xil_pn:seqID="115"/>
|
||||||
<association xil_pn:name="PostRouteSimulation" xil_pn:seqID="115"/>
|
<association xil_pn:name="PostRouteSimulation" xil_pn:seqID="115"/>
|
||||||
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="115"/>
|
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="115"/>
|
||||||
|
|
@ -405,8 +405,8 @@
|
||||||
<property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/>
|
<property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/>
|
<property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/>
|
<property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Selected Module Instance Name" xil_pn:value="/Test_MCP33131" xil_pn:valueState="non-default"/>
|
<property xil_pn:name="Selected Module Instance Name" xil_pn:value="/Test_SPICommands" xil_pn:valueState="non-default"/>
|
||||||
<property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="work.Test_MCP33131" xil_pn:valueState="non-default"/>
|
<property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="work.Test_SPICommands" xil_pn:valueState="non-default"/>
|
||||||
<property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/>
|
<property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/>
|
<property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/>
|
<property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/>
|
||||||
|
|
@ -424,7 +424,7 @@
|
||||||
<property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/>
|
<property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/>
|
<property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/>
|
<property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="work.Test_MCP33131" xil_pn:valueState="default"/>
|
<property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="work.Test_SPICommands" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/>
|
<property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/>
|
<property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/>
|
<property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/>
|
||||||
|
|
@ -476,7 +476,7 @@
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- The following properties are for internal use only. These should not be modified.-->
|
<!-- The following properties are for internal use only. These should not be modified.-->
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="Architecture|Test_MCP33131|behavior" xil_pn:valueState="non-default"/>
|
<property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="Architecture|Test_SPICommands|behavior" xil_pn:valueState="non-default"/>
|
||||||
<property xil_pn:name="PROP_DesignName" xil_pn:value="VNA" xil_pn:valueState="non-default"/>
|
<property xil_pn:name="PROP_DesignName" xil_pn:value="VNA" xil_pn:valueState="non-default"/>
|
||||||
<property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan6" xil_pn:valueState="default"/>
|
<property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan6" xil_pn:valueState="default"/>
|
||||||
<property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/>
|
<property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/>
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,8 @@ use IEEE.numeric_std.all;
|
||||||
--use UNISIM.VComponents.all;
|
--use UNISIM.VComponents.all;
|
||||||
|
|
||||||
entity spi_slave is
|
entity spi_slave is
|
||||||
generic ( W : integer);
|
generic ( W : integer;
|
||||||
|
PREWIDTH : integer);
|
||||||
Port ( SPI_CLK : in STD_LOGIC;
|
Port ( SPI_CLK : in STD_LOGIC;
|
||||||
MISO : out STD_LOGIC;
|
MISO : out STD_LOGIC;
|
||||||
MOSI : in STD_LOGIC;
|
MOSI : in STD_LOGIC;
|
||||||
|
|
@ -39,9 +40,12 @@ entity spi_slave is
|
||||||
BUF_OUT : out STD_LOGIC_VECTOR (W-1 downto 0) := (others => '0');
|
BUF_OUT : out STD_LOGIC_VECTOR (W-1 downto 0) := (others => '0');
|
||||||
BUF_IN : in STD_LOGIC_VECTOR (W-1 downto 0);
|
BUF_IN : in STD_LOGIC_VECTOR (W-1 downto 0);
|
||||||
CLK : in STD_LOGIC;
|
CLK : in STD_LOGIC;
|
||||||
COMPLETE : out STD_LOGIC
|
COMPLETE : out STD_LOGIC;
|
||||||
-- RISING_TOGGLE : inout STD_LOGIC;
|
-- processing the complete word after it is complete leaves very little time
|
||||||
-- FALLING_TOGGLE : inout STD_LOGIC
|
-- for read operations. Indicate when the first PREWIDTH bits are ready which
|
||||||
|
-- allows more time to prepare the response to the next word
|
||||||
|
PRE_COMPLETE : out STD_LOGIC;
|
||||||
|
PRE_BUF_OUT : out STD_LOGIC_VECTOR (PREWIDTH-1 downto 0) := (others => '0')
|
||||||
);
|
);
|
||||||
end spi_slave;
|
end spi_slave;
|
||||||
|
|
||||||
|
|
@ -52,6 +56,8 @@ architecture Behavioral of spi_slave is
|
||||||
signal data_valid : STD_LOGIC_VECTOR(2 downto 0);
|
signal data_valid : STD_LOGIC_VECTOR(2 downto 0);
|
||||||
signal data_synced : STD_LOGIC_VECTOR(2 downto 0);
|
signal data_synced : STD_LOGIC_VECTOR(2 downto 0);
|
||||||
signal data : STD_LOGIC_VECTOR(W-1 downto 0);
|
signal data : STD_LOGIC_VECTOR(W-1 downto 0);
|
||||||
|
signal pre_data : STD_LOGIC_VECTOR(PREWIDTH-1 downto 0);
|
||||||
|
signal pre_data_valid : STD_LOGIC_VECTOR(3 downto 0);
|
||||||
|
|
||||||
signal bit_cnt : integer range 0 to W-1;
|
signal bit_cnt : integer range 0 to W-1;
|
||||||
begin
|
begin
|
||||||
|
|
@ -59,9 +65,11 @@ begin
|
||||||
process(CLK)
|
process(CLK)
|
||||||
begin
|
begin
|
||||||
if rising_edge(CLK) then
|
if rising_edge(CLK) then
|
||||||
data_valid(2 downto 1) <= data_valid(1 downto 0);
|
|
||||||
COMPLETE <= '0';
|
COMPLETE <= '0';
|
||||||
if data_valid(1) = '1' then
|
PRE_COMPLETE <= '0';
|
||||||
|
data_valid(2 downto 1) <= data_valid(1 downto 0);
|
||||||
|
pre_data_valid(3 downto 1) <= pre_data_valid(2 downto 0);
|
||||||
|
if data_valid(2) = '1' then
|
||||||
if data_synced(0) = '0' then
|
if data_synced(0) = '0' then
|
||||||
BUF_OUT <= data;
|
BUF_OUT <= data;
|
||||||
COMPLETE <= '1';
|
COMPLETE <= '1';
|
||||||
|
|
@ -70,19 +78,33 @@ begin
|
||||||
else
|
else
|
||||||
data_synced(0) <= '0';
|
data_synced(0) <= '0';
|
||||||
end if;
|
end if;
|
||||||
|
if pre_data_valid(3 downto 2) = "01" then
|
||||||
|
-- pre_data has just become valid
|
||||||
|
PRE_BUF_OUT <= pre_data;
|
||||||
|
PRE_COMPLETE <= '1';
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end process;
|
end process;
|
||||||
|
|
||||||
--MISO <= BUF_IN(W - 1 - bit_cnt);-- when bit_cnt = 0 else miso_buffer(W-2);
|
|
||||||
MISO <= BUF_IN(15) when bit_cnt = 0 else miso_buffer(W-2);
|
MISO <= BUF_IN(15) when bit_cnt = 0 else miso_buffer(W-2);
|
||||||
|
|
||||||
slave_in: process(SPI_CLK)
|
slave_in: process(SPI_CLK, CS)
|
||||||
begin
|
begin
|
||||||
if rising_edge(SPI_CLK) then
|
if CS = '1' then
|
||||||
-- FALLING_TOGGLE <= not FALLING_TOGGLE;
|
bit_cnt <= 0;
|
||||||
|
data_valid(0) <= '0';
|
||||||
|
pre_data_valid(0) <= '0';
|
||||||
|
elsif rising_edge(SPI_CLK) then
|
||||||
|
-- data input process: sample on the rising edge
|
||||||
data_synced(2 downto 1) <= data_synced(1 downto 0);
|
data_synced(2 downto 1) <= data_synced(1 downto 0);
|
||||||
|
if bit_cnt = PREWIDTH-1 then
|
||||||
|
-- first couple of bits are ready
|
||||||
|
pre_data <= mosi_buffer(PREWIDTH-2 downto 0) & MOSI;
|
||||||
|
pre_data_valid(0) <= '1';
|
||||||
|
end if;
|
||||||
if bit_cnt = W-1 then
|
if bit_cnt = W-1 then
|
||||||
-- this was the last bit
|
-- this was the last bit
|
||||||
|
pre_data_valid(0) <= '0';
|
||||||
data_valid(0) <= '1';
|
data_valid(0) <= '1';
|
||||||
data <= mosi_buffer(W-2 downto 0) & MOSI;
|
data <= mosi_buffer(W-2 downto 0) & MOSI;
|
||||||
else
|
else
|
||||||
|
|
@ -91,14 +113,9 @@ begin
|
||||||
end if;
|
end if;
|
||||||
mosi_buffer <= mosi_buffer(W-3 downto 0) & MOSI;
|
mosi_buffer <= mosi_buffer(W-3 downto 0) & MOSI;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
|
||||||
end process;
|
-- data output process: data should be launched on the falling edge
|
||||||
|
-- but the delay is too large. Launch on the rising edge instead
|
||||||
slave_out: process(SPI_CLK, CS, BUF_IN, bit_cnt)
|
|
||||||
begin
|
|
||||||
if CS = '1' then
|
|
||||||
bit_cnt <= 0;
|
|
||||||
elsif falling_edge(SPI_CLK) then
|
|
||||||
if bit_cnt < W-1 then
|
if bit_cnt < W-1 then
|
||||||
bit_cnt <= bit_cnt + 1;
|
bit_cnt <= bit_cnt + 1;
|
||||||
if bit_cnt = 0 then
|
if bit_cnt = 0 then
|
||||||
|
|
@ -108,9 +125,27 @@ begin
|
||||||
end if;
|
end if;
|
||||||
else
|
else
|
||||||
bit_cnt <= 0;
|
bit_cnt <= 0;
|
||||||
--miso_buffer <= BUF_IN;
|
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end process;
|
end process;
|
||||||
|
|
||||||
|
-- slave_out: process(SPI_CLK, CS, BUF_IN, bit_cnt)
|
||||||
|
-- begin
|
||||||
|
-- if CS = '1' then
|
||||||
|
-- bit_cnt <= 0;
|
||||||
|
-- elsif falling_edge(SPI_CLK) then
|
||||||
|
-- if bit_cnt < W-1 then
|
||||||
|
-- bit_cnt <= bit_cnt + 1;
|
||||||
|
-- if bit_cnt = 0 then
|
||||||
|
-- miso_buffer <= BUF_IN;
|
||||||
|
-- else
|
||||||
|
-- miso_buffer <= miso_buffer(W-2 downto 0) & '0';
|
||||||
|
-- end if;
|
||||||
|
-- else
|
||||||
|
-- bit_cnt <= 0;
|
||||||
|
-- --miso_buffer <= BUF_IN;
|
||||||
|
-- end if;
|
||||||
|
-- end if;
|
||||||
|
-- end process;
|
||||||
|
|
||||||
end Behavioral;
|
end Behavioral;
|
||||||
BIN
FPGA/VNA/top.bin
BIN
FPGA/VNA/top.bin
Binary file not shown.
|
|
@ -1,6 +1,23 @@
|
||||||
CONFIG VCCAUX = 3.3;
|
CONFIG VCCAUX = 3.3;
|
||||||
|
# Global FPGA clock
|
||||||
NET "CLK" PERIOD = 62.5 ns HIGH 50%;
|
NET "CLK" PERIOD = 62.5 ns HIGH 50%;
|
||||||
NET "MCU_SCK" PERIOD = 25ns HIGH 50%;
|
|
||||||
|
# Constraints for SPI interface to MCU
|
||||||
|
NET "MCU_SCK" PERIOD = 23.52941176ns HIGH 50%;
|
||||||
|
NET "MCU_MOSI" OFFSET = IN 2ns VALID 3ns BEFORE "MCU_SCK";
|
||||||
|
NET "MCU_MISO" OFFSET = OUT 18.529ns VALID 10ns AFTER "MCU_SCK";
|
||||||
|
NET "MCU_MISO" SLEW = FAST;
|
||||||
|
|
||||||
|
# ADC constraints
|
||||||
|
NET "REF_SCLK" PERIOD = 19.5ns HIGH 50%;
|
||||||
|
NET "REF_SDO" OFFSET = IN 9ns VALID 9ns BEFORE "REF_SCLK";
|
||||||
|
NET "PORT1_SCLK" PERIOD = 19.5ns HIGH 50%;
|
||||||
|
NET "PORT1_SDO" OFFSET = IN 9ns VALID 9ns BEFORE "PORT1_SCLK";
|
||||||
|
NET "PORT2_SCLK" PERIOD = 19.5ns HIGH 50%;
|
||||||
|
NET "PORT2_SDO" OFFSET = IN 9ns VALID 9ns BEFORE "PORT2_SCLK";
|
||||||
|
NET "PORT1_SCLK" SLEW = FAST;
|
||||||
|
NET "PORT2_SCLK" SLEW = FAST;
|
||||||
|
NET "REF_SCLK" SLEW = FAST;
|
||||||
|
|
||||||
NET "ATTENUATION[6]" IOSTANDARD = LVCMOS33;
|
NET "ATTENUATION[6]" IOSTANDARD = LVCMOS33;
|
||||||
NET "ATTENUATION[5]" IOSTANDARD = LVCMOS33;
|
NET "ATTENUATION[5]" IOSTANDARD = LVCMOS33;
|
||||||
|
|
@ -60,10 +77,6 @@ NET "MCU_AUX3" IOSTANDARD = LVCMOS33;
|
||||||
NET "TRIGGER_IN" IOSTANDARD = LVCMOS33;
|
NET "TRIGGER_IN" IOSTANDARD = LVCMOS33;
|
||||||
NET "TRIGGER_OUT" IOSTANDARD = LVCMOS33;
|
NET "TRIGGER_OUT" IOSTANDARD = LVCMOS33;
|
||||||
|
|
||||||
NET "PORT1_SCLK" SLEW = FAST;
|
|
||||||
NET "PORT2_SCLK" SLEW = FAST;
|
|
||||||
NET "REF_SCLK" SLEW = FAST;
|
|
||||||
|
|
||||||
NET "ATTENUATION[6]" LOC = P9;
|
NET "ATTENUATION[6]" LOC = P9;
|
||||||
NET "ATTENUATION[5]" LOC = P10;
|
NET "ATTENUATION[5]" LOC = P10;
|
||||||
NET "ATTENUATION[4]" LOC = P11;
|
NET "ATTENUATION[4]" LOC = P11;
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,7 @@ architecture Behavioral of top is
|
||||||
CONFIG_DATA : IN std_logic_vector(95 downto 0);
|
CONFIG_DATA : IN std_logic_vector(95 downto 0);
|
||||||
USER_NSAMPLES : in STD_LOGIC_VECTOR (12 downto 0);
|
USER_NSAMPLES : in STD_LOGIC_VECTOR (12 downto 0);
|
||||||
NSAMPLES : out STD_LOGIC_VECTOR (12 downto 0);
|
NSAMPLES : out STD_LOGIC_VECTOR (12 downto 0);
|
||||||
|
SETTLING_TIME : in STD_LOGIC_VECTOR (19 downto 0);
|
||||||
SAMPLING_BUSY : in STD_LOGIC;
|
SAMPLING_BUSY : in STD_LOGIC;
|
||||||
SAMPLING_DONE : IN std_logic;
|
SAMPLING_DONE : IN std_logic;
|
||||||
MAX2871_DEF_4 : IN std_logic_vector(31 downto 0);
|
MAX2871_DEF_4 : IN std_logic_vector(31 downto 0);
|
||||||
|
|
@ -255,6 +256,7 @@ architecture Behavioral of top is
|
||||||
SWEEP_POINTS : OUT std_logic_vector(12 downto 0);
|
SWEEP_POINTS : OUT std_logic_vector(12 downto 0);
|
||||||
NSAMPLES : OUT std_logic_vector(12 downto 0);
|
NSAMPLES : OUT std_logic_vector(12 downto 0);
|
||||||
STAGES : out STD_LOGIC_VECTOR (2 downto 0);
|
STAGES : out STD_LOGIC_VECTOR (2 downto 0);
|
||||||
|
SETTLING_TIME : out STD_LOGIC_VECTOR (19 downto 0);
|
||||||
SYNC_ENABLED : out STD_LOGIC;
|
SYNC_ENABLED : out STD_LOGIC;
|
||||||
SYNC_MASTER : out STD_LOGIC;
|
SYNC_MASTER : out STD_LOGIC;
|
||||||
PORT1_STAGE : out STD_LOGIC_VECTOR (2 downto 0);
|
PORT1_STAGE : out STD_LOGIC_VECTOR (2 downto 0);
|
||||||
|
|
@ -406,7 +408,7 @@ architecture Behavioral of top is
|
||||||
signal sweep_trigger_out : std_logic;
|
signal sweep_trigger_out : std_logic;
|
||||||
|
|
||||||
-- Configuration signals
|
-- Configuration signals
|
||||||
signal settling_time : std_logic_vector(15 downto 0);
|
signal settling_time : std_logic_vector(19 downto 0);
|
||||||
signal def_reg_4 : std_logic_vector(31 downto 0);
|
signal def_reg_4 : std_logic_vector(31 downto 0);
|
||||||
signal def_reg_3 : std_logic_vector(31 downto 0);
|
signal def_reg_3 : std_logic_vector(31 downto 0);
|
||||||
signal def_reg_1 : std_logic_vector(31 downto 0);
|
signal def_reg_1 : std_logic_vector(31 downto 0);
|
||||||
|
|
@ -457,8 +459,8 @@ begin
|
||||||
LEDS(0) <= user_leds(2);
|
LEDS(0) <= user_leds(2);
|
||||||
-- Lock status of PLLs
|
-- Lock status of PLLs
|
||||||
LEDS(1) <= clk_locked;
|
LEDS(1) <= clk_locked;
|
||||||
LEDS(2) <= SOURCE_LD;
|
LEDS(2) <= LO1_LD;
|
||||||
LEDS(3) <= LO1_LD;
|
LEDS(3) <= SOURCE_LD;
|
||||||
-- Sweep and active port
|
-- Sweep and active port
|
||||||
PORT_SELECT2 <= (sweep_excite_port2 and portswitch_en) when HW_overwrite_enabled = '0' else HW_overwrite_data(3);
|
PORT_SELECT2 <= (sweep_excite_port2 and portswitch_en) when HW_overwrite_enabled = '0' else HW_overwrite_data(3);
|
||||||
PORT2_SELECT <= (sweep_excite_port2 and portswitch_en) when HW_overwrite_enabled = '0' else HW_overwrite_data(3);
|
PORT2_SELECT <= (sweep_excite_port2 and portswitch_en) when HW_overwrite_enabled = '0' else HW_overwrite_data(3);
|
||||||
|
|
@ -560,7 +562,7 @@ begin
|
||||||
|
|
||||||
|
|
||||||
Source: MAX2871
|
Source: MAX2871
|
||||||
GENERIC MAP(CLK_DIV => 10)
|
GENERIC MAP(CLK_DIV => 6)
|
||||||
PORT MAP(
|
PORT MAP(
|
||||||
CLK => clk_pll,
|
CLK => clk_pll,
|
||||||
RESET => int_reset,
|
RESET => int_reset,
|
||||||
|
|
@ -575,7 +577,7 @@ begin
|
||||||
DONE => source_reloaded
|
DONE => source_reloaded
|
||||||
);
|
);
|
||||||
LO1: MAX2871
|
LO1: MAX2871
|
||||||
GENERIC MAP(CLK_DIV => 10)
|
GENERIC MAP(CLK_DIV => 6)
|
||||||
PORT MAP(
|
PORT MAP(
|
||||||
CLK => clk_pll,
|
CLK => clk_pll,
|
||||||
RESET => int_reset,
|
RESET => int_reset,
|
||||||
|
|
@ -692,6 +694,7 @@ begin
|
||||||
CONFIG_DATA => sweep_config_data,
|
CONFIG_DATA => sweep_config_data,
|
||||||
USER_NSAMPLES => sampling_user_samples,
|
USER_NSAMPLES => sampling_user_samples,
|
||||||
NSAMPLES => sampling_samples,
|
NSAMPLES => sampling_samples,
|
||||||
|
SETTLING_TIME => settling_time,
|
||||||
SAMPLING_BUSY => sampling_busy,
|
SAMPLING_BUSY => sampling_busy,
|
||||||
SAMPLING_DONE => sampling_done,
|
SAMPLING_DONE => sampling_done,
|
||||||
START_SAMPLING => sampling_start,
|
START_SAMPLING => sampling_start,
|
||||||
|
|
@ -801,6 +804,7 @@ begin
|
||||||
SWEEP_HALTED => sweep_halted,
|
SWEEP_HALTED => sweep_halted,
|
||||||
SWEEP_RESUME => sweep_resume,
|
SWEEP_RESUME => sweep_resume,
|
||||||
STAGES => sweep_stages,
|
STAGES => sweep_stages,
|
||||||
|
SETTLING_TIME => settling_time,
|
||||||
SYNC_ENABLED => sweep_sync_enabled,
|
SYNC_ENABLED => sweep_sync_enabled,
|
||||||
SYNC_MASTER => sweep_sync_master,
|
SYNC_MASTER => sweep_sync_master,
|
||||||
PORT1_STAGE => sweep_port1_stage,
|
PORT1_STAGE => sweep_port1_stage,
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
1
Hardware/Kicad/.gitignore
vendored
Normal file
1
Hardware/Kicad/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
*-backups/
|
||||||
16560
Hardware/Kicad/AttenuatorSwitches.kicad_sch
Normal file
16560
Hardware/Kicad/AttenuatorSwitches.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
20819
Hardware/Kicad/FPGAConnections.kicad_sch
Normal file
20819
Hardware/Kicad/FPGAConnections.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
10167
Hardware/Kicad/FPGAMicrocontroller.kicad_sch
Normal file
10167
Hardware/Kicad/FPGAMicrocontroller.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
15433
Hardware/Kicad/HighFreqSource.kicad_sch
Normal file
15433
Hardware/Kicad/HighFreqSource.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
9091
Hardware/Kicad/LocalOsc1.kicad_sch
Normal file
9091
Hardware/Kicad/LocalOsc1.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
9546
Hardware/Kicad/LocalOsc2_RefClock.kicad_sch
Normal file
9546
Hardware/Kicad/LocalOsc2_RefClock.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
18195
Hardware/Kicad/Port1.kicad_sch
Normal file
18195
Hardware/Kicad/Port1.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
18048
Hardware/Kicad/Port2.kicad_sch
Normal file
18048
Hardware/Kicad/Port2.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
17023
Hardware/Kicad/PowerSupply.kicad_sch
Normal file
17023
Hardware/Kicad/PowerSupply.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
BIN
Hardware/Kicad/Production/Mar2024Production.zip
Normal file
BIN
Hardware/Kicad/Production/Mar2024Production.zip
Normal file
Binary file not shown.
29279
Hardware/Kicad/Production/Mar2024Production/VNA-B_Cu.gbr
Normal file
29279
Hardware/Kicad/Production/Mar2024Production/VNA-B_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
2325
Hardware/Kicad/Production/Mar2024Production/VNA-B_Mask.gbr
Normal file
2325
Hardware/Kicad/Production/Mar2024Production/VNA-B_Mask.gbr
Normal file
File diff suppressed because it is too large
Load diff
27
Hardware/Kicad/Production/Mar2024Production/VNA-B_Paste.gbr
Normal file
27
Hardware/Kicad/Production/Mar2024Production/VNA-B_Paste.gbr
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.1*%
|
||||||
|
%TF.CreationDate,2024-03-24T21:42:04-04:00*%
|
||||||
|
%TF.ProjectId,VNA,564e412e-6b69-4636-9164-5f7063625858,rev?*%
|
||||||
|
%TF.SameCoordinates,PX535a28cPY8422900*%
|
||||||
|
%TF.FileFunction,Paste,Bot*%
|
||||||
|
%TF.FilePolarity,Positive*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 8.0.1) date 2024-03-24 21:42:04*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%ADD10R,2.286000X5.080000*%
|
||||||
|
%ADD11R,2.667000X4.191000*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
X7580400Y665400D03*
|
||||||
|
X16419600Y665400D03*
|
||||||
|
X105580400Y665400D03*
|
||||||
|
X114419600Y665400D03*
|
||||||
|
D11*
|
||||||
|
X98494600Y93784600D03*
|
||||||
|
X91505400Y93784600D03*
|
||||||
|
X114494600Y93784600D03*
|
||||||
|
X107505400Y93784600D03*
|
||||||
|
M02*
|
||||||
4398
Hardware/Kicad/Production/Mar2024Production/VNA-B_Silkscreen.gbr
Normal file
4398
Hardware/Kicad/Production/Mar2024Production/VNA-B_Silkscreen.gbr
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,26 @@
|
||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.1*%
|
||||||
|
%TF.CreationDate,2024-03-24T21:42:04-04:00*%
|
||||||
|
%TF.ProjectId,VNA,564e412e-6b69-4636-9164-5f7063625858,rev?*%
|
||||||
|
%TF.SameCoordinates,PX535a28cPY8422900*%
|
||||||
|
%TF.FileFunction,Profile,NP*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 8.0.1) date 2024-03-24 21:42:04*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%TA.AperFunction,Profile*%
|
||||||
|
%ADD10C,0.050000*%
|
||||||
|
%TD*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
X122000000Y96000000D02*
|
||||||
|
X0Y96000000D01*
|
||||||
|
X0Y-2000000D02*
|
||||||
|
X122000000Y-2000000D01*
|
||||||
|
X0Y96000000D02*
|
||||||
|
X0Y-2000000D01*
|
||||||
|
X122000000Y-2000000D02*
|
||||||
|
X122000000Y96000000D01*
|
||||||
|
M02*
|
||||||
59777
Hardware/Kicad/Production/Mar2024Production/VNA-F_Cu.gbr
Normal file
59777
Hardware/Kicad/Production/Mar2024Production/VNA-F_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
4744
Hardware/Kicad/Production/Mar2024Production/VNA-F_Mask.gbr
Normal file
4744
Hardware/Kicad/Production/Mar2024Production/VNA-F_Mask.gbr
Normal file
File diff suppressed because it is too large
Load diff
2623
Hardware/Kicad/Production/Mar2024Production/VNA-F_Paste.gbr
Normal file
2623
Hardware/Kicad/Production/Mar2024Production/VNA-F_Paste.gbr
Normal file
File diff suppressed because it is too large
Load diff
9416
Hardware/Kicad/Production/Mar2024Production/VNA-F_Silkscreen.gbr
Normal file
9416
Hardware/Kicad/Production/Mar2024Production/VNA-F_Silkscreen.gbr
Normal file
File diff suppressed because it is too large
Load diff
29249
Hardware/Kicad/Production/Mar2024Production/VNA-In1_Cu.gbr
Normal file
29249
Hardware/Kicad/Production/Mar2024Production/VNA-In1_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
28823
Hardware/Kicad/Production/Mar2024Production/VNA-In2_Cu.gbr
Normal file
28823
Hardware/Kicad/Production/Mar2024Production/VNA-In2_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
31548
Hardware/Kicad/Production/Mar2024Production/VNA-In3_Cu.gbr
Normal file
31548
Hardware/Kicad/Production/Mar2024Production/VNA-In3_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
31982
Hardware/Kicad/Production/Mar2024Production/VNA-In4_Cu.gbr
Normal file
31982
Hardware/Kicad/Production/Mar2024Production/VNA-In4_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
21
Hardware/Kicad/Production/Mar2024Production/VNA-NPTH.drl
Normal file
21
Hardware/Kicad/Production/Mar2024Production/VNA-NPTH.drl
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
M48
|
||||||
|
; DRILL file {KiCad 8.0.1} date 2024-03-25T21:57:40-0400
|
||||||
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
|
; #@! TF.CreationDate,2024-03-25T21:57:40-04:00
|
||||||
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.1
|
||||||
|
; #@! TF.FileFunction,NonPlated,1,6,NPTH
|
||||||
|
FMAT,2
|
||||||
|
METRIC
|
||||||
|
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||||
|
T1C0.650
|
||||||
|
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||||
|
T2C1.200
|
||||||
|
%
|
||||||
|
G90
|
||||||
|
G05
|
||||||
|
T1
|
||||||
|
X61.109Y89.699
|
||||||
|
X66.889Y89.699
|
||||||
|
T2
|
||||||
|
X51.5Y93.0
|
||||||
|
M30
|
||||||
3015
Hardware/Kicad/Production/Mar2024Production/VNA-PTH.drl
Normal file
3015
Hardware/Kicad/Production/Mar2024Production/VNA-PTH.drl
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1 @@
|
||||||
|
Ref,Val,Package,PosX,PosY,Rot,Side
|
||||||
|
224
Hardware/Kicad/Production/Mar2024Production/VNA-job.gbrjob
Normal file
224
Hardware/Kicad/Production/Mar2024Production/VNA-job.gbrjob
Normal file
|
|
@ -0,0 +1,224 @@
|
||||||
|
{
|
||||||
|
"Header": {
|
||||||
|
"GenerationSoftware": {
|
||||||
|
"Vendor": "KiCad",
|
||||||
|
"Application": "Pcbnew",
|
||||||
|
"Version": "8.0.1"
|
||||||
|
},
|
||||||
|
"CreationDate": "2024-03-24T21:42:04-04:00"
|
||||||
|
},
|
||||||
|
"GeneralSpecs": {
|
||||||
|
"ProjectId": {
|
||||||
|
"Name": "VNA",
|
||||||
|
"GUID": "564e412e-6b69-4636-9164-5f7063625858",
|
||||||
|
"Revision": "rev?"
|
||||||
|
},
|
||||||
|
"Size": {
|
||||||
|
"X": 122.05,
|
||||||
|
"Y": 98.05
|
||||||
|
},
|
||||||
|
"LayerNumber": 6,
|
||||||
|
"BoardThickness": 1.5849,
|
||||||
|
"Finish": "None",
|
||||||
|
"ImpedanceControlled": true
|
||||||
|
},
|
||||||
|
"DesignRules": [
|
||||||
|
{
|
||||||
|
"Layers": "Outer",
|
||||||
|
"PadToPad": 0.15,
|
||||||
|
"PadToTrack": 0.15,
|
||||||
|
"TrackToTrack": 0.15,
|
||||||
|
"MinLineWidth": 0.15,
|
||||||
|
"TrackToRegion": 0.15,
|
||||||
|
"RegionToRegion": 0.15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Layers": "Inner",
|
||||||
|
"PadToPad": 0.0,
|
||||||
|
"PadToTrack": 0.0,
|
||||||
|
"TrackToTrack": 0.15,
|
||||||
|
"MinLineWidth": 0.15,
|
||||||
|
"TrackToRegion": 0.15,
|
||||||
|
"RegionToRegion": 0.15
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"FilesAttributes": [
|
||||||
|
{
|
||||||
|
"Path": "VNA-F_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L1,Top",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-In1_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L2,Inr",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-In2_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L3,Inr",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-In3_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L4,Inr",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-In4_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L5,Inr",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-B_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L6,Bot",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-F_Paste.gbr",
|
||||||
|
"FileFunction": "SolderPaste,Top",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-B_Paste.gbr",
|
||||||
|
"FileFunction": "SolderPaste,Bot",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-F_Silkscreen.gbr",
|
||||||
|
"FileFunction": "Legend,Top",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-B_Silkscreen.gbr",
|
||||||
|
"FileFunction": "Legend,Bot",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-F_Mask.gbr",
|
||||||
|
"FileFunction": "SolderMask,Top",
|
||||||
|
"FilePolarity": "Negative"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-B_Mask.gbr",
|
||||||
|
"FileFunction": "SolderMask,Bot",
|
||||||
|
"FilePolarity": "Negative"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-Edge_Cuts.gbr",
|
||||||
|
"FileFunction": "Profile",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"MaterialStackup": [
|
||||||
|
{
|
||||||
|
"Type": "Legend",
|
||||||
|
"Color": "White",
|
||||||
|
"Name": "Top Silk Screen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "SolderPaste",
|
||||||
|
"Name": "Top Solder Paste"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "SolderMask",
|
||||||
|
"Color": "Green",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "Top Solder Mask"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.035,
|
||||||
|
"Name": "F.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.2104,
|
||||||
|
"Material": "7628",
|
||||||
|
"DielectricConstant": "4.4",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "F.Cu/In1.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 1 (from F.Cu to In1.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "In1.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.4,
|
||||||
|
"Material": "FR4",
|
||||||
|
"DielectricConstant": "4.6",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "In1.Cu/In2.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 2 (from In1.Cu to In2.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "In2.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.2028,
|
||||||
|
"Material": "7628",
|
||||||
|
"DielectricConstant": "4.4",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "In2.Cu/In3.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 3 (from In2.Cu to In3.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "In3.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.4,
|
||||||
|
"Material": "FR4",
|
||||||
|
"DielectricConstant": "4.5",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "In3.Cu/In4.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 4 (from In3.Cu to In4.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "In4.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.2104,
|
||||||
|
"Material": "7628",
|
||||||
|
"DielectricConstant": "4.6",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "In4.Cu/B.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 5 (from In4.Cu to B.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.035,
|
||||||
|
"Name": "B.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "SolderMask",
|
||||||
|
"Color": "Green",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "Bottom Solder Mask"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "SolderPaste",
|
||||||
|
"Name": "Bottom Solder Paste"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Legend",
|
||||||
|
"Color": "White",
|
||||||
|
"Name": "Bottom Silk Screen"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
569
Hardware/Kicad/Production/Mar2024Production/VNA-top-pos.csv
Normal file
569
Hardware/Kicad/Production/Mar2024Production/VNA-top-pos.csv
Normal file
|
|
@ -0,0 +1,569 @@
|
||||||
|
Ref,Val,Package,PosX,PosY,Rot,Side
|
||||||
|
"C1","10uF","C_1206_3216Metric",97.500000,82.200000,90.000000,top
|
||||||
|
"C2","10uF","C_1206_3216Metric",84.800000,75.000000,180.000000,top
|
||||||
|
"C3","10uF","C_1206_3216Metric",84.800000,83.000000,180.000000,top
|
||||||
|
"C4","100nF","C_0402_1005Metric",96.400000,72.800000,0.000000,top
|
||||||
|
"C5","10nF","C_0402_1005Metric",95.700000,74.900000,90.000000,top
|
||||||
|
"C6","100nF","C_0402_1005Metric",89.800000,79.000000,180.000000,top
|
||||||
|
"C7","10uF","C_1206_3216Metric",84.800000,87.900000,180.000000,top
|
||||||
|
"C8","10uF","C_1206_3216Metric",84.800000,72.600000,180.000000,top
|
||||||
|
"C9","100pF","C_0402_1005Metric",99.500000,72.800000,180.000000,top
|
||||||
|
"C10","10uF","C_1206_3216Metric",84.800000,85.500000,180.000000,top
|
||||||
|
"C11","10uF","C_1206_3216Metric",84.800000,70.200000,180.000000,top
|
||||||
|
"C12","10uF","C_1206_3216Metric",108.500000,75.700000,90.000000,top
|
||||||
|
"C13","10uF","C_1206_3216Metric",106.300000,75.700000,90.000000,top
|
||||||
|
"C14","10uF","C_1206_3216Metric",75.300000,72.000000,-90.000000,top
|
||||||
|
"C15","10uF","C_1206_3216Metric",73.000000,72.000000,-90.000000,top
|
||||||
|
"C16","10uF","C_1206_3216Metric",108.000000,80.000000,180.000000,top
|
||||||
|
"C17","10uF","C_1206_3216Metric",108.000000,82.300000,180.000000,top
|
||||||
|
"C18","1uF","C_0603_1608Metric",21.000000,46.900000,0.000000,top
|
||||||
|
"C19","1uF","C_0603_1608Metric",102.000000,50.800000,180.000000,top
|
||||||
|
"C20","1uF","C_0603_1608Metric",29.900000,26.300000,0.000000,top
|
||||||
|
"C21","1uF","C_0603_1608Metric",95.000000,52.000000,180.000000,top
|
||||||
|
"C22","4u7F","C_0603_1608Metric",21.000000,40.900000,0.000000,top
|
||||||
|
"C23","4u7F","C_0603_1608Metric",102.000000,56.800000,180.000000,top
|
||||||
|
"C24","4u7F","C_0603_1608Metric",29.900000,20.300000,0.000000,top
|
||||||
|
"C25","4u7F","C_0603_1608Metric",95.000000,58.000000,180.000000,top
|
||||||
|
"C26","1uF","C_0603_1608Metric",20.000000,38.400000,-90.000000,top
|
||||||
|
"C27","1uF","C_0603_1608Metric",103.000000,59.300000,90.000000,top
|
||||||
|
"C28","1uF","C_0603_1608Metric",28.900000,18.100000,-90.000000,top
|
||||||
|
"C29","100nF","C_0402_1005Metric",91.518900,45.800000,0.000000,top
|
||||||
|
"C30","10nF","C_0402_1005Metric",111.000000,90.500000,-90.000000,top
|
||||||
|
"C31","100nF","C_0402_1005Metric",99.898900,39.423600,90.000000,top
|
||||||
|
"C32","100nF","C_0402_1005Metric",91.498900,43.263600,0.000000,top
|
||||||
|
"C33","100nF","C_0402_1005Metric",96.300000,37.400000,90.000000,top
|
||||||
|
"C34","100nF","C_0402_1005Metric",99.900000,41.675000,90.000000,top
|
||||||
|
"C35","DNP","C_0402_1005Metric",97.500000,37.400000,-90.000000,top
|
||||||
|
"C36","DNP","C_0402_1005Metric",89.200000,39.000000,-90.000000,top
|
||||||
|
"C37","DNP","C_0402_1005Metric",89.200000,43.300000,-90.000000,top
|
||||||
|
"C38","56pF","C_0402_1005Metric",89.200000,36.700000,90.000000,top
|
||||||
|
"C39","10nF","C_0402_1005Metric",95.000000,90.500000,90.000000,top
|
||||||
|
"C40","DNP","C_0402_1005Metric",99.900000,37.400000,90.000000,top
|
||||||
|
"C41","DNP","C_0402_1005Metric",85.200000,39.000000,-90.000000,top
|
||||||
|
"C42","DNP","C_0402_1005Metric",85.200000,43.300000,-90.000000,top
|
||||||
|
"C43","180pF","C_0402_1005Metric",85.200000,36.700000,90.000000,top
|
||||||
|
"C44","DNP","C_0402_1005Metric",102.300000,37.400000,-90.000000,top
|
||||||
|
"C45","DNP","C_0402_1005Metric",81.200000,39.000000,-90.000000,top
|
||||||
|
"C46","DNP","C_0402_1005Metric",81.200000,43.300000,-90.000000,top
|
||||||
|
"C47","56pF","C_0402_1005Metric",81.200000,36.700000,90.000000,top
|
||||||
|
"C48","100nF","C_0402_1005Metric",74.000000,36.000000,0.000000,top
|
||||||
|
"C49","10uF","C_1206_3216Metric",92.000000,54.600000,-90.000000,top
|
||||||
|
"C50","1uF","C_0603_1608Metric",80.600000,57.900000,90.000000,top
|
||||||
|
"C51","10nF","C_0402_1005Metric",72.900000,50.500000,180.000000,top
|
||||||
|
"C52","1uF","C_0603_1608Metric",75.500000,57.900000,90.000000,top
|
||||||
|
"C53","10uF","C_1206_3216Metric",79.200000,54.900000,180.000000,top
|
||||||
|
"C54","100nF","C_0402_1005Metric",72.900000,49.300000,0.000000,top
|
||||||
|
"C55","100nF","C_0402_1005Metric",72.900000,51.700000,0.000000,top
|
||||||
|
"C56","100nF","C_0402_1005Metric",65.700000,45.500000,-90.000000,top
|
||||||
|
"C57","100nF","C_0402_1005Metric",73.300000,58.700000,0.000000,top
|
||||||
|
"C58","1uF","C_0402_1005Metric",71.100000,45.500000,-90.000000,top
|
||||||
|
"C59","1uF","C_0402_1005Metric",66.900000,45.500000,-90.000000,top
|
||||||
|
"C60","1uF","C_0402_1005Metric",69.900000,45.500000,-90.000000,top
|
||||||
|
"C61","100nF","C_0402_1005Metric",64.300000,46.800000,-90.000000,top
|
||||||
|
"C62","100nF","C_0402_1005Metric",63.100000,49.100000,90.000000,top
|
||||||
|
"C63","180pF","C_0402_1005Metric",66.600000,55.600000,90.000000,top
|
||||||
|
"C64","100nF","C_0402_1005Metric",63.100000,53.700000,90.000000,top
|
||||||
|
"C65","100nF/RF","C_0402_1005Metric",51.400000,49.600000,-90.000000,top
|
||||||
|
"C66","3n3F","C_0402_1005Metric",67.800000,57.400000,0.000000,top
|
||||||
|
"C67","18pF","C_0402_1005Metric",64.468900,55.543600,-90.000000,top
|
||||||
|
"C68","100nF/RF","C_0402_1005Metric",56.800000,35.300000,0.000000,top
|
||||||
|
"C69","100nF","C_0402_1005Metric",60.000000,39.000000,180.000000,top
|
||||||
|
"C70","100nF","C_0402_1005Metric",64.000000,32.000000,90.000000,top
|
||||||
|
"C71","100nF/RF","C_0402_1005Metric",60.800000,23.500000,-90.000000,top
|
||||||
|
"C72","100nF","C_0402_1005Metric",63.900000,21.900000,0.000000,top
|
||||||
|
"C73","100nF","C_0402_1005Metric",63.800000,20.400000,180.000000,top
|
||||||
|
"C74","100nF/RF","C_0402_1005Metric",61.000000,16.700000,-90.000000,top
|
||||||
|
"C75","100nF","C_0402_1005Metric",61.900000,3.800000,180.000000,top
|
||||||
|
"C76","100nF","C_0402_1005Metric",26.000000,10.500000,90.000000,top
|
||||||
|
"C77","100nF","C_0402_1005Metric",84.900000,7.941418,-135.000000,top
|
||||||
|
"C78","10uF","C_1206_3216Metric",73.000000,18.000000,-90.000000,top
|
||||||
|
"C79","1uF","C_0603_1608Metric",76.600000,17.800000,-90.000000,top
|
||||||
|
"C80","10nF","C_0402_1005Metric",82.900000,24.100000,0.000000,top
|
||||||
|
"C81","1uF","C_0603_1608Metric",81.600000,17.800000,-90.000000,top
|
||||||
|
"C82","10uF","C_1206_3216Metric",76.000000,29.000000,180.000000,top
|
||||||
|
"C83","100nF","C_0402_1005Metric",83.698900,25.503600,90.000000,top
|
||||||
|
"C84","100nF","C_0402_1005Metric",82.900000,22.900000,180.000000,top
|
||||||
|
"C85","100nF","C_0402_1005Metric",90.300000,29.000000,90.000000,top
|
||||||
|
"C86","100nF","C_0402_1005Metric",83.500000,17.100000,180.000000,top
|
||||||
|
"C87","1uF","C_0402_1005Metric",84.900000,29.000000,90.000000,top
|
||||||
|
"C88","1uF","C_0402_1005Metric",89.100000,29.000000,90.000000,top
|
||||||
|
"C89","1uF","C_0402_1005Metric",86.100000,29.000000,90.000000,top
|
||||||
|
"C90","180pF","C_0402_1005Metric",89.700000,18.800000,-90.000000,top
|
||||||
|
"C91","100nF","C_0402_1005Metric",95.100000,23.700000,-90.000000,top
|
||||||
|
"C92","3n3F","C_0402_1005Metric",88.500000,17.000000,0.000000,top
|
||||||
|
"C93","10nF","C_0402_1005Metric",92.725000,29.050000,-90.000000,top
|
||||||
|
"C94","100nF","C_0402_1005Metric",95.100000,26.100000,90.000000,top
|
||||||
|
"C95","18pF","C_0402_1005Metric",91.738900,18.773600,90.000000,top
|
||||||
|
"C96","100nF/RF","C_0402_1005Metric",26.800000,5.600000,180.000000,top
|
||||||
|
"C97","100nF","C_0402_1005Metric",9.300000,36.800000,0.000000,top
|
||||||
|
"C98","100nF","C_0402_1005Metric",9.300000,38.100000,0.000000,top
|
||||||
|
"C99","100nF/RF","C_0402_1005Metric",12.000000,6.600000,90.000000,top
|
||||||
|
"C100","1uF","C_0402_1005Metric",11.700000,41.700000,180.000000,top
|
||||||
|
"C101","1uF","C_0402_1005Metric",14.000000,41.700000,0.000000,top
|
||||||
|
"C102","100nF","C_0402_1005Metric",14.800000,38.700000,90.000000,top
|
||||||
|
"C103","100nF","C_0402_1005Metric",9.300000,40.500000,0.000000,top
|
||||||
|
"C104","10nF","C_0402_1005Metric",8.200000,18.700000,180.000000,top
|
||||||
|
"C105","10nF","C_0402_1005Metric",8.200000,22.600000,180.000000,top
|
||||||
|
"C106","10nF","C_0402_1005Metric",15.400000,17.600000,-90.000000,top
|
||||||
|
"C107","DNP","C_0402_1005Metric",19.100000,18.900000,180.000000,top
|
||||||
|
"C108","1uF","C_0402_1005Metric",8.200000,25.000000,180.000000,top
|
||||||
|
"C109","100nF/RF","C_0402_1005Metric",16.800000,20.000000,180.000000,top
|
||||||
|
"C110","100nF/RF","C_0402_1005Metric",16.800000,21.200000,180.000000,top
|
||||||
|
"C111","10nF","C_0402_1005Metric",17.000000,22.600000,0.000000,top
|
||||||
|
"C112","DNP","C_0402_1005Metric",7.800000,43.900000,90.000000,top
|
||||||
|
"C113","DNP","C_0402_1005Metric",17.600000,43.900000,-90.000000,top
|
||||||
|
"C114","100nF","C_0402_1005Metric",8.200000,21.200000,0.000000,top
|
||||||
|
"C115","100nF","C_0402_1005Metric",13.300000,46.700000,-90.000000,top
|
||||||
|
"C116","100nF","C_0402_1005Metric",12.100000,46.700000,90.000000,top
|
||||||
|
"C117","100nF","C_0402_1005Metric",8.200000,20.000000,180.000000,top
|
||||||
|
"C118","100nF","C_0402_1005Metric",8.200000,16.300000,0.000000,top
|
||||||
|
"C119","100nF","C_0402_1005Metric",8.200000,23.800000,180.000000,top
|
||||||
|
"C120","10nF","C_0402_1005Metric",14.700000,25.600000,90.000000,top
|
||||||
|
"C121","330pF","C_0402_1005Metric",12.650000,48.500000,0.000000,top
|
||||||
|
"C122","100nF","C_0402_1005Metric",17.000000,23.800000,0.000000,top
|
||||||
|
"C123","10nF","C_0402_1005Metric",11.300000,25.600000,90.000000,top
|
||||||
|
"C124","120pF","C_0402_1005Metric",13.000000,26.300000,180.000000,top
|
||||||
|
"C125","330pF","C_0402_1005Metric",9.200000,49.700000,0.000000,top
|
||||||
|
"C126","330pF","C_0402_1005Metric",12.650000,49.800000,0.000000,top
|
||||||
|
"C127","330pF","C_0402_1005Metric",16.100000,49.800000,0.000000,top
|
||||||
|
"C128","150pF","C_0402_1005Metric",13.000000,28.500000,180.000000,top
|
||||||
|
"C129","1uF","C_0402_1005Metric",6.000000,48.000000,0.000000,top
|
||||||
|
"C130","33pF","C_0402_1005Metric",13.000000,30.600000,180.000000,top
|
||||||
|
"C131","1uF","C_0402_1005Metric",6.000000,53.000000,0.000000,top
|
||||||
|
"C132","100nF","C_0402_1005Metric",9.400000,55.600000,0.000000,top
|
||||||
|
"C133","100nF/RF","C_0402_1005Metric",93.200000,5.600000,0.000000,top
|
||||||
|
"C134","100nF","C_0402_1005Metric",110.000000,40.703600,0.000000,top
|
||||||
|
"C135","100nF","C_0402_1005Metric",110.000000,42.200000,0.000000,top
|
||||||
|
"C136","100nF/RF","C_0402_1005Metric",110.000000,6.700000,90.000000,top
|
||||||
|
"C137","1uF","C_0402_1005Metric",112.800000,46.000000,180.000000,top
|
||||||
|
"C138","1uF","C_0402_1005Metric",115.200000,46.000000,0.000000,top
|
||||||
|
"C139","100nF","C_0402_1005Metric",110.000000,44.800000,0.000000,top
|
||||||
|
"C140","100nF","C_0402_1005Metric",116.000000,42.700000,90.000000,top
|
||||||
|
"C141","10nF","C_0402_1005Metric",101.400000,23.200000,180.000000,top
|
||||||
|
"C142","10nF","C_0402_1005Metric",103.000000,29.900000,90.000000,top
|
||||||
|
"C143","10nF","C_0402_1005Metric",107.000000,29.900000,90.000000,top
|
||||||
|
"C144","DNP","C_0402_1005Metric",105.000000,20.100000,180.000000,top
|
||||||
|
"C145","1uF","C_0402_1005Metric",110.600000,21.700000,-90.000000,top
|
||||||
|
"C146","100nF/RF","C_0402_1005Metric",104.400000,21.800000,90.000000,top
|
||||||
|
"C147","100nF/RF","C_0402_1005Metric",105.600000,21.800000,90.000000,top
|
||||||
|
"C148","10nF","C_0402_1005Metric",108.200000,21.700000,-90.000000,top
|
||||||
|
"C149","DNP","C_0402_1005Metric",109.400000,48.200000,90.000000,top
|
||||||
|
"C150","DNP","C_0402_1005Metric",117.900000,48.200000,-90.000000,top
|
||||||
|
"C151","100nF","C_0402_1005Metric",105.600000,29.900000,-90.000000,top
|
||||||
|
"C152","100nF","C_0402_1005Metric",113.600000,51.000000,-90.000000,top
|
||||||
|
"C153","100nF","C_0402_1005Metric",112.400000,51.000000,90.000000,top
|
||||||
|
"C154","100nF","C_0402_1005Metric",104.400000,29.900000,90.000000,top
|
||||||
|
"C155","100nF","C_0402_1005Metric",100.600000,29.900000,-90.000000,top
|
||||||
|
"C156","100nF","C_0402_1005Metric",109.400000,21.700000,-90.000000,top
|
||||||
|
"C157","10nF","C_0402_1005Metric",110.500000,24.900000,0.000000,top
|
||||||
|
"C158","330pF","C_0402_1005Metric",113.000000,53.700000,0.000000,top
|
||||||
|
"C159","100nF","C_0402_1005Metric",108.200000,29.900000,90.000000,top
|
||||||
|
"C160","10nF","C_0402_1005Metric",110.500000,26.100000,0.000000,top
|
||||||
|
"C161","120pF","C_0402_1005Metric",112.300000,25.500000,90.000000,top
|
||||||
|
"C162","330pF","C_0402_1005Metric",109.000000,55.000000,0.000000,top
|
||||||
|
"C163","330pF","C_0402_1005Metric",113.000000,55.000000,0.000000,top
|
||||||
|
"C164","330pF","C_0402_1005Metric",117.000000,55.000000,0.000000,top
|
||||||
|
"C165","150pF","C_0402_1005Metric",114.100000,28.600000,180.000000,top
|
||||||
|
"C166","1uF","C_0402_1005Metric",105.000000,59.100000,-90.000000,top
|
||||||
|
"C167","33pF","C_0402_1005Metric",114.100000,32.200000,180.000000,top
|
||||||
|
"C168","1uF","C_0402_1005Metric",110.000000,59.100000,-90.000000,top
|
||||||
|
"C169","100nF","C_0402_1005Metric",110.000000,61.300000,0.000000,top
|
||||||
|
"C170","100nF/RF","C_0402_1005Metric",54.000000,13.400000,90.000000,top
|
||||||
|
"C171","10nF","C_0402_1005Metric",37.400000,18.000000,180.000000,top
|
||||||
|
"C172","10nF","C_0402_1005Metric",45.600000,19.200000,0.000000,top
|
||||||
|
"C173","DNP","C_0402_1005Metric",28.300000,31.100000,90.000000,top
|
||||||
|
"C174","DNP","C_0402_1005Metric",38.100000,31.000000,-90.000000,top
|
||||||
|
"C175","10nF","C_0402_1005Metric",45.400000,13.400000,0.000000,top
|
||||||
|
"C176","DNP","C_0402_1005Metric",46.800000,16.000000,-90.000000,top
|
||||||
|
"C177","1uF","C_0402_1005Metric",45.600000,21.600000,0.000000,top
|
||||||
|
"C178","100nF/RF","C_0402_1005Metric",45.000000,15.400000,180.000000,top
|
||||||
|
"C179","100nF/RF","C_0402_1005Metric",45.000000,16.700000,180.000000,top
|
||||||
|
"C180","10nF","C_0402_1005Metric",37.400000,14.000000,180.000000,top
|
||||||
|
"C181","100nF","C_0402_1005Metric",33.800000,34.000000,-90.000000,top
|
||||||
|
"C182","100nF","C_0402_1005Metric",32.600000,34.000000,90.000000,top
|
||||||
|
"C183","100nF","C_0402_1005Metric",37.400000,16.600000,0.000000,top
|
||||||
|
"C184","330pF","C_0402_1005Metric",33.200000,36.700000,0.000000,top
|
||||||
|
"C185","100nF","C_0402_1005Metric",37.400000,15.400000,180.000000,top
|
||||||
|
"C186","100nF","C_0402_1005Metric",37.400000,11.600000,0.000000,top
|
||||||
|
"C187","330pF","C_0402_1005Metric",29.500000,38.100000,0.000000,top
|
||||||
|
"C188","330pF","C_0402_1005Metric",33.200000,38.100000,0.000000,top
|
||||||
|
"C189","330pF","C_0402_1005Metric",37.000000,36.700000,0.000000,top
|
||||||
|
"C190","100nF","C_0402_1005Metric",37.400000,19.200000,180.000000,top
|
||||||
|
"C191","10nF","C_0402_1005Metric",43.500000,21.000000,90.000000,top
|
||||||
|
"C192","10nF","C_0402_1005Metric",40.000000,21.000000,90.000000,top
|
||||||
|
"C193","100nF","C_0402_1005Metric",45.600000,20.400000,0.000000,top
|
||||||
|
"C194","120pF","C_0402_1005Metric",41.750000,21.650000,180.000000,top
|
||||||
|
"C195","1uF","C_0402_1005Metric",37.000000,39.500000,0.000000,top
|
||||||
|
"C196","150pF","C_0402_1005Metric",41.750000,23.950000,180.000000,top
|
||||||
|
"C197","33pF","C_0402_1005Metric",41.760000,26.420000,180.000000,top
|
||||||
|
"C198","1uF","C_0402_1005Metric",37.000000,44.500000,0.000000,top
|
||||||
|
"C199","100nF","C_0402_1005Metric",37.200000,22.400000,90.000000,top
|
||||||
|
"C200","100nF","C_0402_1005Metric",34.200000,22.400000,90.000000,top
|
||||||
|
"C201","100nF","C_0402_1005Metric",30.500000,43.700000,90.000000,top
|
||||||
|
"C202","1uF","C_0402_1005Metric",31.900000,28.900000,180.000000,top
|
||||||
|
"C203","1uF","C_0402_1005Metric",34.600000,28.900000,0.000000,top
|
||||||
|
"C204","100nF","C_0402_1005Metric",37.000000,27.700000,180.000000,top
|
||||||
|
"C205","100nF","C_0402_1005Metric",32.600000,22.400000,90.000000,top
|
||||||
|
"C206","100nF","C_0402_1005Metric",60.500000,73.000000,180.000000,top
|
||||||
|
"C207","100nF","C_0402_1005Metric",70.000000,79.700000,90.000000,top
|
||||||
|
"C208","100nF","C_0402_1005Metric",61.300000,84.300000,90.000000,top
|
||||||
|
"C209","100nF","C_0402_1005Metric",50.200000,64.200000,180.000000,top
|
||||||
|
"C210","100nF","C_0402_1005Metric",34.500000,51.800000,180.000000,top
|
||||||
|
"C211","100nF","C_0402_1005Metric",18.700000,61.300000,-90.000000,top
|
||||||
|
"C212","100nF","C_0402_1005Metric",21.400000,66.600000,180.000000,top
|
||||||
|
"C213","100nF","C_0402_1005Metric",36.100000,80.400000,90.000000,top
|
||||||
|
"C214","100nF","C_0402_1005Metric",41.500000,52.800000,-90.000000,top
|
||||||
|
"C215","100nF","C_0402_1005Metric",43.000000,79.800000,0.000000,top
|
||||||
|
"C216","100nF","C_0402_1005Metric",40.300000,52.500000,-90.000000,top
|
||||||
|
"C217","100nF","C_0402_1005Metric",28.198900,79.283600,180.000000,top
|
||||||
|
"C218","100nF","C_0402_1005Metric",49.100000,66.800000,0.000000,top
|
||||||
|
"C219","100nF","C_0402_1005Metric",21.400000,68.600000,180.000000,top
|
||||||
|
"C220","100nF","C_0402_1005Metric",49.100000,65.600000,0.000000,top
|
||||||
|
"C221","100nF","C_0402_1005Metric",28.600000,53.200000,0.000000,top
|
||||||
|
"C222","100nF","C_0402_1005Metric",34.500000,53.000000,180.000000,top
|
||||||
|
"C223","100pF","C_0402_1005Metric",28.400000,43.700000,90.000000,top
|
||||||
|
"C224","100pF","C_0402_1005Metric",28.900000,39.400000,180.000000,top
|
||||||
|
"C225","100pF","C_0402_1005Metric",28.900000,36.800000,180.000000,top
|
||||||
|
"C226","100pF","C_0402_1005Metric",28.900000,33.200000,180.000000,top
|
||||||
|
"C227","100pF","C_0402_1005Metric",15.400000,54.300000,90.000000,top
|
||||||
|
"C228","100pF","C_0402_1005Metric",15.400000,51.700000,-90.000000,top
|
||||||
|
"C229","100pF","C_0402_1005Metric",18.500000,51.500000,180.000000,top
|
||||||
|
"C230","100pF","C_0402_1005Metric",20.600000,49.700000,90.000000,top
|
||||||
|
"C231","100pF","C_0402_1005Metric",108.700000,50.300000,180.000000,top
|
||||||
|
"C232","100pF","C_0402_1005Metric",108.000000,52.100000,-90.000000,top
|
||||||
|
"C233","100pF","C_0402_1005Metric",105.800000,51.000000,0.000000,top
|
||||||
|
"C234","100pF","C_0402_1005Metric",105.500000,55.100000,0.000000,top
|
||||||
|
"C235","100pF","C_0402_1005Metric",80.400000,20.200000,0.000000,top
|
||||||
|
"C236","100pF","C_0402_1005Metric",87.441418,11.058578,45.000000,top
|
||||||
|
"C237","100pF","C_0402_1005Metric",48.700000,22.700000,180.000000,top
|
||||||
|
"C238","100pF","C_0402_1005Metric",48.700000,19.200000,180.000000,top
|
||||||
|
"C239","100pF","C_0402_1005Metric",51.100000,22.700000,0.000000,top
|
||||||
|
"C240","100pF","C_0402_1005Metric",51.100000,19.200000,0.000000,top
|
||||||
|
"C241","100pF","C_0402_1005Metric",18.200000,33.200000,180.000000,top
|
||||||
|
"C242","100pF","C_0402_1005Metric",18.200000,29.500000,180.000000,top
|
||||||
|
"C243","100pF","C_0402_1005Metric",54.000000,23.500000,90.000000,top
|
||||||
|
"C244","100pF","C_0402_1005Metric",54.000000,18.100000,-90.000000,top
|
||||||
|
"C245","100pF","C_0402_1005Metric",69.300000,38.500000,-90.000000,top
|
||||||
|
"C246","100pF","C_0402_1005Metric",66.000000,38.500000,90.000000,top
|
||||||
|
"C247","100pF","C_0402_1005Metric",73.600000,38.500000,-90.000000,top
|
||||||
|
"C248","100pF","C_0402_1005Metric",70.500000,38.500000,90.000000,top
|
||||||
|
"C249","100pF","C_0402_1005Metric",45.500000,29.600000,180.000000,top
|
||||||
|
"C250","100pF","C_0402_1005Metric",66.500000,33.500000,90.000000,top
|
||||||
|
"C251","100pF","C_0402_1005Metric",45.900000,28.400000,180.000000,top
|
||||||
|
"C252","100pF","C_0402_1005Metric",67.000000,31.100000,90.000000,top
|
||||||
|
"C253","100pF","C_0402_1005Metric",42.000000,31.200000,180.000000,top
|
||||||
|
"C254","100pF","C_0402_1005Metric",66.300000,29.200000,0.000000,top
|
||||||
|
"C255","100pF","C_0402_1005Metric",42.000000,30.000000,180.000000,top
|
||||||
|
"C256","100pF","C_0402_1005Metric",66.300000,28.000000,0.000000,top
|
||||||
|
"C257","100pF","C_0402_1005Metric",63.900000,24.000000,180.000000,top
|
||||||
|
"C258","100pF","C_0402_1005Metric",46.100000,23.500000,-90.000000,top
|
||||||
|
"C259","100pF","C_0402_1005Metric",65.700000,24.500000,-90.000000,top
|
||||||
|
"C260","100pF","C_0402_1005Metric",46.100000,25.900000,90.000000,top
|
||||||
|
"C261","100pF","C_0402_1005Metric",66.900000,24.500000,-90.000000,top
|
||||||
|
"C262","100pF","C_0402_1005Metric",42.000000,28.800000,180.000000,top
|
||||||
|
"C263","100pF","C_0402_1005Metric",39.100000,52.500000,-90.000000,top
|
||||||
|
"C264","100pF","C_0402_1005Metric",37.900000,52.500000,-90.000000,top
|
||||||
|
"C265","100pF","C_0402_1005Metric",53.400000,42.000000,0.000000,top
|
||||||
|
"C266","100pF","C_0402_1005Metric",36.700000,52.500000,-90.000000,top
|
||||||
|
"C267","100pF","C_0402_1005Metric",59.000000,60.300000,0.000000,top
|
||||||
|
"C268","100pF","C_0402_1005Metric",70.200000,55.600000,90.000000,top
|
||||||
|
"C269","100nF","C_0402_1005Metric",5.100000,15.400000,90.000000,top
|
||||||
|
"C270","100nF","C_0402_1005Metric",34.700000,15.900000,135.000000,top
|
||||||
|
"C271","100pF","C_0402_1005Metric",52.800000,60.300000,180.000000,top
|
||||||
|
"C272","100pF","C_0402_1005Metric",74.200000,47.300000,0.000000,top
|
||||||
|
"C273","100pF","C_0402_1005Metric",46.000000,55.900000,180.000000,top
|
||||||
|
"C274","100pF","C_0402_1005Metric",74.200000,46.000000,0.000000,top
|
||||||
|
"D1","MBRS2040LT3G","D_SMB",102.900000,75.700000,90.000000,top
|
||||||
|
"IC1","MIC2253","DFN-12-1EP_3x3mm_P0.45mm_EP1.66x2.38mm",98.500000,77.000000,90.000000,top
|
||||||
|
"IC2","LM3370","DFN-16-1EP_4x5mm_P0.5mm_EP2.44x4.34mm",84.800000,79.000000,180.000000,top
|
||||||
|
"IC3","LDL212PU50R","WSON-6-1EP_3x3mm_P0.95mm",21.000000,43.900000,90.000000,top
|
||||||
|
"IC4","LDL212PU50R","WSON-6-1EP_3x3mm_P0.95mm",102.000000,53.800000,-90.000000,top
|
||||||
|
"IC5","LDL212PU50R","WSON-6-1EP_3x3mm_P0.95mm",29.900000,23.300000,90.000000,top
|
||||||
|
"IC6","LDL212PU50R","WSON-6-1EP_3x3mm_P0.95mm",95.000000,55.000000,-90.000000,top
|
||||||
|
"IC7","SI5351C","QFN-20-1EP_4x4mm_P0.5mm_EP2.7x2.7mm",96.000000,42.000000,180.000000,top
|
||||||
|
"IC8","AP2114H","SOT-223-3_TabPin2",86.300000,55.600000,180.000000,top
|
||||||
|
"IC9","NCP702-3.3","SOT-23-5",78.100000,57.900000,180.000000,top
|
||||||
|
"IC10","MAX2871","QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mm",68.050000,50.250000,-90.000000,top
|
||||||
|
"IC11","RFSW6042","QFN40P180X180X55-13T76N",51.200000,46.800000,90.000000,top
|
||||||
|
"IC12","RFSW6042","QFN40P180X180X55-13T76N",51.200000,37.200000,-90.000000,top
|
||||||
|
"IC13","QPC6324","QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm",60.800000,35.300000,0.000000,top
|
||||||
|
"IC14","RFSA3714","QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm",61.600000,27.500000,-90.000000,top
|
||||||
|
"IC15","TRF37A73","DFN-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm",60.650000,20.600000,-90.000000,top
|
||||||
|
"IC16","QPC6324","QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm",61.000000,7.000000,180.000000,top
|
||||||
|
"IC17","QPC6324","QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm",89.000000,8.000000,45.000000,top
|
||||||
|
"IC18","QPC6324","QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm",30.000000,8.000000,45.000000,top
|
||||||
|
"IC19","AP2114H","SOT-223-3_TabPin2",76.000000,24.000000,0.000000,top
|
||||||
|
"IC20","NCP702-3.3","SOT-23-5",79.100000,17.800000,0.000000,top
|
||||||
|
"IC21","MAX2871","QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mm",88.000000,24.400000,90.000000,top
|
||||||
|
"IC22","LT5560","WSON-8-1EP_3x3mm_P0.5mm_EP1.45x2.4mm",12.500000,37.500000,90.000000,top
|
||||||
|
"IC23","THS4521IDGKR","VSSOP-8_3.0x3.0mm_P0.65mm",12.700000,43.900000,180.000000,top
|
||||||
|
"IC24","ADL5801","QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm",12.500000,20.600000,0.000000,top
|
||||||
|
"IC25","NCP702-1.8","SOT-23-5",6.000000,50.500000,90.000000,top
|
||||||
|
"IC26","MCP33131D-10-E/MS","VSSOP-10_3x3mm_P0.5mm",12.400000,53.500000,90.000000,top
|
||||||
|
"IC27","LT5560","WSON-8-1EP_3x3mm_P0.5mm_EP1.45x2.4mm",113.600000,41.500000,90.000000,top
|
||||||
|
"IC28","THS4521IDGKR","VSSOP-8_3.0x3.0mm_P0.65mm",113.000000,48.200000,180.000000,top
|
||||||
|
"IC29","ADL5801","QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm",105.000000,26.000000,-90.000000,top
|
||||||
|
"IC30","NCP702-1.8","SOT-23-5",107.500000,59.100000,0.000000,top
|
||||||
|
"IC31","MCP33131D-10-E/MS","VSSOP-10_3x3mm_P0.5mm",112.700000,59.100000,90.000000,top
|
||||||
|
"IC32","THS4521IDGKR","VSSOP-8_3.0x3.0mm_P0.65mm",33.200000,31.100000,180.000000,top
|
||||||
|
"IC33","ADL5801","QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm",41.300000,16.000000,0.000000,top
|
||||||
|
"IC34","NCP702-1.8","SOT-23-5",37.000000,42.000000,90.000000,top
|
||||||
|
"IC35","MCP33131D-10-E/MS","VSSOP-10_3x3mm_P0.5mm",33.000000,42.300000,90.000000,top
|
||||||
|
"IC36","LT5560","WSON-8-1EP_3x3mm_P0.5mm_EP1.45x2.4mm",35.700000,25.400000,180.000000,top
|
||||||
|
"IC37","STM32G431CB","QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm",65.100000,77.800000,90.000000,top
|
||||||
|
"J2","SMA","BU-1420701851",12.000000,-1.900000,90.000000,top
|
||||||
|
"J3","SMA","BU-1420701851",110.000000,-1.900000,90.000000,top
|
||||||
|
"J4","USB_C_Receptacle_USB2.0_16P","USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal",63.998900,92.303600,180.000000,top
|
||||||
|
"L1","2.2uH","L_Sunlord_SWPA5040S",101.500000,81.900000,0.000000,top
|
||||||
|
"L2","2.2uH","L_Sunlord_SWPA5040S",90.300000,83.000000,90.000000,top
|
||||||
|
"L3","2.2uH","L_Sunlord_SWPA5040S",90.300000,75.000000,-90.000000,top
|
||||||
|
"L4","2.2uH","L_Sunlord_SWPA5040S",79.300000,72.000000,90.000000,top
|
||||||
|
"L5","2.2uH","L_Sunlord_SWPA5040S",112.450000,75.650000,90.000000,top
|
||||||
|
"L6","FERRITE","R_0402_1005Metric",22.000000,38.400000,-90.000000,top
|
||||||
|
"L7","FERRITE","R_0402_1005Metric",101.000000,59.300000,90.000000,top
|
||||||
|
"L8","FERRITE","R_0402_1005Metric",30.900000,17.800000,-90.000000,top
|
||||||
|
"L9","FERRITE","R_0402_1005Metric",92.000000,58.000000,180.000000,top
|
||||||
|
"L10","FERRITE","R_0402_1005Metric",91.488900,44.813600,180.000000,top
|
||||||
|
"L11","10uH","L_0805_2012Metric_Pad1.15x1.40mm_HandSolder",64.300000,18.400000,180.000000,top
|
||||||
|
"L12","FERRITE","R_0402_1005Metric",16.800000,38.700000,-90.000000,top
|
||||||
|
"L13","FERRITE","R_0402_1005Metric",5.400000,46.200000,-90.000000,top
|
||||||
|
"L14","330nH","L_0402_1005Metric",87.200000,36.000000,180.000000,top
|
||||||
|
"L15","FERRITE","R_0402_1005Metric",16.800000,41.400000,-90.000000,top
|
||||||
|
"L16","FERRITE","R_0402_1005Metric",17.500000,25.600000,90.000000,top
|
||||||
|
"L17","FERRITE","R_0402_1005Metric",7.700000,26.800000,90.000000,top
|
||||||
|
"L18","330nH","L_0402_1005Metric",83.200000,36.000000,180.000000,top
|
||||||
|
"L19","FERRITE","R_0402_1005Metric",79.900000,53.000000,180.000000,top
|
||||||
|
"L20","FERRITE","R_0402_1005Metric",73.300000,57.200000,180.000000,top
|
||||||
|
"L21","FERRITE","R_0402_1005Metric",63.000000,39.000000,180.000000,top
|
||||||
|
"L22","FERRITE","R_0402_1005Metric",65.200000,32.000000,-90.000000,top
|
||||||
|
"L23","FERRITE","R_0402_1005Metric",66.100000,20.400000,180.000000,top
|
||||||
|
"L24","330nH","L_0402_1005Metric",61.600000,18.400000,180.000000,top
|
||||||
|
"L25","FERRITE","R_0402_1005Metric",64.300000,4.500000,90.000000,top
|
||||||
|
"L26","FERRITE","R_0402_1005Metric",84.000000,9.600000,-90.000000,top
|
||||||
|
"L27","FERRITE","R_0402_1005Metric",24.800000,10.500000,-90.000000,top
|
||||||
|
"L28","FERRITE","R_0402_1005Metric",80.000000,29.000000,0.000000,top
|
||||||
|
"L29","FERRITE","R_0402_1005Metric",83.500000,18.500000,0.000000,top
|
||||||
|
"L30","330nH","L_0402_1005Metric",11.800000,34.300000,180.000000,top
|
||||||
|
"L31","330nH","L_0402_1005Metric",14.200000,34.300000,0.000000,top
|
||||||
|
"L32","330nH","L_0402_1005Metric",14.400000,23.800000,180.000000,top
|
||||||
|
"L33","330nH","L_0402_1005Metric",11.600000,23.800000,0.000000,top
|
||||||
|
"L34","68nH","L_0402_1005Metric",14.700000,27.900000,90.000000,top
|
||||||
|
"L35","68nH","L_0402_1005Metric",11.300000,27.900000,90.000000,top
|
||||||
|
"L36","33nH","L_0402_1005Metric",14.700000,30.200000,90.000000,top
|
||||||
|
"L37","33nH","L_0402_1005Metric",11.300000,30.200000,90.000000,top
|
||||||
|
"L38","330nH","L_0402_1005Metric",112.800000,38.200000,180.000000,top
|
||||||
|
"L39","330nH","L_0402_1005Metric",115.400000,38.200000,0.000000,top
|
||||||
|
"L40","330nH","L_0402_1005Metric",108.200000,24.250000,90.000000,top
|
||||||
|
"L41","330nH","L_0402_1005Metric",108.200000,26.700000,-90.000000,top
|
||||||
|
"L42","68nH","L_0402_1005Metric",114.700000,26.800000,90.000000,top
|
||||||
|
"L43","68nH","L_0402_1005Metric",113.500000,26.800000,90.000000,top
|
||||||
|
"L44","33nH","L_0402_1005Metric",114.700000,30.400000,90.000000,top
|
||||||
|
"L45","33nH","L_0402_1005Metric",113.500000,30.400000,90.000000,top
|
||||||
|
"L46","330nH","L_0402_1005Metric",43.200000,19.200000,180.000000,top
|
||||||
|
"L47","330nH","L_0402_1005Metric",40.500000,19.200000,0.000000,top
|
||||||
|
"L48","68nH","L_0402_1005Metric",43.500000,23.300000,90.000000,top
|
||||||
|
"L49","68nH","L_0402_1005Metric",40.000000,23.300000,90.000000,top
|
||||||
|
"L50","33nH","L_0402_1005Metric",43.500000,25.600000,90.000000,top
|
||||||
|
"L51","33nH","L_0402_1005Metric",40.000000,25.600000,90.000000,top
|
||||||
|
"L52","330nH","L_0402_1005Metric",44.790000,25.630000,-90.000000,top
|
||||||
|
"L53","330nH","L_0402_1005Metric",38.700000,25.600000,-90.000000,top
|
||||||
|
"L54","FERRITE","R_0402_1005Metric",113.200000,22.200000,0.000000,top
|
||||||
|
"L55","FERRITE","R_0402_1005Metric",109.400000,29.900000,90.000000,top
|
||||||
|
"L56","FERRITE","R_0402_1005Metric",116.300000,51.000000,90.000000,top
|
||||||
|
"L57","FERRITE","R_0402_1005Metric",117.500000,44.800000,0.000000,top
|
||||||
|
"L58","FERRITE","R_0402_1005Metric",105.200000,61.100000,180.000000,top
|
||||||
|
"L59","FERRITE","R_0402_1005Metric",45.400000,12.200000,0.000000,top
|
||||||
|
"L60","FERRITE","R_0402_1005Metric",38.800000,21.000000,90.000000,top
|
||||||
|
"L61","FERRITE","R_0402_1005Metric",38.000000,29.100000,0.000000,top
|
||||||
|
"L62","FERRITE","R_0402_1005Metric",37.000000,34.100000,0.000000,top
|
||||||
|
"L63","FERRITE","R_0402_1005Metric",37.000000,38.400000,180.000000,top
|
||||||
|
"L64","FERRITE","R_0402_1005Metric",73.400000,53.800000,0.000000,top
|
||||||
|
"L65","FERRITE","R_0402_1005Metric",83.800000,28.000000,90.000000,top
|
||||||
|
"LED1","Red","LED_0603_1608Metric",34.620000,82.720000,90.000000,top
|
||||||
|
"LED2","Green","LED_0603_1608Metric",37.620000,82.820000,90.000000,top
|
||||||
|
"LED3","Red","LED_0603_1608Metric",31.620000,82.820000,90.000000,top
|
||||||
|
"LED4","Red","LED_0603_1608Metric",28.620000,82.820000,90.000000,top
|
||||||
|
"LED5","Red","LED_0603_1608Metric",25.620000,82.820000,90.000000,top
|
||||||
|
"LED6","Green","LED_0603_1608Metric",22.620000,82.820000,90.000000,top
|
||||||
|
"LED7","Green","LED_0603_1608Metric",19.620000,82.820000,90.000000,top
|
||||||
|
"LED8","Green","LED_0603_1608Metric",16.620000,82.820000,90.000000,top
|
||||||
|
"LED9","Green","LED_0603_1608Metric",13.620000,82.820000,90.000000,top
|
||||||
|
"LED10","Green","LED_0603_1608Metric",10.620000,82.820000,90.000000,top
|
||||||
|
"LP1","LP0603A-0947","FILTRDFN160X84X70-4N",47.700000,41.900000,90.000000,top
|
||||||
|
"LP2","LP0603A-3500","FILTRDFN160X84X70-4N",55.600000,42.100000,90.000000,top
|
||||||
|
"LP3","LP0603A-1880","FILTRDFN160X84X70-4N",58.000000,42.100000,90.000000,top
|
||||||
|
"Q1","SSM3J338R","SOT-23",69.878900,86.013600,180.000000,top
|
||||||
|
"Q2","SSM3J338R","SOT-23",73.518900,87.883600,0.000000,top
|
||||||
|
"R1","620R","R_0402_1005Metric",95.700000,77.600000,90.000000,top
|
||||||
|
"R2","4.7k","R_0402_1005Metric",99.500000,70.200000,0.000000,top
|
||||||
|
"R3","10k","R_0402_1005Metric",96.400000,70.200000,0.000000,top
|
||||||
|
"R4","38.3k","R_0402_1005Metric",99.500000,71.500000,0.000000,top
|
||||||
|
"R5","10k","R_0402_1005Metric",96.400000,71.500000,0.000000,top
|
||||||
|
"R6","10k","R_0402_1005Metric",97.400000,45.200000,180.000000,top
|
||||||
|
"R7","100R","R_0402_1005Metric",80.000000,36.700000,90.000000,top
|
||||||
|
"R8","62R","R_0402_1005Metric",78.000000,36.000000,180.000000,top
|
||||||
|
"R9","100R","R_0402_1005Metric",76.000000,36.700000,-90.000000,top
|
||||||
|
"R10","5.1k","R_0402_1005Metric",68.700000,45.500000,90.000000,top
|
||||||
|
"R11","10k","R_0402_1005Metric",58.500000,59.100000,180.000000,top
|
||||||
|
"R12","49.9R","R_0402_1005Metric",63.100000,51.400000,90.000000,top
|
||||||
|
"R13","49.9R","R_0402_1005Metric",64.300000,49.100000,-90.000000,top
|
||||||
|
"R14","49.9R","R_0402_1005Metric",63.100000,46.800000,90.000000,top
|
||||||
|
"R15","1.8k","R_0402_1005Metric",65.508900,54.523600,-90.000000,top
|
||||||
|
"R16","82R","R_0402_1005Metric",69.000000,55.600000,-90.000000,top
|
||||||
|
"R17","330R","R_0402_1005Metric",67.800000,55.600000,90.000000,top
|
||||||
|
"R18","10k","R_0402_1005Metric",53.000000,44.000000,90.000000,top
|
||||||
|
"R19","10k","R_0402_1005Metric",49.400000,44.000000,90.000000,top
|
||||||
|
"R20","10k","R_0402_1005Metric",50.600000,44.000000,-90.000000,top
|
||||||
|
"R21","10k","R_0402_1005Metric",51.800000,44.000000,-90.000000,top
|
||||||
|
"R22","10k","R_0402_1005Metric",51.800000,40.000000,90.000000,top
|
||||||
|
"R23","10k","R_0402_1005Metric",53.000000,40.000000,-90.000000,top
|
||||||
|
"R24","10k","R_0402_1005Metric",50.600000,40.000000,90.000000,top
|
||||||
|
"R25","10k","R_0402_1005Metric",49.400000,40.000000,-90.000000,top
|
||||||
|
"R26","2.7R","R_0402_1005Metric",61.000000,14.400000,-90.000000,top
|
||||||
|
"R27","402R","R_0402_1005Metric",60.300000,12.700000,0.000000,top
|
||||||
|
"R28","56R","R_0402_1005Metric",59.700000,11.000000,90.000000,top
|
||||||
|
"R29","2.7R","R_0402_1005Metric",61.000000,11.000000,-90.000000,top
|
||||||
|
"R30","5.1k","R_0402_1005Metric",87.300000,29.000000,-90.000000,top
|
||||||
|
"R31","10k","R_0402_1005Metric",86.060000,18.810000,90.000000,top
|
||||||
|
"R32","49.9R","R_0402_1005Metric",93.300000,22.700000,0.000000,top
|
||||||
|
"R33","49.9R","R_0402_1005Metric",93.300000,24.350000,0.000000,top
|
||||||
|
"R34","49.9R","R_0402_1005Metric",93.300000,25.925000,0.000000,top
|
||||||
|
"R35","49.9R","R_0402_1005Metric",93.300000,27.275000,0.000000,top
|
||||||
|
"R36","1.8k","R_0402_1005Metric",90.718900,19.793600,90.000000,top
|
||||||
|
"R37","82R","R_0402_1005Metric",87.300000,18.800000,90.000000,top
|
||||||
|
"R38","49.9R","R_0402_1005Metric",94.200000,29.850000,180.000000,top
|
||||||
|
"R39","330R","R_0402_1005Metric",88.500000,18.800000,-90.000000,top
|
||||||
|
"R40","PAT0816-C-3DB-T5","PAT0816",96.500000,5.950000,180.000000,top
|
||||||
|
"R41","0R","R_0402_1005Metric",98.700000,37.400000,-90.000000,top
|
||||||
|
"R42","0R","R_0402_1005Metric",101.100000,37.400000,90.000000,top
|
||||||
|
"R43","0R","R_0402_1005Metric",87.200000,39.600000,180.000000,top
|
||||||
|
"R44","0R","R_0402_1005Metric",83.200000,39.600000,180.000000,top
|
||||||
|
"R45","49.9R","R_0402_1005Metric",17.400000,12.000000,-60.000000,top
|
||||||
|
"R46","49.9R","R_0402_1005Metric",19.500000,12.000000,-120.000000,top
|
||||||
|
"R47","PAT0816-C-3DB-T5","PAT0816",109.650000,10.000000,-90.000000,top
|
||||||
|
"R48","PAT0816-C-3DB-T5","PAT0816",11.650000,10.000000,-90.000000,top
|
||||||
|
"R49","PAT0816-C-3DB-T5","PAT0816",23.250000,5.950000,180.000000,top
|
||||||
|
"R50","49.9R","R_0402_1005Metric",22.100000,14.000000,0.000000,top
|
||||||
|
"R51","0R","R_0402_1005Metric",87.200000,44.000000,180.000000,top
|
||||||
|
"R52","0R","R_0402_1005Metric",83.200000,44.000000,180.000000,top
|
||||||
|
"R53","220R","R_0402_1005Metric",11.700000,40.500000,0.000000,top
|
||||||
|
"R54","220R","R_0402_1005Metric",14.000000,40.500000,180.000000,top
|
||||||
|
"R55","6.8k","R_0402_1005Metric",9.000000,43.900000,90.000000,top
|
||||||
|
"R56","6.8k","R_0402_1005Metric",16.400000,43.900000,-90.000000,top
|
||||||
|
"R57","DNP","R_0402_1005Metric",13.000000,17.000000,0.000000,top
|
||||||
|
"R58","220R","R_0402_1005Metric",10.000000,46.700000,-90.000000,top
|
||||||
|
"R59","220R","R_0402_1005Metric",15.200000,46.700000,-90.000000,top
|
||||||
|
"R60","1k","R_0402_1005Metric",8.200000,17.500000,180.000000,top
|
||||||
|
"R61","220R","R_0402_1005Metric",10.900000,49.100000,-90.000000,top
|
||||||
|
"R62","220R","R_0402_1005Metric",14.400000,49.200000,-90.000000,top
|
||||||
|
"R63","56R","R_0402_1005Metric",13.000000,31.800000,0.000000,top
|
||||||
|
"R64","20R","R_0402_1005Metric",14.700000,32.500000,-90.000000,top
|
||||||
|
"R65","20R","R_0402_1005Metric",11.300000,32.500000,-90.000000,top
|
||||||
|
"R66","56R","R_0402_1005Metric",13.000000,33.100000,180.000000,top
|
||||||
|
"R67","100R","R_0402_1005Metric",55.400000,59.100000,180.000000,top
|
||||||
|
"R68","100R","R_0402_1005Metric",56.000000,55.900000,180.000000,top
|
||||||
|
"R69","10k","R_0402_1005Metric",49.000000,55.900000,180.000000,top
|
||||||
|
"R70","100R","R_0402_1005Metric",52.800000,55.900000,180.000000,top
|
||||||
|
"R72","49.9R","R_0402_1005Metric",105.400000,13.300000,-120.000000,top
|
||||||
|
"R73","49.9R","R_0402_1005Metric",103.400000,13.300000,-60.000000,top
|
||||||
|
"R74","100R","R_0402_1005Metric",4.400000,17.300000,180.000000,top
|
||||||
|
"R75","100R","R_0402_1005Metric",4.400000,21.100000,180.000000,top
|
||||||
|
"R76","49.9R","R_0402_1005Metric",100.900000,15.200000,180.000000,top
|
||||||
|
"R78","100R","R_0402_1005Metric",32.900000,19.000000,90.000000,top
|
||||||
|
"R79","100R","R_0402_1005Metric",35.400000,19.600000,90.000000,top
|
||||||
|
"R80","220R","R_0402_1005Metric",112.800000,44.800000,0.000000,top
|
||||||
|
"R81","220R","R_0402_1005Metric",115.200000,44.800000,180.000000,top
|
||||||
|
"R82","6.8k","R_0402_1005Metric",108.200000,48.200000,90.000000,top
|
||||||
|
"R83","6.8k","R_0402_1005Metric",116.700000,48.200000,-90.000000,top
|
||||||
|
"R84","DNP","R_0402_1005Metric",100.600000,25.500000,-90.000000,top
|
||||||
|
"R85","220R","R_0402_1005Metric",111.000000,52.000000,-90.000000,top
|
||||||
|
"R86","220R","R_0402_1005Metric",115.000000,52.000000,-90.000000,top
|
||||||
|
"R87","1k","R_0402_1005Metric",101.800000,29.900000,90.000000,top
|
||||||
|
"R88","220R","R_0402_1005Metric",111.000000,54.400000,-90.000000,top
|
||||||
|
"R89","220R","R_0402_1005Metric",115.000000,54.400000,-90.000000,top
|
||||||
|
"R90","56R","R_0402_1005Metric",114.100000,33.400000,0.000000,top
|
||||||
|
"R91","20R","R_0402_1005Metric",114.700000,35.200000,-90.000000,top
|
||||||
|
"R92","20R","R_0402_1005Metric",113.500000,35.200000,-90.000000,top
|
||||||
|
"R93","56R","R_0402_1005Metric",114.100000,37.000000,180.000000,top
|
||||||
|
"R94","4.7k","R_0402_1005Metric",29.500000,31.100000,90.000000,top
|
||||||
|
"R95","4.7k","R_0402_1005Metric",36.900000,31.000000,-90.000000,top
|
||||||
|
"R96","220R","R_0402_1005Metric",31.300000,34.900000,-90.000000,top
|
||||||
|
"R97","220R","R_0402_1005Metric",35.100000,35.000000,-90.000000,top
|
||||||
|
"R98","220R","R_0402_1005Metric",31.300000,37.400000,-90.000000,top
|
||||||
|
"R99","220R","R_0402_1005Metric",35.100000,37.400000,-90.000000,top
|
||||||
|
"R100","DNP","R_0402_1005Metric",42.100000,12.300000,0.000000,top
|
||||||
|
"R101","1k","R_0402_1005Metric",37.400000,12.800000,180.000000,top
|
||||||
|
"R102","220R","R_0402_1005Metric",32.600000,24.800000,90.000000,top
|
||||||
|
"R103","220R","R_0402_1005Metric",34.600000,27.700000,180.000000,top
|
||||||
|
"R104","0R","R_0402_1005Metric",56.900000,73.700000,180.000000,top
|
||||||
|
"R105","0R","R_0402_1005Metric",56.900000,71.300000,180.000000,top
|
||||||
|
"R106","0R","R_0402_1005Metric",56.900000,72.500000,180.000000,top
|
||||||
|
"R107","0R","R_0402_1005Metric",56.900000,70.100000,180.000000,top
|
||||||
|
"R108","0R","R_0402_1005Metric",56.900000,68.900000,180.000000,top
|
||||||
|
"R109","0R","R_0402_1005Metric",56.900000,74.900000,180.000000,top
|
||||||
|
"R110","0R","R_0402_1005Metric",56.900000,76.100000,180.000000,top
|
||||||
|
"R111","DNP","R_0402_1005Metric",53.900000,73.700000,180.000000,top
|
||||||
|
"R112","DNP","R_0402_1005Metric",53.900000,71.300000,180.000000,top
|
||||||
|
"R113","DNP","R_0402_1005Metric",53.900000,72.500000,180.000000,top
|
||||||
|
"R114","DNP","R_0402_1005Metric",53.900000,70.100000,180.000000,top
|
||||||
|
"R115","DNP","R_0402_1005Metric",53.900000,68.900000,180.000000,top
|
||||||
|
"R116","10k","R_0402_1005Metric",67.300000,84.300000,90.000000,top
|
||||||
|
"R117","10k","R_0402_1005Metric",66.000000,84.300000,90.000000,top
|
||||||
|
"R118","20R","R_0402_1005Metric",64.000000,84.300000,-90.000000,top
|
||||||
|
"R119","20R","R_0402_1005Metric",62.700000,84.300000,90.000000,top
|
||||||
|
"R120","330R","R_0402_1005Metric",36.100000,82.800000,90.000000,top
|
||||||
|
"R121","10k","R_0402_1005Metric",49.098900,69.253600,0.000000,top
|
||||||
|
"R122","10k","R_0402_1005Metric",49.100000,68.000000,180.000000,top
|
||||||
|
"R123","20R","R_0402_1005Metric",115.100000,60.600000,-90.000000,top
|
||||||
|
"R124","20R","R_0402_1005Metric",49.200000,60.200000,180.000000,top
|
||||||
|
"R125","10k","R_0402_1005Metric",70.900000,89.500000,-90.000000,top
|
||||||
|
"R126","20R","R_0402_1005Metric",93.000000,38.500000,-90.000000,top
|
||||||
|
"R127","10k","R_0402_1005Metric",48.500000,57.600000,0.000000,top
|
||||||
|
"R128","10k","R_0402_1005Metric",48.500000,58.900000,0.000000,top
|
||||||
|
"R129","10k","R_0402_1005Metric",46.000000,78.000000,90.000000,top
|
||||||
|
"R130","10k","R_0402_1005Metric",20.000000,61.300000,90.000000,top
|
||||||
|
"R131","10k","R_0402_1005Metric",22.300000,61.300000,-90.000000,top
|
||||||
|
"R132","10k","R_0402_1005Metric",26.300000,53.200000,0.000000,top
|
||||||
|
"R133","10k","R_0402_1005Metric",26.300000,54.400000,180.000000,top
|
||||||
|
"R134","330R","R_0402_1005Metric",39.100000,82.800000,-90.000000,top
|
||||||
|
"R135","330R","R_0402_1005Metric",33.100000,82.800000,-90.000000,top
|
||||||
|
"R136","330R","R_0402_1005Metric",30.100000,82.800000,-90.000000,top
|
||||||
|
"R137","330R","R_0402_1005Metric",27.100000,82.800000,-90.000000,top
|
||||||
|
"R138","330R","R_0402_1005Metric",24.100000,82.800000,-90.000000,top
|
||||||
|
"R139","330R","R_0402_1005Metric",21.100000,82.800000,-90.000000,top
|
||||||
|
"R140","330R","R_0402_1005Metric",18.100000,82.800000,-90.000000,top
|
||||||
|
"R141","330R","R_0402_1005Metric",15.100000,82.800000,-90.000000,top
|
||||||
|
"R142","330R","R_0402_1005Metric",12.100000,82.800000,-90.000000,top
|
||||||
|
"R143","10k","R_0402_1005Metric",28.400000,41.200000,90.000000,top
|
||||||
|
"R144","10k","R_0402_1005Metric",29.500000,35.000000,-90.000000,top
|
||||||
|
"R145","10k","R_0402_1005Metric",16.600000,53.000000,90.000000,top
|
||||||
|
"R146","10k","R_0402_1005Metric",19.200000,49.700000,-90.000000,top
|
||||||
|
"R147","10k","R_0402_1005Metric",109.300000,52.100000,-90.000000,top
|
||||||
|
"R148","10k","R_0402_1005Metric",105.100000,53.100000,90.000000,top
|
||||||
|
"R149","10k","R_0402_1005Metric",85.400000,10.800000,90.000000,top
|
||||||
|
"R150","10k","R_0402_1005Metric",49.300000,21.000000,90.000000,top
|
||||||
|
"R151","10k","R_0402_1005Metric",50.500000,21.000000,90.000000,top
|
||||||
|
"R152","10k","R_0402_1005Metric",18.900000,31.300000,90.000000,top
|
||||||
|
"R153","10k","R_0402_1005Metric",54.000000,21.100000,90.000000,top
|
||||||
|
"R154","10k","R_0402_1005Metric",67.300000,38.500000,90.000000,top
|
||||||
|
"R155","10k","R_0402_1005Metric",72.400000,38.500000,90.000000,top
|
||||||
|
"R156","10k","R_0402_1005Metric",48.500000,29.200000,180.000000,top
|
||||||
|
"R157","10k","R_0402_1005Metric",50.900000,28.400000,180.000000,top
|
||||||
|
"R158","10k","R_0402_1005Metric",48.500000,27.600000,180.000000,top
|
||||||
|
"R159","10k","R_0402_1005Metric",50.900000,26.800000,180.000000,top
|
||||||
|
"R160","10k","R_0402_1005Metric",48.500000,24.400000,0.000000,top
|
||||||
|
"R161","10k","R_0402_1005Metric",50.900000,25.200000,0.000000,top
|
||||||
|
"R162","10k","R_0402_1005Metric",48.500000,26.000000,0.000000,top
|
||||||
|
"R163","10k","R_0402_1005Metric",57.300000,57.600000,180.000000,top
|
||||||
|
"R164","100R","R_0402_1005Metric",51.600000,59.100000,180.000000,top
|
||||||
|
"R165","10k","R_0402_1005Metric",55.800000,60.300000,180.000000,top
|
||||||
|
"R168","75R","R_0402_1005Metric",5.100000,19.200000,-90.000000,top
|
||||||
|
"R173","75R","R_0402_1005Metric",34.700000,17.800000,180.000000,top
|
||||||
|
"T1","B012-617DB-1-63-B331","EASTEVER_BALUN",18.500000,15.700000,-90.000000,top
|
||||||
|
"T2","B012-617DB-1-63-B331","EASTEVER_BALUN",104.400000,17.000000,-90.000000,top
|
||||||
|
"T3","B012-617DB-1-63-B331","EASTEVER_BALUN",50.000000,15.400000,0.000000,top
|
||||||
|
"U1","W25Q16BVSN","SOIC-8_3.9x4.9mm_P1.27mm",55.335000,65.265000,180.000000,top
|
||||||
|
"U2","XC6SLX9-TQG144","TQFP-144_20x20mm_P0.5mm",35.000000,67.000000,90.000000,top
|
||||||
|
"X1","SMA","J502-ND-142-0711-821_826",111.000000,95.900000,-90.000000,top
|
||||||
|
"X2","SMA","J502-ND-142-0711-821_826",95.000000,95.900000,-90.000000,top
|
||||||
|
"Y1","26MHz","Oscillator_SMD_ECS_20CSMV4_2.0x1.6mm",102.050000,41.025000,180.000000,top
|
||||||
|
BIN
Hardware/Kicad/Production/Production.zip
Normal file
BIN
Hardware/Kicad/Production/Production.zip
Normal file
Binary file not shown.
20835
Hardware/Kicad/Production/VNA-B_Cu.gbr
Normal file
20835
Hardware/Kicad/Production/VNA-B_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
2327
Hardware/Kicad/Production/VNA-B_Mask.gbr
Normal file
2327
Hardware/Kicad/Production/VNA-B_Mask.gbr
Normal file
File diff suppressed because it is too large
Load diff
27
Hardware/Kicad/Production/VNA-B_Paste.gbr
Normal file
27
Hardware/Kicad/Production/VNA-B_Paste.gbr
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.0*%
|
||||||
|
%TF.CreationDate,2025-02-25T23:04:32-05:00*%
|
||||||
|
%TF.ProjectId,VNA,564e412e-6b69-4636-9164-5f7063625858,rev?*%
|
||||||
|
%TF.SameCoordinates,PX535a28cPY8422900*%
|
||||||
|
%TF.FileFunction,Paste,Bot*%
|
||||||
|
%TF.FilePolarity,Positive*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.0) date 2025-02-25 23:04:32*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%ADD10R,2.286000X5.080000*%
|
||||||
|
%ADD11R,2.667000X4.191000*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
X7580400Y665400D03*
|
||||||
|
X16419600Y665400D03*
|
||||||
|
X105580400Y665400D03*
|
||||||
|
X114419600Y665400D03*
|
||||||
|
D11*
|
||||||
|
X98494600Y93784600D03*
|
||||||
|
X91505400Y93784600D03*
|
||||||
|
X114494600Y93784600D03*
|
||||||
|
X107505400Y93784600D03*
|
||||||
|
M02*
|
||||||
4358
Hardware/Kicad/Production/VNA-B_Silkscreen.gbr
Normal file
4358
Hardware/Kicad/Production/VNA-B_Silkscreen.gbr
Normal file
File diff suppressed because it is too large
Load diff
26
Hardware/Kicad/Production/VNA-Edge_Cuts.gbr
Normal file
26
Hardware/Kicad/Production/VNA-Edge_Cuts.gbr
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.0*%
|
||||||
|
%TF.CreationDate,2025-02-25T23:04:32-05:00*%
|
||||||
|
%TF.ProjectId,VNA,564e412e-6b69-4636-9164-5f7063625858,rev?*%
|
||||||
|
%TF.SameCoordinates,PX535a28cPY8422900*%
|
||||||
|
%TF.FileFunction,Profile,NP*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.0) date 2025-02-25 23:04:32*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%TA.AperFunction,Profile*%
|
||||||
|
%ADD10C,0.050000*%
|
||||||
|
%TD*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
X122000000Y96000000D02*
|
||||||
|
X0Y96000000D01*
|
||||||
|
X0Y-2000000D02*
|
||||||
|
X122000000Y-2000000D01*
|
||||||
|
X0Y96000000D02*
|
||||||
|
X0Y-2000000D01*
|
||||||
|
X122000000Y-2000000D02*
|
||||||
|
X122000000Y96000000D01*
|
||||||
|
M02*
|
||||||
58527
Hardware/Kicad/Production/VNA-F_Cu.gbr
Normal file
58527
Hardware/Kicad/Production/VNA-F_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
4744
Hardware/Kicad/Production/VNA-F_Mask.gbr
Normal file
4744
Hardware/Kicad/Production/VNA-F_Mask.gbr
Normal file
File diff suppressed because it is too large
Load diff
2623
Hardware/Kicad/Production/VNA-F_Paste.gbr
Normal file
2623
Hardware/Kicad/Production/VNA-F_Paste.gbr
Normal file
File diff suppressed because it is too large
Load diff
9448
Hardware/Kicad/Production/VNA-F_Silkscreen.gbr
Normal file
9448
Hardware/Kicad/Production/VNA-F_Silkscreen.gbr
Normal file
File diff suppressed because it is too large
Load diff
20601
Hardware/Kicad/Production/VNA-In1_Cu.gbr
Normal file
20601
Hardware/Kicad/Production/VNA-In1_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
20156
Hardware/Kicad/Production/VNA-In2_Cu.gbr
Normal file
20156
Hardware/Kicad/Production/VNA-In2_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
28512
Hardware/Kicad/Production/VNA-In3_Cu.gbr
Normal file
28512
Hardware/Kicad/Production/VNA-In3_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
26098
Hardware/Kicad/Production/VNA-In4_Cu.gbr
Normal file
26098
Hardware/Kicad/Production/VNA-In4_Cu.gbr
Normal file
File diff suppressed because it is too large
Load diff
21
Hardware/Kicad/Production/VNA-NPTH.drl
Normal file
21
Hardware/Kicad/Production/VNA-NPTH.drl
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
M48
|
||||||
|
; DRILL file {KiCad 9.0.0} date 2025-02-25T23:13:26-0500
|
||||||
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
|
; #@! TF.CreationDate,2025-02-25T23:13:26-05:00
|
||||||
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.0
|
||||||
|
; #@! TF.FileFunction,NonPlated,1,6,NPTH
|
||||||
|
FMAT,2
|
||||||
|
METRIC
|
||||||
|
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||||
|
T1C0.650
|
||||||
|
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||||
|
T2C1.200
|
||||||
|
%
|
||||||
|
G90
|
||||||
|
G05
|
||||||
|
T1
|
||||||
|
X61.109Y89.699
|
||||||
|
X66.889Y89.699
|
||||||
|
T2
|
||||||
|
X51.5Y93.0
|
||||||
|
M30
|
||||||
3027
Hardware/Kicad/Production/VNA-PTH.drl
Normal file
3027
Hardware/Kicad/Production/VNA-PTH.drl
Normal file
File diff suppressed because it is too large
Load diff
1
Hardware/Kicad/Production/VNA-bottom-pos.csv
Normal file
1
Hardware/Kicad/Production/VNA-bottom-pos.csv
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Ref,Val,Package,PosX,PosY,Rot,Side
|
||||||
|
224
Hardware/Kicad/Production/VNA-job.gbrjob
Normal file
224
Hardware/Kicad/Production/VNA-job.gbrjob
Normal file
|
|
@ -0,0 +1,224 @@
|
||||||
|
{
|
||||||
|
"Header": {
|
||||||
|
"GenerationSoftware": {
|
||||||
|
"Vendor": "KiCad",
|
||||||
|
"Application": "Pcbnew",
|
||||||
|
"Version": "9.0.0"
|
||||||
|
},
|
||||||
|
"CreationDate": "2025-02-25T23:04:32-05:00"
|
||||||
|
},
|
||||||
|
"GeneralSpecs": {
|
||||||
|
"ProjectId": {
|
||||||
|
"Name": "VNA",
|
||||||
|
"GUID": "564e412e-6b69-4636-9164-5f7063625858",
|
||||||
|
"Revision": "rev?"
|
||||||
|
},
|
||||||
|
"Size": {
|
||||||
|
"X": 122.05,
|
||||||
|
"Y": 98.05
|
||||||
|
},
|
||||||
|
"LayerNumber": 6,
|
||||||
|
"BoardThickness": 1.5849,
|
||||||
|
"Finish": "None",
|
||||||
|
"ImpedanceControlled": true
|
||||||
|
},
|
||||||
|
"DesignRules": [
|
||||||
|
{
|
||||||
|
"Layers": "Outer",
|
||||||
|
"PadToPad": 0.15,
|
||||||
|
"PadToTrack": 0.15,
|
||||||
|
"TrackToTrack": 0.15,
|
||||||
|
"MinLineWidth": 0.15,
|
||||||
|
"TrackToRegion": 0.15,
|
||||||
|
"RegionToRegion": 0.15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Layers": "Inner",
|
||||||
|
"PadToPad": 0.0,
|
||||||
|
"PadToTrack": 0.0,
|
||||||
|
"TrackToTrack": 0.15,
|
||||||
|
"MinLineWidth": 0.15,
|
||||||
|
"TrackToRegion": 0.15,
|
||||||
|
"RegionToRegion": 0.15
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"FilesAttributes": [
|
||||||
|
{
|
||||||
|
"Path": "VNA-F_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L1,Top",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-In1_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L5,Inr",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-In2_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L7,Inr",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-In3_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L9,Inr",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-In4_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L11,Inr",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-B_Cu.gbr",
|
||||||
|
"FileFunction": "Copper,L6,Bot",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-F_Paste.gbr",
|
||||||
|
"FileFunction": "SolderPaste,Top",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-B_Paste.gbr",
|
||||||
|
"FileFunction": "SolderPaste,Bot",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-F_Silkscreen.gbr",
|
||||||
|
"FileFunction": "Legend,Top",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-B_Silkscreen.gbr",
|
||||||
|
"FileFunction": "Legend,Bot",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-F_Mask.gbr",
|
||||||
|
"FileFunction": "SolderMask,Top",
|
||||||
|
"FilePolarity": "Negative"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-B_Mask.gbr",
|
||||||
|
"FileFunction": "SolderMask,Bot",
|
||||||
|
"FilePolarity": "Negative"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "VNA-Edge_Cuts.gbr",
|
||||||
|
"FileFunction": "Profile",
|
||||||
|
"FilePolarity": "Positive"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"MaterialStackup": [
|
||||||
|
{
|
||||||
|
"Type": "Legend",
|
||||||
|
"Color": "White",
|
||||||
|
"Name": "Top Silk Screen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "SolderPaste",
|
||||||
|
"Name": "Top Solder Paste"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "SolderMask",
|
||||||
|
"Color": "Green",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "Top Solder Mask"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.035,
|
||||||
|
"Name": "F.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.2104,
|
||||||
|
"Material": "7628",
|
||||||
|
"DielectricConstant": "4.4",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "F.Cu/In1.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 1 (from F.Cu to In1.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "In1.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.4,
|
||||||
|
"Material": "FR4",
|
||||||
|
"DielectricConstant": "4.6",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "In1.Cu/In2.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 2 (from In1.Cu to In2.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "In2.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.2028,
|
||||||
|
"Material": "7628",
|
||||||
|
"DielectricConstant": "4.4",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "In2.Cu/In3.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 3 (from In2.Cu to In3.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "In3.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.4,
|
||||||
|
"Material": "FR4",
|
||||||
|
"DielectricConstant": "4.5",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "In3.Cu/In4.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 4 (from In3.Cu to In4.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "In4.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Dielectric",
|
||||||
|
"Color": "R109G116B75",
|
||||||
|
"Thickness": 0.2104,
|
||||||
|
"Material": "7628",
|
||||||
|
"DielectricConstant": "4.6",
|
||||||
|
"LossTangent": "0.02",
|
||||||
|
"Name": "In4.Cu/B.Cu",
|
||||||
|
"Notes": "Type: dielectric layer 5 (from In4.Cu to B.Cu)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Copper",
|
||||||
|
"Thickness": 0.035,
|
||||||
|
"Name": "B.Cu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "SolderMask",
|
||||||
|
"Color": "Green",
|
||||||
|
"Thickness": 0.0152,
|
||||||
|
"Name": "Bottom Solder Mask"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "SolderPaste",
|
||||||
|
"Name": "Bottom Solder Paste"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Type": "Legend",
|
||||||
|
"Color": "White",
|
||||||
|
"Name": "Bottom Silk Screen"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
569
Hardware/Kicad/Production/VNA-top-pos.csv
Normal file
569
Hardware/Kicad/Production/VNA-top-pos.csv
Normal file
|
|
@ -0,0 +1,569 @@
|
||||||
|
Ref,Val,Package,PosX,PosY,Rot,Side
|
||||||
|
"C1","10uF","C_1206_3216Metric",97.500000,82.200000,90.000000,top
|
||||||
|
"C2","10uF","C_1206_3216Metric",84.800000,75.000000,180.000000,top
|
||||||
|
"C3","10uF","C_1206_3216Metric",84.800000,83.000000,180.000000,top
|
||||||
|
"C4","100nF","C_0402_1005Metric",96.400000,72.800000,0.000000,top
|
||||||
|
"C5","10nF","C_0402_1005Metric",95.700000,74.900000,90.000000,top
|
||||||
|
"C6","100nF","C_0402_1005Metric",89.800000,79.000000,180.000000,top
|
||||||
|
"C7","10uF","C_1206_3216Metric",84.800000,87.900000,180.000000,top
|
||||||
|
"C8","10uF","C_1206_3216Metric",84.800000,72.600000,180.000000,top
|
||||||
|
"C9","100pF","C_0402_1005Metric",99.500000,72.800000,180.000000,top
|
||||||
|
"C10","10uF","C_1206_3216Metric",84.800000,85.500000,180.000000,top
|
||||||
|
"C11","10uF","C_1206_3216Metric",84.800000,70.200000,180.000000,top
|
||||||
|
"C12","10uF","C_1206_3216Metric",108.500000,75.700000,90.000000,top
|
||||||
|
"C13","10uF","C_1206_3216Metric",106.300000,75.700000,90.000000,top
|
||||||
|
"C14","10uF","C_1206_3216Metric",75.300000,72.000000,-90.000000,top
|
||||||
|
"C15","10uF","C_1206_3216Metric",73.000000,72.000000,-90.000000,top
|
||||||
|
"C16","10uF","C_1206_3216Metric",108.000000,80.000000,180.000000,top
|
||||||
|
"C17","10uF","C_1206_3216Metric",108.000000,82.300000,180.000000,top
|
||||||
|
"C18","1uF","C_0603_1608Metric",21.000000,46.900000,0.000000,top
|
||||||
|
"C19","1uF","C_0603_1608Metric",102.000000,50.800000,180.000000,top
|
||||||
|
"C20","1uF","C_0603_1608Metric",29.900000,26.300000,0.000000,top
|
||||||
|
"C21","1uF","C_0603_1608Metric",95.000000,52.000000,180.000000,top
|
||||||
|
"C22","4u7F","C_0603_1608Metric",21.000000,40.900000,0.000000,top
|
||||||
|
"C23","4u7F","C_0603_1608Metric",102.000000,56.800000,180.000000,top
|
||||||
|
"C24","4u7F","C_0603_1608Metric",29.900000,20.300000,0.000000,top
|
||||||
|
"C25","4u7F","C_0603_1608Metric",95.000000,58.000000,180.000000,top
|
||||||
|
"C26","1uF","C_0603_1608Metric",20.000000,38.400000,-90.000000,top
|
||||||
|
"C27","1uF","C_0603_1608Metric",103.000000,59.300000,90.000000,top
|
||||||
|
"C28","1uF","C_0603_1608Metric",28.900000,18.100000,-90.000000,top
|
||||||
|
"C29","100nF","C_0402_1005Metric",91.518900,45.800000,0.000000,top
|
||||||
|
"C30","10nF","C_0402_1005Metric",111.000000,90.500000,-90.000000,top
|
||||||
|
"C31","100nF","C_0402_1005Metric",99.898900,39.423600,90.000000,top
|
||||||
|
"C32","100nF","C_0402_1005Metric",91.498900,43.263600,0.000000,top
|
||||||
|
"C33","100nF","C_0402_1005Metric",96.300000,37.400000,90.000000,top
|
||||||
|
"C34","100nF","C_0402_1005Metric",99.900000,41.675000,90.000000,top
|
||||||
|
"C35","DNP","C_0402_1005Metric",97.500000,37.400000,-90.000000,top
|
||||||
|
"C36","DNP","C_0402_1005Metric",89.200000,39.000000,-90.000000,top
|
||||||
|
"C37","DNP","C_0402_1005Metric",89.200000,43.300000,-90.000000,top
|
||||||
|
"C38","56pF","C_0402_1005Metric",89.200000,36.700000,90.000000,top
|
||||||
|
"C39","10nF","C_0402_1005Metric",95.000000,90.500000,90.000000,top
|
||||||
|
"C40","DNP","C_0402_1005Metric",99.900000,37.400000,90.000000,top
|
||||||
|
"C41","DNP","C_0402_1005Metric",85.200000,39.000000,-90.000000,top
|
||||||
|
"C42","DNP","C_0402_1005Metric",85.200000,43.300000,-90.000000,top
|
||||||
|
"C43","180pF","C_0402_1005Metric",85.200000,36.700000,90.000000,top
|
||||||
|
"C44","DNP","C_0402_1005Metric",102.300000,37.400000,-90.000000,top
|
||||||
|
"C45","DNP","C_0402_1005Metric",81.200000,39.000000,-90.000000,top
|
||||||
|
"C46","DNP","C_0402_1005Metric",81.200000,43.300000,-90.000000,top
|
||||||
|
"C47","56pF","C_0402_1005Metric",81.200000,36.700000,90.000000,top
|
||||||
|
"C48","100nF","C_0402_1005Metric",74.000000,36.000000,0.000000,top
|
||||||
|
"C49","10uF","C_1206_3216Metric",92.000000,54.600000,-90.000000,top
|
||||||
|
"C50","1uF","C_0603_1608Metric",80.600000,57.900000,90.000000,top
|
||||||
|
"C51","10nF","C_0402_1005Metric",72.900000,50.500000,180.000000,top
|
||||||
|
"C52","1uF","C_0603_1608Metric",75.500000,57.900000,90.000000,top
|
||||||
|
"C53","10uF","C_1206_3216Metric",79.200000,54.900000,180.000000,top
|
||||||
|
"C54","100nF","C_0402_1005Metric",72.900000,49.300000,0.000000,top
|
||||||
|
"C55","100nF","C_0402_1005Metric",72.900000,51.700000,0.000000,top
|
||||||
|
"C56","100nF","C_0402_1005Metric",65.700000,45.500000,-90.000000,top
|
||||||
|
"C57","100nF","C_0402_1005Metric",73.300000,58.700000,0.000000,top
|
||||||
|
"C58","1uF","C_0402_1005Metric",71.100000,45.500000,-90.000000,top
|
||||||
|
"C59","1uF","C_0402_1005Metric",66.900000,45.500000,-90.000000,top
|
||||||
|
"C60","1uF","C_0402_1005Metric",69.900000,45.500000,-90.000000,top
|
||||||
|
"C61","100nF","C_0402_1005Metric",64.300000,46.800000,-90.000000,top
|
||||||
|
"C62","100nF","C_0402_1005Metric",63.100000,49.100000,90.000000,top
|
||||||
|
"C63","180pF","C_0402_1005Metric",66.600000,55.600000,90.000000,top
|
||||||
|
"C64","100nF","C_0402_1005Metric",63.100000,53.700000,90.000000,top
|
||||||
|
"C65","100nF/RF","C_0402_1005Metric",51.400000,49.600000,-90.000000,top
|
||||||
|
"C66","3n3F","C_0402_1005Metric",67.800000,57.400000,0.000000,top
|
||||||
|
"C67","18pF","C_0402_1005Metric",64.468900,55.543600,-90.000000,top
|
||||||
|
"C68","100nF/RF","C_0402_1005Metric",56.800000,35.300000,0.000000,top
|
||||||
|
"C69","100nF","C_0402_1005Metric",60.000000,39.000000,180.000000,top
|
||||||
|
"C70","100nF","C_0402_1005Metric",64.000000,32.000000,90.000000,top
|
||||||
|
"C71","100nF/RF","C_0402_1005Metric",60.800000,23.500000,-90.000000,top
|
||||||
|
"C72","100nF","C_0402_1005Metric",63.900000,21.900000,0.000000,top
|
||||||
|
"C73","100nF","C_0402_1005Metric",63.800000,20.400000,180.000000,top
|
||||||
|
"C74","100nF/RF","C_0402_1005Metric",61.000000,16.700000,-90.000000,top
|
||||||
|
"C75","100nF","C_0402_1005Metric",61.900000,3.800000,180.000000,top
|
||||||
|
"C76","100nF","C_0402_1005Metric",26.000000,10.500000,90.000000,top
|
||||||
|
"C77","100nF","C_0402_1005Metric",84.900000,7.941418,-135.000000,top
|
||||||
|
"C78","10uF","C_1206_3216Metric",73.000000,18.000000,-90.000000,top
|
||||||
|
"C79","1uF","C_0603_1608Metric",76.600000,17.800000,-90.000000,top
|
||||||
|
"C80","10nF","C_0402_1005Metric",82.900000,24.100000,0.000000,top
|
||||||
|
"C81","1uF","C_0603_1608Metric",81.600000,17.800000,-90.000000,top
|
||||||
|
"C82","10uF","C_1206_3216Metric",76.000000,29.000000,180.000000,top
|
||||||
|
"C83","100nF","C_0402_1005Metric",83.698900,25.503600,90.000000,top
|
||||||
|
"C84","100nF","C_0402_1005Metric",82.900000,22.900000,180.000000,top
|
||||||
|
"C85","100nF","C_0402_1005Metric",90.300000,29.000000,90.000000,top
|
||||||
|
"C86","100nF","C_0402_1005Metric",83.500000,17.100000,180.000000,top
|
||||||
|
"C87","1uF","C_0402_1005Metric",84.900000,29.000000,90.000000,top
|
||||||
|
"C88","1uF","C_0402_1005Metric",89.100000,29.000000,90.000000,top
|
||||||
|
"C89","1uF","C_0402_1005Metric",86.100000,29.000000,90.000000,top
|
||||||
|
"C90","180pF","C_0402_1005Metric",89.700000,18.800000,-90.000000,top
|
||||||
|
"C91","100nF","C_0402_1005Metric",95.100000,23.700000,-90.000000,top
|
||||||
|
"C92","3n3F","C_0402_1005Metric",88.500000,17.000000,0.000000,top
|
||||||
|
"C93","10nF","C_0402_1005Metric",92.725000,29.050000,-90.000000,top
|
||||||
|
"C94","100nF","C_0402_1005Metric",95.100000,26.100000,90.000000,top
|
||||||
|
"C95","18pF","C_0402_1005Metric",91.738900,18.773600,90.000000,top
|
||||||
|
"C96","100nF/RF","C_0402_1005Metric",26.800000,5.600000,180.000000,top
|
||||||
|
"C97","100nF","C_0402_1005Metric",9.300000,36.800000,0.000000,top
|
||||||
|
"C98","100nF","C_0402_1005Metric",9.300000,38.100000,0.000000,top
|
||||||
|
"C99","100nF/RF","C_0402_1005Metric",12.000000,6.600000,90.000000,top
|
||||||
|
"C100","1uF","C_0402_1005Metric",11.700000,41.700000,180.000000,top
|
||||||
|
"C101","1uF","C_0402_1005Metric",14.000000,41.700000,0.000000,top
|
||||||
|
"C102","100nF","C_0402_1005Metric",14.800000,38.700000,90.000000,top
|
||||||
|
"C103","100nF","C_0402_1005Metric",9.300000,40.500000,0.000000,top
|
||||||
|
"C104","10nF","C_0402_1005Metric",8.200000,18.700000,180.000000,top
|
||||||
|
"C105","10nF","C_0402_1005Metric",8.200000,22.600000,180.000000,top
|
||||||
|
"C106","10nF","C_0402_1005Metric",15.400000,17.600000,-90.000000,top
|
||||||
|
"C107","DNP","C_0402_1005Metric",19.100000,18.900000,180.000000,top
|
||||||
|
"C108","1uF","C_0402_1005Metric",8.200000,25.000000,180.000000,top
|
||||||
|
"C109","100nF/RF","C_0402_1005Metric",16.800000,20.000000,180.000000,top
|
||||||
|
"C110","100nF/RF","C_0402_1005Metric",16.800000,21.200000,180.000000,top
|
||||||
|
"C111","10nF","C_0402_1005Metric",17.000000,22.600000,0.000000,top
|
||||||
|
"C112","DNP","C_0402_1005Metric",7.800000,43.900000,90.000000,top
|
||||||
|
"C113","DNP","C_0402_1005Metric",17.600000,43.900000,-90.000000,top
|
||||||
|
"C114","100nF","C_0402_1005Metric",8.200000,21.200000,0.000000,top
|
||||||
|
"C115","100nF","C_0402_1005Metric",13.300000,46.700000,-90.000000,top
|
||||||
|
"C116","100nF","C_0402_1005Metric",12.100000,46.700000,90.000000,top
|
||||||
|
"C117","100nF","C_0402_1005Metric",8.200000,20.000000,180.000000,top
|
||||||
|
"C118","100nF","C_0402_1005Metric",8.200000,16.300000,0.000000,top
|
||||||
|
"C119","100nF","C_0402_1005Metric",8.200000,23.800000,180.000000,top
|
||||||
|
"C120","10nF","C_0402_1005Metric",14.700000,25.600000,90.000000,top
|
||||||
|
"C121","330pF","C_0402_1005Metric",12.650000,48.500000,0.000000,top
|
||||||
|
"C122","100nF","C_0402_1005Metric",17.000000,23.800000,0.000000,top
|
||||||
|
"C123","10nF","C_0402_1005Metric",11.300000,25.600000,90.000000,top
|
||||||
|
"C124","120pF","C_0402_1005Metric",13.000000,26.300000,180.000000,top
|
||||||
|
"C125","330pF","C_0402_1005Metric",9.200000,49.700000,0.000000,top
|
||||||
|
"C126","330pF","C_0402_1005Metric",12.650000,49.800000,0.000000,top
|
||||||
|
"C127","330pF","C_0402_1005Metric",16.100000,49.800000,0.000000,top
|
||||||
|
"C128","150pF","C_0402_1005Metric",13.000000,28.500000,180.000000,top
|
||||||
|
"C129","1uF","C_0402_1005Metric",6.000000,48.000000,0.000000,top
|
||||||
|
"C130","33pF","C_0402_1005Metric",13.000000,30.600000,180.000000,top
|
||||||
|
"C131","1uF","C_0402_1005Metric",6.000000,53.000000,0.000000,top
|
||||||
|
"C132","100nF","C_0402_1005Metric",9.400000,55.600000,0.000000,top
|
||||||
|
"C133","100nF/RF","C_0402_1005Metric",93.200000,5.600000,0.000000,top
|
||||||
|
"C134","100nF","C_0402_1005Metric",110.000000,40.703600,0.000000,top
|
||||||
|
"C135","100nF","C_0402_1005Metric",110.000000,42.200000,0.000000,top
|
||||||
|
"C136","100nF/RF","C_0402_1005Metric",110.000000,6.700000,90.000000,top
|
||||||
|
"C137","1uF","C_0402_1005Metric",112.800000,46.000000,180.000000,top
|
||||||
|
"C138","1uF","C_0402_1005Metric",115.200000,46.000000,0.000000,top
|
||||||
|
"C139","100nF","C_0402_1005Metric",110.000000,44.800000,0.000000,top
|
||||||
|
"C140","100nF","C_0402_1005Metric",116.000000,42.700000,90.000000,top
|
||||||
|
"C141","10nF","C_0402_1005Metric",101.400000,23.200000,180.000000,top
|
||||||
|
"C142","10nF","C_0402_1005Metric",103.000000,29.900000,90.000000,top
|
||||||
|
"C143","10nF","C_0402_1005Metric",107.000000,29.900000,90.000000,top
|
||||||
|
"C144","DNP","C_0402_1005Metric",105.000000,20.100000,180.000000,top
|
||||||
|
"C145","1uF","C_0402_1005Metric",110.600000,21.700000,-90.000000,top
|
||||||
|
"C146","100nF/RF","C_0402_1005Metric",104.400000,21.800000,90.000000,top
|
||||||
|
"C147","100nF/RF","C_0402_1005Metric",105.600000,21.800000,90.000000,top
|
||||||
|
"C148","10nF","C_0402_1005Metric",108.200000,21.700000,-90.000000,top
|
||||||
|
"C149","DNP","C_0402_1005Metric",109.400000,48.200000,90.000000,top
|
||||||
|
"C150","DNP","C_0402_1005Metric",117.900000,48.200000,-90.000000,top
|
||||||
|
"C151","100nF","C_0402_1005Metric",105.600000,29.900000,-90.000000,top
|
||||||
|
"C152","100nF","C_0402_1005Metric",113.600000,51.000000,-90.000000,top
|
||||||
|
"C153","100nF","C_0402_1005Metric",112.400000,51.000000,90.000000,top
|
||||||
|
"C154","100nF","C_0402_1005Metric",104.400000,29.900000,90.000000,top
|
||||||
|
"C155","100nF","C_0402_1005Metric",100.600000,29.900000,-90.000000,top
|
||||||
|
"C156","100nF","C_0402_1005Metric",109.400000,21.700000,-90.000000,top
|
||||||
|
"C157","10nF","C_0402_1005Metric",110.500000,24.900000,0.000000,top
|
||||||
|
"C158","330pF","C_0402_1005Metric",113.000000,53.700000,0.000000,top
|
||||||
|
"C159","100nF","C_0402_1005Metric",108.200000,29.900000,90.000000,top
|
||||||
|
"C160","10nF","C_0402_1005Metric",110.500000,26.100000,0.000000,top
|
||||||
|
"C161","120pF","C_0402_1005Metric",112.300000,25.500000,90.000000,top
|
||||||
|
"C162","330pF","C_0402_1005Metric",109.000000,55.000000,0.000000,top
|
||||||
|
"C163","330pF","C_0402_1005Metric",113.000000,55.000000,0.000000,top
|
||||||
|
"C164","330pF","C_0402_1005Metric",117.000000,55.000000,0.000000,top
|
||||||
|
"C165","150pF","C_0402_1005Metric",114.100000,28.600000,180.000000,top
|
||||||
|
"C166","1uF","C_0402_1005Metric",105.000000,59.100000,-90.000000,top
|
||||||
|
"C167","33pF","C_0402_1005Metric",114.100000,32.200000,180.000000,top
|
||||||
|
"C168","1uF","C_0402_1005Metric",110.000000,59.100000,-90.000000,top
|
||||||
|
"C169","100nF","C_0402_1005Metric",110.000000,61.300000,0.000000,top
|
||||||
|
"C170","100nF/RF","C_0402_1005Metric",54.000000,13.400000,90.000000,top
|
||||||
|
"C171","10nF","C_0402_1005Metric",37.400000,18.000000,180.000000,top
|
||||||
|
"C172","10nF","C_0402_1005Metric",45.600000,19.200000,0.000000,top
|
||||||
|
"C173","DNP","C_0402_1005Metric",28.300000,31.100000,90.000000,top
|
||||||
|
"C174","DNP","C_0402_1005Metric",38.100000,31.000000,-90.000000,top
|
||||||
|
"C175","10nF","C_0402_1005Metric",45.400000,13.400000,0.000000,top
|
||||||
|
"C176","DNP","C_0402_1005Metric",46.800000,16.000000,-90.000000,top
|
||||||
|
"C177","1uF","C_0402_1005Metric",45.600000,21.600000,0.000000,top
|
||||||
|
"C178","100nF/RF","C_0402_1005Metric",45.000000,15.400000,180.000000,top
|
||||||
|
"C179","100nF/RF","C_0402_1005Metric",45.000000,16.700000,180.000000,top
|
||||||
|
"C180","10nF","C_0402_1005Metric",37.400000,14.000000,180.000000,top
|
||||||
|
"C181","100nF","C_0402_1005Metric",33.800000,34.000000,-90.000000,top
|
||||||
|
"C182","100nF","C_0402_1005Metric",32.600000,34.000000,90.000000,top
|
||||||
|
"C183","100nF","C_0402_1005Metric",37.400000,16.600000,0.000000,top
|
||||||
|
"C184","330pF","C_0402_1005Metric",33.200000,36.700000,0.000000,top
|
||||||
|
"C185","100nF","C_0402_1005Metric",37.400000,15.400000,180.000000,top
|
||||||
|
"C186","100nF","C_0402_1005Metric",37.400000,11.600000,0.000000,top
|
||||||
|
"C187","330pF","C_0402_1005Metric",29.500000,38.100000,0.000000,top
|
||||||
|
"C188","330pF","C_0402_1005Metric",33.200000,38.100000,0.000000,top
|
||||||
|
"C189","330pF","C_0402_1005Metric",37.000000,36.700000,0.000000,top
|
||||||
|
"C190","100nF","C_0402_1005Metric",37.400000,19.200000,180.000000,top
|
||||||
|
"C191","10nF","C_0402_1005Metric",43.500000,21.000000,90.000000,top
|
||||||
|
"C192","10nF","C_0402_1005Metric",40.000000,21.000000,90.000000,top
|
||||||
|
"C193","100nF","C_0402_1005Metric",45.600000,20.400000,0.000000,top
|
||||||
|
"C194","120pF","C_0402_1005Metric",41.750000,21.650000,180.000000,top
|
||||||
|
"C195","1uF","C_0402_1005Metric",37.000000,39.500000,0.000000,top
|
||||||
|
"C196","150pF","C_0402_1005Metric",41.750000,23.950000,180.000000,top
|
||||||
|
"C197","33pF","C_0402_1005Metric",41.760000,26.420000,180.000000,top
|
||||||
|
"C198","1uF","C_0402_1005Metric",37.000000,44.500000,0.000000,top
|
||||||
|
"C199","100nF","C_0402_1005Metric",37.200000,22.400000,90.000000,top
|
||||||
|
"C200","100nF","C_0402_1005Metric",34.200000,22.400000,90.000000,top
|
||||||
|
"C201","100nF","C_0402_1005Metric",30.500000,43.700000,90.000000,top
|
||||||
|
"C202","1uF","C_0402_1005Metric",31.900000,28.900000,180.000000,top
|
||||||
|
"C203","1uF","C_0402_1005Metric",34.600000,28.900000,0.000000,top
|
||||||
|
"C204","100nF","C_0402_1005Metric",37.000000,27.700000,180.000000,top
|
||||||
|
"C205","100nF","C_0402_1005Metric",32.600000,22.400000,90.000000,top
|
||||||
|
"C206","100nF","C_0402_1005Metric",60.500000,73.000000,180.000000,top
|
||||||
|
"C207","100nF","C_0402_1005Metric",70.000000,79.700000,90.000000,top
|
||||||
|
"C208","100nF","C_0402_1005Metric",61.300000,84.300000,90.000000,top
|
||||||
|
"C209","100nF","C_0402_1005Metric",50.200000,64.200000,180.000000,top
|
||||||
|
"C210","100nF","C_0402_1005Metric",34.500000,51.800000,180.000000,top
|
||||||
|
"C211","100nF","C_0402_1005Metric",18.700000,61.300000,-90.000000,top
|
||||||
|
"C212","100nF","C_0402_1005Metric",21.400000,66.600000,180.000000,top
|
||||||
|
"C213","100nF","C_0402_1005Metric",36.100000,80.400000,90.000000,top
|
||||||
|
"C214","100nF","C_0402_1005Metric",41.500000,52.800000,-90.000000,top
|
||||||
|
"C215","100nF","C_0402_1005Metric",43.000000,79.800000,0.000000,top
|
||||||
|
"C216","100nF","C_0402_1005Metric",40.300000,52.500000,-90.000000,top
|
||||||
|
"C217","100nF","C_0402_1005Metric",28.198900,79.283600,180.000000,top
|
||||||
|
"C218","100nF","C_0402_1005Metric",49.100000,66.800000,0.000000,top
|
||||||
|
"C219","100nF","C_0402_1005Metric",21.400000,68.600000,180.000000,top
|
||||||
|
"C220","100nF","C_0402_1005Metric",49.100000,65.600000,0.000000,top
|
||||||
|
"C221","100nF","C_0402_1005Metric",28.600000,53.200000,0.000000,top
|
||||||
|
"C222","100nF","C_0402_1005Metric",34.500000,53.000000,180.000000,top
|
||||||
|
"C223","100pF","C_0402_1005Metric",28.400000,43.700000,90.000000,top
|
||||||
|
"C224","100pF","C_0402_1005Metric",28.900000,39.400000,180.000000,top
|
||||||
|
"C225","100pF","C_0402_1005Metric",28.900000,36.800000,180.000000,top
|
||||||
|
"C226","100pF","C_0402_1005Metric",28.900000,33.200000,180.000000,top
|
||||||
|
"C227","100pF","C_0402_1005Metric",15.400000,54.300000,90.000000,top
|
||||||
|
"C228","100pF","C_0402_1005Metric",15.400000,51.700000,-90.000000,top
|
||||||
|
"C229","100pF","C_0402_1005Metric",18.500000,51.500000,180.000000,top
|
||||||
|
"C230","100pF","C_0402_1005Metric",20.600000,49.700000,90.000000,top
|
||||||
|
"C231","100pF","C_0402_1005Metric",108.700000,50.300000,180.000000,top
|
||||||
|
"C232","100pF","C_0402_1005Metric",108.000000,52.100000,-90.000000,top
|
||||||
|
"C233","100pF","C_0402_1005Metric",105.800000,51.000000,0.000000,top
|
||||||
|
"C234","100pF","C_0402_1005Metric",105.500000,55.100000,0.000000,top
|
||||||
|
"C235","100pF","C_0402_1005Metric",80.400000,20.200000,0.000000,top
|
||||||
|
"C236","100pF","C_0402_1005Metric",87.441418,11.058578,45.000000,top
|
||||||
|
"C237","100pF","C_0402_1005Metric",48.700000,22.700000,180.000000,top
|
||||||
|
"C238","100pF","C_0402_1005Metric",48.700000,19.200000,180.000000,top
|
||||||
|
"C239","100pF","C_0402_1005Metric",51.100000,22.700000,0.000000,top
|
||||||
|
"C240","100pF","C_0402_1005Metric",51.100000,19.200000,0.000000,top
|
||||||
|
"C241","100pF","C_0402_1005Metric",18.200000,33.200000,180.000000,top
|
||||||
|
"C242","100pF","C_0402_1005Metric",18.200000,29.500000,180.000000,top
|
||||||
|
"C243","100pF","C_0402_1005Metric",54.000000,23.500000,90.000000,top
|
||||||
|
"C244","100pF","C_0402_1005Metric",54.000000,18.100000,-90.000000,top
|
||||||
|
"C245","100pF","C_0402_1005Metric",69.300000,38.500000,-90.000000,top
|
||||||
|
"C246","100pF","C_0402_1005Metric",66.000000,38.500000,90.000000,top
|
||||||
|
"C247","100pF","C_0402_1005Metric",73.600000,38.500000,-90.000000,top
|
||||||
|
"C248","100pF","C_0402_1005Metric",70.500000,38.500000,90.000000,top
|
||||||
|
"C249","100pF","C_0402_1005Metric",45.500000,29.600000,180.000000,top
|
||||||
|
"C250","100pF","C_0402_1005Metric",66.500000,33.500000,90.000000,top
|
||||||
|
"C251","100pF","C_0402_1005Metric",45.900000,28.400000,180.000000,top
|
||||||
|
"C252","100pF","C_0402_1005Metric",67.000000,31.100000,90.000000,top
|
||||||
|
"C253","100pF","C_0402_1005Metric",42.000000,31.200000,180.000000,top
|
||||||
|
"C254","100pF","C_0402_1005Metric",66.300000,29.200000,0.000000,top
|
||||||
|
"C255","100pF","C_0402_1005Metric",42.000000,30.000000,180.000000,top
|
||||||
|
"C256","100pF","C_0402_1005Metric",66.300000,28.000000,0.000000,top
|
||||||
|
"C257","100pF","C_0402_1005Metric",63.900000,24.000000,180.000000,top
|
||||||
|
"C258","100pF","C_0402_1005Metric",46.100000,23.500000,-90.000000,top
|
||||||
|
"C259","100pF","C_0402_1005Metric",65.700000,24.500000,-90.000000,top
|
||||||
|
"C260","100pF","C_0402_1005Metric",46.100000,25.900000,90.000000,top
|
||||||
|
"C261","100pF","C_0402_1005Metric",66.900000,24.500000,-90.000000,top
|
||||||
|
"C262","100pF","C_0402_1005Metric",42.000000,28.800000,180.000000,top
|
||||||
|
"C263","100pF","C_0402_1005Metric",39.100000,52.500000,-90.000000,top
|
||||||
|
"C264","100pF","C_0402_1005Metric",37.900000,52.500000,-90.000000,top
|
||||||
|
"C265","100pF","C_0402_1005Metric",53.400000,42.000000,0.000000,top
|
||||||
|
"C266","100pF","C_0402_1005Metric",36.700000,52.500000,-90.000000,top
|
||||||
|
"C267","100pF","C_0402_1005Metric",59.000000,60.300000,0.000000,top
|
||||||
|
"C268","100pF","C_0402_1005Metric",70.200000,55.600000,90.000000,top
|
||||||
|
"C269","100nF","C_0402_1005Metric",5.100000,15.400000,90.000000,top
|
||||||
|
"C270","100nF","C_0402_1005Metric",34.700000,15.900000,135.000000,top
|
||||||
|
"C271","100pF","C_0402_1005Metric",52.800000,60.300000,180.000000,top
|
||||||
|
"C272","100pF","C_0402_1005Metric",74.200000,47.300000,0.000000,top
|
||||||
|
"C273","100pF","C_0402_1005Metric",46.000000,55.900000,180.000000,top
|
||||||
|
"C274","100pF","C_0402_1005Metric",74.200000,46.000000,0.000000,top
|
||||||
|
"D1","MBRS2040LT3G","D_SMB",102.900000,75.700000,90.000000,top
|
||||||
|
"IC1","MIC2253","DFN-12-1EP_3x3mm_P0.45mm_EP1.66x2.38mm",98.500000,77.000000,90.000000,top
|
||||||
|
"IC2","LM3370","DFN-16-1EP_4x5mm_P0.5mm_EP2.44x4.34mm",84.800000,79.000000,180.000000,top
|
||||||
|
"IC3","LDL212PU50R","WSON-6-1EP_3x3mm_P0.95mm",21.000000,43.900000,90.000000,top
|
||||||
|
"IC4","LDL212PU50R","WSON-6-1EP_3x3mm_P0.95mm",102.000000,53.800000,-90.000000,top
|
||||||
|
"IC5","LDL212PU50R","WSON-6-1EP_3x3mm_P0.95mm",29.900000,23.300000,90.000000,top
|
||||||
|
"IC6","LDL212PU50R","WSON-6-1EP_3x3mm_P0.95mm",95.000000,55.000000,-90.000000,top
|
||||||
|
"IC7","SI5351C","QFN-20-1EP_4x4mm_P0.5mm_EP2.7x2.7mm",96.000000,42.000000,180.000000,top
|
||||||
|
"IC8","AP2114H","SOT-223-3_TabPin2",86.300000,55.600000,180.000000,top
|
||||||
|
"IC9","NCP702-3.3","SOT-23-5",78.100000,57.900000,180.000000,top
|
||||||
|
"IC10","MAX2871","QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mm",68.050000,50.250000,-90.000000,top
|
||||||
|
"IC11","RFSW6042","QFN40P180X180X55-13T76N",51.200000,46.800000,90.000000,top
|
||||||
|
"IC12","RFSW6042","QFN40P180X180X55-13T76N",51.200000,37.200000,-90.000000,top
|
||||||
|
"IC13","QPC6324","QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm",60.800000,35.300000,0.000000,top
|
||||||
|
"IC14","RFSA3714","QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm",61.600000,27.500000,-90.000000,top
|
||||||
|
"IC15","TRF37A73","DFN-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm",60.650000,20.600000,-90.000000,top
|
||||||
|
"IC16","QPC6324","QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm",61.000000,7.000000,180.000000,top
|
||||||
|
"IC17","QPC6324","QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm",89.000000,8.000000,45.000000,top
|
||||||
|
"IC18","QPC6324","QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm",30.000000,8.000000,45.000000,top
|
||||||
|
"IC19","AP2114H","SOT-223-3_TabPin2",76.000000,24.000000,0.000000,top
|
||||||
|
"IC20","NCP702-3.3","SOT-23-5",79.100000,17.800000,0.000000,top
|
||||||
|
"IC21","MAX2871","QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mm",88.000000,24.400000,90.000000,top
|
||||||
|
"IC22","LT5560","WSON-8-1EP_3x3mm_P0.5mm_EP1.45x2.4mm",12.500000,37.500000,90.000000,top
|
||||||
|
"IC23","THS4521IDGKR","VSSOP-8_3.0x3.0mm_P0.65mm",12.700000,43.900000,180.000000,top
|
||||||
|
"IC24","ADL5801","QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm",12.500000,20.600000,0.000000,top
|
||||||
|
"IC25","NCP702-1.8","SOT-23-5",6.000000,50.500000,90.000000,top
|
||||||
|
"IC26","MCP33131D-10-E/MS","VSSOP-10_3x3mm_P0.5mm",12.400000,53.500000,90.000000,top
|
||||||
|
"IC27","LT5560","WSON-8-1EP_3x3mm_P0.5mm_EP1.45x2.4mm",113.600000,41.500000,90.000000,top
|
||||||
|
"IC28","THS4521IDGKR","VSSOP-8_3.0x3.0mm_P0.65mm",113.000000,48.200000,180.000000,top
|
||||||
|
"IC29","ADL5801","QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm",105.000000,26.000000,-90.000000,top
|
||||||
|
"IC30","NCP702-1.8","SOT-23-5",107.500000,59.100000,0.000000,top
|
||||||
|
"IC31","MCP33131D-10-E/MS","VSSOP-10_3x3mm_P0.5mm",112.700000,59.100000,90.000000,top
|
||||||
|
"IC32","THS4521IDGKR","VSSOP-8_3.0x3.0mm_P0.65mm",33.200000,31.100000,180.000000,top
|
||||||
|
"IC33","ADL5801","QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm",41.300000,16.000000,0.000000,top
|
||||||
|
"IC34","NCP702-1.8","SOT-23-5",37.000000,42.000000,90.000000,top
|
||||||
|
"IC35","MCP33131D-10-E/MS","VSSOP-10_3x3mm_P0.5mm",33.000000,42.300000,90.000000,top
|
||||||
|
"IC36","LT5560","WSON-8-1EP_3x3mm_P0.5mm_EP1.45x2.4mm",35.700000,25.400000,180.000000,top
|
||||||
|
"IC37","STM32G431CB","QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm",65.100000,77.800000,90.000000,top
|
||||||
|
"J2","SMA","BU-1420701851",12.000000,-1.900000,90.000000,top
|
||||||
|
"J3","SMA","BU-1420701851",110.000000,-1.900000,90.000000,top
|
||||||
|
"J4","USB_C_Receptacle_USB2.0_16P","USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal",63.998900,92.303600,180.000000,top
|
||||||
|
"L1","2.2uH","L_Sunlord_SWPA5040S",101.500000,81.900000,0.000000,top
|
||||||
|
"L2","2.2uH","L_Sunlord_SWPA5040S",90.300000,83.000000,90.000000,top
|
||||||
|
"L3","2.2uH","L_Sunlord_SWPA5040S",90.300000,75.000000,-90.000000,top
|
||||||
|
"L4","2.2uH","L_Sunlord_SWPA5040S",79.300000,72.000000,90.000000,top
|
||||||
|
"L5","2.2uH","L_Sunlord_SWPA5040S",112.450000,75.650000,90.000000,top
|
||||||
|
"L6","FERRITE","R_0402_1005Metric",22.000000,38.400000,-90.000000,top
|
||||||
|
"L7","FERRITE","R_0402_1005Metric",101.000000,59.300000,90.000000,top
|
||||||
|
"L8","FERRITE","R_0402_1005Metric",30.900000,17.800000,-90.000000,top
|
||||||
|
"L9","FERRITE","R_0402_1005Metric",92.000000,58.000000,180.000000,top
|
||||||
|
"L10","FERRITE","R_0402_1005Metric",91.488900,44.813600,180.000000,top
|
||||||
|
"L11","10uH","L_0805_2012Metric_Pad1.15x1.40mm_HandSolder",64.300000,18.400000,180.000000,top
|
||||||
|
"L12","FERRITE","R_0402_1005Metric",16.800000,38.700000,-90.000000,top
|
||||||
|
"L13","FERRITE","R_0402_1005Metric",5.400000,46.200000,-90.000000,top
|
||||||
|
"L14","330nH","L_0402_1005Metric",87.200000,36.000000,180.000000,top
|
||||||
|
"L15","FERRITE","R_0402_1005Metric",16.800000,41.400000,-90.000000,top
|
||||||
|
"L16","FERRITE","R_0402_1005Metric",17.500000,25.600000,90.000000,top
|
||||||
|
"L17","FERRITE","R_0402_1005Metric",7.700000,26.800000,90.000000,top
|
||||||
|
"L18","330nH","L_0402_1005Metric",83.200000,36.000000,180.000000,top
|
||||||
|
"L19","FERRITE","R_0402_1005Metric",79.900000,53.000000,180.000000,top
|
||||||
|
"L20","FERRITE","R_0402_1005Metric",73.300000,57.200000,180.000000,top
|
||||||
|
"L21","FERRITE","R_0402_1005Metric",63.000000,39.000000,180.000000,top
|
||||||
|
"L22","FERRITE","R_0402_1005Metric",65.200000,32.000000,-90.000000,top
|
||||||
|
"L23","FERRITE","R_0402_1005Metric",66.100000,20.400000,180.000000,top
|
||||||
|
"L24","330nH","L_0402_1005Metric",61.600000,18.400000,180.000000,top
|
||||||
|
"L25","FERRITE","R_0402_1005Metric",64.300000,4.500000,90.000000,top
|
||||||
|
"L26","FERRITE","R_0402_1005Metric",84.000000,9.600000,-90.000000,top
|
||||||
|
"L27","FERRITE","R_0402_1005Metric",24.800000,10.500000,-90.000000,top
|
||||||
|
"L28","FERRITE","R_0402_1005Metric",80.000000,29.000000,0.000000,top
|
||||||
|
"L29","FERRITE","R_0402_1005Metric",83.500000,18.500000,0.000000,top
|
||||||
|
"L30","330nH","L_0402_1005Metric",11.800000,34.300000,180.000000,top
|
||||||
|
"L31","330nH","L_0402_1005Metric",14.200000,34.300000,0.000000,top
|
||||||
|
"L32","330nH","L_0402_1005Metric",14.400000,23.800000,180.000000,top
|
||||||
|
"L33","330nH","L_0402_1005Metric",11.600000,23.800000,0.000000,top
|
||||||
|
"L34","68nH","L_0402_1005Metric",14.700000,27.900000,90.000000,top
|
||||||
|
"L35","68nH","L_0402_1005Metric",11.300000,27.900000,90.000000,top
|
||||||
|
"L36","33nH","L_0402_1005Metric",14.700000,30.200000,90.000000,top
|
||||||
|
"L37","33nH","L_0402_1005Metric",11.300000,30.200000,90.000000,top
|
||||||
|
"L38","330nH","L_0402_1005Metric",112.800000,38.200000,180.000000,top
|
||||||
|
"L39","330nH","L_0402_1005Metric",115.400000,38.200000,0.000000,top
|
||||||
|
"L40","330nH","L_0402_1005Metric",108.200000,24.250000,90.000000,top
|
||||||
|
"L41","330nH","L_0402_1005Metric",108.200000,26.700000,-90.000000,top
|
||||||
|
"L42","68nH","L_0402_1005Metric",114.700000,26.800000,90.000000,top
|
||||||
|
"L43","68nH","L_0402_1005Metric",113.500000,26.800000,90.000000,top
|
||||||
|
"L44","33nH","L_0402_1005Metric",114.700000,30.400000,90.000000,top
|
||||||
|
"L45","33nH","L_0402_1005Metric",113.500000,30.400000,90.000000,top
|
||||||
|
"L46","330nH","L_0402_1005Metric",43.200000,19.200000,180.000000,top
|
||||||
|
"L47","330nH","L_0402_1005Metric",40.500000,19.200000,0.000000,top
|
||||||
|
"L48","68nH","L_0402_1005Metric",43.500000,23.300000,90.000000,top
|
||||||
|
"L49","68nH","L_0402_1005Metric",40.000000,23.300000,90.000000,top
|
||||||
|
"L50","33nH","L_0402_1005Metric",43.500000,25.600000,90.000000,top
|
||||||
|
"L51","33nH","L_0402_1005Metric",40.000000,25.600000,90.000000,top
|
||||||
|
"L52","330nH","L_0402_1005Metric",44.790000,25.630000,-90.000000,top
|
||||||
|
"L53","330nH","L_0402_1005Metric",38.700000,25.600000,-90.000000,top
|
||||||
|
"L54","FERRITE","R_0402_1005Metric",113.200000,22.200000,0.000000,top
|
||||||
|
"L55","FERRITE","R_0402_1005Metric",109.400000,29.900000,90.000000,top
|
||||||
|
"L56","FERRITE","R_0402_1005Metric",116.300000,51.000000,90.000000,top
|
||||||
|
"L57","FERRITE","R_0402_1005Metric",117.500000,44.800000,0.000000,top
|
||||||
|
"L58","FERRITE","R_0402_1005Metric",105.200000,61.100000,180.000000,top
|
||||||
|
"L59","FERRITE","R_0402_1005Metric",45.400000,12.200000,0.000000,top
|
||||||
|
"L60","FERRITE","R_0402_1005Metric",38.800000,21.000000,90.000000,top
|
||||||
|
"L61","FERRITE","R_0402_1005Metric",38.000000,29.100000,0.000000,top
|
||||||
|
"L62","FERRITE","R_0402_1005Metric",37.000000,34.100000,0.000000,top
|
||||||
|
"L63","FERRITE","R_0402_1005Metric",37.000000,38.400000,180.000000,top
|
||||||
|
"L64","FERRITE","R_0402_1005Metric",73.400000,53.800000,0.000000,top
|
||||||
|
"L65","FERRITE","R_0402_1005Metric",83.800000,28.000000,90.000000,top
|
||||||
|
"LED1","Red","LED_0603_1608Metric",34.620000,82.720000,90.000000,top
|
||||||
|
"LED2","Green","LED_0603_1608Metric",37.620000,82.820000,90.000000,top
|
||||||
|
"LED3","Red","LED_0603_1608Metric",31.620000,82.820000,90.000000,top
|
||||||
|
"LED4","Red","LED_0603_1608Metric",28.620000,82.820000,90.000000,top
|
||||||
|
"LED5","Red","LED_0603_1608Metric",25.620000,82.820000,90.000000,top
|
||||||
|
"LED6","Green","LED_0603_1608Metric",22.620000,82.820000,90.000000,top
|
||||||
|
"LED7","Green","LED_0603_1608Metric",19.620000,82.820000,90.000000,top
|
||||||
|
"LED8","Green","LED_0603_1608Metric",16.620000,82.820000,90.000000,top
|
||||||
|
"LED9","Green","LED_0603_1608Metric",13.620000,82.820000,90.000000,top
|
||||||
|
"LED10","Green","LED_0603_1608Metric",10.620000,82.820000,90.000000,top
|
||||||
|
"LP1","LP0603A-0947","FILTRDFN160X84X70-4N",47.700000,41.900000,90.000000,top
|
||||||
|
"LP2","LP0603A-3500","FILTRDFN160X84X70-4N",55.600000,42.100000,90.000000,top
|
||||||
|
"LP3","LP0603A-1880","FILTRDFN160X84X70-4N",58.000000,42.100000,90.000000,top
|
||||||
|
"Q1","SSM3J338R","SOT-23",69.878900,86.013600,180.000000,top
|
||||||
|
"Q2","SSM3J338R","SOT-23",73.518900,87.883600,0.000000,top
|
||||||
|
"R1","620R","R_0402_1005Metric",95.700000,77.600000,90.000000,top
|
||||||
|
"R2","4.7k","R_0402_1005Metric",99.500000,70.200000,0.000000,top
|
||||||
|
"R3","10k","R_0402_1005Metric",96.400000,70.200000,0.000000,top
|
||||||
|
"R4","38.3k","R_0402_1005Metric",99.500000,71.500000,0.000000,top
|
||||||
|
"R5","10k","R_0402_1005Metric",96.400000,71.500000,0.000000,top
|
||||||
|
"R6","10k","R_0402_1005Metric",97.400000,45.200000,180.000000,top
|
||||||
|
"R7","100R","R_0402_1005Metric",80.000000,36.700000,90.000000,top
|
||||||
|
"R8","62R","R_0402_1005Metric",78.000000,36.000000,180.000000,top
|
||||||
|
"R9","100R","R_0402_1005Metric",76.000000,36.700000,-90.000000,top
|
||||||
|
"R10","5.1k","R_0402_1005Metric",68.700000,45.500000,90.000000,top
|
||||||
|
"R11","10k","R_0402_1005Metric",58.500000,59.100000,180.000000,top
|
||||||
|
"R12","49.9R","R_0402_1005Metric",63.100000,51.400000,90.000000,top
|
||||||
|
"R13","49.9R","R_0402_1005Metric",64.300000,49.100000,-90.000000,top
|
||||||
|
"R14","49.9R","R_0402_1005Metric",63.100000,46.800000,90.000000,top
|
||||||
|
"R15","1.8k","R_0402_1005Metric",65.508900,54.523600,-90.000000,top
|
||||||
|
"R16","82R","R_0402_1005Metric",69.000000,55.600000,-90.000000,top
|
||||||
|
"R17","330R","R_0402_1005Metric",67.800000,55.600000,90.000000,top
|
||||||
|
"R18","10k","R_0402_1005Metric",53.000000,44.000000,90.000000,top
|
||||||
|
"R19","10k","R_0402_1005Metric",49.400000,44.000000,90.000000,top
|
||||||
|
"R20","10k","R_0402_1005Metric",50.600000,44.000000,-90.000000,top
|
||||||
|
"R21","10k","R_0402_1005Metric",51.800000,44.000000,-90.000000,top
|
||||||
|
"R22","10k","R_0402_1005Metric",51.800000,40.000000,90.000000,top
|
||||||
|
"R23","10k","R_0402_1005Metric",53.000000,40.000000,-90.000000,top
|
||||||
|
"R24","10k","R_0402_1005Metric",50.600000,40.000000,90.000000,top
|
||||||
|
"R25","10k","R_0402_1005Metric",49.400000,40.000000,-90.000000,top
|
||||||
|
"R26","2.7R","R_0402_1005Metric",61.000000,14.400000,-90.000000,top
|
||||||
|
"R27","402R","R_0402_1005Metric",60.300000,12.700000,0.000000,top
|
||||||
|
"R28","56R","R_0402_1005Metric",59.700000,11.000000,90.000000,top
|
||||||
|
"R29","2.7R","R_0402_1005Metric",61.000000,11.000000,-90.000000,top
|
||||||
|
"R30","5.1k","R_0402_1005Metric",87.300000,29.000000,-90.000000,top
|
||||||
|
"R31","10k","R_0402_1005Metric",86.060000,18.810000,90.000000,top
|
||||||
|
"R32","49.9R","R_0402_1005Metric",93.300000,22.700000,0.000000,top
|
||||||
|
"R33","49.9R","R_0402_1005Metric",93.300000,24.350000,0.000000,top
|
||||||
|
"R34","49.9R","R_0402_1005Metric",93.300000,25.925000,0.000000,top
|
||||||
|
"R35","49.9R","R_0402_1005Metric",93.300000,27.275000,0.000000,top
|
||||||
|
"R36","1.8k","R_0402_1005Metric",90.718900,19.793600,90.000000,top
|
||||||
|
"R37","82R","R_0402_1005Metric",87.300000,18.800000,90.000000,top
|
||||||
|
"R38","49.9R","R_0402_1005Metric",94.200000,29.850000,180.000000,top
|
||||||
|
"R39","330R","R_0402_1005Metric",88.500000,18.800000,-90.000000,top
|
||||||
|
"R40","PAT0816-C-3DB-T5","PAT0816",96.500000,5.950000,180.000000,top
|
||||||
|
"R41","0R","R_0402_1005Metric",98.700000,37.400000,-90.000000,top
|
||||||
|
"R42","0R","R_0402_1005Metric",101.100000,37.400000,90.000000,top
|
||||||
|
"R43","0R","R_0402_1005Metric",87.200000,39.600000,180.000000,top
|
||||||
|
"R44","0R","R_0402_1005Metric",83.200000,39.600000,180.000000,top
|
||||||
|
"R45","49.9R","R_0402_1005Metric",17.400000,12.000000,-60.000000,top
|
||||||
|
"R46","49.9R","R_0402_1005Metric",19.500000,12.000000,-120.000000,top
|
||||||
|
"R47","PAT0816-C-3DB-T5","PAT0816",109.650000,10.000000,-90.000000,top
|
||||||
|
"R48","PAT0816-C-3DB-T5","PAT0816",11.650000,10.000000,-90.000000,top
|
||||||
|
"R49","PAT0816-C-3DB-T5","PAT0816",23.250000,5.950000,180.000000,top
|
||||||
|
"R50","49.9R","R_0402_1005Metric",22.100000,14.000000,0.000000,top
|
||||||
|
"R51","0R","R_0402_1005Metric",87.200000,44.000000,180.000000,top
|
||||||
|
"R52","0R","R_0402_1005Metric",83.200000,44.000000,180.000000,top
|
||||||
|
"R53","220R","R_0402_1005Metric",11.700000,40.500000,0.000000,top
|
||||||
|
"R54","220R","R_0402_1005Metric",14.000000,40.500000,180.000000,top
|
||||||
|
"R55","6.8k","R_0402_1005Metric",9.000000,43.900000,90.000000,top
|
||||||
|
"R56","6.8k","R_0402_1005Metric",16.400000,43.900000,-90.000000,top
|
||||||
|
"R57","DNP","R_0402_1005Metric",13.000000,17.000000,0.000000,top
|
||||||
|
"R58","220R","R_0402_1005Metric",10.000000,46.700000,-90.000000,top
|
||||||
|
"R59","220R","R_0402_1005Metric",15.200000,46.700000,-90.000000,top
|
||||||
|
"R60","1k","R_0402_1005Metric",8.200000,17.500000,180.000000,top
|
||||||
|
"R61","220R","R_0402_1005Metric",10.900000,49.100000,-90.000000,top
|
||||||
|
"R62","220R","R_0402_1005Metric",14.400000,49.200000,-90.000000,top
|
||||||
|
"R63","56R","R_0402_1005Metric",13.000000,31.800000,0.000000,top
|
||||||
|
"R64","20R","R_0402_1005Metric",14.700000,32.500000,-90.000000,top
|
||||||
|
"R65","20R","R_0402_1005Metric",11.300000,32.500000,-90.000000,top
|
||||||
|
"R66","56R","R_0402_1005Metric",13.000000,33.100000,180.000000,top
|
||||||
|
"R67","100R","R_0402_1005Metric",55.400000,59.100000,180.000000,top
|
||||||
|
"R68","100R","R_0402_1005Metric",56.000000,55.900000,180.000000,top
|
||||||
|
"R69","10k","R_0402_1005Metric",49.000000,55.900000,180.000000,top
|
||||||
|
"R70","100R","R_0402_1005Metric",52.800000,55.900000,180.000000,top
|
||||||
|
"R72","49.9R","R_0402_1005Metric",105.400000,13.300000,-120.000000,top
|
||||||
|
"R73","49.9R","R_0402_1005Metric",103.400000,13.300000,-60.000000,top
|
||||||
|
"R74","100R","R_0402_1005Metric",4.400000,17.300000,180.000000,top
|
||||||
|
"R75","100R","R_0402_1005Metric",4.400000,21.100000,180.000000,top
|
||||||
|
"R76","49.9R","R_0402_1005Metric",100.900000,15.200000,180.000000,top
|
||||||
|
"R78","100R","R_0402_1005Metric",32.900000,19.000000,90.000000,top
|
||||||
|
"R79","100R","R_0402_1005Metric",35.400000,19.600000,90.000000,top
|
||||||
|
"R80","220R","R_0402_1005Metric",112.800000,44.800000,0.000000,top
|
||||||
|
"R81","220R","R_0402_1005Metric",115.200000,44.800000,180.000000,top
|
||||||
|
"R82","6.8k","R_0402_1005Metric",108.200000,48.200000,90.000000,top
|
||||||
|
"R83","6.8k","R_0402_1005Metric",116.700000,48.200000,-90.000000,top
|
||||||
|
"R84","DNP","R_0402_1005Metric",100.600000,25.500000,-90.000000,top
|
||||||
|
"R85","220R","R_0402_1005Metric",111.000000,52.000000,-90.000000,top
|
||||||
|
"R86","220R","R_0402_1005Metric",115.000000,52.000000,-90.000000,top
|
||||||
|
"R87","1k","R_0402_1005Metric",101.800000,29.900000,90.000000,top
|
||||||
|
"R88","220R","R_0402_1005Metric",111.000000,54.400000,-90.000000,top
|
||||||
|
"R89","220R","R_0402_1005Metric",115.000000,54.400000,-90.000000,top
|
||||||
|
"R90","56R","R_0402_1005Metric",114.100000,33.400000,0.000000,top
|
||||||
|
"R91","20R","R_0402_1005Metric",114.700000,35.200000,-90.000000,top
|
||||||
|
"R92","20R","R_0402_1005Metric",113.500000,35.200000,-90.000000,top
|
||||||
|
"R93","56R","R_0402_1005Metric",114.100000,37.000000,180.000000,top
|
||||||
|
"R94","4.7k","R_0402_1005Metric",29.500000,31.100000,90.000000,top
|
||||||
|
"R95","4.7k","R_0402_1005Metric",36.900000,31.000000,-90.000000,top
|
||||||
|
"R96","220R","R_0402_1005Metric",31.300000,34.900000,-90.000000,top
|
||||||
|
"R97","220R","R_0402_1005Metric",35.100000,35.000000,-90.000000,top
|
||||||
|
"R98","220R","R_0402_1005Metric",31.300000,37.400000,-90.000000,top
|
||||||
|
"R99","220R","R_0402_1005Metric",35.100000,37.400000,-90.000000,top
|
||||||
|
"R100","DNP","R_0402_1005Metric",42.100000,12.300000,0.000000,top
|
||||||
|
"R101","1k","R_0402_1005Metric",37.400000,12.800000,180.000000,top
|
||||||
|
"R102","220R","R_0402_1005Metric",32.600000,24.800000,90.000000,top
|
||||||
|
"R103","220R","R_0402_1005Metric",34.600000,27.700000,180.000000,top
|
||||||
|
"R104","0R","R_0402_1005Metric",56.900000,73.700000,180.000000,top
|
||||||
|
"R105","0R","R_0402_1005Metric",56.900000,71.300000,180.000000,top
|
||||||
|
"R106","0R","R_0402_1005Metric",56.900000,72.500000,180.000000,top
|
||||||
|
"R107","0R","R_0402_1005Metric",56.900000,70.100000,180.000000,top
|
||||||
|
"R108","0R","R_0402_1005Metric",56.900000,68.900000,180.000000,top
|
||||||
|
"R109","0R","R_0402_1005Metric",56.900000,74.900000,180.000000,top
|
||||||
|
"R110","0R","R_0402_1005Metric",56.900000,76.100000,180.000000,top
|
||||||
|
"R111","DNP","R_0402_1005Metric",53.900000,73.700000,180.000000,top
|
||||||
|
"R112","DNP","R_0402_1005Metric",53.900000,71.300000,180.000000,top
|
||||||
|
"R113","DNP","R_0402_1005Metric",53.900000,72.500000,180.000000,top
|
||||||
|
"R114","DNP","R_0402_1005Metric",53.900000,70.100000,180.000000,top
|
||||||
|
"R115","DNP","R_0402_1005Metric",53.900000,68.900000,180.000000,top
|
||||||
|
"R116","10k","R_0402_1005Metric",67.300000,84.300000,90.000000,top
|
||||||
|
"R117","10k","R_0402_1005Metric",66.000000,84.300000,90.000000,top
|
||||||
|
"R118","20R","R_0402_1005Metric",64.000000,84.300000,-90.000000,top
|
||||||
|
"R119","20R","R_0402_1005Metric",62.700000,84.300000,90.000000,top
|
||||||
|
"R120","330R","R_0402_1005Metric",36.100000,82.800000,90.000000,top
|
||||||
|
"R121","10k","R_0402_1005Metric",49.098900,69.253600,0.000000,top
|
||||||
|
"R122","10k","R_0402_1005Metric",49.100000,68.000000,180.000000,top
|
||||||
|
"R123","20R","R_0402_1005Metric",115.100000,60.600000,-90.000000,top
|
||||||
|
"R124","20R","R_0402_1005Metric",49.200000,60.200000,180.000000,top
|
||||||
|
"R125","10k","R_0402_1005Metric",70.900000,89.500000,-90.000000,top
|
||||||
|
"R126","20R","R_0402_1005Metric",93.000000,38.500000,-90.000000,top
|
||||||
|
"R127","10k","R_0402_1005Metric",48.500000,57.600000,0.000000,top
|
||||||
|
"R128","10k","R_0402_1005Metric",48.500000,58.900000,0.000000,top
|
||||||
|
"R129","10k","R_0402_1005Metric",46.000000,78.000000,90.000000,top
|
||||||
|
"R130","10k","R_0402_1005Metric",20.000000,61.300000,90.000000,top
|
||||||
|
"R131","10k","R_0402_1005Metric",22.300000,61.300000,-90.000000,top
|
||||||
|
"R132","10k","R_0402_1005Metric",26.300000,53.200000,0.000000,top
|
||||||
|
"R133","10k","R_0402_1005Metric",26.300000,54.400000,180.000000,top
|
||||||
|
"R134","330R","R_0402_1005Metric",39.100000,82.800000,-90.000000,top
|
||||||
|
"R135","330R","R_0402_1005Metric",33.100000,82.800000,-90.000000,top
|
||||||
|
"R136","330R","R_0402_1005Metric",30.100000,82.800000,-90.000000,top
|
||||||
|
"R137","330R","R_0402_1005Metric",27.100000,82.800000,-90.000000,top
|
||||||
|
"R138","330R","R_0402_1005Metric",24.100000,82.800000,-90.000000,top
|
||||||
|
"R139","330R","R_0402_1005Metric",21.100000,82.800000,-90.000000,top
|
||||||
|
"R140","330R","R_0402_1005Metric",18.100000,82.800000,-90.000000,top
|
||||||
|
"R141","330R","R_0402_1005Metric",15.100000,82.800000,-90.000000,top
|
||||||
|
"R142","330R","R_0402_1005Metric",12.100000,82.800000,-90.000000,top
|
||||||
|
"R143","10k","R_0402_1005Metric",28.400000,41.200000,90.000000,top
|
||||||
|
"R144","10k","R_0402_1005Metric",29.500000,35.000000,-90.000000,top
|
||||||
|
"R145","10k","R_0402_1005Metric",16.600000,53.000000,90.000000,top
|
||||||
|
"R146","10k","R_0402_1005Metric",19.200000,49.700000,-90.000000,top
|
||||||
|
"R147","10k","R_0402_1005Metric",109.300000,52.100000,-90.000000,top
|
||||||
|
"R148","10k","R_0402_1005Metric",105.100000,53.100000,90.000000,top
|
||||||
|
"R149","10k","R_0402_1005Metric",85.400000,10.800000,90.000000,top
|
||||||
|
"R150","10k","R_0402_1005Metric",49.300000,21.000000,90.000000,top
|
||||||
|
"R151","10k","R_0402_1005Metric",50.500000,21.000000,90.000000,top
|
||||||
|
"R152","10k","R_0402_1005Metric",18.900000,31.300000,90.000000,top
|
||||||
|
"R153","10k","R_0402_1005Metric",54.000000,21.100000,90.000000,top
|
||||||
|
"R154","10k","R_0402_1005Metric",67.300000,38.500000,90.000000,top
|
||||||
|
"R155","10k","R_0402_1005Metric",72.400000,38.500000,90.000000,top
|
||||||
|
"R156","10k","R_0402_1005Metric",48.500000,29.200000,180.000000,top
|
||||||
|
"R157","10k","R_0402_1005Metric",50.900000,28.400000,180.000000,top
|
||||||
|
"R158","10k","R_0402_1005Metric",48.500000,27.600000,180.000000,top
|
||||||
|
"R159","10k","R_0402_1005Metric",50.900000,26.800000,180.000000,top
|
||||||
|
"R160","10k","R_0402_1005Metric",48.500000,24.400000,0.000000,top
|
||||||
|
"R161","10k","R_0402_1005Metric",50.900000,25.200000,0.000000,top
|
||||||
|
"R162","10k","R_0402_1005Metric",48.500000,26.000000,0.000000,top
|
||||||
|
"R163","10k","R_0402_1005Metric",57.300000,57.600000,180.000000,top
|
||||||
|
"R164","100R","R_0402_1005Metric",51.600000,59.100000,180.000000,top
|
||||||
|
"R165","10k","R_0402_1005Metric",55.800000,60.300000,180.000000,top
|
||||||
|
"R168","75R","R_0402_1005Metric",5.100000,19.200000,-90.000000,top
|
||||||
|
"R173","75R","R_0402_1005Metric",34.700000,17.800000,180.000000,top
|
||||||
|
"T1","B012-617DB-1-63-B331","EASTEVER_BALUN",18.500000,15.700000,-90.000000,top
|
||||||
|
"T2","B012-617DB-1-63-B331","EASTEVER_BALUN",104.400000,17.000000,-90.000000,top
|
||||||
|
"T3","B012-617DB-1-63-B331","EASTEVER_BALUN",50.000000,15.400000,0.000000,top
|
||||||
|
"U1","W25Q16BVSN","SOIC-8_3.9x4.9mm_P1.27mm",55.335000,65.265000,180.000000,top
|
||||||
|
"U2","XC6SLX9-TQG144","TQFP-144_20x20mm_P0.5mm",35.000000,67.000000,90.000000,top
|
||||||
|
"X1","SMA","J502-ND-142-0711-821_826",111.000000,95.900000,-90.000000,top
|
||||||
|
"X2","SMA","J502-ND-142-0711-821_826",95.000000,95.900000,-90.000000,top
|
||||||
|
"Y1","26MHz","Oscillator_SMD_ECS_20CSMV4_2.0x1.6mm",102.050000,41.025000,180.000000,top
|
||||||
|
15626
Hardware/Kicad/ReferenceSignal.kicad_sch
Normal file
15626
Hardware/Kicad/ReferenceSignal.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
2038
Hardware/Kicad/VNA.3dmodels/LP0603N3500ANTR.stp
Normal file
2038
Hardware/Kicad/VNA.3dmodels/LP0603N3500ANTR.stp
Normal file
File diff suppressed because it is too large
Load diff
1737
Hardware/Kicad/VNA.3dmodels/PAT0816-C-3DB-T5.STEP
Normal file
1737
Hardware/Kicad/VNA.3dmodels/PAT0816-C-3DB-T5.STEP
Normal file
File diff suppressed because it is too large
Load diff
847
Hardware/Kicad/VNA.3dmodels/PJ-014D.stp
Normal file
847
Hardware/Kicad/VNA.3dmodels/PJ-014D.stp
Normal file
|
|
@ -0,0 +1,847 @@
|
||||||
|
ISO-10303-21;
|
||||||
|
HEADER;
|
||||||
|
FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
|
||||||
|
FILE_NAME('/var/www/3D/0T/18326477.1.9.stp','2023-06-13T06:05:44',(
|
||||||
|
'Author'),(''),'Open CASCADE STEP processor 6.9','FreeCAD','Unknown'
|
||||||
|
);
|
||||||
|
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
|
||||||
|
ENDSEC;
|
||||||
|
DATA;
|
||||||
|
#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',
|
||||||
|
'automotive_design',2000,#2);
|
||||||
|
#2 = APPLICATION_CONTEXT(
|
||||||
|
'core data for automotive mechanical design processes');
|
||||||
|
#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
|
||||||
|
#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
|
||||||
|
#5 = PRODUCT_DEFINITION('design','',#6,#9);
|
||||||
|
#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
|
||||||
|
#7 = PRODUCT('ASSEMBLY','ASSEMBLY','',(#8));
|
||||||
|
#8 = PRODUCT_CONTEXT('',#2,'mechanical');
|
||||||
|
#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
|
||||||
|
#10 = SHAPE_REPRESENTATION('',(#11,#15,#19),#23);
|
||||||
|
#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
|
||||||
|
#12 = CARTESIAN_POINT('',(0.,0.,0.));
|
||||||
|
#13 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#14 = DIRECTION('',(1.,0.,-0.));
|
||||||
|
#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
|
||||||
|
#16 = CARTESIAN_POINT('',(0.,0.,0.1));
|
||||||
|
#17 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#18 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#19 = AXIS2_PLACEMENT_3D('',#20,#21,#22);
|
||||||
|
#20 = CARTESIAN_POINT('',(0.,0.,0.));
|
||||||
|
#21 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#22 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#23 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||||
|
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#27)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
|
||||||
|
(#24,#25,#26)) REPRESENTATION_CONTEXT('Context #1',
|
||||||
|
'3D Context with UNIT and UNCERTAINTY') );
|
||||||
|
#24 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
|
||||||
|
#25 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
|
||||||
|
#26 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
|
||||||
|
#27 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#24,
|
||||||
|
'distance_accuracy_value','confusion accuracy');
|
||||||
|
#28 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));
|
||||||
|
#29 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#30),#360);
|
||||||
|
#30 = MANIFOLD_SOLID_BREP('',#31);
|
||||||
|
#31 = CLOSED_SHELL('',(#32,#152,#228,#299,#346,#353));
|
||||||
|
#32 = ADVANCED_FACE('',(#33),#47,.F.);
|
||||||
|
#33 = FACE_BOUND('',#34,.F.);
|
||||||
|
#34 = EDGE_LOOP('',(#35,#70,#98,#126));
|
||||||
|
#35 = ORIENTED_EDGE('',*,*,#36,.T.);
|
||||||
|
#36 = EDGE_CURVE('',#37,#39,#41,.T.);
|
||||||
|
#37 = VERTEX_POINT('',#38);
|
||||||
|
#38 = CARTESIAN_POINT('',(-8.,-0.4,0.));
|
||||||
|
#39 = VERTEX_POINT('',#40);
|
||||||
|
#40 = CARTESIAN_POINT('',(-8.,-0.4,5.75));
|
||||||
|
#41 = SURFACE_CURVE('',#42,(#46,#58),.PCURVE_S1.);
|
||||||
|
#42 = LINE('',#43,#44);
|
||||||
|
#43 = CARTESIAN_POINT('',(-8.,-0.4,0.));
|
||||||
|
#44 = VECTOR('',#45,1.);
|
||||||
|
#45 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#46 = PCURVE('',#47,#52);
|
||||||
|
#47 = PLANE('',#48);
|
||||||
|
#48 = AXIS2_PLACEMENT_3D('',#49,#50,#51);
|
||||||
|
#49 = CARTESIAN_POINT('',(-8.,-0.4,0.));
|
||||||
|
#50 = DIRECTION('',(0.,1.,0.));
|
||||||
|
#51 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#52 = DEFINITIONAL_REPRESENTATION('',(#53),#57);
|
||||||
|
#53 = LINE('',#54,#55);
|
||||||
|
#54 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#55 = VECTOR('',#56,1.);
|
||||||
|
#56 = DIRECTION('',(0.,-1.));
|
||||||
|
#57 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#58 = PCURVE('',#59,#64);
|
||||||
|
#59 = PLANE('',#60);
|
||||||
|
#60 = AXIS2_PLACEMENT_3D('',#61,#62,#63);
|
||||||
|
#61 = CARTESIAN_POINT('',(-8.,8.1,0.));
|
||||||
|
#62 = DIRECTION('',(1.,0.,-0.));
|
||||||
|
#63 = DIRECTION('',(0.,-1.,0.));
|
||||||
|
#64 = DEFINITIONAL_REPRESENTATION('',(#65),#69);
|
||||||
|
#65 = LINE('',#66,#67);
|
||||||
|
#66 = CARTESIAN_POINT('',(8.5,0.));
|
||||||
|
#67 = VECTOR('',#68,1.);
|
||||||
|
#68 = DIRECTION('',(0.,-1.));
|
||||||
|
#69 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#70 = ORIENTED_EDGE('',*,*,#71,.T.);
|
||||||
|
#71 = EDGE_CURVE('',#39,#72,#74,.T.);
|
||||||
|
#72 = VERTEX_POINT('',#73);
|
||||||
|
#73 = CARTESIAN_POINT('',(1.,-0.4,5.75));
|
||||||
|
#74 = SURFACE_CURVE('',#75,(#79,#86),.PCURVE_S1.);
|
||||||
|
#75 = LINE('',#76,#77);
|
||||||
|
#76 = CARTESIAN_POINT('',(-8.,-0.4,5.75));
|
||||||
|
#77 = VECTOR('',#78,1.);
|
||||||
|
#78 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#79 = PCURVE('',#47,#80);
|
||||||
|
#80 = DEFINITIONAL_REPRESENTATION('',(#81),#85);
|
||||||
|
#81 = LINE('',#82,#83);
|
||||||
|
#82 = CARTESIAN_POINT('',(0.,-5.75));
|
||||||
|
#83 = VECTOR('',#84,1.);
|
||||||
|
#84 = DIRECTION('',(1.,0.));
|
||||||
|
#85 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#86 = PCURVE('',#87,#92);
|
||||||
|
#87 = PLANE('',#88);
|
||||||
|
#88 = AXIS2_PLACEMENT_3D('',#89,#90,#91);
|
||||||
|
#89 = CARTESIAN_POINT('',(-3.5,3.85,5.75));
|
||||||
|
#90 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#91 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#92 = DEFINITIONAL_REPRESENTATION('',(#93),#97);
|
||||||
|
#93 = LINE('',#94,#95);
|
||||||
|
#94 = CARTESIAN_POINT('',(-4.5,-4.25));
|
||||||
|
#95 = VECTOR('',#96,1.);
|
||||||
|
#96 = DIRECTION('',(1.,0.));
|
||||||
|
#97 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#98 = ORIENTED_EDGE('',*,*,#99,.F.);
|
||||||
|
#99 = EDGE_CURVE('',#100,#72,#102,.T.);
|
||||||
|
#100 = VERTEX_POINT('',#101);
|
||||||
|
#101 = CARTESIAN_POINT('',(1.,-0.4,0.));
|
||||||
|
#102 = SURFACE_CURVE('',#103,(#107,#114),.PCURVE_S1.);
|
||||||
|
#103 = LINE('',#104,#105);
|
||||||
|
#104 = CARTESIAN_POINT('',(1.,-0.4,0.));
|
||||||
|
#105 = VECTOR('',#106,1.);
|
||||||
|
#106 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#107 = PCURVE('',#47,#108);
|
||||||
|
#108 = DEFINITIONAL_REPRESENTATION('',(#109),#113);
|
||||||
|
#109 = LINE('',#110,#111);
|
||||||
|
#110 = CARTESIAN_POINT('',(9.,0.));
|
||||||
|
#111 = VECTOR('',#112,1.);
|
||||||
|
#112 = DIRECTION('',(0.,-1.));
|
||||||
|
#113 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#114 = PCURVE('',#115,#120);
|
||||||
|
#115 = PLANE('',#116);
|
||||||
|
#116 = AXIS2_PLACEMENT_3D('',#117,#118,#119);
|
||||||
|
#117 = CARTESIAN_POINT('',(1.,-0.4,0.));
|
||||||
|
#118 = DIRECTION('',(-1.,0.,0.));
|
||||||
|
#119 = DIRECTION('',(0.,1.,0.));
|
||||||
|
#120 = DEFINITIONAL_REPRESENTATION('',(#121),#125);
|
||||||
|
#121 = LINE('',#122,#123);
|
||||||
|
#122 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#123 = VECTOR('',#124,1.);
|
||||||
|
#124 = DIRECTION('',(0.,-1.));
|
||||||
|
#125 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#126 = ORIENTED_EDGE('',*,*,#127,.F.);
|
||||||
|
#127 = EDGE_CURVE('',#37,#100,#128,.T.);
|
||||||
|
#128 = SURFACE_CURVE('',#129,(#133,#140),.PCURVE_S1.);
|
||||||
|
#129 = LINE('',#130,#131);
|
||||||
|
#130 = CARTESIAN_POINT('',(-8.,-0.4,0.));
|
||||||
|
#131 = VECTOR('',#132,1.);
|
||||||
|
#132 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#133 = PCURVE('',#47,#134);
|
||||||
|
#134 = DEFINITIONAL_REPRESENTATION('',(#135),#139);
|
||||||
|
#135 = LINE('',#136,#137);
|
||||||
|
#136 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#137 = VECTOR('',#138,1.);
|
||||||
|
#138 = DIRECTION('',(1.,0.));
|
||||||
|
#139 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#140 = PCURVE('',#141,#146);
|
||||||
|
#141 = PLANE('',#142);
|
||||||
|
#142 = AXIS2_PLACEMENT_3D('',#143,#144,#145);
|
||||||
|
#143 = CARTESIAN_POINT('',(-3.5,3.85,0.));
|
||||||
|
#144 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#145 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#146 = DEFINITIONAL_REPRESENTATION('',(#147),#151);
|
||||||
|
#147 = LINE('',#148,#149);
|
||||||
|
#148 = CARTESIAN_POINT('',(-4.5,-4.25));
|
||||||
|
#149 = VECTOR('',#150,1.);
|
||||||
|
#150 = DIRECTION('',(1.,0.));
|
||||||
|
#151 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#152 = ADVANCED_FACE('',(#153),#115,.F.);
|
||||||
|
#153 = FACE_BOUND('',#154,.F.);
|
||||||
|
#154 = EDGE_LOOP('',(#155,#156,#179,#207));
|
||||||
|
#155 = ORIENTED_EDGE('',*,*,#99,.T.);
|
||||||
|
#156 = ORIENTED_EDGE('',*,*,#157,.T.);
|
||||||
|
#157 = EDGE_CURVE('',#72,#158,#160,.T.);
|
||||||
|
#158 = VERTEX_POINT('',#159);
|
||||||
|
#159 = CARTESIAN_POINT('',(1.,8.1,5.75));
|
||||||
|
#160 = SURFACE_CURVE('',#161,(#165,#172),.PCURVE_S1.);
|
||||||
|
#161 = LINE('',#162,#163);
|
||||||
|
#162 = CARTESIAN_POINT('',(1.,-0.4,5.75));
|
||||||
|
#163 = VECTOR('',#164,1.);
|
||||||
|
#164 = DIRECTION('',(0.,1.,0.));
|
||||||
|
#165 = PCURVE('',#115,#166);
|
||||||
|
#166 = DEFINITIONAL_REPRESENTATION('',(#167),#171);
|
||||||
|
#167 = LINE('',#168,#169);
|
||||||
|
#168 = CARTESIAN_POINT('',(0.,-5.75));
|
||||||
|
#169 = VECTOR('',#170,1.);
|
||||||
|
#170 = DIRECTION('',(1.,0.));
|
||||||
|
#171 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#172 = PCURVE('',#87,#173);
|
||||||
|
#173 = DEFINITIONAL_REPRESENTATION('',(#174),#178);
|
||||||
|
#174 = LINE('',#175,#176);
|
||||||
|
#175 = CARTESIAN_POINT('',(4.5,-4.25));
|
||||||
|
#176 = VECTOR('',#177,1.);
|
||||||
|
#177 = DIRECTION('',(0.,1.));
|
||||||
|
#178 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#179 = ORIENTED_EDGE('',*,*,#180,.F.);
|
||||||
|
#180 = EDGE_CURVE('',#181,#158,#183,.T.);
|
||||||
|
#181 = VERTEX_POINT('',#182);
|
||||||
|
#182 = CARTESIAN_POINT('',(1.,8.1,0.));
|
||||||
|
#183 = SURFACE_CURVE('',#184,(#188,#195),.PCURVE_S1.);
|
||||||
|
#184 = LINE('',#185,#186);
|
||||||
|
#185 = CARTESIAN_POINT('',(1.,8.1,0.));
|
||||||
|
#186 = VECTOR('',#187,1.);
|
||||||
|
#187 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#188 = PCURVE('',#115,#189);
|
||||||
|
#189 = DEFINITIONAL_REPRESENTATION('',(#190),#194);
|
||||||
|
#190 = LINE('',#191,#192);
|
||||||
|
#191 = CARTESIAN_POINT('',(8.5,0.));
|
||||||
|
#192 = VECTOR('',#193,1.);
|
||||||
|
#193 = DIRECTION('',(0.,-1.));
|
||||||
|
#194 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#195 = PCURVE('',#196,#201);
|
||||||
|
#196 = PLANE('',#197);
|
||||||
|
#197 = AXIS2_PLACEMENT_3D('',#198,#199,#200);
|
||||||
|
#198 = CARTESIAN_POINT('',(1.,8.1,0.));
|
||||||
|
#199 = DIRECTION('',(0.,-1.,0.));
|
||||||
|
#200 = DIRECTION('',(-1.,0.,0.));
|
||||||
|
#201 = DEFINITIONAL_REPRESENTATION('',(#202),#206);
|
||||||
|
#202 = LINE('',#203,#204);
|
||||||
|
#203 = CARTESIAN_POINT('',(0.,-0.));
|
||||||
|
#204 = VECTOR('',#205,1.);
|
||||||
|
#205 = DIRECTION('',(0.,-1.));
|
||||||
|
#206 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#207 = ORIENTED_EDGE('',*,*,#208,.F.);
|
||||||
|
#208 = EDGE_CURVE('',#100,#181,#209,.T.);
|
||||||
|
#209 = SURFACE_CURVE('',#210,(#214,#221),.PCURVE_S1.);
|
||||||
|
#210 = LINE('',#211,#212);
|
||||||
|
#211 = CARTESIAN_POINT('',(1.,-0.4,0.));
|
||||||
|
#212 = VECTOR('',#213,1.);
|
||||||
|
#213 = DIRECTION('',(0.,1.,0.));
|
||||||
|
#214 = PCURVE('',#115,#215);
|
||||||
|
#215 = DEFINITIONAL_REPRESENTATION('',(#216),#220);
|
||||||
|
#216 = LINE('',#217,#218);
|
||||||
|
#217 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#218 = VECTOR('',#219,1.);
|
||||||
|
#219 = DIRECTION('',(1.,0.));
|
||||||
|
#220 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#221 = PCURVE('',#141,#222);
|
||||||
|
#222 = DEFINITIONAL_REPRESENTATION('',(#223),#227);
|
||||||
|
#223 = LINE('',#224,#225);
|
||||||
|
#224 = CARTESIAN_POINT('',(4.5,-4.25));
|
||||||
|
#225 = VECTOR('',#226,1.);
|
||||||
|
#226 = DIRECTION('',(0.,1.));
|
||||||
|
#227 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#228 = ADVANCED_FACE('',(#229),#196,.F.);
|
||||||
|
#229 = FACE_BOUND('',#230,.F.);
|
||||||
|
#230 = EDGE_LOOP('',(#231,#232,#255,#278));
|
||||||
|
#231 = ORIENTED_EDGE('',*,*,#180,.T.);
|
||||||
|
#232 = ORIENTED_EDGE('',*,*,#233,.T.);
|
||||||
|
#233 = EDGE_CURVE('',#158,#234,#236,.T.);
|
||||||
|
#234 = VERTEX_POINT('',#235);
|
||||||
|
#235 = CARTESIAN_POINT('',(-8.,8.1,5.75));
|
||||||
|
#236 = SURFACE_CURVE('',#237,(#241,#248),.PCURVE_S1.);
|
||||||
|
#237 = LINE('',#238,#239);
|
||||||
|
#238 = CARTESIAN_POINT('',(1.,8.1,5.75));
|
||||||
|
#239 = VECTOR('',#240,1.);
|
||||||
|
#240 = DIRECTION('',(-1.,0.,0.));
|
||||||
|
#241 = PCURVE('',#196,#242);
|
||||||
|
#242 = DEFINITIONAL_REPRESENTATION('',(#243),#247);
|
||||||
|
#243 = LINE('',#244,#245);
|
||||||
|
#244 = CARTESIAN_POINT('',(0.,-5.75));
|
||||||
|
#245 = VECTOR('',#246,1.);
|
||||||
|
#246 = DIRECTION('',(1.,0.));
|
||||||
|
#247 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#248 = PCURVE('',#87,#249);
|
||||||
|
#249 = DEFINITIONAL_REPRESENTATION('',(#250),#254);
|
||||||
|
#250 = LINE('',#251,#252);
|
||||||
|
#251 = CARTESIAN_POINT('',(4.5,4.25));
|
||||||
|
#252 = VECTOR('',#253,1.);
|
||||||
|
#253 = DIRECTION('',(-1.,0.));
|
||||||
|
#254 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#255 = ORIENTED_EDGE('',*,*,#256,.F.);
|
||||||
|
#256 = EDGE_CURVE('',#257,#234,#259,.T.);
|
||||||
|
#257 = VERTEX_POINT('',#258);
|
||||||
|
#258 = CARTESIAN_POINT('',(-8.,8.1,0.));
|
||||||
|
#259 = SURFACE_CURVE('',#260,(#264,#271),.PCURVE_S1.);
|
||||||
|
#260 = LINE('',#261,#262);
|
||||||
|
#261 = CARTESIAN_POINT('',(-8.,8.1,0.));
|
||||||
|
#262 = VECTOR('',#263,1.);
|
||||||
|
#263 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#264 = PCURVE('',#196,#265);
|
||||||
|
#265 = DEFINITIONAL_REPRESENTATION('',(#266),#270);
|
||||||
|
#266 = LINE('',#267,#268);
|
||||||
|
#267 = CARTESIAN_POINT('',(9.,0.));
|
||||||
|
#268 = VECTOR('',#269,1.);
|
||||||
|
#269 = DIRECTION('',(0.,-1.));
|
||||||
|
#270 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#271 = PCURVE('',#59,#272);
|
||||||
|
#272 = DEFINITIONAL_REPRESENTATION('',(#273),#277);
|
||||||
|
#273 = LINE('',#274,#275);
|
||||||
|
#274 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#275 = VECTOR('',#276,1.);
|
||||||
|
#276 = DIRECTION('',(0.,-1.));
|
||||||
|
#277 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#278 = ORIENTED_EDGE('',*,*,#279,.F.);
|
||||||
|
#279 = EDGE_CURVE('',#181,#257,#280,.T.);
|
||||||
|
#280 = SURFACE_CURVE('',#281,(#285,#292),.PCURVE_S1.);
|
||||||
|
#281 = LINE('',#282,#283);
|
||||||
|
#282 = CARTESIAN_POINT('',(1.,8.1,0.));
|
||||||
|
#283 = VECTOR('',#284,1.);
|
||||||
|
#284 = DIRECTION('',(-1.,0.,0.));
|
||||||
|
#285 = PCURVE('',#196,#286);
|
||||||
|
#286 = DEFINITIONAL_REPRESENTATION('',(#287),#291);
|
||||||
|
#287 = LINE('',#288,#289);
|
||||||
|
#288 = CARTESIAN_POINT('',(0.,-0.));
|
||||||
|
#289 = VECTOR('',#290,1.);
|
||||||
|
#290 = DIRECTION('',(1.,0.));
|
||||||
|
#291 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#292 = PCURVE('',#141,#293);
|
||||||
|
#293 = DEFINITIONAL_REPRESENTATION('',(#294),#298);
|
||||||
|
#294 = LINE('',#295,#296);
|
||||||
|
#295 = CARTESIAN_POINT('',(4.5,4.25));
|
||||||
|
#296 = VECTOR('',#297,1.);
|
||||||
|
#297 = DIRECTION('',(-1.,0.));
|
||||||
|
#298 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#299 = ADVANCED_FACE('',(#300),#59,.F.);
|
||||||
|
#300 = FACE_BOUND('',#301,.F.);
|
||||||
|
#301 = EDGE_LOOP('',(#302,#303,#324,#325));
|
||||||
|
#302 = ORIENTED_EDGE('',*,*,#256,.T.);
|
||||||
|
#303 = ORIENTED_EDGE('',*,*,#304,.T.);
|
||||||
|
#304 = EDGE_CURVE('',#234,#39,#305,.T.);
|
||||||
|
#305 = SURFACE_CURVE('',#306,(#310,#317),.PCURVE_S1.);
|
||||||
|
#306 = LINE('',#307,#308);
|
||||||
|
#307 = CARTESIAN_POINT('',(-8.,8.1,5.75));
|
||||||
|
#308 = VECTOR('',#309,1.);
|
||||||
|
#309 = DIRECTION('',(0.,-1.,0.));
|
||||||
|
#310 = PCURVE('',#59,#311);
|
||||||
|
#311 = DEFINITIONAL_REPRESENTATION('',(#312),#316);
|
||||||
|
#312 = LINE('',#313,#314);
|
||||||
|
#313 = CARTESIAN_POINT('',(0.,-5.75));
|
||||||
|
#314 = VECTOR('',#315,1.);
|
||||||
|
#315 = DIRECTION('',(1.,0.));
|
||||||
|
#316 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#317 = PCURVE('',#87,#318);
|
||||||
|
#318 = DEFINITIONAL_REPRESENTATION('',(#319),#323);
|
||||||
|
#319 = LINE('',#320,#321);
|
||||||
|
#320 = CARTESIAN_POINT('',(-4.5,4.25));
|
||||||
|
#321 = VECTOR('',#322,1.);
|
||||||
|
#322 = DIRECTION('',(0.,-1.));
|
||||||
|
#323 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#324 = ORIENTED_EDGE('',*,*,#36,.F.);
|
||||||
|
#325 = ORIENTED_EDGE('',*,*,#326,.F.);
|
||||||
|
#326 = EDGE_CURVE('',#257,#37,#327,.T.);
|
||||||
|
#327 = SURFACE_CURVE('',#328,(#332,#339),.PCURVE_S1.);
|
||||||
|
#328 = LINE('',#329,#330);
|
||||||
|
#329 = CARTESIAN_POINT('',(-8.,8.1,0.));
|
||||||
|
#330 = VECTOR('',#331,1.);
|
||||||
|
#331 = DIRECTION('',(0.,-1.,0.));
|
||||||
|
#332 = PCURVE('',#59,#333);
|
||||||
|
#333 = DEFINITIONAL_REPRESENTATION('',(#334),#338);
|
||||||
|
#334 = LINE('',#335,#336);
|
||||||
|
#335 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#336 = VECTOR('',#337,1.);
|
||||||
|
#337 = DIRECTION('',(1.,0.));
|
||||||
|
#338 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#339 = PCURVE('',#141,#340);
|
||||||
|
#340 = DEFINITIONAL_REPRESENTATION('',(#341),#345);
|
||||||
|
#341 = LINE('',#342,#343);
|
||||||
|
#342 = CARTESIAN_POINT('',(-4.5,4.25));
|
||||||
|
#343 = VECTOR('',#344,1.);
|
||||||
|
#344 = DIRECTION('',(0.,-1.));
|
||||||
|
#345 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#346 = ADVANCED_FACE('',(#347),#141,.F.);
|
||||||
|
#347 = FACE_BOUND('',#348,.F.);
|
||||||
|
#348 = EDGE_LOOP('',(#349,#350,#351,#352));
|
||||||
|
#349 = ORIENTED_EDGE('',*,*,#127,.T.);
|
||||||
|
#350 = ORIENTED_EDGE('',*,*,#208,.T.);
|
||||||
|
#351 = ORIENTED_EDGE('',*,*,#279,.T.);
|
||||||
|
#352 = ORIENTED_EDGE('',*,*,#326,.T.);
|
||||||
|
#353 = ADVANCED_FACE('',(#354),#87,.T.);
|
||||||
|
#354 = FACE_BOUND('',#355,.T.);
|
||||||
|
#355 = EDGE_LOOP('',(#356,#357,#358,#359));
|
||||||
|
#356 = ORIENTED_EDGE('',*,*,#71,.T.);
|
||||||
|
#357 = ORIENTED_EDGE('',*,*,#157,.T.);
|
||||||
|
#358 = ORIENTED_EDGE('',*,*,#233,.T.);
|
||||||
|
#359 = ORIENTED_EDGE('',*,*,#304,.T.);
|
||||||
|
#360 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||||
|
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#364)) GLOBAL_UNIT_ASSIGNED_CONTEXT
|
||||||
|
((#361,#362,#363)) REPRESENTATION_CONTEXT('Context #1',
|
||||||
|
'3D Context with UNIT and UNCERTAINTY') );
|
||||||
|
#361 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
|
||||||
|
#362 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
|
||||||
|
#363 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
|
||||||
|
#364 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#361,
|
||||||
|
'distance_accuracy_value','confusion accuracy');
|
||||||
|
#365 = SHAPE_DEFINITION_REPRESENTATION(#366,#29);
|
||||||
|
#366 = PRODUCT_DEFINITION_SHAPE('','',#367);
|
||||||
|
#367 = PRODUCT_DEFINITION('design','',#368,#371);
|
||||||
|
#368 = PRODUCT_DEFINITION_FORMATION('','',#369);
|
||||||
|
#369 = PRODUCT('Body','Body','',(#370));
|
||||||
|
#370 = PRODUCT_CONTEXT('',#2,'mechanical');
|
||||||
|
#371 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
|
||||||
|
#372 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#373,#375);
|
||||||
|
#373 = ( REPRESENTATION_RELATIONSHIP('','',#29,#10)
|
||||||
|
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#374)
|
||||||
|
SHAPE_REPRESENTATION_RELATIONSHIP() );
|
||||||
|
#374 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
|
||||||
|
#375 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#376
|
||||||
|
);
|
||||||
|
#376 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','=>[0:1:1:2]','',#5,#367,$);
|
||||||
|
#377 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#369));
|
||||||
|
#378 = SHAPE_REPRESENTATION('',(#11,#379,#477,#575),#673);
|
||||||
|
#379 = MANIFOLD_SOLID_BREP('',#380);
|
||||||
|
#380 = CLOSED_SHELL('',(#381,#469,#473));
|
||||||
|
#381 = ADVANCED_FACE('',(#382),#395,.T.);
|
||||||
|
#382 = FACE_BOUND('',#383,.T.);
|
||||||
|
#383 = EDGE_LOOP('',(#384,#418,#441,#468));
|
||||||
|
#384 = ORIENTED_EDGE('',*,*,#385,.F.);
|
||||||
|
#385 = EDGE_CURVE('',#386,#386,#388,.T.);
|
||||||
|
#386 = VERTEX_POINT('',#387);
|
||||||
|
#387 = CARTESIAN_POINT('',(0.975,-2.388061258337E-16,1.E-01));
|
||||||
|
#388 = SURFACE_CURVE('',#389,(#394,#406),.PCURVE_S1.);
|
||||||
|
#389 = CIRCLE('',#390,0.975);
|
||||||
|
#390 = AXIS2_PLACEMENT_3D('',#391,#392,#393);
|
||||||
|
#391 = CARTESIAN_POINT('',(0.,0.,1.E-01));
|
||||||
|
#392 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#393 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#394 = PCURVE('',#395,#400);
|
||||||
|
#395 = CYLINDRICAL_SURFACE('',#396,0.975);
|
||||||
|
#396 = AXIS2_PLACEMENT_3D('',#397,#398,#399);
|
||||||
|
#397 = CARTESIAN_POINT('',(0.,0.,-5.));
|
||||||
|
#398 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#399 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#400 = DEFINITIONAL_REPRESENTATION('',(#401),#405);
|
||||||
|
#401 = LINE('',#402,#403);
|
||||||
|
#402 = CARTESIAN_POINT('',(0.,5.1));
|
||||||
|
#403 = VECTOR('',#404,1.);
|
||||||
|
#404 = DIRECTION('',(1.,0.));
|
||||||
|
#405 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#406 = PCURVE('',#407,#412);
|
||||||
|
#407 = PLANE('',#408);
|
||||||
|
#408 = AXIS2_PLACEMENT_3D('',#409,#410,#411);
|
||||||
|
#409 = CARTESIAN_POINT('',(0.,0.,1.E-01));
|
||||||
|
#410 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#411 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#412 = DEFINITIONAL_REPRESENTATION('',(#413),#417);
|
||||||
|
#413 = CIRCLE('',#414,0.975);
|
||||||
|
#414 = AXIS2_PLACEMENT_2D('',#415,#416);
|
||||||
|
#415 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#416 = DIRECTION('',(1.,0.));
|
||||||
|
#417 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#418 = ORIENTED_EDGE('',*,*,#419,.F.);
|
||||||
|
#419 = EDGE_CURVE('',#420,#386,#422,.T.);
|
||||||
|
#420 = VERTEX_POINT('',#421);
|
||||||
|
#421 = CARTESIAN_POINT('',(0.975,-2.388061258337E-16,-5.));
|
||||||
|
#422 = SEAM_CURVE('',#423,(#427,#434),.PCURVE_S1.);
|
||||||
|
#423 = LINE('',#424,#425);
|
||||||
|
#424 = CARTESIAN_POINT('',(0.975,-2.388061258337E-16,-5.));
|
||||||
|
#425 = VECTOR('',#426,1.);
|
||||||
|
#426 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#427 = PCURVE('',#395,#428);
|
||||||
|
#428 = DEFINITIONAL_REPRESENTATION('',(#429),#433);
|
||||||
|
#429 = LINE('',#430,#431);
|
||||||
|
#430 = CARTESIAN_POINT('',(6.28318530718,-0.));
|
||||||
|
#431 = VECTOR('',#432,1.);
|
||||||
|
#432 = DIRECTION('',(0.,1.));
|
||||||
|
#433 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#434 = PCURVE('',#395,#435);
|
||||||
|
#435 = DEFINITIONAL_REPRESENTATION('',(#436),#440);
|
||||||
|
#436 = LINE('',#437,#438);
|
||||||
|
#437 = CARTESIAN_POINT('',(0.,-0.));
|
||||||
|
#438 = VECTOR('',#439,1.);
|
||||||
|
#439 = DIRECTION('',(0.,1.));
|
||||||
|
#440 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#441 = ORIENTED_EDGE('',*,*,#442,.T.);
|
||||||
|
#442 = EDGE_CURVE('',#420,#420,#443,.T.);
|
||||||
|
#443 = SURFACE_CURVE('',#444,(#449,#456),.PCURVE_S1.);
|
||||||
|
#444 = CIRCLE('',#445,0.975);
|
||||||
|
#445 = AXIS2_PLACEMENT_3D('',#446,#447,#448);
|
||||||
|
#446 = CARTESIAN_POINT('',(0.,0.,-5.));
|
||||||
|
#447 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#448 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#449 = PCURVE('',#395,#450);
|
||||||
|
#450 = DEFINITIONAL_REPRESENTATION('',(#451),#455);
|
||||||
|
#451 = LINE('',#452,#453);
|
||||||
|
#452 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#453 = VECTOR('',#454,1.);
|
||||||
|
#454 = DIRECTION('',(1.,0.));
|
||||||
|
#455 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#456 = PCURVE('',#457,#462);
|
||||||
|
#457 = PLANE('',#458);
|
||||||
|
#458 = AXIS2_PLACEMENT_3D('',#459,#460,#461);
|
||||||
|
#459 = CARTESIAN_POINT('',(0.,0.,-5.));
|
||||||
|
#460 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#461 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#462 = DEFINITIONAL_REPRESENTATION('',(#463),#467);
|
||||||
|
#463 = CIRCLE('',#464,0.975);
|
||||||
|
#464 = AXIS2_PLACEMENT_2D('',#465,#466);
|
||||||
|
#465 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#466 = DIRECTION('',(1.,0.));
|
||||||
|
#467 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#468 = ORIENTED_EDGE('',*,*,#419,.T.);
|
||||||
|
#469 = ADVANCED_FACE('',(#470),#407,.T.);
|
||||||
|
#470 = FACE_BOUND('',#471,.T.);
|
||||||
|
#471 = EDGE_LOOP('',(#472));
|
||||||
|
#472 = ORIENTED_EDGE('',*,*,#385,.T.);
|
||||||
|
#473 = ADVANCED_FACE('',(#474),#457,.F.);
|
||||||
|
#474 = FACE_BOUND('',#475,.T.);
|
||||||
|
#475 = EDGE_LOOP('',(#476));
|
||||||
|
#476 = ORIENTED_EDGE('',*,*,#442,.F.);
|
||||||
|
#477 = MANIFOLD_SOLID_BREP('',#478);
|
||||||
|
#478 = CLOSED_SHELL('',(#479,#567,#571));
|
||||||
|
#479 = ADVANCED_FACE('',(#480),#493,.T.);
|
||||||
|
#480 = FACE_BOUND('',#481,.T.);
|
||||||
|
#481 = EDGE_LOOP('',(#482,#516,#539,#566));
|
||||||
|
#482 = ORIENTED_EDGE('',*,*,#483,.F.);
|
||||||
|
#483 = EDGE_CURVE('',#484,#484,#486,.T.);
|
||||||
|
#484 = VERTEX_POINT('',#485);
|
||||||
|
#485 = CARTESIAN_POINT('',(0.975,7.5,1.E-01));
|
||||||
|
#486 = SURFACE_CURVE('',#487,(#492,#504),.PCURVE_S1.);
|
||||||
|
#487 = CIRCLE('',#488,0.975);
|
||||||
|
#488 = AXIS2_PLACEMENT_3D('',#489,#490,#491);
|
||||||
|
#489 = CARTESIAN_POINT('',(0.,7.5,1.E-01));
|
||||||
|
#490 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#491 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#492 = PCURVE('',#493,#498);
|
||||||
|
#493 = CYLINDRICAL_SURFACE('',#494,0.975);
|
||||||
|
#494 = AXIS2_PLACEMENT_3D('',#495,#496,#497);
|
||||||
|
#495 = CARTESIAN_POINT('',(0.,7.5,-5.));
|
||||||
|
#496 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#497 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#498 = DEFINITIONAL_REPRESENTATION('',(#499),#503);
|
||||||
|
#499 = LINE('',#500,#501);
|
||||||
|
#500 = CARTESIAN_POINT('',(0.,5.1));
|
||||||
|
#501 = VECTOR('',#502,1.);
|
||||||
|
#502 = DIRECTION('',(1.,0.));
|
||||||
|
#503 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#504 = PCURVE('',#505,#510);
|
||||||
|
#505 = PLANE('',#506);
|
||||||
|
#506 = AXIS2_PLACEMENT_3D('',#507,#508,#509);
|
||||||
|
#507 = CARTESIAN_POINT('',(0.,7.5,1.E-01));
|
||||||
|
#508 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#509 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#510 = DEFINITIONAL_REPRESENTATION('',(#511),#515);
|
||||||
|
#511 = CIRCLE('',#512,0.975);
|
||||||
|
#512 = AXIS2_PLACEMENT_2D('',#513,#514);
|
||||||
|
#513 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#514 = DIRECTION('',(1.,0.));
|
||||||
|
#515 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#516 = ORIENTED_EDGE('',*,*,#517,.F.);
|
||||||
|
#517 = EDGE_CURVE('',#518,#484,#520,.T.);
|
||||||
|
#518 = VERTEX_POINT('',#519);
|
||||||
|
#519 = CARTESIAN_POINT('',(0.975,7.5,-5.));
|
||||||
|
#520 = SEAM_CURVE('',#521,(#525,#532),.PCURVE_S1.);
|
||||||
|
#521 = LINE('',#522,#523);
|
||||||
|
#522 = CARTESIAN_POINT('',(0.975,7.5,-5.));
|
||||||
|
#523 = VECTOR('',#524,1.);
|
||||||
|
#524 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#525 = PCURVE('',#493,#526);
|
||||||
|
#526 = DEFINITIONAL_REPRESENTATION('',(#527),#531);
|
||||||
|
#527 = LINE('',#528,#529);
|
||||||
|
#528 = CARTESIAN_POINT('',(6.28318530718,-0.));
|
||||||
|
#529 = VECTOR('',#530,1.);
|
||||||
|
#530 = DIRECTION('',(0.,1.));
|
||||||
|
#531 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#532 = PCURVE('',#493,#533);
|
||||||
|
#533 = DEFINITIONAL_REPRESENTATION('',(#534),#538);
|
||||||
|
#534 = LINE('',#535,#536);
|
||||||
|
#535 = CARTESIAN_POINT('',(0.,-0.));
|
||||||
|
#536 = VECTOR('',#537,1.);
|
||||||
|
#537 = DIRECTION('',(0.,1.));
|
||||||
|
#538 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#539 = ORIENTED_EDGE('',*,*,#540,.T.);
|
||||||
|
#540 = EDGE_CURVE('',#518,#518,#541,.T.);
|
||||||
|
#541 = SURFACE_CURVE('',#542,(#547,#554),.PCURVE_S1.);
|
||||||
|
#542 = CIRCLE('',#543,0.975);
|
||||||
|
#543 = AXIS2_PLACEMENT_3D('',#544,#545,#546);
|
||||||
|
#544 = CARTESIAN_POINT('',(0.,7.5,-5.));
|
||||||
|
#545 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#546 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#547 = PCURVE('',#493,#548);
|
||||||
|
#548 = DEFINITIONAL_REPRESENTATION('',(#549),#553);
|
||||||
|
#549 = LINE('',#550,#551);
|
||||||
|
#550 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#551 = VECTOR('',#552,1.);
|
||||||
|
#552 = DIRECTION('',(1.,0.));
|
||||||
|
#553 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#554 = PCURVE('',#555,#560);
|
||||||
|
#555 = PLANE('',#556);
|
||||||
|
#556 = AXIS2_PLACEMENT_3D('',#557,#558,#559);
|
||||||
|
#557 = CARTESIAN_POINT('',(0.,7.5,-5.));
|
||||||
|
#558 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#559 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#560 = DEFINITIONAL_REPRESENTATION('',(#561),#565);
|
||||||
|
#561 = CIRCLE('',#562,0.975);
|
||||||
|
#562 = AXIS2_PLACEMENT_2D('',#563,#564);
|
||||||
|
#563 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#564 = DIRECTION('',(1.,0.));
|
||||||
|
#565 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#566 = ORIENTED_EDGE('',*,*,#517,.T.);
|
||||||
|
#567 = ADVANCED_FACE('',(#568),#505,.T.);
|
||||||
|
#568 = FACE_BOUND('',#569,.T.);
|
||||||
|
#569 = EDGE_LOOP('',(#570));
|
||||||
|
#570 = ORIENTED_EDGE('',*,*,#483,.T.);
|
||||||
|
#571 = ADVANCED_FACE('',(#572),#555,.F.);
|
||||||
|
#572 = FACE_BOUND('',#573,.T.);
|
||||||
|
#573 = EDGE_LOOP('',(#574));
|
||||||
|
#574 = ORIENTED_EDGE('',*,*,#540,.F.);
|
||||||
|
#575 = MANIFOLD_SOLID_BREP('',#576);
|
||||||
|
#576 = CLOSED_SHELL('',(#577,#665,#669));
|
||||||
|
#577 = ADVANCED_FACE('',(#578),#591,.T.);
|
||||||
|
#578 = FACE_BOUND('',#579,.T.);
|
||||||
|
#579 = EDGE_LOOP('',(#580,#614,#637,#664));
|
||||||
|
#580 = ORIENTED_EDGE('',*,*,#581,.F.);
|
||||||
|
#581 = EDGE_CURVE('',#582,#582,#584,.T.);
|
||||||
|
#582 = VERTEX_POINT('',#583);
|
||||||
|
#583 = CARTESIAN_POINT('',(0.975,3.6,1.E-01));
|
||||||
|
#584 = SURFACE_CURVE('',#585,(#590,#602),.PCURVE_S1.);
|
||||||
|
#585 = CIRCLE('',#586,0.975);
|
||||||
|
#586 = AXIS2_PLACEMENT_3D('',#587,#588,#589);
|
||||||
|
#587 = CARTESIAN_POINT('',(0.,3.6,1.E-01));
|
||||||
|
#588 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#589 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#590 = PCURVE('',#591,#596);
|
||||||
|
#591 = CYLINDRICAL_SURFACE('',#592,0.975);
|
||||||
|
#592 = AXIS2_PLACEMENT_3D('',#593,#594,#595);
|
||||||
|
#593 = CARTESIAN_POINT('',(0.,3.6,-5.));
|
||||||
|
#594 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#595 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#596 = DEFINITIONAL_REPRESENTATION('',(#597),#601);
|
||||||
|
#597 = LINE('',#598,#599);
|
||||||
|
#598 = CARTESIAN_POINT('',(0.,5.1));
|
||||||
|
#599 = VECTOR('',#600,1.);
|
||||||
|
#600 = DIRECTION('',(1.,0.));
|
||||||
|
#601 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#602 = PCURVE('',#603,#608);
|
||||||
|
#603 = PLANE('',#604);
|
||||||
|
#604 = AXIS2_PLACEMENT_3D('',#605,#606,#607);
|
||||||
|
#605 = CARTESIAN_POINT('',(0.,3.6,1.E-01));
|
||||||
|
#606 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#607 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#608 = DEFINITIONAL_REPRESENTATION('',(#609),#613);
|
||||||
|
#609 = CIRCLE('',#610,0.975);
|
||||||
|
#610 = AXIS2_PLACEMENT_2D('',#611,#612);
|
||||||
|
#611 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#612 = DIRECTION('',(1.,0.));
|
||||||
|
#613 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#614 = ORIENTED_EDGE('',*,*,#615,.F.);
|
||||||
|
#615 = EDGE_CURVE('',#616,#582,#618,.T.);
|
||||||
|
#616 = VERTEX_POINT('',#617);
|
||||||
|
#617 = CARTESIAN_POINT('',(0.975,3.6,-5.));
|
||||||
|
#618 = SEAM_CURVE('',#619,(#623,#630),.PCURVE_S1.);
|
||||||
|
#619 = LINE('',#620,#621);
|
||||||
|
#620 = CARTESIAN_POINT('',(0.975,3.6,-5.));
|
||||||
|
#621 = VECTOR('',#622,1.);
|
||||||
|
#622 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#623 = PCURVE('',#591,#624);
|
||||||
|
#624 = DEFINITIONAL_REPRESENTATION('',(#625),#629);
|
||||||
|
#625 = LINE('',#626,#627);
|
||||||
|
#626 = CARTESIAN_POINT('',(6.28318530718,-0.));
|
||||||
|
#627 = VECTOR('',#628,1.);
|
||||||
|
#628 = DIRECTION('',(0.,1.));
|
||||||
|
#629 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#630 = PCURVE('',#591,#631);
|
||||||
|
#631 = DEFINITIONAL_REPRESENTATION('',(#632),#636);
|
||||||
|
#632 = LINE('',#633,#634);
|
||||||
|
#633 = CARTESIAN_POINT('',(0.,-0.));
|
||||||
|
#634 = VECTOR('',#635,1.);
|
||||||
|
#635 = DIRECTION('',(0.,1.));
|
||||||
|
#636 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#637 = ORIENTED_EDGE('',*,*,#638,.T.);
|
||||||
|
#638 = EDGE_CURVE('',#616,#616,#639,.T.);
|
||||||
|
#639 = SURFACE_CURVE('',#640,(#645,#652),.PCURVE_S1.);
|
||||||
|
#640 = CIRCLE('',#641,0.975);
|
||||||
|
#641 = AXIS2_PLACEMENT_3D('',#642,#643,#644);
|
||||||
|
#642 = CARTESIAN_POINT('',(0.,3.6,-5.));
|
||||||
|
#643 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#644 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#645 = PCURVE('',#591,#646);
|
||||||
|
#646 = DEFINITIONAL_REPRESENTATION('',(#647),#651);
|
||||||
|
#647 = LINE('',#648,#649);
|
||||||
|
#648 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#649 = VECTOR('',#650,1.);
|
||||||
|
#650 = DIRECTION('',(1.,0.));
|
||||||
|
#651 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#652 = PCURVE('',#653,#658);
|
||||||
|
#653 = PLANE('',#654);
|
||||||
|
#654 = AXIS2_PLACEMENT_3D('',#655,#656,#657);
|
||||||
|
#655 = CARTESIAN_POINT('',(0.,3.6,-5.));
|
||||||
|
#656 = DIRECTION('',(0.,0.,1.));
|
||||||
|
#657 = DIRECTION('',(1.,0.,0.));
|
||||||
|
#658 = DEFINITIONAL_REPRESENTATION('',(#659),#663);
|
||||||
|
#659 = CIRCLE('',#660,0.975);
|
||||||
|
#660 = AXIS2_PLACEMENT_2D('',#661,#662);
|
||||||
|
#661 = CARTESIAN_POINT('',(0.,0.));
|
||||||
|
#662 = DIRECTION('',(1.,0.));
|
||||||
|
#663 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
|
||||||
|
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
|
||||||
|
) );
|
||||||
|
#664 = ORIENTED_EDGE('',*,*,#615,.T.);
|
||||||
|
#665 = ADVANCED_FACE('',(#666),#603,.T.);
|
||||||
|
#666 = FACE_BOUND('',#667,.T.);
|
||||||
|
#667 = EDGE_LOOP('',(#668));
|
||||||
|
#668 = ORIENTED_EDGE('',*,*,#581,.T.);
|
||||||
|
#669 = ADVANCED_FACE('',(#670),#653,.F.);
|
||||||
|
#670 = FACE_BOUND('',#671,.T.);
|
||||||
|
#671 = EDGE_LOOP('',(#672));
|
||||||
|
#672 = ORIENTED_EDGE('',*,*,#638,.F.);
|
||||||
|
#673 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||||
|
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#677)) GLOBAL_UNIT_ASSIGNED_CONTEXT
|
||||||
|
((#674,#675,#676)) REPRESENTATION_CONTEXT('Context #1',
|
||||||
|
'3D Context with UNIT and UNCERTAINTY') );
|
||||||
|
#674 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
|
||||||
|
#675 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
|
||||||
|
#676 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
|
||||||
|
#677 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#674,
|
||||||
|
'distance_accuracy_value','confusion accuracy');
|
||||||
|
#678 = SHAPE_DEFINITION_REPRESENTATION(#679,#378);
|
||||||
|
#679 = PRODUCT_DEFINITION_SHAPE('','',#680);
|
||||||
|
#680 = PRODUCT_DEFINITION('design','',#681,#684);
|
||||||
|
#681 = PRODUCT_DEFINITION_FORMATION('','',#682);
|
||||||
|
#682 = PRODUCT('Leads','Leads','',(#683));
|
||||||
|
#683 = PRODUCT_CONTEXT('',#2,'mechanical');
|
||||||
|
#684 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
|
||||||
|
#685 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#686,#688);
|
||||||
|
#686 = ( REPRESENTATION_RELATIONSHIP('','',#378,#10)
|
||||||
|
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#687)
|
||||||
|
SHAPE_REPRESENTATION_RELATIONSHIP() );
|
||||||
|
#687 = ITEM_DEFINED_TRANSFORMATION('','',#11,#19);
|
||||||
|
#688 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#689
|
||||||
|
);
|
||||||
|
#689 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','=>[0:1:1:3]','',#5,#680,$);
|
||||||
|
#690 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#682));
|
||||||
|
#691 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#692,
|
||||||
|
#702,#711),#673);
|
||||||
|
#692 = STYLED_ITEM('color',(#693),#379);
|
||||||
|
#693 = PRESENTATION_STYLE_ASSIGNMENT((#694,#700));
|
||||||
|
#694 = SURFACE_STYLE_USAGE(.BOTH.,#695);
|
||||||
|
#695 = SURFACE_SIDE_STYLE('',(#696));
|
||||||
|
#696 = SURFACE_STYLE_FILL_AREA(#697);
|
||||||
|
#697 = FILL_AREA_STYLE('',(#698));
|
||||||
|
#698 = FILL_AREA_STYLE_COLOUR('',#699);
|
||||||
|
#699 = COLOUR_RGB('',0.73400002718,0.773000001907,0.79699999094);
|
||||||
|
#700 = CURVE_STYLE('',#701,POSITIVE_LENGTH_MEASURE(0.1),#699);
|
||||||
|
#701 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
|
||||||
|
#702 = STYLED_ITEM('color',(#703),#477);
|
||||||
|
#703 = PRESENTATION_STYLE_ASSIGNMENT((#704,#709));
|
||||||
|
#704 = SURFACE_STYLE_USAGE(.BOTH.,#705);
|
||||||
|
#705 = SURFACE_SIDE_STYLE('',(#706));
|
||||||
|
#706 = SURFACE_STYLE_FILL_AREA(#707);
|
||||||
|
#707 = FILL_AREA_STYLE('',(#708));
|
||||||
|
#708 = FILL_AREA_STYLE_COLOUR('',#699);
|
||||||
|
#709 = CURVE_STYLE('',#710,POSITIVE_LENGTH_MEASURE(0.1),#699);
|
||||||
|
#710 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
|
||||||
|
#711 = STYLED_ITEM('color',(#712),#575);
|
||||||
|
#712 = PRESENTATION_STYLE_ASSIGNMENT((#713,#718));
|
||||||
|
#713 = SURFACE_STYLE_USAGE(.BOTH.,#714);
|
||||||
|
#714 = SURFACE_SIDE_STYLE('',(#715));
|
||||||
|
#715 = SURFACE_STYLE_FILL_AREA(#716);
|
||||||
|
#716 = FILL_AREA_STYLE('',(#717));
|
||||||
|
#717 = FILL_AREA_STYLE_COLOUR('',#699);
|
||||||
|
#718 = CURVE_STYLE('',#719,POSITIVE_LENGTH_MEASURE(0.1),#699);
|
||||||
|
#719 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
|
||||||
|
#720 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#721)
|
||||||
|
,#360);
|
||||||
|
#721 = STYLED_ITEM('color',(#722),#30);
|
||||||
|
#722 = PRESENTATION_STYLE_ASSIGNMENT((#723,#729));
|
||||||
|
#723 = SURFACE_STYLE_USAGE(.BOTH.,#724);
|
||||||
|
#724 = SURFACE_SIDE_STYLE('',(#725));
|
||||||
|
#725 = SURFACE_STYLE_FILL_AREA(#726);
|
||||||
|
#726 = FILL_AREA_STYLE('',(#727));
|
||||||
|
#727 = FILL_AREA_STYLE_COLOUR('',#728);
|
||||||
|
#728 = COLOUR_RGB('',0.300000011921,0.300000011921,0.300000011921);
|
||||||
|
#729 = CURVE_STYLE('',#730,POSITIVE_LENGTH_MEASURE(0.1),#728);
|
||||||
|
#730 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
|
||||||
|
ENDSEC;
|
||||||
|
END-ISO-10303-21;
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue