Commit graph

230 commits

Author SHA1 Message Date
DiSlord 76223f5e25 Merge branch 'master' of https://github.com/ttrftech/NanoVNA 2020-06-20 12:31:35 +03:00
DiSlord 10037eee7b Add hard fault handler for STM32 CPU (disabled by default)
It allow better search problems by use 'list' file and hard fault address (PC reg)
2020-06-20 12:12:38 +03:00
DiSlord a8f36a4c5d Add compact RTC library (only 500 bytes for all, default RTC lib req ~ 2kB)
For enable use external (LSE) clock generator need un comment in Makefile
#UDEFS+= -DVNA_USE_LSE
By default use internal (LSI) clock generator, but it stop then VNA power off
For enable use external (LSE) clock generator, need install 32.768kHz clock quartz on PC14 and PC15 pins, it allow clock run while power off

For enable use RTC in code uncomment in nanovna.h
#define __USE_RTC__
This enable command 'time'
usage: time [y|m|d|h|min|sec] 0-99
Example set 2020 year run 'time y 20'

Add show current time in version screen
Better use font size constants for all screen size
2020-06-20 12:07:38 +03:00
TT bc1b57c3f0 feat: add format quality factor 2020-06-20 08:08:21 +09:00
TT 64de4d5d87 fix: add wait in dump command 2020-06-16 08:22:18 +09:00
DiSlord 237a329226 Add sin_cos table for 6 or 12kHz offset for dsp
Add support direct clock for AIC3204 from si5351
Now possible made calibration and not reset old calibration data, just made another calibration (not need reset or disable correction).
  Open - Short calibration depend from self, need recalibrate it together.
  Load calibration possible made alone
  Isoln, Thru also depend from self, need recalibrate it together.
2020-06-04 20:26:06 +03:00
DiSlord dedae1ea82
Merge branch 'master' into master 2020-05-14 18:08:30 +03:00
TT d7c7d8faeb feat: add bandwidth command 2020-05-14 07:05:43 +09:00
TT fe7a1ac4de fix: keep freq mode in each save slot 2020-05-14 06:53:52 +09:00
DiSlord 2f7f2a2473 Fix AIC NADC to 1
Fix 300-900MHz gain to 50
2020-04-30 14:01:04 +03:00
DiSlord 23475a75c4 Add variable sweep point support 2020-04-29 14:32:40 +03:00
DiSlord 11ce58a9af Not use AUTO power for si5351
Apply gain only for all harmonic
Add variable offset table generation
2020-04-29 14:30:22 +03:00
DiSlord a2e205e25b Remove frequency table from properties (allow get less size)
Fix interpolation near harmonic change point (use extrapolate from prev or next 2 points)
2020-04-29 14:23:59 +03:00
DiSlord 987c0c2ed5 Separate apply CH0 and CH1 calibration (remove depend CH1 calibration from CH0)
Made CH measure only for selected traces (for calibration or external USB req measure all)
Not apply edelay for USB external or calibration
2020-04-29 14:07:07 +03:00
DiSlord 49b52213cf Change config and properties flash address definitions
Show BW settings at bottom of screen
2020-04-04 08:43:32 +03:00
DiSlord e09ee19646 Move bandwidth option from properties to config
Little fixes
2020-04-02 16:36:59 +03:00
DiSlord e6d680cd44 Not wait sweep end for apply bandwidth command
More size screen/font definitions
Prevent overflow on bigger POINTS_COUNT values
2020-04-01 00:36:43 +03:00
DiSlord 20649012df Little speedup and less size fft
Better support other size LCD and font
Fix CH1 unstable at begin sweep
2020-03-30 20:01:51 +03:00
DiSlord 59b9534a5c Set minimum calibration bandwidth as BANDWIDTH_100 (can be greater if manually set)
Need for speedup calibrate if need
2020-03-24 11:04:34 +03:00
DiSlord 2ed2f96f4a Size fixes
- bandwidth count stored in menu (less error on add new values)
- allow set any bandwidth count from command
- bandwidth command print bandwidth freq on apply
2020-03-21 21:58:51 +03:00
DiSlord ddf51987eb On calibration use max bandwidth setting 2020-03-21 20:23:59 +03:00
DiSlord 7b17e9cfa6 Add bandwidth command 2020-03-21 18:25:36 +03:00
DiSlord 4c8a476265 Size fixes:
accumerate_count not changed in sweep
2020-03-21 17:54:47 +03:00
DiSlord e837578586 Fix typo 2020-03-21 16:40:49 +03:00
DiSlord 22e4df1577 Little rework bandwidth:
- Not reset sweep on request
- Better menu response
- little DSP optimization

Faster i2c bus (now 600kHz, allow more faster add settings)
Add i2c command (disabled by default)
Little fix stat command
2020-03-21 16:15:03 +03:00
TT 1656342eeb feat: add bandwidth setting of detector 2020-03-21 21:03:08 +09:00
TT 0d407577f8 style: uniform code style and untabify 2020-03-21 09:33:33 +09:00
DiSlord 597c2c2958 Better solutiom of prev fixes (reload si5351 settings on sweep begin) 2020-03-15 16:02:22 +03:00
DiSlord 23c765b719 Fix very strange bug, on band 2
!!!!! Don`t understand why si5351 non stable on band 2 then change from band 3
It fixed if set before sweep one frequency from band 1 (for example 50MHz)
Possibly problem in tlv320aic3204_set_gain, call only si5351_set_frequency_with_offset not work

Little faster call command from shell

Fix interpolation if points < POINTS_COUNT
2020-03-15 14:14:52 +03:00
DiSlord 3eb8a4cfe9 Fix interpolation range if sweep_points!=source calibration points count
use sweep_points exept POINTS_COUNT on marker search and so

Now possible change sweep_points in process (for faster sweep)
2020-03-14 21:23:02 +03:00
DiSlord 45dfd7d970 Fix sweep if points < maximum (mot sweep if frequency[i] == 0)
Fix my tupo in extended scan command (not correctly parse point count)
2020-03-14 16:48:36 +03:00
DiSlord 8a11eaa764 Extend scan command, now in have additional input variable (optional), allow more faster get measured data
usage: scan {start(Hz)} {stop(Hz)} [points] [outmask]
[outmask] - optional, allow output measured data, its a mask (allow dec, hex, bin, oct)
0b001 - output frequency
0b010 - output CH0 data
0b100 - output CH1 data
Example:
'scan 1000000 5000000 101 0b111' - output data in format: freq ch0[0] ch0[1] ch1[0] ch1[1]
'scan 1000000 5000000 101 0b101' - output data in format: freq ch1[0] ch1[1]
'scan 1000000 5000000 101 0x7'   - output data as 0b111
2020-03-14 16:05:26 +03:00
DiSlord 922b66abdb Move offset variable to si5351.c (better use it as independent library)
Define and move constants in nanovna.h, and use it
Fix command 'marker' - display marker freq (not current freq)
2020-03-14 15:18:14 +03:00
DiSlord 88617a31fe In ili9341.c remove tabs, add palette mode blit function
In plot.c prepare for 8bit/pixel mode (test, allow increase cell buffer size by use 4 or 8bit/pixel mode, but not need for now)
main.c little change wait execute shell command in sweep thread
2020-03-13 22:42:28 +03:00
DiSlord 8bdb650212 Implement color command, allow change color settings in config (enabled bu default ENABLE_COLOR_COMMAND)
Usage: usage: color {id} {rgb24}
- Grid color: id = -3
- Menu bg color: id = -2
- Selected menu: id = -1
- Trace 1-4: id = 0..3
Color in hex RGB format (but possible any type input, dec, hex, bin. oct)
2020-03-12 21:43:35 +03:00
DiSlord 6f25d0d43f Remove Mutex use (CH_CFG_USE_MUTEXES = FALSE), now all Mutex depend functions run in sweep thread
It allow:
- reduce shell thread stack size
- more compact code
- fix some hardcoded scan command code, allow write better scan version
- run calibrate (not depend from pause sweep flag)

Rewrite uint32_t my_atoui(const char *p), now its allow read:
hex 0xaAbBcC1122
dec 12345678
bin 0b00011100
oct 0o12345678

Add some comments
2020-03-12 19:53:58 +03:00
DiSlord 04fb661b1a Add flag in config for sweep mode
#define FREQ_MODE_START_STOP    0x0
#define FREQ_MODE_CENTER_SPAN   0x1
Now sweep mode not defined from frequency0 > frequency1 or frequency0 < frequency1
frequency0 always < frequency1

All freq must get by use get_sweep_frequency(mode)

Revert Select CH0 reflect channel before set freq, add additional delay on 0 sweep point
2020-03-09 18:24:31 +03:00
DiSlord 77b5d0bcc8 Select CH0 reflect channel before set freq (in some rare cases dsp started but CH not ready)
Little code optimization
Add commented 600kHz I2C bus timings (work, give x1.5 speed, but need change DSP ready timings not by wait_count, need use chVTGetSystemTimeX() its better)
2020-03-08 22:48:36 +03:00
TT 6befd57bc1 fix: segv in sample command 2020-03-08 19:37:26 +09:00
DiSlord 45f04420cb Implement info command, move info_about[] to main.c
Command enabled by default: ENABLE_INFO_COMMAND
This feature not increase flash size
2020-03-08 08:32:38 +03:00
DiSlord fc6e090595 Add vbat_offset to config
Implement vbat_offset command (if defined ENABLE_VBAT_OFFSET_COMMAND)
Reduce code size
2020-03-07 23:37:39 +03:00
DiSlord bb7127fdd0 Remove variable, use speep_mode flag 2020-03-07 22:21:02 +03:00
DiSlord e896f32803 Replace function wait_dsp(delay) by definition:
DSP_START(delay)
//================================================
// Place some code thats need execute while delay
//================================================
DSP_WAIT_READY

Fix Band table description

Add power stabilization delay on sweep start
2020-03-07 20:57:43 +03:00
DiSlord 12d53738bc Revert some changes:
Start/stop generation feature (unstable on segment scan from CPU)
 Calibration on paused sweep (need more stack, need find better solution)
 Variable use optimization
2020-03-07 17:19:43 +03:00
DiSlord a43b6e3acc si5351.c and si5351.h
Cleanup and optimize  code
Add comments, fix definitions
Fix rounding errors
Fix band 1 stability

mcuconf.h
Set I2C bus clock to SYSCLK (more fast)
Apply 400kHz bus I2C clock timings for 8MHz and 48Mhz clock

main.c
Remove and reset some variables
Add separate sweep for calibration (allow calibrate if sweep paused)

Increase main thread stack (need for run calibrate, possibly need execute some commands in sweep threads for reduce stack usage)
2020-03-07 14:54:51 +03:00
DiSlord b77e1d6680 Big work around si5351 generator
Improve sweep speed about 60%
Stop generation on pause sweep
Remove all hack for si5351
Reduce code size
Fix integer overflow on big freq values

Additional
Change I2C

Others:
 move marker_tracking variable to ui config
 move some definition to correct place
 reduce tlv320aic3204 code size
 Speedup marker move from lever (BUTTON_REPEAT_TICKS = 625)

Need test stability
2020-03-05 22:36:44 +03:00
TT f1cc60e99e feat: add lever mode for electrical delay 2020-03-01 09:29:28 +09:00
TT 18c5ca9157 feat: add lever operation of electrical delay 2020-03-01 08:50:46 +09:00
DiSlord ccb3693516 Huge reduce flash usage (about 5k), remove cal_data and _frequencies properties from data section
Use void loadDefaultProps() for load default properties (default loaded also on error load from flash)
Move some constants to nanovna.h
2020-02-28 23:15:38 +03:00
DiSlord a164a5765a Disable HAL_USE_RTC usage (need for cmd_time)
Add ENABLE_TIME_COMMAND for enable cmd_time if need

Fix incorrect data on run cmd_scan cmd_data if Tansform enabled on NanoVNA (remove transform_domain() from sweep, add in front of plot_into_index in sweep thread)
Remove pause/run in reload (not need, command run vs CMD_WAIT_MUTEX flag)
2020-02-28 18:52:25 +03:00