Added a waveform generator
This commit is contained in:
parent
48f034f0a4
commit
2964460a87
21 changed files with 2732 additions and 469 deletions
BIN
.DS_Store
vendored
Normal file
BIN
.DS_Store
vendored
Normal file
Binary file not shown.
1
.gitconfig
Normal file
1
.gitconfig
Normal file
|
@ -0,0 +1 @@
|
|||
core.autocrlf true
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
This project is reengineered out of the TenaTester build by ZL1CVD.
|
||||
The firmware is completely written by myself, the wheatstone bridge was mostly drawn as seen in the TenaTesta demo videos by ZL1CVD on youtube. The electrical component values were modified by myself to fit my personal requirements. The si5351 prt in the schematics was replaced by an adafruit breakout board.
|
||||
The firmware is completely written by myself, the wheatstone bridge was mostly drawn as seen in the TenaTesta demo videos by ZL1CVD on youtube. The electrical component values were modified by myself to fit my personal requirements. The si5351 in the schematics was replaced by an adafruit breakout board.
|
||||
|
||||
Ressources:
|
||||
* https://learn.adafruit.com/adafruit-si5351-clock-generator-breakout/wiring-and-test
|
||||
|
|
BIN
Si5351Arduino/.DS_Store
vendored
Normal file
BIN
Si5351Arduino/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
firmware/.DS_Store
vendored
Normal file
BIN
firmware/.DS_Store
vendored
Normal file
Binary file not shown.
|
@ -226,9 +226,17 @@ void cc_startMeasurement()
|
|||
uint32_t a1_sum = 0;
|
||||
uint16_t i = 0;
|
||||
|
||||
if (freq < 8000)
|
||||
{
|
||||
setWaveformFrequency((int)freq);
|
||||
enableWaveformOutput();
|
||||
si5351.output_enable(SI5351_CLK0, 0); // disable clock output 0
|
||||
} else {
|
||||
disableWaveformOutput();
|
||||
si5351.set_freq((uint64_t)freq * 100, SI5351_PLL_FIXED, SI5351_CLK0);
|
||||
si5351.output_enable(SI5351_CLK0, 1); // enable clock output 0
|
||||
delay(1);
|
||||
}
|
||||
|
||||
for (i = 0; i < intervall; i++)
|
||||
{
|
||||
|
@ -295,12 +303,21 @@ void cc_enableClk(void)
|
|||
sendSOM();
|
||||
if (cc_read_data[0] == SI5351_CLK0)
|
||||
{
|
||||
if (start_freq < 8000)
|
||||
{
|
||||
setWaveformFrequency((int)start_freq);
|
||||
enableWaveformOutput();
|
||||
si5351.output_enable(SI5351_CLK0, 0);
|
||||
} else {
|
||||
disableWaveformOutput();
|
||||
si5351.set_freq((uint64_t)start_freq * 100, SI5351_PLL_FIXED, SI5351_CLK0);
|
||||
si5351.output_enable(SI5351_CLK0, 1); // enable clock output 0
|
||||
}
|
||||
Serial.write(MSG_TYPE_ANSWER_OK);
|
||||
}
|
||||
else if (cc_read_data[0] == SI5351_CLK1)
|
||||
{
|
||||
|
||||
si5351.set_freq((uint64_t)start_freq * 100, SI5351_PLL_FIXED, SI5351_CLK1);
|
||||
si5351.output_enable(SI5351_CLK1, 1); // enable clock output 1
|
||||
Serial.write(MSG_TYPE_ANSWER_OK);
|
||||
|
@ -323,6 +340,7 @@ void cc_disableClk(void)
|
|||
sendSOM();
|
||||
if (cc_read_data[0] == SI5351_CLK0)
|
||||
{
|
||||
disableWaveformOutput();
|
||||
si5351.output_enable(SI5351_CLK0, 0); // disable clock output 0
|
||||
Serial.write(MSG_TYPE_ANSWER_OK);
|
||||
}
|
||||
|
@ -527,4 +545,3 @@ void send16BitValue(uint16_t value)
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
|
|
@ -59,6 +59,8 @@ void setup()
|
|||
|
||||
analogReference(DEFAULT); // 5V reference
|
||||
|
||||
initWaveformGenerator();
|
||||
|
||||
readEEPValues();
|
||||
|
||||
}
|
||||
|
@ -90,6 +92,8 @@ void loop()
|
|||
cc_processData(c);
|
||||
}
|
||||
|
||||
pollWaveformGenerator();
|
||||
|
||||
//delay(100);
|
||||
delay(10);
|
||||
}
|
||||
|
@ -186,4 +190,3 @@ uint32_t keepFreqRange(uint32_t freq)
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
|
63
firmware/waveformgenerator.ino
Normal file
63
firmware/waveformgenerator.ino
Normal file
|
@ -0,0 +1,63 @@
|
|||
|
||||
#include "Waveforms.h"
|
||||
|
||||
#define PWM_BIT_WIDTH 10
|
||||
#define PWM_PIN 5 // PWM-Pin für DAC0 auf dem Arduino Nano 328
|
||||
|
||||
int wf_wave0 = 0;
|
||||
int wf_pos = 0;
|
||||
int wf_sample;
|
||||
|
||||
bool wf_outputEnabled = true; // Variable to control waveform output state
|
||||
|
||||
void initWaveformGenerator()
|
||||
{
|
||||
setWaveform(WAVEFORM_SINUS);
|
||||
// Call the function to set default frequency, here you might want to specify a default frequency
|
||||
setWaveformFrequency(WAVEFORM_DEFAULT_FREQ_HZ);
|
||||
}
|
||||
|
||||
void setWaveform(int waveform0)
|
||||
{
|
||||
if (waveform0 >= 0 and waveform0 < WAVEFORM_MAXWAVEFORM_NUM)
|
||||
{
|
||||
// Set default waveforms
|
||||
wf_wave0 = waveform0;
|
||||
}
|
||||
}
|
||||
|
||||
void setWaveformFrequency(int frequency)
|
||||
{
|
||||
if (frequency >= 1 and frequency < 8000)
|
||||
{
|
||||
wf_sample = map(frequency, 0, (2^PWM_BIT_WIDTH)-1, 0, WAVEFORM_ONE_HZ_SAMPLE);
|
||||
wf_sample = constrain(wf_sample, 0, WAVEFORM_ONE_HZ_SAMPLE);
|
||||
} else {
|
||||
wf_sample = map(WAVEFORM_DEFAULT_FREQ_HZ, 0, (2^PWM_BIT_WIDTH)-1, 0, WAVEFORM_ONE_HZ_SAMPLE);
|
||||
wf_sample = constrain(wf_sample, 0, WAVEFORM_ONE_HZ_SAMPLE);
|
||||
}
|
||||
}
|
||||
|
||||
void enableWaveformOutput()
|
||||
{
|
||||
wf_outputEnabled = true;
|
||||
}
|
||||
|
||||
void disableWaveformOutput()
|
||||
{
|
||||
wf_outputEnabled = false;
|
||||
}
|
||||
|
||||
void pollWaveformGenerator()
|
||||
{
|
||||
if (wf_outputEnabled)
|
||||
{
|
||||
analogWrite(PWM_PIN, waveformsTable[wf_wave0][wf_pos]); // write the selected waveform on DAC0
|
||||
|
||||
wf_pos++;
|
||||
if (wf_pos == WAVEFORM_MAX_SAMPLES_NUM) // Reset the counter to repeat the wave
|
||||
wf_pos = 0;
|
||||
|
||||
delayMicroseconds(wf_sample); // Hold the sample value for the sample time
|
||||
}
|
||||
}
|
84
firmware/waveforms.h
Normal file
84
firmware/waveforms.h
Normal file
|
@ -0,0 +1,84 @@
|
|||
#ifndef _Waveforms_h_
|
||||
#define _Waveforms_h_
|
||||
|
||||
#define WAVEFORM_MAXWAVEFORM_NUM 4
|
||||
#define WAVEFORM_MAX_SAMPLES_NUM 120
|
||||
#define WAVEFORM_ONE_HZ_SAMPLE (1000000/WAVEFORM_MAX_SAMPLES_NUM) // sample for the 1Hz signal expressed in microseconds
|
||||
|
||||
#define WAVEFORM_DEFAULT_FREQ_HZ 1
|
||||
|
||||
#define WAVEFORM_SINUS 0
|
||||
#define WAVEFORM_TRIANGULAR 1
|
||||
#define WAVEFORM_SAWTOOTH 2
|
||||
|
||||
static int waveformsTable[WAVEFORM_MAXWAVEFORM_NUM][WAVEFORM_MAX_SAMPLES_NUM] = {
|
||||
// Sin wave
|
||||
{
|
||||
0x7ff, 0x86a, 0x8d5, 0x93f, 0x9a9, 0xa11, 0xa78, 0xadd, 0xb40, 0xba1,
|
||||
0xbff, 0xc5a, 0xcb2, 0xd08, 0xd59, 0xda7, 0xdf1, 0xe36, 0xe77, 0xeb4,
|
||||
0xeec, 0xf1f, 0xf4d, 0xf77, 0xf9a, 0xfb9, 0xfd2, 0xfe5, 0xff3, 0xffc,
|
||||
0xfff, 0xffc, 0xff3, 0xfe5, 0xfd2, 0xfb9, 0xf9a, 0xf77, 0xf4d, 0xf1f,
|
||||
0xeec, 0xeb4, 0xe77, 0xe36, 0xdf1, 0xda7, 0xd59, 0xd08, 0xcb2, 0xc5a,
|
||||
0xbff, 0xba1, 0xb40, 0xadd, 0xa78, 0xa11, 0x9a9, 0x93f, 0x8d5, 0x86a,
|
||||
0x7ff, 0x794, 0x729, 0x6bf, 0x655, 0x5ed, 0x586, 0x521, 0x4be, 0x45d,
|
||||
0x3ff, 0x3a4, 0x34c, 0x2f6, 0x2a5, 0x257, 0x20d, 0x1c8, 0x187, 0x14a,
|
||||
0x112, 0xdf, 0xb1, 0x87, 0x64, 0x45, 0x2c, 0x19, 0xb, 0x2,
|
||||
0x0, 0x2, 0xb, 0x19, 0x2c, 0x45, 0x64, 0x87, 0xb1, 0xdf,
|
||||
0x112, 0x14a, 0x187, 0x1c8, 0x20d, 0x257, 0x2a5, 0x2f6, 0x34c, 0x3a4,
|
||||
0x3ff, 0x45d, 0x4be, 0x521, 0x586, 0x5ed, 0x655, 0x6bf, 0x729, 0x794
|
||||
}
|
||||
,
|
||||
|
||||
// Triangular wave
|
||||
{
|
||||
0x44, 0x88, 0xcc, 0x110, 0x154, 0x198, 0x1dc, 0x220, 0x264, 0x2a8,
|
||||
0x2ec, 0x330, 0x374, 0x3b8, 0x3fc, 0x440, 0x484, 0x4c8, 0x50c, 0x550,
|
||||
0x594, 0x5d8, 0x61c, 0x660, 0x6a4, 0x6e8, 0x72c, 0x770, 0x7b4, 0x7f8,
|
||||
0x83c, 0x880, 0x8c4, 0x908, 0x94c, 0x990, 0x9d4, 0xa18, 0xa5c, 0xaa0,
|
||||
0xae4, 0xb28, 0xb6c, 0xbb0, 0xbf4, 0xc38, 0xc7c, 0xcc0, 0xd04, 0xd48,
|
||||
0xd8c, 0xdd0, 0xe14, 0xe58, 0xe9c, 0xee0, 0xf24, 0xf68, 0xfac, 0xff0,
|
||||
0xfac, 0xf68, 0xf24, 0xee0, 0xe9c, 0xe58, 0xe14, 0xdd0, 0xd8c, 0xd48,
|
||||
0xd04, 0xcc0, 0xc7c, 0xc38, 0xbf4, 0xbb0, 0xb6c, 0xb28, 0xae4, 0xaa0,
|
||||
0xa5c, 0xa18, 0x9d4, 0x990, 0x94c, 0x908, 0x8c4, 0x880, 0x83c, 0x7f8,
|
||||
0x7b4, 0x770, 0x72c, 0x6e8, 0x6a4, 0x660, 0x61c, 0x5d8, 0x594, 0x550,
|
||||
0x50c, 0x4c8, 0x484, 0x440, 0x3fc, 0x3b8, 0x374, 0x330, 0x2ec, 0x2a8,
|
||||
0x264, 0x220, 0x1dc, 0x198, 0x154, 0x110, 0xcc, 0x88, 0x44, 0x0
|
||||
}
|
||||
,
|
||||
|
||||
// Sawtooth wave
|
||||
{
|
||||
0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x110, 0x132, 0x154,
|
||||
0x176, 0x198, 0x1ba, 0x1dc, 0x1fe, 0x220, 0x242, 0x264, 0x286, 0x2a8,
|
||||
0x2ca, 0x2ec, 0x30e, 0x330, 0x352, 0x374, 0x396, 0x3b8, 0x3da, 0x3fc,
|
||||
0x41e, 0x440, 0x462, 0x484, 0x4a6, 0x4c8, 0x4ea, 0x50c, 0x52e, 0x550,
|
||||
0x572, 0x594, 0x5b6, 0x5d8, 0x5fa, 0x61c, 0x63e, 0x660, 0x682, 0x6a4,
|
||||
0x6c6, 0x6e8, 0x70a, 0x72c, 0x74e, 0x770, 0x792, 0x7b4, 0x7d6, 0x7f8,
|
||||
0x81a, 0x83c, 0x85e, 0x880, 0x8a2, 0x8c4, 0x8e6, 0x908, 0x92a, 0x94c,
|
||||
0x96e, 0x990, 0x9b2, 0x9d4, 0x9f6, 0xa18, 0xa3a, 0xa5c, 0xa7e, 0xaa0,
|
||||
0xac2, 0xae4, 0xb06, 0xb28, 0xb4a, 0xb6c, 0xb8e, 0xbb0, 0xbd2, 0xbf4,
|
||||
0xc16, 0xc38, 0xc5a, 0xc7c, 0xc9e, 0xcc0, 0xce2, 0xd04, 0xd26, 0xd48,
|
||||
0xd6a, 0xd8c, 0xdae, 0xdd0, 0xdf2, 0xe14, 0xe36, 0xe58, 0xe7a, 0xe9c,
|
||||
0xebe, 0xee0, 0xf02, 0xf24, 0xf46, 0xf68, 0xf8a, 0xfac, 0xfce, 0xff0
|
||||
}
|
||||
,
|
||||
|
||||
// Square wave
|
||||
{
|
||||
0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff,
|
||||
0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff,
|
||||
0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff,
|
||||
0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff,
|
||||
0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff,
|
||||
0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif
|
Binary file not shown.
265
pcb/TenaTesta_ZL1CVD-rescue.lib
Normal file
265
pcb/TenaTesta_ZL1CVD-rescue.lib
Normal file
|
@ -0,0 +1,265 @@
|
|||
EESchema-LIBRARY Version 2.4
|
||||
#encoding utf-8
|
||||
#
|
||||
# +5V
|
||||
#
|
||||
DEF +5V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "+5V" 0 140 50 H V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
DRAW
|
||||
P 2 0 1 0 -30 50 0 100 N
|
||||
P 2 0 1 0 0 0 0 100 N
|
||||
P 2 0 1 0 0 100 30 50 N
|
||||
X +5V 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# BNC
|
||||
#
|
||||
DEF BNC P 0 40 Y N 1 F N
|
||||
F0 "P" 10 120 50 H V C CNN
|
||||
F1 "BNC" 110 -60 50 V V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
BNC_*
|
||||
bnc
|
||||
bnc-*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
C 0 0 20 0 1 8 N
|
||||
C 0 0 70 0 1 12 N
|
||||
X In 1 -150 0 130 R 40 40 1 1 P
|
||||
X Ext 2 0 -200 130 U 40 40 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# C
|
||||
#
|
||||
DEF C C 0 10 N Y 1 F N
|
||||
F0 "C" 25 100 50 H V L CNN
|
||||
F1 "C" 25 -100 50 H V L CNN
|
||||
F2 "" 38 -150 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
C?
|
||||
C_????_*
|
||||
C_????
|
||||
SMD*_c
|
||||
Capacitor*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 20 -80 -30 80 -30 N
|
||||
P 2 0 1 20 -80 30 80 30 N
|
||||
X ~ 1 0 150 110 D 40 40 1 1 P
|
||||
X ~ 2 0 -150 110 U 40 40 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# CONN_01X07
|
||||
#
|
||||
DEF CONN_01X07 P 0 40 Y N 1 F N
|
||||
F0 "P" 0 400 50 H V C CNN
|
||||
F1 "CONN_01X07" 100 0 50 V V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
Pin_Header_Straight_1X07
|
||||
Pin_Header_Angled_1X07
|
||||
Socket_Strip_Straight_1X07
|
||||
Socket_Strip_Angled_1X07
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -350 50 350 0 1 0 N
|
||||
S -50 -295 10 -305 0 1 0 N
|
||||
S -50 -195 10 -205 0 1 0 N
|
||||
S -50 -95 10 -105 0 1 0 N
|
||||
S -50 5 10 -5 0 1 0 N
|
||||
S -50 105 10 95 0 1 0 N
|
||||
S -50 205 10 195 0 1 0 N
|
||||
S -50 305 10 295 0 1 0 N
|
||||
X P1 1 -200 300 150 R 50 50 1 1 P
|
||||
X P2 2 -200 200 150 R 50 50 1 1 P
|
||||
X P3 3 -200 100 150 R 50 50 1 1 P
|
||||
X P4 4 -200 0 150 R 50 50 1 1 P
|
||||
X P5 5 -200 -100 150 R 50 50 1 1 P
|
||||
X P6 6 -200 -200 150 R 50 50 1 1 P
|
||||
X P7 7 -200 -300 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# CONN_01X09
|
||||
#
|
||||
DEF CONN_01X09 P 0 40 Y N 1 F N
|
||||
F0 "P" 0 500 50 H V C CNN
|
||||
F1 "CONN_01X09" 100 0 50 V V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
Pin_Header_Straight_1X09
|
||||
Pin_Header_Angled_1X09
|
||||
Socket_Strip_Straight_1X09
|
||||
Socket_Strip_Angled_1X09
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -395 10 -405 0 1 0 N
|
||||
S -50 -295 10 -305 0 1 0 N
|
||||
S -50 -195 10 -205 0 1 0 N
|
||||
S -50 -95 10 -105 0 1 0 N
|
||||
S -50 5 10 -5 0 1 0 N
|
||||
S -50 105 10 95 0 1 0 N
|
||||
S -50 205 10 195 0 1 0 N
|
||||
S -50 305 10 295 0 1 0 N
|
||||
S -50 405 10 395 0 1 0 N
|
||||
S -50 450 50 -450 0 1 0 N
|
||||
X P1 1 -200 400 150 R 50 50 1 1 P
|
||||
X P2 2 -200 300 150 R 50 50 1 1 P
|
||||
X P3 3 -200 200 150 R 50 50 1 1 P
|
||||
X P4 4 -200 100 150 R 50 50 1 1 P
|
||||
X P5 5 -200 0 150 R 50 50 1 1 P
|
||||
X P6 6 -200 -100 150 R 50 50 1 1 P
|
||||
X P7 7 -200 -200 150 R 50 50 1 1 P
|
||||
X P8 8 -200 -300 150 R 50 50 1 1 P
|
||||
X P9 9 -200 -400 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# CONN_01X15
|
||||
#
|
||||
DEF CONN_01X15 P 0 40 Y N 1 F N
|
||||
F0 "P" 0 800 50 H V C CNN
|
||||
F1 "CONN_01X15" 100 0 50 V V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
Pin_Header_Straight_1X15
|
||||
Pin_Header_Angled_1X15
|
||||
Socket_Strip_Straight_1X15
|
||||
Socket_Strip_Angled_1X15
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -695 10 -705 0 1 0 N
|
||||
S -50 -595 10 -605 0 1 0 N
|
||||
S -50 -495 10 -505 0 1 0 N
|
||||
S -50 -395 10 -405 0 1 0 N
|
||||
S -50 -295 10 -305 0 1 0 N
|
||||
S -50 -195 10 -205 0 1 0 N
|
||||
S -50 -95 10 -105 0 1 0 N
|
||||
S -50 5 10 -5 0 1 0 N
|
||||
S -50 105 10 95 0 1 0 N
|
||||
S -50 205 10 195 0 1 0 N
|
||||
S -50 305 10 295 0 1 0 N
|
||||
S -50 405 10 395 0 1 0 N
|
||||
S -50 505 10 495 0 1 0 N
|
||||
S -50 605 10 595 0 1 0 N
|
||||
S -50 705 10 695 0 1 0 N
|
||||
S -50 750 50 -750 0 1 0 N
|
||||
X P1 1 -200 700 150 R 50 50 1 1 P
|
||||
X P10 10 -200 -200 150 R 50 50 1 1 P
|
||||
X P11 11 -200 -300 150 R 50 50 1 1 P
|
||||
X P12 12 -200 -400 150 R 50 50 1 1 P
|
||||
X P13 13 -200 -500 150 R 50 50 1 1 P
|
||||
X P14 14 -200 -600 150 R 50 50 1 1 P
|
||||
X P15 15 -200 -700 150 R 50 50 1 1 P
|
||||
X P2 2 -200 600 150 R 50 50 1 1 P
|
||||
X P3 3 -200 500 150 R 50 50 1 1 P
|
||||
X P4 4 -200 400 150 R 50 50 1 1 P
|
||||
X P5 5 -200 300 150 R 50 50 1 1 P
|
||||
X P6 6 -200 200 150 R 50 50 1 1 P
|
||||
X P7 7 -200 100 150 R 50 50 1 1 P
|
||||
X P8 8 -200 0 150 R 50 50 1 1 P
|
||||
X P9 9 -200 -100 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# D
|
||||
#
|
||||
DEF D D 0 40 N N 1 F N
|
||||
F0 "D" 0 100 50 H V C CNN
|
||||
F1 "D" 0 -100 50 H V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
Diode_*
|
||||
D-Pak_TO252AA
|
||||
*SingleDiode
|
||||
*_Diode_*
|
||||
*SingleDiode*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 6 -50 50 -50 -50 N
|
||||
P 3 0 1 0 50 50 -50 0 50 -50 F
|
||||
X K 1 -150 0 100 R 50 50 1 1 P
|
||||
X A 2 150 0 100 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# GND
|
||||
#
|
||||
DEF GND #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -250 50 H I C CNN
|
||||
F1 "GND" 0 -150 50 H V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
DRAW
|
||||
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
|
||||
X GND 1 0 0 0 D 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# MCP6002
|
||||
#
|
||||
DEF MCP6002 U 0 10 Y Y 2 F N
|
||||
F0 "U" 0 150 50 H V L CNN
|
||||
F1 "MCP6002" 0 -150 50 H V L CNN
|
||||
F2 "" -100 50 50 H V C CNN
|
||||
F3 "" 0 150 50 H V C CNN
|
||||
DRAW
|
||||
P 4 0 1 6 -200 200 200 0 -200 -200 -200 200 f
|
||||
X V- 4 -100 -300 150 U 50 50 0 1 W
|
||||
X V+ 8 -100 300 150 D 50 50 0 1 W
|
||||
X ~ 1 300 0 100 L 50 50 1 1 O
|
||||
X - 2 -300 -100 100 R 50 50 1 1 I
|
||||
X + 3 -300 100 100 R 50 50 1 1 I
|
||||
X + 5 -300 100 100 R 50 50 2 1 I
|
||||
X - 6 -300 -100 100 R 50 50 2 1 I
|
||||
X ~ 7 300 0 100 L 50 50 2 1 O
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# R
|
||||
#
|
||||
DEF R R 0 0 N Y 1 F N
|
||||
F0 "R" 80 0 50 V V C CNN
|
||||
F1 "R" 0 0 50 V V C CNN
|
||||
F2 "" -70 0 50 V V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
R_*
|
||||
Resistor_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -40 -100 40 100 0 1 10 N
|
||||
X ~ 1 0 150 50 D 50 50 1 1 P
|
||||
X ~ 2 0 -150 50 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# SW_PUSH
|
||||
#
|
||||
DEF SW_PUSH SW 0 40 N N 1 F N
|
||||
F0 "SW" 150 110 50 H V C CNN
|
||||
F1 "SW_PUSH" 0 -80 50 H V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
DRAW
|
||||
S -170 50 170 60 0 1 0 N
|
||||
P 4 0 1 0 -40 60 -30 90 30 90 40 60 N
|
||||
X 1 1 -300 0 200 R 50 50 0 1 P I
|
||||
X 2 2 300 0 200 L 50 50 0 1 P I
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
75
pcb/TenaTesta_ZL1CVD.kicad_prl
Normal file
75
pcb/TenaTesta_ZL1CVD.kicad_prl
Normal file
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 0,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": true,
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"pads": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"ratsnest_display_mode": 0,
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": true,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
],
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"meta": {
|
||||
"filename": "TenaTesta_ZL1CVD.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
320
pcb/TenaTesta_ZL1CVD.kicad_pro
Normal file
320
pcb/TenaTesta_ZL1CVD.kicad_pro
Normal file
|
@ -0,0 +1,320 @@
|
|||
{
|
||||
"board": {
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"board_outline_line_width": 0.1,
|
||||
"copper_line_width": 0.2,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"other_line_width": 0.15,
|
||||
"silk_line_width": 0.15,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.15
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [],
|
||||
"rules": {
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0
|
||||
},
|
||||
"track_widths": [],
|
||||
"via_dimensions": []
|
||||
},
|
||||
"layer_presets": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"erc": {
|
||||
"erc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"pin_map": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
],
|
||||
"rule_severities": {
|
||||
"bus_definition_conflict": "error",
|
||||
"bus_entry_needed": "error",
|
||||
"bus_label_syntax": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "warning",
|
||||
"multiple_net_names": "warning",
|
||||
"net_not_bus_member": "warning",
|
||||
"no_connect_connected": "warning",
|
||||
"no_connect_dangling": "warning",
|
||||
"pin_not_connected": "error",
|
||||
"pin_not_driven": "error",
|
||||
"pin_to_pin": "warning",
|
||||
"power_pin_not_driven": "error",
|
||||
"similar_labels": "warning",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "TenaTesta_ZL1CVD.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.2,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.25,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"wire_width": 6.0
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"net_colors": null
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"drawing": {
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
"intersheets_ref_show": false,
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.25,
|
||||
"pin_symbol_size": 0.0,
|
||||
"text_offset_ratio": 0.08
|
||||
},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"net_format_name": "",
|
||||
"ngspice": {
|
||||
"fix_include_paths": true,
|
||||
"fix_passive_vals": false,
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"model_mode": 0,
|
||||
"workbook_filename": ""
|
||||
},
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "",
|
||||
"spice_adjust_passive_values": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [],
|
||||
"text_variables": {}
|
||||
}
|
1157
pcb/rescue-backup/TenaTesta_ZL1CVD-2024-02-11-11-29-17.sch
Normal file
1157
pcb/rescue-backup/TenaTesta_ZL1CVD-2024-02-11-11-29-17.sch
Normal file
File diff suppressed because it is too large
Load diff
266
pcb/rescue-backup/TenaTesta_ZL1CVD-cache-2024-02-11-11-29-17.lib
Normal file
266
pcb/rescue-backup/TenaTesta_ZL1CVD-cache-2024-02-11-11-29-17.lib
Normal file
|
@ -0,0 +1,266 @@
|
|||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#
|
||||
# +5V
|
||||
#
|
||||
DEF +5V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "+5V" 0 140 50 H V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
DRAW
|
||||
P 2 0 1 0 -30 50 0 100 N
|
||||
P 2 0 1 0 0 0 0 100 N
|
||||
P 2 0 1 0 0 100 30 50 N
|
||||
X +5V 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# BNC
|
||||
#
|
||||
DEF BNC P 0 40 Y N 1 F N
|
||||
F0 "P" 10 120 50 H V C CNN
|
||||
F1 "BNC" 110 -60 50 V V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
BNC_*
|
||||
bnc
|
||||
bnc-*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
C 0 0 20 0 1 8 N
|
||||
C 0 0 70 0 1 12 N
|
||||
X In 1 -150 0 130 R 40 40 1 1 P
|
||||
X Ext 2 0 -200 130 U 40 40 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# C
|
||||
#
|
||||
DEF C C 0 10 N Y 1 F N
|
||||
F0 "C" 25 100 50 H V L CNN
|
||||
F1 "C" 25 -100 50 H V L CNN
|
||||
F2 "" 38 -150 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
C?
|
||||
C_????_*
|
||||
C_????
|
||||
SMD*_c
|
||||
Capacitor*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 20 -80 -30 80 -30 N
|
||||
P 2 0 1 20 -80 30 80 30 N
|
||||
X ~ 1 0 150 110 D 40 40 1 1 P
|
||||
X ~ 2 0 -150 110 U 40 40 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# CONN_01X07
|
||||
#
|
||||
DEF CONN_01X07 P 0 40 Y N 1 F N
|
||||
F0 "P" 0 400 50 H V C CNN
|
||||
F1 "CONN_01X07" 100 0 50 V V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
Pin_Header_Straight_1X07
|
||||
Pin_Header_Angled_1X07
|
||||
Socket_Strip_Straight_1X07
|
||||
Socket_Strip_Angled_1X07
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -350 50 350 0 1 0 N
|
||||
S -50 -295 10 -305 0 1 0 N
|
||||
S -50 -195 10 -205 0 1 0 N
|
||||
S -50 -95 10 -105 0 1 0 N
|
||||
S -50 5 10 -5 0 1 0 N
|
||||
S -50 105 10 95 0 1 0 N
|
||||
S -50 205 10 195 0 1 0 N
|
||||
S -50 305 10 295 0 1 0 N
|
||||
X P1 1 -200 300 150 R 50 50 1 1 P
|
||||
X P2 2 -200 200 150 R 50 50 1 1 P
|
||||
X P3 3 -200 100 150 R 50 50 1 1 P
|
||||
X P4 4 -200 0 150 R 50 50 1 1 P
|
||||
X P5 5 -200 -100 150 R 50 50 1 1 P
|
||||
X P6 6 -200 -200 150 R 50 50 1 1 P
|
||||
X P7 7 -200 -300 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# CONN_01X09
|
||||
#
|
||||
DEF CONN_01X09 P 0 40 Y N 1 F N
|
||||
F0 "P" 0 500 50 H V C CNN
|
||||
F1 "CONN_01X09" 100 0 50 V V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
Pin_Header_Straight_1X09
|
||||
Pin_Header_Angled_1X09
|
||||
Socket_Strip_Straight_1X09
|
||||
Socket_Strip_Angled_1X09
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -395 10 -405 0 1 0 N
|
||||
S -50 -295 10 -305 0 1 0 N
|
||||
S -50 -195 10 -205 0 1 0 N
|
||||
S -50 -95 10 -105 0 1 0 N
|
||||
S -50 5 10 -5 0 1 0 N
|
||||
S -50 105 10 95 0 1 0 N
|
||||
S -50 205 10 195 0 1 0 N
|
||||
S -50 305 10 295 0 1 0 N
|
||||
S -50 405 10 395 0 1 0 N
|
||||
S -50 450 50 -450 0 1 0 N
|
||||
X P1 1 -200 400 150 R 50 50 1 1 P
|
||||
X P2 2 -200 300 150 R 50 50 1 1 P
|
||||
X P3 3 -200 200 150 R 50 50 1 1 P
|
||||
X P4 4 -200 100 150 R 50 50 1 1 P
|
||||
X P5 5 -200 0 150 R 50 50 1 1 P
|
||||
X P6 6 -200 -100 150 R 50 50 1 1 P
|
||||
X P7 7 -200 -200 150 R 50 50 1 1 P
|
||||
X P8 8 -200 -300 150 R 50 50 1 1 P
|
||||
X P9 9 -200 -400 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# CONN_01X15
|
||||
#
|
||||
DEF CONN_01X15 P 0 40 Y N 1 F N
|
||||
F0 "P" 0 800 50 H V C CNN
|
||||
F1 "CONN_01X15" 100 0 50 V V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
Pin_Header_Straight_1X15
|
||||
Pin_Header_Angled_1X15
|
||||
Socket_Strip_Straight_1X15
|
||||
Socket_Strip_Angled_1X15
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -695 10 -705 0 1 0 N
|
||||
S -50 -595 10 -605 0 1 0 N
|
||||
S -50 -495 10 -505 0 1 0 N
|
||||
S -50 -395 10 -405 0 1 0 N
|
||||
S -50 -295 10 -305 0 1 0 N
|
||||
S -50 -195 10 -205 0 1 0 N
|
||||
S -50 -95 10 -105 0 1 0 N
|
||||
S -50 5 10 -5 0 1 0 N
|
||||
S -50 105 10 95 0 1 0 N
|
||||
S -50 205 10 195 0 1 0 N
|
||||
S -50 305 10 295 0 1 0 N
|
||||
S -50 405 10 395 0 1 0 N
|
||||
S -50 505 10 495 0 1 0 N
|
||||
S -50 605 10 595 0 1 0 N
|
||||
S -50 705 10 695 0 1 0 N
|
||||
S -50 750 50 -750 0 1 0 N
|
||||
X P1 1 -200 700 150 R 50 50 1 1 P
|
||||
X P2 2 -200 600 150 R 50 50 1 1 P
|
||||
X P3 3 -200 500 150 R 50 50 1 1 P
|
||||
X P4 4 -200 400 150 R 50 50 1 1 P
|
||||
X P5 5 -200 300 150 R 50 50 1 1 P
|
||||
X P6 6 -200 200 150 R 50 50 1 1 P
|
||||
X P7 7 -200 100 150 R 50 50 1 1 P
|
||||
X P8 8 -200 0 150 R 50 50 1 1 P
|
||||
X P9 9 -200 -100 150 R 50 50 1 1 P
|
||||
X P10 10 -200 -200 150 R 50 50 1 1 P
|
||||
X P11 11 -200 -300 150 R 50 50 1 1 P
|
||||
X P12 12 -200 -400 150 R 50 50 1 1 P
|
||||
X P13 13 -200 -500 150 R 50 50 1 1 P
|
||||
X P14 14 -200 -600 150 R 50 50 1 1 P
|
||||
X P15 15 -200 -700 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# D
|
||||
#
|
||||
DEF D D 0 40 N N 1 F N
|
||||
F0 "D" 0 100 50 H V C CNN
|
||||
F1 "D" 0 -100 50 H V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
Diode_*
|
||||
D-Pak_TO252AA
|
||||
*SingleDiode
|
||||
*_Diode_*
|
||||
*SingleDiode*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 6 -50 50 -50 -50 N
|
||||
P 3 0 1 0 50 50 -50 0 50 -50 F
|
||||
X K 1 -150 0 100 R 50 50 1 1 P
|
||||
X A 2 150 0 100 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# GND
|
||||
#
|
||||
DEF GND #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -250 50 H I C CNN
|
||||
F1 "GND" 0 -150 50 H V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
DRAW
|
||||
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
|
||||
X GND 1 0 0 0 D 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# OP275
|
||||
#
|
||||
DEF OP275 U 0 10 Y Y 2 F N
|
||||
F0 "U" 0 150 50 H V L CNN
|
||||
F1 "OP275" 0 -150 50 H V L CNN
|
||||
F2 "" -100 50 50 H V C CNN
|
||||
F3 "" 0 150 50 H V C CNN
|
||||
ALIAS ADA4075 MCP6002 LM7332
|
||||
DRAW
|
||||
P 4 0 1 6 -200 200 200 0 -200 -200 -200 200 f
|
||||
X V- 4 -100 -300 150 U 50 50 0 1 W
|
||||
X V+ 8 -100 300 150 D 50 50 0 1 W
|
||||
X ~ 1 300 0 100 L 50 50 1 1 O
|
||||
X - 2 -300 -100 100 R 50 50 1 1 I
|
||||
X + 3 -300 100 100 R 50 50 1 1 I
|
||||
X + 5 -300 100 100 R 50 50 2 1 I
|
||||
X - 6 -300 -100 100 R 50 50 2 1 I
|
||||
X ~ 7 300 0 100 L 50 50 2 1 O
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# R
|
||||
#
|
||||
DEF R R 0 0 N Y 1 F N
|
||||
F0 "R" 80 0 50 V V C CNN
|
||||
F1 "R" 0 0 50 V V C CNN
|
||||
F2 "" -70 0 50 V V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
$FPLIST
|
||||
R_*
|
||||
Resistor_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -40 -100 40 100 0 1 10 N
|
||||
X ~ 1 0 150 50 D 50 50 1 1 P
|
||||
X ~ 2 0 -150 50 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# SW_PUSH
|
||||
#
|
||||
DEF SW_PUSH SW 0 40 N N 1 F N
|
||||
F0 "SW" 150 110 50 H V C CNN
|
||||
F1 "SW_PUSH" 0 -80 50 H V C CNN
|
||||
F2 "" 0 0 50 H V C CNN
|
||||
F3 "" 0 0 50 H V C CNN
|
||||
DRAW
|
||||
S -170 50 170 60 0 1 0 N
|
||||
P 4 0 1 0 -40 60 -30 90 30 90 40 60 N
|
||||
X 1 1 -300 0 200 R 50 50 0 1 P I
|
||||
X 2 2 300 0 200 L 50 50 0 1 P I
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
3
pcb/sym-lib-table
Normal file
3
pcb/sym-lib-table
Normal file
|
@ -0,0 +1,3 @@
|
|||
(sym_lib_table
|
||||
(lib (name "TenaTesta_ZL1CVD-rescue")(type "Legacy")(uri "${KIPRJMOD}/TenaTesta_ZL1CVD-rescue.lib")(options "")(descr ""))
|
||||
)
|
|
@ -202,11 +202,11 @@ def cc_dataReceiverThread():
|
|||
bytesToRead = ser.inWaiting()
|
||||
if bytesToRead > 0:
|
||||
incoming = list(ser.read(64))
|
||||
#print(incoming)
|
||||
|
||||
# 2. process the received data
|
||||
for c in incoming:
|
||||
c = int(binascii.hexlify(c), 16)
|
||||
|
||||
#print(c)
|
||||
# call the cc_state specific function to process the currently received byte
|
||||
cc_state_fn[cc_state](c)
|
||||
|
||||
|
@ -340,7 +340,7 @@ def openSerialDevice(d):
|
|||
|
||||
ser = serial.Serial(d)
|
||||
except:
|
||||
print "ERROR (1): Can't open the serial device " + d
|
||||
print("ERROR (1): Can't open the serial device " + d)
|
||||
exit(1)
|
||||
|
||||
# Toggle DTR to reset Arduino
|
||||
|
@ -363,7 +363,7 @@ def openSerialDevice(d):
|
|||
rtscts=0,\
|
||||
timeout=0)
|
||||
except:
|
||||
print "ERROR (2): Can't open the serial device " + d
|
||||
print("ERROR (2): Can't open the serial device " + d)
|
||||
exit(2)
|
||||
|
||||
#####
|
||||
|
@ -471,9 +471,18 @@ def calc_data():
|
|||
old = 1000
|
||||
for r in sorted(meas_vswr_f.items(), key=operator.itemgetter(1)):
|
||||
vswr_marker.append(meas_freq.index(r[0]))
|
||||
if r > old:
|
||||
|
||||
'''
|
||||
print("\ntype(r) = " + str(type(r)) + " = " + str(r))
|
||||
print("type(old) = " + str(type(old)) + " = " + str(old))
|
||||
|
||||
type(r) = <class 'tuple'> = (50, 1.1784989858012171)
|
||||
type(old) = <class 'int'> = 1000
|
||||
'''
|
||||
|
||||
if r[1] > old:
|
||||
i += 1
|
||||
old = r
|
||||
old = r[1]
|
||||
if i == 5:
|
||||
break
|
||||
|
||||
|
@ -543,7 +552,7 @@ if __name__ == "__main__":
|
|||
if args.device != None:
|
||||
device = args.device
|
||||
|
||||
print "SWR meter measurement software v0.1 by Kai Lauterbach (me@klaute.de)\n---\n"
|
||||
print("SWR meter measurement software v0.1 by Kai Lauterbach (me@klaute.de)\n---\n")
|
||||
|
||||
openSerialDevice(device)
|
||||
|
||||
|
@ -554,7 +563,7 @@ if __name__ == "__main__":
|
|||
|
||||
# 3. get and process the commandline arguments/parameter
|
||||
if args.start_freq != None:
|
||||
print "Set start frequency to: " + user_friendly_freq(args.start_freq)
|
||||
print("Set start frequency to: " + user_friendly_freq(args.start_freq))
|
||||
sendSerialData([CC_CMD_SET_START_FREQ,
|
||||
(args.start_freq & 0xff000000) >> 24,
|
||||
(args.start_freq & 0x00ff0000) >> 16,
|
||||
|
@ -563,7 +572,7 @@ if __name__ == "__main__":
|
|||
dataSend = dataSend + 1
|
||||
|
||||
if args.end_freq != None:
|
||||
print "Set the end frequency to: " + user_friendly_freq(args.end_freq)
|
||||
print("Set the end frequency to: " + user_friendly_freq(args.end_freq))
|
||||
sendSerialData([CC_CMD_SET_END_FREQ,
|
||||
(args.end_freq & 0xff000000) >> 24,
|
||||
(args.end_freq & 0x00ff0000) >> 16,
|
||||
|
@ -572,7 +581,7 @@ if __name__ == "__main__":
|
|||
dataSend = dataSend + 1
|
||||
|
||||
if args.step_freq != None:
|
||||
print "Set the frequency step size to: " + user_friendly_freq(args.step_freq)
|
||||
print("Set the frequency step size to: " + user_friendly_freq(args.step_freq))
|
||||
sendSerialData([CC_CMD_SET_FREQ_STEP,
|
||||
(args.step_freq & 0xff000000) >> 24,
|
||||
(args.step_freq & 0x00ff0000) >> 16,
|
||||
|
@ -581,44 +590,44 @@ if __name__ == "__main__":
|
|||
dataSend = dataSend + 1
|
||||
|
||||
if args.intervall != None:
|
||||
print "Set the time intervall to %d milliseconds" % (args.intervall)
|
||||
print("Set the time intervall to %d milliseconds" % (args.intervall))
|
||||
sendSerialData([CC_CMD_SET_INTERVALL,
|
||||
(args.intervall & 0x0000ff00) >> 8,
|
||||
(args.intervall & 0x000000ff)])
|
||||
dataSend = dataSend + 1
|
||||
|
||||
if args.drive_str != None:
|
||||
print "Set the output drive strength to %d mA" % ((args.drive_str + 1) * 2)
|
||||
print("Set the output drive strength to %d mA" % ((args.drive_str + 1) * 2))
|
||||
sendSerialData([CC_CMD_SET_DRIVE_STRENGTH,
|
||||
args.drive_str])
|
||||
dataSend = dataSend + 1
|
||||
|
||||
if args.start_meas == True:
|
||||
print "\nStarting the measurement process..."
|
||||
print("\nStarting the measurement process...")
|
||||
sendSerialData([CC_CMD_START_MEASUREMENT])
|
||||
dataSend = dataSend + 1
|
||||
|
||||
if args.get_config == True and args.start_meas == False:
|
||||
print "Read configuration values..."
|
||||
print("Read configuration values...")
|
||||
sendSerialData([CC_CMD_GET_CONFIG])
|
||||
dataSend = dataSend + 1
|
||||
|
||||
if args.enable_clk != None:
|
||||
if args.enable_clk < 0 or args.enable_clk > 2:
|
||||
args.enable_clk = 0
|
||||
print "Enabling clock output channel: %d" % (args.enable_clk)
|
||||
print("Enabling clock output channel: %d" % (args.enable_clk))
|
||||
sendSerialData([CC_CMD_EN_CLK, args.enable_clk])
|
||||
dataSend = dataSend + 1
|
||||
|
||||
if args.disable_clk != None and args.enable_clk == None:
|
||||
if args.disable_clk < 0 or args.disable_clk > 2:
|
||||
args.disable_clk = 0
|
||||
print "Disabling clock output channel: %d" % (args.disable_clk)
|
||||
print("Disabling clock output channel: %d" % (args.disable_clk))
|
||||
sendSerialData([CC_CMD_DIS_CLK, args.disable_clk])
|
||||
dataSend = dataSend + 1
|
||||
|
||||
if args.save_config == True:
|
||||
print "Save default configuration values..."
|
||||
print("Save default configuration values...")
|
||||
sendSerialData([CC_CMD_SAV_DFLT])
|
||||
dataSend = dataSend + 1
|
||||
|
||||
|
@ -626,7 +635,7 @@ if __name__ == "__main__":
|
|||
plt.ion()
|
||||
|
||||
fig1, axarr = plt.subplots(3, sharex=True)
|
||||
fig1.canvas.set_window_title("SWR meter measurement results")
|
||||
fig1.suptitle("SWR meter measurement results")
|
||||
|
||||
update_graph()
|
||||
|
||||
|
@ -647,7 +656,7 @@ if __name__ == "__main__":
|
|||
pass
|
||||
|
||||
elif e[1] == MSG_TYPE_ANSWER_NOK:
|
||||
print "recv: NOT OK on %d" % (dataSend)
|
||||
print("recv: NOT OK on %d" % (dataSend))
|
||||
|
||||
elif e[1] == MSG_TYPE_MEAS_FREQ_INFO:
|
||||
#print "recv: FREQ INFO"
|
||||
|
@ -675,9 +684,9 @@ if __name__ == "__main__":
|
|||
elif e[1] == MSG_TYPE_CONFIG:
|
||||
#print "recv: CONFIG"
|
||||
if args.start_meas == True:
|
||||
print "\nConfiguration used for measurement:"
|
||||
print("\nConfiguration used for measurement:")
|
||||
else:
|
||||
print "\nConfiguration:"
|
||||
print("\nConfiguration:")
|
||||
start_freq = e[3][0] << 24
|
||||
start_freq += e[3][1] << 16
|
||||
start_freq += e[3][2] << 8
|
||||
|
@ -694,12 +703,12 @@ if __name__ == "__main__":
|
|||
intervall += e[3][13]
|
||||
drive_str = e[3][14]
|
||||
|
||||
print "start_freq = " + user_friendly_freq(start_freq)
|
||||
print "end_freq = " + user_friendly_freq(end_freq)
|
||||
print "step_freq = " + user_friendly_freq(step_freq)
|
||||
print "intervall = " + str(intervall) + " ms"
|
||||
print "drive_str = " + str((drive_str + 1) * 2) + " mA"
|
||||
print ""
|
||||
print("start_freq = " + user_friendly_freq(start_freq))
|
||||
print("end_freq = " + user_friendly_freq(end_freq))
|
||||
print("step_freq = " + user_friendly_freq(step_freq))
|
||||
print("intervall = " + str(intervall) + " ms")
|
||||
print("drive_str = " + str((drive_str + 1) * 2) + " mA")
|
||||
print("")
|
||||
|
||||
if args.start_meas == True and config_read == False:
|
||||
dataSend = dataSend + 1 + ((end_freq - start_freq) / step_freq)
|
||||
|
@ -708,7 +717,7 @@ if __name__ == "__main__":
|
|||
elif e[1] == MSG_TYPE_MEAS_END_INFO:
|
||||
#print "recv: END INFO"
|
||||
sys.stdout.write("\r100.00 % done \n")
|
||||
print ""
|
||||
print("")
|
||||
|
||||
#if (args.output_file != None or args.show_graph == True) and args.start_meas == True:
|
||||
#calc_data()
|
||||
|
@ -724,19 +733,19 @@ if __name__ == "__main__":
|
|||
FILE.write("%f;%f;%f;%f;%d;%d\n" % (meas_freq[j], m, meas_imp[j], i, meas_data[j][1], meas_data[j][2]))
|
||||
j = j + 1
|
||||
FILE.close()
|
||||
print "Output file " + args.output_file + " written."
|
||||
print("Output file " + args.output_file + " written.")
|
||||
|
||||
print "First minimum VSWR %0.6f found at freqency %s" % (min_vswr[0], user_friendly_freq(min_vswr[1]))
|
||||
print("First minimum VSWR %0.6f found at freqency %s" % (min_vswr[0], user_friendly_freq(min_vswr[1])))
|
||||
|
||||
##### show the graph
|
||||
if args.show_graph == True and args.start_meas == True:
|
||||
# TODO wait for close
|
||||
update_graph()
|
||||
print "Please close the window to exit the program."
|
||||
print("Please close the window to exit the program.")
|
||||
plt.show(block=True)
|
||||
|
||||
else:
|
||||
print "err: unknown type 0x%02x" % (e[1])
|
||||
print("err: unknown type 0x%02x" % (e[1]))
|
||||
break
|
||||
|
||||
thread_lock.acquire()
|
||||
|
@ -753,7 +762,7 @@ if __name__ == "__main__":
|
|||
timeout = timeout + 1
|
||||
|
||||
if timeout >= TIMEOUT_CNT_MAX:
|
||||
print "Timeout happened"
|
||||
print("Timeout happened")
|
||||
|
||||
# 5. stop data processing thread
|
||||
cc_stopReceiverThread()
|
||||
|
|
Loading…
Reference in a new issue