major radio update and soapy

bug_fixes_integration_tx
meexmachina 2021-10-06 13:22:03 +03:00
rodzic b07f3c8ab9
commit 952ed8c26d
72 zmienionych plików z 1953 dodań i 549 usunięć

Wyświetl plik

@ -9,7 +9,7 @@ include_directories(${PROJECT_SOURCE_DIR}/src)
# ------------------------------------
# MAIN - Source files for main library
# ------------------------------------
set(SOURCES_LIB src/cariboulite_setup.c src/cariboulite_events.c)
set(SOURCES_LIB src/cariboulite_setup.c src/cariboulite_events.c src/cariboulite_radios.c)
# Add internal project dependencies
add_subdirectory(src/datatypes EXCLUDE_FROM_ALL)

Wyświetl plik

@ -340,12 +340,12 @@ CMakeFiles/cariboulite.dir/all: src/cariboulite_eeprom/CMakeFiles/cariboulite_ee
CMakeFiles/cariboulite.dir/all: src/zf_log/CMakeFiles/zf_log.dir/all
$(MAKE) $(MAKESILENT) -f CMakeFiles/cariboulite.dir/build.make CMakeFiles/cariboulite.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/cariboulite.dir/build.make CMakeFiles/cariboulite.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=14,15,16 "Built target cariboulite"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=14,15,16,17 "Built target cariboulite"
.PHONY : CMakeFiles/cariboulite.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/cariboulite.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 33
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 34
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/cariboulite.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 0
.PHONY : CMakeFiles/cariboulite.dir/rule
@ -378,12 +378,12 @@ CMakeFiles/cariboulite_app.dir/all: src/cariboulite_eeprom/CMakeFiles/cariboulit
CMakeFiles/cariboulite_app.dir/all: src/zf_log/CMakeFiles/zf_log.dir/all
$(MAKE) $(MAKESILENT) -f CMakeFiles/cariboulite_app.dir/build.make CMakeFiles/cariboulite_app.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/cariboulite_app.dir/build.make CMakeFiles/cariboulite_app.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=17,18 "Built target cariboulite_app"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=18,19 "Built target cariboulite_app"
.PHONY : CMakeFiles/cariboulite_app.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/cariboulite_app.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 35
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 36
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/cariboulite_app.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 0
.PHONY : CMakeFiles/cariboulite_app.dir/rule
@ -416,12 +416,12 @@ CMakeFiles/ice40programmer.dir/all: src/cariboulite_eeprom/CMakeFiles/cariboulit
CMakeFiles/ice40programmer.dir/all: src/zf_log/CMakeFiles/zf_log.dir/all
$(MAKE) $(MAKESILENT) -f CMakeFiles/ice40programmer.dir/build.make CMakeFiles/ice40programmer.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/ice40programmer.dir/build.make CMakeFiles/ice40programmer.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=28,29 "Built target ice40programmer"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=29,30 "Built target ice40programmer"
.PHONY : CMakeFiles/ice40programmer.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/ice40programmer.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 35
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 36
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ice40programmer.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 0
.PHONY : CMakeFiles/ice40programmer.dir/rule
@ -454,12 +454,12 @@ CMakeFiles/fpgacomm.dir/all: src/cariboulite_eeprom/CMakeFiles/cariboulite_eepro
CMakeFiles/fpgacomm.dir/all: src/zf_log/CMakeFiles/zf_log.dir/all
$(MAKE) $(MAKESILENT) -f CMakeFiles/fpgacomm.dir/build.make CMakeFiles/fpgacomm.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/fpgacomm.dir/build.make CMakeFiles/fpgacomm.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=26,27 "Built target fpgacomm"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=27,28 "Built target fpgacomm"
.PHONY : CMakeFiles/fpgacomm.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/fpgacomm.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 35
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 36
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/fpgacomm.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 0
.PHONY : CMakeFiles/fpgacomm.dir/rule
@ -497,7 +497,7 @@ CMakeFiles/SoapyCariboulite.dir/all: src/zf_log/CMakeFiles/zf_log.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/SoapyCariboulite.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 37
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 38
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/SoapyCariboulite.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles 0
.PHONY : CMakeFiles/SoapyCariboulite.dir/rule
@ -519,7 +519,7 @@ CMakeFiles/SoapyCariboulite.dir/clean:
src/datatypes/CMakeFiles/test_tsqueue.dir/all: src/datatypes/CMakeFiles/datatypes.dir/all
$(MAKE) $(MAKESILENT) -f src/datatypes/CMakeFiles/test_tsqueue.dir/build.make src/datatypes/CMakeFiles/test_tsqueue.dir/depend
$(MAKE) $(MAKESILENT) -f src/datatypes/CMakeFiles/test_tsqueue.dir/build.make src/datatypes/CMakeFiles/test_tsqueue.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=65,66 "Built target test_tsqueue"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=66,67 "Built target test_tsqueue"
.PHONY : src/datatypes/CMakeFiles/test_tsqueue.dir/all
# Build rule for subdir invocation for target.
@ -546,7 +546,7 @@ src/datatypes/CMakeFiles/test_tsqueue.dir/clean:
src/datatypes/CMakeFiles/datatypes.dir/all:
$(MAKE) $(MAKESILENT) -f src/datatypes/CMakeFiles/datatypes.dir/build.make src/datatypes/CMakeFiles/datatypes.dir/depend
$(MAKE) $(MAKESILENT) -f src/datatypes/CMakeFiles/datatypes.dir/build.make src/datatypes/CMakeFiles/datatypes.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=23,24,25 "Built target datatypes"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=24,25,26 "Built target datatypes"
.PHONY : src/datatypes/CMakeFiles/datatypes.dir/all
# Build rule for subdir invocation for target.
@ -573,7 +573,7 @@ src/datatypes/CMakeFiles/datatypes.dir/clean:
src/datatypes/CMakeFiles/test_tiny_list.dir/all: src/datatypes/CMakeFiles/datatypes.dir/all
$(MAKE) $(MAKESILENT) -f src/datatypes/CMakeFiles/test_tiny_list.dir/build.make src/datatypes/CMakeFiles/test_tiny_list.dir/depend
$(MAKE) $(MAKESILENT) -f src/datatypes/CMakeFiles/test_tiny_list.dir/build.make src/datatypes/CMakeFiles/test_tiny_list.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=63,64 "Built target test_tiny_list"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=64,65 "Built target test_tiny_list"
.PHONY : src/datatypes/CMakeFiles/test_tiny_list.dir/all
# Build rule for subdir invocation for target.
@ -600,7 +600,7 @@ src/datatypes/CMakeFiles/test_tiny_list.dir/clean:
src/ustimer/CMakeFiles/test_ustimer.dir/all: src/ustimer/CMakeFiles/ustimer.dir/all
$(MAKE) $(MAKESILENT) -f src/ustimer/CMakeFiles/test_ustimer.dir/build.make src/ustimer/CMakeFiles/test_ustimer.dir/depend
$(MAKE) $(MAKESILENT) -f src/ustimer/CMakeFiles/test_ustimer.dir/build.make src/ustimer/CMakeFiles/test_ustimer.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=67,68 "Built target test_ustimer"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=68,69 "Built target test_ustimer"
.PHONY : src/ustimer/CMakeFiles/test_ustimer.dir/all
# Build rule for subdir invocation for target.
@ -627,7 +627,7 @@ src/ustimer/CMakeFiles/test_ustimer.dir/clean:
src/ustimer/CMakeFiles/ustimer.dir/all:
$(MAKE) $(MAKESILENT) -f src/ustimer/CMakeFiles/ustimer.dir/build.make src/ustimer/CMakeFiles/ustimer.dir/depend
$(MAKE) $(MAKESILENT) -f src/ustimer/CMakeFiles/ustimer.dir/build.make src/ustimer/CMakeFiles/ustimer.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=69,70 "Built target ustimer"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=70,71 "Built target ustimer"
.PHONY : src/ustimer/CMakeFiles/ustimer.dir/all
# Build rule for subdir invocation for target.
@ -654,7 +654,7 @@ src/ustimer/CMakeFiles/ustimer.dir/clean:
src/caribou_fpga/CMakeFiles/test_caribou_fpga.dir/all:
$(MAKE) $(MAKESILENT) -f src/caribou_fpga/CMakeFiles/test_caribou_fpga.dir/build.make src/caribou_fpga/CMakeFiles/test_caribou_fpga.dir/depend
$(MAKE) $(MAKESILENT) -f src/caribou_fpga/CMakeFiles/test_caribou_fpga.dir/build.make src/caribou_fpga/CMakeFiles/test_caribou_fpga.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=46,47,48 "Built target test_caribou_fpga"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=47,48,49 "Built target test_caribou_fpga"
.PHONY : src/caribou_fpga/CMakeFiles/test_caribou_fpga.dir/all
# Build rule for subdir invocation for target.
@ -708,7 +708,7 @@ src/caribou_fpga/CMakeFiles/caribou_fpga.dir/clean:
src/at86rf215/CMakeFiles/test_at86rf215.dir/all:
$(MAKE) $(MAKESILENT) -f src/at86rf215/CMakeFiles/test_at86rf215.dir/build.make src/at86rf215/CMakeFiles/test_at86rf215.dir/depend
$(MAKE) $(MAKESILENT) -f src/at86rf215/CMakeFiles/test_at86rf215.dir/build.make src/at86rf215/CMakeFiles/test_at86rf215.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=40,41,42,43,44,45 "Built target test_at86rf215"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=41,42,43,44,45,46 "Built target test_at86rf215"
.PHONY : src/at86rf215/CMakeFiles/test_at86rf215.dir/all
# Build rule for subdir invocation for target.
@ -762,7 +762,7 @@ src/at86rf215/CMakeFiles/at86rf215.dir/clean:
src/caribou_smi/CMakeFiles/test_caribou_smi.dir/all:
$(MAKE) $(MAKESILENT) -f src/caribou_smi/CMakeFiles/test_caribou_smi.dir/build.make src/caribou_smi/CMakeFiles/test_caribou_smi.dir/depend
$(MAKE) $(MAKESILENT) -f src/caribou_smi/CMakeFiles/test_caribou_smi.dir/build.make src/caribou_smi/CMakeFiles/test_caribou_smi.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=49,50,51 "Built target test_caribou_smi"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=50,51,52 "Built target test_caribou_smi"
.PHONY : src/caribou_smi/CMakeFiles/test_caribou_smi.dir/all
# Build rule for subdir invocation for target.
@ -816,7 +816,7 @@ src/caribou_smi/CMakeFiles/caribou_smi.dir/clean:
src/latticeice40/CMakeFiles/latticeice40.dir/all:
$(MAKE) $(MAKESILENT) -f src/latticeice40/CMakeFiles/latticeice40.dir/build.make src/latticeice40/CMakeFiles/latticeice40.dir/depend
$(MAKE) $(MAKESILENT) -f src/latticeice40/CMakeFiles/latticeice40.dir/build.make src/latticeice40/CMakeFiles/latticeice40.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=36,37 "Built target latticeice40"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=37,38 "Built target latticeice40"
.PHONY : src/latticeice40/CMakeFiles/latticeice40.dir/all
# Build rule for subdir invocation for target.
@ -843,7 +843,7 @@ src/latticeice40/CMakeFiles/latticeice40.dir/clean:
src/io_utils/CMakeFiles/test_io_utils.dir/all: src/io_utils/CMakeFiles/io_utils.dir/all
$(MAKE) $(MAKESILENT) -f src/io_utils/CMakeFiles/test_io_utils.dir/build.make src/io_utils/CMakeFiles/test_io_utils.dir/depend
$(MAKE) $(MAKESILENT) -f src/io_utils/CMakeFiles/test_io_utils.dir/build.make src/io_utils/CMakeFiles/test_io_utils.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=58,59 "Built target test_io_utils"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=59,60 "Built target test_io_utils"
.PHONY : src/io_utils/CMakeFiles/test_io_utils.dir/all
# Build rule for subdir invocation for target.
@ -870,7 +870,7 @@ src/io_utils/CMakeFiles/test_io_utils.dir/clean:
src/io_utils/CMakeFiles/io_utils.dir/all:
$(MAKE) $(MAKESILENT) -f src/io_utils/CMakeFiles/io_utils.dir/build.make src/io_utils/CMakeFiles/io_utils.dir/depend
$(MAKE) $(MAKESILENT) -f src/io_utils/CMakeFiles/io_utils.dir/build.make src/io_utils/CMakeFiles/io_utils.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=30,31,32,33,34,35 "Built target io_utils"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=31,32,33,34,35,36 "Built target io_utils"
.PHONY : src/io_utils/CMakeFiles/io_utils.dir/all
# Build rule for subdir invocation for target.
@ -897,7 +897,7 @@ src/io_utils/CMakeFiles/io_utils.dir/clean:
src/rffc507x/CMakeFiles/test_rffc507x.dir/all:
$(MAKE) $(MAKESILENT) -f src/rffc507x/CMakeFiles/test_rffc507x.dir/build.make src/rffc507x/CMakeFiles/test_rffc507x.dir/depend
$(MAKE) $(MAKESILENT) -f src/rffc507x/CMakeFiles/test_rffc507x.dir/build.make src/rffc507x/CMakeFiles/test_rffc507x.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=60,61,62 "Built target test_rffc507x"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=61,62,63 "Built target test_rffc507x"
.PHONY : src/rffc507x/CMakeFiles/test_rffc507x.dir/all
# Build rule for subdir invocation for target.
@ -924,7 +924,7 @@ src/rffc507x/CMakeFiles/test_rffc507x.dir/clean:
src/rffc507x/CMakeFiles/rffc507x.dir/all:
$(MAKE) $(MAKESILENT) -f src/rffc507x/CMakeFiles/rffc507x.dir/build.make src/rffc507x/CMakeFiles/rffc507x.dir/depend
$(MAKE) $(MAKESILENT) -f src/rffc507x/CMakeFiles/rffc507x.dir/build.make src/rffc507x/CMakeFiles/rffc507x.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=38,39 "Built target rffc507x"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=39,40 "Built target rffc507x"
.PHONY : src/rffc507x/CMakeFiles/rffc507x.dir/all
# Build rule for subdir invocation for target.
@ -951,7 +951,7 @@ src/rffc507x/CMakeFiles/rffc507x.dir/clean:
src/cariboulite_config/CMakeFiles/cariboulite_config.dir/all:
$(MAKE) $(MAKESILENT) -f src/cariboulite_config/CMakeFiles/cariboulite_config.dir/build.make src/cariboulite_config/CMakeFiles/cariboulite_config.dir/depend
$(MAKE) $(MAKESILENT) -f src/cariboulite_config/CMakeFiles/cariboulite_config.dir/build.make src/cariboulite_config/CMakeFiles/cariboulite_config.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=19,20 "Built target cariboulite_config"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=20,21 "Built target cariboulite_config"
.PHONY : src/cariboulite_config/CMakeFiles/cariboulite_config.dir/all
# Build rule for subdir invocation for target.
@ -978,7 +978,7 @@ src/cariboulite_config/CMakeFiles/cariboulite_config.dir/clean:
src/cariboulite_config/CMakeFiles/test_cariboulite_config.dir/all:
$(MAKE) $(MAKESILENT) -f src/cariboulite_config/CMakeFiles/test_cariboulite_config.dir/build.make src/cariboulite_config/CMakeFiles/test_cariboulite_config.dir/depend
$(MAKE) $(MAKESILENT) -f src/cariboulite_config/CMakeFiles/test_cariboulite_config.dir/build.make src/cariboulite_config/CMakeFiles/test_cariboulite_config.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=52,53,54 "Built target test_cariboulite_config"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=53,54,55 "Built target test_cariboulite_config"
.PHONY : src/cariboulite_config/CMakeFiles/test_cariboulite_config.dir/all
# Build rule for subdir invocation for target.
@ -1005,7 +1005,7 @@ src/cariboulite_config/CMakeFiles/test_cariboulite_config.dir/clean:
src/cariboulite_eeprom/CMakeFiles/cariboulite_eeprom.dir/all:
$(MAKE) $(MAKESILENT) -f src/cariboulite_eeprom/CMakeFiles/cariboulite_eeprom.dir/build.make src/cariboulite_eeprom/CMakeFiles/cariboulite_eeprom.dir/depend
$(MAKE) $(MAKESILENT) -f src/cariboulite_eeprom/CMakeFiles/cariboulite_eeprom.dir/build.make src/cariboulite_eeprom/CMakeFiles/cariboulite_eeprom.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=21,22 "Built target cariboulite_eeprom"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=22,23 "Built target cariboulite_eeprom"
.PHONY : src/cariboulite_eeprom/CMakeFiles/cariboulite_eeprom.dir/all
# Build rule for subdir invocation for target.
@ -1032,7 +1032,7 @@ src/cariboulite_eeprom/CMakeFiles/cariboulite_eeprom.dir/clean:
src/cariboulite_eeprom/CMakeFiles/test_cariboulite_eeprom.dir/all:
$(MAKE) $(MAKESILENT) -f src/cariboulite_eeprom/CMakeFiles/test_cariboulite_eeprom.dir/build.make src/cariboulite_eeprom/CMakeFiles/test_cariboulite_eeprom.dir/depend
$(MAKE) $(MAKESILENT) -f src/cariboulite_eeprom/CMakeFiles/test_cariboulite_eeprom.dir/build.make src/cariboulite_eeprom/CMakeFiles/test_cariboulite_eeprom.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=55,56,57 "Built target test_cariboulite_eeprom"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=56,57,58 "Built target test_cariboulite_eeprom"
.PHONY : src/cariboulite_eeprom/CMakeFiles/test_cariboulite_eeprom.dir/all
# Build rule for subdir invocation for target.
@ -1059,7 +1059,7 @@ src/cariboulite_eeprom/CMakeFiles/test_cariboulite_eeprom.dir/clean:
src/zf_log/CMakeFiles/zf_log.dir/all:
$(MAKE) $(MAKESILENT) -f src/zf_log/CMakeFiles/zf_log.dir/build.make src/zf_log/CMakeFiles/zf_log.dir/depend
$(MAKE) $(MAKESILENT) -f src/zf_log/CMakeFiles/zf_log.dir/build.make src/zf_log/CMakeFiles/zf_log.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=71,72 "Built target zf_log"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=72,73 "Built target zf_log"
.PHONY : src/zf_log/CMakeFiles/zf_log.dir/all
# Build rule for subdir invocation for target.

Wyświetl plik

@ -82,7 +82,15 @@ ustimer/ustimer.h
cariboulite_config.h
../src/cariboulite_config/cariboulite_config.h
../src/cariboulite_radios.h
cariboulite_config/cariboulite_config.h
../src/cariboulite_config/cariboulite_config.h
at86rf215/at86rf215.h
../src/at86rf215/at86rf215.h
../src/cariboulite_setup.h
cariboulite_radios.h
../src/cariboulite_radios.h
latticeice40/latticeice40.h
../src/latticeice40/latticeice40.h
caribou_fpga/caribou_fpga.h
@ -209,6 +217,8 @@ time.h
-
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.cpp
math.h
-
Cariboulite.hpp
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
cariboulite_config/cariboulite_config_default.h
@ -241,18 +251,6 @@ atomic
-
cariboulite_setup.h
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/cariboulite_setup.h
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/CaribouliteStream.cpp
Cariboulite.hpp
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
cariboulite_config/cariboulite_config_default.h
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/cariboulite_config/cariboulite_config_default.h
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/SoapyCariboulite.cpp
SoapySDR/Device.hpp
-
SoapySDR/Registry.hpp
-
Cariboulite.hpp
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
cariboulite_radios.h
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/cariboulite_radios.h

Wyświetl plik

@ -10,6 +10,7 @@ CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o
../src/caribou_smi/caribou_smi.h
../src/cariboulite_config/cariboulite_config.h
../src/cariboulite_config/cariboulite_config_default.h
../src/cariboulite_radios.h
../src/cariboulite_setup.h
../src/io_utils/io_utils.h
../src/io_utils/io_utils_spi.h
@ -29,6 +30,7 @@ CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o
../src/caribou_smi/caribou_smi.h
../src/cariboulite_config/cariboulite_config.h
../src/cariboulite_config/cariboulite_config_default.h
../src/cariboulite_radios.h
../src/cariboulite_setup.h
../src/io_utils/io_utils.h
../src/io_utils/io_utils_spi.h
@ -47,6 +49,7 @@ CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o
../src/caribou_fpga/caribou_fpga.h
../src/caribou_smi/caribou_smi.h
../src/cariboulite_config/cariboulite_config.h
../src/cariboulite_radios.h
../src/cariboulite_setup.h
../src/io_utils/io_utils.h
../src/io_utils/io_utils_spi.h

Wyświetl plik

@ -9,6 +9,7 @@ CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o: ../src/caribou_
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o: ../src/caribou_smi/caribou_smi.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o: ../src/cariboulite_config/cariboulite_config.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o: ../src/cariboulite_config/cariboulite_config_default.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o: ../src/cariboulite_radios.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o: ../src/cariboulite_setup.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o: ../src/io_utils/io_utils.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/Cariboulite.cpp.o: ../src/io_utils/io_utils_spi.h
@ -28,6 +29,7 @@ CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o: ../src/ca
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o: ../src/caribou_smi/caribou_smi.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o: ../src/cariboulite_config/cariboulite_config.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o: ../src/cariboulite_config/cariboulite_config_default.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o: ../src/cariboulite_radios.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o: ../src/cariboulite_setup.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o: ../src/io_utils/io_utils.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/CaribouliteStream.cpp.o: ../src/io_utils/io_utils_spi.h
@ -46,6 +48,7 @@ CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o: ../src/at8
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o: ../src/caribou_fpga/caribou_fpga.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o: ../src/caribou_smi/caribou_smi.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o: ../src/cariboulite_config/cariboulite_config.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o: ../src/cariboulite_radios.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o: ../src/cariboulite_setup.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o: ../src/io_utils/io_utils.h
CMakeFiles/SoapyCariboulite.dir/src/soapy_api/SoapyCariboulite.cpp.o: ../src/io_utils/io_utils_spi.h

Wyświetl plik

@ -6,6 +6,162 @@
#IncludeRegexTransform:
../src/at86rf215/at86rf215.h
at86rf215_common.h
../src/at86rf215/at86rf215_common.h
at86rf215_radio.h
../src/at86rf215/at86rf215_radio.h
../src/at86rf215/at86rf215_common.h
stdio.h
-
stdint.h
-
math.h
-
string.h
-
stdbool.h
-
stdio.h
-
io_utils/io_utils.h
../src/at86rf215/io_utils/io_utils.h
io_utils/io_utils_spi.h
../src/at86rf215/io_utils/io_utils_spi.h
at86rf215_regs.h
../src/at86rf215/at86rf215_regs.h
../src/at86rf215/at86rf215_radio.h
stdio.h
-
stdint.h
-
at86rf215_common.h
../src/at86rf215/at86rf215_common.h
../src/at86rf215/at86rf215_regs.h
../src/caribou_fpga/caribou_fpga.h
stdio.h
-
stdint.h
-
io_utils/io_utils.h
../src/caribou_fpga/io_utils/io_utils.h
io_utils/io_utils_spi.h
../src/caribou_fpga/io_utils/io_utils_spi.h
../src/caribou_smi/caribou_smi.h
pthread.h
-
stdint.h
-
../src/io_utils/io_utils.h
stdio.h
-
string.h
-
stdint.h
-
stdlib.h
-
pigpio/pigpio.h
../src/io_utils/pigpio/pigpio.h
../src/io_utils/io_utils_spi.h
stdio.h
-
stdint.h
-
pthread.h
-
io_utils.h
../src/io_utils/io_utils.h
../src/io_utils/io_utils_sys_info.h
stdio.h
-
string.h
-
stdint.h
-
stdlib.h
-
unistd.h
-
fcntl.h
-
signal.h
-
string.h
-
sys/ioctl.h
-
sys/mman.h
-
../src/io_utils/pigpio/pigpio.h
stddef.h
-
stdint.h
-
pthread.h
-
stdio.h
-
pigpio.h
-
stdio.h
-
pigpio.h
../src/io_utils/pigpio/pigpio.h
stdio.h
-
pigpio.h
-
stdio.h
-
pigpio.h
-
stdio.h
-
pigpio.h
-
../src/latticeice40/latticeice40.h
stdint.h
-
linux/types.h
-
io_utils/io_utils.h
../src/latticeice40/io_utils/io_utils.h
io_utils/io_utils_spi.h
../src/latticeice40/io_utils/io_utils_spi.h
../src/rffc507x/rffc507x.h
stdio.h
-
stdint.h
-
io_utils/io_utils.h
../src/rffc507x/io_utils/io_utils.h
io_utils/io_utils_spi.h
../src/rffc507x/io_utils/io_utils_spi.h
../src/ustimer/ustimer.h
stdlib.h
-
unistd.h
-
stdio.h
-
signal.h
-
time.h
-
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
@ -78,6 +234,18 @@ io_utils/io_utils_sys_info.h
ustimer/ustimer.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/ustimer/ustimer.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config_default.h
cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.c
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/zf_log/zf_log.h
cariboulite_config/cariboulite_config_default.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config_default.h
cariboulite_events.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
caribou_smi/caribou_smi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_smi/caribou_smi.h
@ -90,6 +258,32 @@ stdint.h
time.h
-
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.c
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/zf_log/zf_log.h
stdio.h
-
stdlib.h
-
unistd.h
-
fcntl.h
-
string.h
-
linux/random.h
-
sys/ioctl.h
-
cariboulite_radios.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
cariboulite_config/cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config.h
at86rf215/at86rf215.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.c
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/zf_log/zf_log.h
@ -103,6 +297,8 @@ cariboulite_fpga_firmware.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_fpga_firmware.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.h
cariboulite_radios.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
latticeice40/latticeice40.h
/home/pi/projects/cariboulite/software/libcariboulite/src/latticeice40/latticeice40.h
caribou_fpga/caribou_fpga.h

Wyświetl plik

@ -5,6 +5,7 @@ set(CMAKE_DEPENDS_LANGUAGES
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_C
"/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.c" "/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o"
"/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.c" "/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o"
"/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.c" "/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o"
)
set(CMAKE_C_COMPILER_ID "GNU")

Wyświetl plik

@ -102,19 +102,34 @@ CMakeFiles/cariboulite.dir/src/cariboulite_events.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/cariboulite.dir/src/cariboulite_events.c.s"
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.c -o CMakeFiles/cariboulite.dir/src/cariboulite_events.c.s
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: CMakeFiles/cariboulite.dir/flags.make
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/cariboulite_radios.c
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o"
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o -c /home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.c
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.i"
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.c > CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.i
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.s"
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.c -o CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.s
# Object files for target cariboulite
cariboulite_OBJECTS = \
"CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o" \
"CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o"
"CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o" \
"CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o"
# External object files for target cariboulite
cariboulite_EXTERNAL_OBJECTS =
libcariboulite.a: CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o
libcariboulite.a: CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o
libcariboulite.a: CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o
libcariboulite.a: CMakeFiles/cariboulite.dir/build.make
libcariboulite.a: CMakeFiles/cariboulite.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C static library libcariboulite.a"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/pi/projects/cariboulite/software/libcariboulite/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking C static library libcariboulite.a"
$(CMAKE_COMMAND) -P CMakeFiles/cariboulite.dir/cmake_clean_target.cmake
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/cariboulite.dir/link.txt --verbose=$(VERBOSE)

Wyświetl plik

@ -1,5 +1,6 @@
file(REMOVE_RECURSE
"CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o"
"CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o"
"CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o"
"libcariboulite.a"
"libcariboulite.pdb"

Wyświetl plik

@ -20,6 +20,24 @@ CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.c
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
/home/pi/projects/cariboulite/software/libcariboulite/src/zf_log/zf_log.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o
../src/caribou_fpga/caribou_fpga.h
../src/caribou_smi/caribou_smi.h
../src/io_utils/io_utils.h
../src/io_utils/io_utils_spi.h
../src/io_utils/io_utils_sys_info.h
../src/io_utils/pigpio/pigpio.h
../src/latticeice40/latticeice40.h
../src/rffc507x/rffc507x.h
../src/ustimer/ustimer.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.c
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
/home/pi/projects/cariboulite/software/libcariboulite/src/zf_log/zf_log.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
@ -30,6 +48,7 @@ CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_fpga_firmware.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.c
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.h
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils.h

Wyświetl plik

@ -20,6 +20,24 @@ CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o: ../src/cariboulite_events
CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o: ../src/cariboulite_events.h
CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o: ../src/zf_log/zf_log.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/caribou_fpga/caribou_fpga.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/caribou_smi/caribou_smi.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/io_utils/io_utils.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/io_utils/io_utils_spi.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/io_utils/io_utils_sys_info.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/io_utils/pigpio/pigpio.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/latticeice40/latticeice40.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/rffc507x/rffc507x.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/ustimer/ustimer.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/at86rf215/at86rf215.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/at86rf215/at86rf215_common.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/at86rf215/at86rf215_radio.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/at86rf215/at86rf215_regs.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/cariboulite_config/cariboulite_config.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/cariboulite_radios.c
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/cariboulite_radios.h
CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o: ../src/zf_log/zf_log.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/at86rf215/at86rf215.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/at86rf215/at86rf215_common.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/at86rf215/at86rf215_radio.h
@ -29,6 +47,7 @@ CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/caribou_smi/caribou
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/cariboulite_config/cariboulite_config.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/cariboulite_events.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/cariboulite_fpga_firmware.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/cariboulite_radios.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/cariboulite_setup.c
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/cariboulite_setup.h
CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o: ../src/io_utils/io_utils.h

Wyświetl plik

@ -1,2 +1,2 @@
/usr/bin/ar qc libcariboulite.a CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o
/usr/bin/ar qc libcariboulite.a CMakeFiles/cariboulite.dir/src/cariboulite_setup.c.o CMakeFiles/cariboulite.dir/src/cariboulite_events.c.o CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o
/usr/bin/ranlib libcariboulite.a

Wyświetl plik

@ -1,4 +1,5 @@
CMAKE_PROGRESS_1 = 14
CMAKE_PROGRESS_2 = 15
CMAKE_PROGRESS_3 = 16
CMAKE_PROGRESS_4 = 17

Wyświetl plik

@ -67,6 +67,8 @@ cariboulite_events.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
cariboulite.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite.h
cariboulite_eeprom/cariboulite_eeprom.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_eeprom/cariboulite_eeprom.h
stdio.h
-
signal.h
@ -104,11 +106,23 @@ ustimer/ustimer.h
cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_eeprom/cariboulite_eeprom.h
stdint.h
-
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
caribou_smi/caribou_smi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_smi/caribou_smi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
cariboulite_config/cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config.h
at86rf215/at86rf215.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.h
cariboulite_radios.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
latticeice40/latticeice40.h
/home/pi/projects/cariboulite/software/libcariboulite/src/latticeice40/latticeice40.h
caribou_fpga/caribou_fpga.h

Wyświetl plik

@ -12,7 +12,9 @@ CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config_default.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_eeprom/cariboulite_eeprom.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.h
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils.h
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils_spi.h

Wyświetl plik

@ -11,7 +11,9 @@ CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/cariboulite.c
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/cariboulite.h
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/cariboulite_config/cariboulite_config.h
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/cariboulite_config/cariboulite_config_default.h
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/cariboulite_eeprom/cariboulite_eeprom.h
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/cariboulite_events.h
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/cariboulite_radios.h
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/cariboulite_setup.h
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/io_utils/io_utils.h
CMakeFiles/cariboulite_app.dir/src/cariboulite.c.o: ../src/io_utils/io_utils_spi.h

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 17
CMAKE_PROGRESS_2 = 18
CMAKE_PROGRESS_1 = 18
CMAKE_PROGRESS_2 = 19

Wyświetl plik

@ -84,7 +84,15 @@ ustimer/ustimer.h
cariboulite_config.h
../src/cariboulite_config/cariboulite_config.h
../src/cariboulite_radios.h
cariboulite_config/cariboulite_config.h
../src/cariboulite_config/cariboulite_config.h
at86rf215/at86rf215.h
../src/at86rf215/at86rf215.h
../src/cariboulite_setup.h
cariboulite_radios.h
../src/cariboulite_radios.h
latticeice40/latticeice40.h
../src/latticeice40/latticeice40.h
caribou_fpga/caribou_fpga.h

Wyświetl plik

@ -11,6 +11,7 @@ CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o
../src/caribou_smi/caribou_smi.h
../src/cariboulite_config/cariboulite_config.h
../src/cariboulite_config/cariboulite_config_default.h
../src/cariboulite_radios.h
../src/cariboulite_setup.h
../src/io_utils/io_utils.h
../src/io_utils/io_utils_spi.h

Wyświetl plik

@ -10,6 +10,7 @@ CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o: ../src/caribou_fpga/caribou_fpg
CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o: ../src/caribou_smi/caribou_smi.h
CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o: ../src/cariboulite_config/cariboulite_config.h
CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o: ../src/cariboulite_config/cariboulite_config_default.h
CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o: ../src/cariboulite_radios.h
CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o: ../src/cariboulite_setup.h
CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o: ../src/io_utils/io_utils.h
CMakeFiles/fpgacomm.dir/test/fpga_comm_test.c.o: ../src/io_utils/io_utils_spi.h

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 26
CMAKE_PROGRESS_2 = 27
CMAKE_PROGRESS_1 = 27
CMAKE_PROGRESS_2 = 28

Wyświetl plik

@ -84,7 +84,15 @@ ustimer/ustimer.h
cariboulite_config.h
../src/cariboulite_config/cariboulite_config.h
../src/cariboulite_radios.h
cariboulite_config/cariboulite_config.h
../src/cariboulite_config/cariboulite_config.h
at86rf215/at86rf215.h
../src/at86rf215/at86rf215.h
../src/cariboulite_setup.h
cariboulite_radios.h
../src/cariboulite_radios.h
latticeice40/latticeice40.h
../src/latticeice40/latticeice40.h
caribou_fpga/caribou_fpga.h

Wyświetl plik

@ -11,6 +11,7 @@ CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o
../src/caribou_smi/caribou_smi.h
../src/cariboulite_config/cariboulite_config.h
../src/cariboulite_config/cariboulite_config_default.h
../src/cariboulite_radios.h
../src/cariboulite_setup.h
../src/io_utils/io_utils.h
../src/io_utils/io_utils_spi.h

Wyświetl plik

@ -10,6 +10,7 @@ CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o: ../src/caribou_fpga/ca
CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o: ../src/caribou_smi/caribou_smi.h
CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o: ../src/cariboulite_config/cariboulite_config.h
CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o: ../src/cariboulite_config/cariboulite_config_default.h
CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o: ../src/cariboulite_radios.h
CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o: ../src/cariboulite_setup.h
CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o: ../src/io_utils/io_utils.h
CMakeFiles/ice40programmer.dir/test/ice40_programmer.c.o: ../src/io_utils/io_utils_spi.h

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 28
CMAKE_PROGRESS_2 = 29
CMAKE_PROGRESS_1 = 29
CMAKE_PROGRESS_2 = 30

Wyświetl plik

@ -567,6 +567,33 @@ src/cariboulite_events.c.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/cariboulite.dir/build.make CMakeFiles/cariboulite.dir/src/cariboulite_events.c.s
.PHONY : src/cariboulite_events.c.s
src/cariboulite_radios.o: src/cariboulite_radios.c.o
.PHONY : src/cariboulite_radios.o
# target to build an object file
src/cariboulite_radios.c.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/cariboulite.dir/build.make CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.o
.PHONY : src/cariboulite_radios.c.o
src/cariboulite_radios.i: src/cariboulite_radios.c.i
.PHONY : src/cariboulite_radios.i
# target to preprocess a source file
src/cariboulite_radios.c.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/cariboulite.dir/build.make CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.i
.PHONY : src/cariboulite_radios.c.i
src/cariboulite_radios.s: src/cariboulite_radios.c.s
.PHONY : src/cariboulite_radios.s
# target to generate assembly for a file
src/cariboulite_radios.c.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/cariboulite.dir/build.make CMakeFiles/cariboulite.dir/src/cariboulite_radios.c.s
.PHONY : src/cariboulite_radios.c.s
src/cariboulite_setup.o: src/cariboulite_setup.c.o
.PHONY : src/cariboulite_setup.o
@ -773,6 +800,9 @@ help:
@echo "... src/cariboulite_events.o"
@echo "... src/cariboulite_events.i"
@echo "... src/cariboulite_events.s"
@echo "... src/cariboulite_radios.o"
@echo "... src/cariboulite_radios.i"
@echo "... src/cariboulite_radios.s"
@echo "... src/cariboulite_setup.o"
@echo "... src/cariboulite_setup.i"
@echo "... src/cariboulite_setup.s"

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -88,6 +88,32 @@ at86rf215_common.h
at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_baseband.c
stdint.h
-
math.h
-
string.h
-
stdbool.h
-
stdio.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/zf_log/zf_log.h
io_utils/io_utils.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils.h
io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils_spi.h
at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
at86rf215_baseband.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_baseband.h
at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_baseband.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
stdio.h
-
@ -108,6 +134,36 @@ io_utils/io_utils_spi.h
at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_events.c
stdio.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/zf_log/zf_log.h
at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.c
stdint.h
-
math.h
-
string.h
-
stdbool.h
-
stdio.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/zf_log/zf_log.h
io_utils/io_utils.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils.h
io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils_spi.h
at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
stdio.h
-

Wyświetl plik

@ -1,7 +1,7 @@
CMAKE_PROGRESS_1 = 40
CMAKE_PROGRESS_2 = 41
CMAKE_PROGRESS_3 = 42
CMAKE_PROGRESS_4 = 43
CMAKE_PROGRESS_5 = 44
CMAKE_PROGRESS_6 = 45
CMAKE_PROGRESS_1 = 41
CMAKE_PROGRESS_2 = 42
CMAKE_PROGRESS_3 = 43
CMAKE_PROGRESS_4 = 44
CMAKE_PROGRESS_5 = 45
CMAKE_PROGRESS_6 = 46

Wyświetl plik

@ -1,4 +1,4 @@
CMAKE_PROGRESS_1 = 46
CMAKE_PROGRESS_2 = 47
CMAKE_PROGRESS_3 = 48
CMAKE_PROGRESS_1 = 47
CMAKE_PROGRESS_2 = 48
CMAKE_PROGRESS_3 = 49

Wyświetl plik

@ -1,4 +1,4 @@
CMAKE_PROGRESS_1 = 49
CMAKE_PROGRESS_2 = 50
CMAKE_PROGRESS_3 = 51
CMAKE_PROGRESS_1 = 50
CMAKE_PROGRESS_2 = 51
CMAKE_PROGRESS_3 = 52

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 19
CMAKE_PROGRESS_2 = 20
CMAKE_PROGRESS_1 = 20
CMAKE_PROGRESS_2 = 21

Wyświetl plik

@ -1,4 +1,4 @@
CMAKE_PROGRESS_1 = 52
CMAKE_PROGRESS_2 = 53
CMAKE_PROGRESS_3 = 54
CMAKE_PROGRESS_1 = 53
CMAKE_PROGRESS_2 = 54
CMAKE_PROGRESS_3 = 55

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 21
CMAKE_PROGRESS_2 = 22
CMAKE_PROGRESS_1 = 22
CMAKE_PROGRESS_2 = 23

Wyświetl plik

@ -1,4 +1,4 @@
CMAKE_PROGRESS_1 = 55
CMAKE_PROGRESS_2 = 56
CMAKE_PROGRESS_3 = 57
CMAKE_PROGRESS_1 = 56
CMAKE_PROGRESS_2 = 57
CMAKE_PROGRESS_3 = 58

Wyświetl plik

@ -1,4 +1,4 @@
CMAKE_PROGRESS_1 = 23
CMAKE_PROGRESS_2 = 24
CMAKE_PROGRESS_3 = 25
CMAKE_PROGRESS_1 = 24
CMAKE_PROGRESS_2 = 25
CMAKE_PROGRESS_3 = 26

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 63
CMAKE_PROGRESS_2 = 64
CMAKE_PROGRESS_1 = 64
CMAKE_PROGRESS_2 = 65

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 65
CMAKE_PROGRESS_2 = 66
CMAKE_PROGRESS_1 = 66
CMAKE_PROGRESS_2 = 67

Wyświetl plik

@ -1,7 +1,7 @@
CMAKE_PROGRESS_1 = 30
CMAKE_PROGRESS_2 = 31
CMAKE_PROGRESS_3 = 32
CMAKE_PROGRESS_4 = 33
CMAKE_PROGRESS_5 = 34
CMAKE_PROGRESS_6 = 35
CMAKE_PROGRESS_1 = 31
CMAKE_PROGRESS_2 = 32
CMAKE_PROGRESS_3 = 33
CMAKE_PROGRESS_4 = 34
CMAKE_PROGRESS_5 = 35
CMAKE_PROGRESS_6 = 36

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 58
CMAKE_PROGRESS_2 = 59
CMAKE_PROGRESS_1 = 59
CMAKE_PROGRESS_2 = 60

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 36
CMAKE_PROGRESS_2 = 37
CMAKE_PROGRESS_1 = 37
CMAKE_PROGRESS_2 = 38

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 38
CMAKE_PROGRESS_2 = 39
CMAKE_PROGRESS_1 = 39
CMAKE_PROGRESS_2 = 40

Wyświetl plik

@ -1,4 +1,4 @@
CMAKE_PROGRESS_1 = 60
CMAKE_PROGRESS_2 = 61
CMAKE_PROGRESS_3 = 62
CMAKE_PROGRESS_1 = 61
CMAKE_PROGRESS_2 = 62
CMAKE_PROGRESS_3 = 63

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 67
CMAKE_PROGRESS_2 = 68
CMAKE_PROGRESS_1 = 68
CMAKE_PROGRESS_2 = 69

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 69
CMAKE_PROGRESS_2 = 70
CMAKE_PROGRESS_1 = 70
CMAKE_PROGRESS_2 = 71

Wyświetl plik

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 71
CMAKE_PROGRESS_2 = 72
CMAKE_PROGRESS_1 = 72
CMAKE_PROGRESS_2 = 73

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -528,6 +528,34 @@ void at86rf215_setup_iq_radio_continues_tx (at86rf215_st* dev, at86rf215_rf_chan
// to 0, the transmission stops once the current PSDU transmission is completed
}
void at86rf215_setup_iq_radio_dac_value_override_no_freq (at86rf215_st* dev,
at86rf215_rf_channel_en ch,
uint8_t tx_power)
{
at86rf215_radio_state_cmd_en state = at86rf215_radio_get_state(dev, ch);
if (state != at86rf215_radio_state_cmd_trx_off)
{
at86rf215_radio_set_state(dev, ch, at86rf215_radio_state_cmd_trx_off);
}
at86rf215_radio_set_state(dev, ch, at86rf215_radio_state_cmd_tx_prep);
at86rf215_radio_tx_ctrl_st tx_config =
{
.pa_ramping_time = at86rf215_radio_tx_pa_ramp_32usec,
.current_reduction = at86rf215_radio_pa_current_reduction_0ma,
.tx_power = tx_power,
.analog_bw = at86rf215_radio_tx_cut_off_80khz,
.digital_bw = at86rf215_radio_rx_f_cut_half_fs,
.fs = at86rf215_radio_rx_sample_rate_4000khz,
.direct_modulation = 0,
};
at86rf215_radio_setup_tx_ctrl(dev, ch, &tx_config);
at86rf215_radio_set_tx_dac_input_iq(dev, ch, 1, 0x7E, 1, 0x3F);
at86rf215_radio_set_state(dev, ch, at86rf215_radio_state_cmd_tx);
}
void at86rf215_setup_iq_radio_dac_value_override (at86rf215_st* dev,
at86rf215_rf_channel_en ch,
uint32_t freq_hz,

Wyświetl plik

@ -31,6 +31,9 @@ void at86rf215_setup_iq_radio_continues_tx (at86rf215_st* dev, at86rf215_rf_chan
void at86rf215_setup_iq_radio_dac_value_override (at86rf215_st* dev, at86rf215_rf_channel_en ch,
uint32_t freq_hz,
uint8_t tx_power );
void at86rf215_setup_iq_radio_dac_value_override_no_freq (at86rf215_st* dev,
at86rf215_rf_channel_en ch,
uint8_t tx_power);
int64_t at86rf215_setup_channel ( at86rf215_st* dev, at86rf215_rf_channel_en ch, uint32_t freq_hz );
#ifdef __cplusplus

Wyświetl plik

@ -85,6 +85,8 @@ at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_baseband.c
stdint.h

Wyświetl plik

@ -56,61 +56,11 @@ stdio.h
pigpio.h
-
../../zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.c
stdint.h
-
math.h
-
string.h
-
stdbool.h
-
stdio.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/zf_log/zf_log.h
at86rf215.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
io_utils/io_utils.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils.h
io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils_spi.h
at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_baseband.c
stdint.h
-
math.h
-
string.h
-
stdbool.h
-
stdio.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/zf_log/zf_log.h
io_utils/io_utils.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils.h
io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils_spi.h
at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
at86rf215_baseband.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_baseband.h
at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_baseband.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
stdio.h
@ -132,36 +82,6 @@ io_utils/io_utils_spi.h
at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_events.c
stdio.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/zf_log/zf_log.h
at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.c
stdint.h
-
math.h
-
string.h
-
stdbool.h
-
stdio.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/zf_log/zf_log.h
io_utils/io_utils.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils.h
io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/io_utils/io_utils_spi.h
at86rf215_radio.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_radio.h
stdio.h
-

Wyświetl plik

@ -58,6 +58,34 @@ int test_at86rf215_read_chip_vn_pn(at86rf215_st* dev)
printf("TEST:AT86RF215:VERSIONS:PASS=%d\n", pass);
printf("TEST:AT86RF215:VERSIONS:INFO=The component PN is %s (0x%02X), Version %d\n", pn_st, pn, vn);
at86rf215_set_clock_output(dev, at86rf215_drive_current_2ma, at86rf215_clock_out_freq_1mhz);
printf("Clock output 1MHz@2mA... Press enter to stop\n");
getchar();
at86rf215_set_clock_output(dev, at86rf215_drive_current_4ma, at86rf215_clock_out_freq_1mhz);
printf("Clock output 1MHz@4mA... Press enter to stop\n");
getchar();
at86rf215_set_clock_output(dev, at86rf215_drive_current_6ma, at86rf215_clock_out_freq_1mhz);
printf("Clock output 1MHz@6mA... Press enter to stop\n");
getchar();
at86rf215_set_clock_output(dev, at86rf215_drive_current_8ma, at86rf215_clock_out_freq_1mhz);
printf("Clock output 1MHz@8mA... Press enter to stop\n");
getchar();
/*
at86rf215_clock_out_freq_26mhz = 1,
at86rf215_clock_out_freq_32mhz = 2,
at86rf215_clock_out_freq_16mhz = 3,
at86rf215_clock_out_freq_8mhz = 4,
at86rf215_clock_out_freq_4mhz = 5,
at86rf215_clock_out_freq_2mhz = 6,
at86rf215_clock_out_freq_1mhz = 7,
*/
at86rf215_set_clock_output(dev, at86rf215_drive_current_2ma, at86rf215_clock_out_freq_off);
return pass;
}
@ -161,7 +189,7 @@ int test_at86rf215_continues_iq_loopback (at86rf215_st* dev, at86rf215_rf_channe
#define TEST_VERSIONS 1
#define TEST_FREQ_SWEEP 0
#define TEST_IQ_RX_WIND 0
#define TEST_IQ_LB_WIND 1
#define TEST_IQ_LB_WIND 0
// -----------------------------------------------------------------------------------------
// MAIN

Wyświetl plik

@ -59,12 +59,12 @@ pigpio.h
../../zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/caribou_fpga.c
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/zf_log/zf_log.h
stdio.h
-
string.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/zf_log/zf_log.h
caribou_fpga.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/caribou_fpga.h

Wyświetl plik

@ -56,18 +56,6 @@ stdio.h
pigpio.h
-
../../zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/caribou_fpga.c
stdio.h
-
string.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/zf_log/zf_log.h
caribou_fpga.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/caribou_fpga.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/caribou_fpga.h
stdio.h
-
@ -78,3 +66,9 @@ io_utils/io_utils.h
io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/test_caribou_fpga.c
stdio.h
-
caribou_fpga.h
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/caribou_fpga.h

Wyświetl plik

@ -31,7 +31,7 @@ int main ()
printf("Hello from CaribouFPGA!\n");
// Init GPIOs and set FPGA on reset
io_utils_setup();
io_utils_setup(NULL);
// Init spi
io_utils_spi_init(&io_spi_dev);

Wyświetl plik

@ -6,6 +6,7 @@
#include "cariboulite_setup.h"
#include "cariboulite_events.h"
#include "cariboulite.h"
#include "cariboulite_eeprom/cariboulite_eeprom.h"
#include <stdio.h>
#include <signal.h>
@ -46,6 +47,8 @@ int sighandler(int signum)
return 0;
}
cariboulite_eeprom_st ee = { .i2c_address = 0x50, .eeprom_type = eeprom_type_24c32,};
//=================================================
int main(int argc, char *argv[])
{
@ -56,22 +59,37 @@ int main(int argc, char *argv[])
if (cariboulite_init_driver(&cariboulite_sys, sighandler, NULL)!=0)
{
ZF_LOGE("driver init failed, terminating...");
cariboulite_eeprom_init(&ee);
return -1;
}
// dummy loop
double freq = 30e6;
double step = 10e6;
double freq = 1089e6;
double step = 0.1e6;
rffc507x_calibrate(&cariboulite_sys.mixer);
sleep(1);
while (program_running)
{
double set_freq = freq;
cariboulite_setup_frequency(&cariboulite_sys,
/*cariboulite_setup_frequency(&cariboulite_sys,
cariboulite_channel_6g,
cariboulite_channel_dir_rx,
cariboulite_channel_dir_tx,
&set_freq);
*/
/*caribou_fpga_set_io_ctrl_mode (&cariboulite_sys.fpga, 0, caribou_fpga_io_ctrl_rfm_tx_lowpass);
rffc507x_set_frequency(&cariboulite_sys.mixer, set_freq);
rffc507x_device_status_st stat = {0};
rffc507x_readback_status(&cariboulite_sys.mixer, NULL, &stat);
rffc507x_print_stat(&stat);
*/
//sleep(1);
freq += step;
if (freq > 6000e6) freq = 30e6;
sleep(1);
//if (freq > 45e6) freq = 30e6;
//io_utils_usleep(200000);
getchar();
}
// close the driver and release resources

Wyświetl plik

@ -0,0 +1,797 @@
#define ZF_LOG_LEVEL ZF_LOG_VERBOSE
#define ZF_LOG_DEF_SRCLOC ZF_LOG_SRCLOC_LONG
#define ZF_LOG_TAG "CARIBOULITE Radios"
#include "zf_log/zf_log.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <linux/random.h>
#include <sys/ioctl.h>
#include "cariboulite_radios.h"
#define GET_RADIO_PTR(radio,chan) ((chan)==cariboulite_channel_s1g?&((radio)->radio_sub1g):&((radio)->radio_6g))
#define GET_CH(rad_ch) ((rad_ch)==cariboulite_channel_s1g?at86rf215_rf_channel_900mhz:at86rf215_rf_channel_2400mhz)
//======================================================================
typedef struct {
int bit_count; /* number of bits of entropy in data */
int byte_count; /* number of bytes of data in array */
unsigned char buf[1];
} entropy_t;
static int add_entropy(uint8_t byte)
{
int rand_fid = open("/dev/urandom", O_RDWR);
if (rand_fid != 0)
{
// error opening device
ZF_LOGE("Opening /dev/urandom device file failed");
return -1;
}
entropy_t ent = {
.bit_count = 8,
.byte_count = 1,
.buf = {byte},
};
if (ioctl(rand_fid, RNDADDENTROPY, &ent) != 0)
{
ZF_LOGE("IOCTL to /dev/urandom device file failed");
}
if (close(rand_fid) !=0 )
{
ZF_LOGE("Closing /dev/urandom device file failed");
return -1;
}
return 0;
}
//======================================================================
int cariboulite_init_radios(cariboulite_radios_st* radios, cariboulite_st *sys)
{
memset (radios, 0, sizeof(cariboulite_radios_st));
// Sub-1GHz
radios->radio_sub1g.cariboulite_sys = sys;
radios->radio_sub1g.active = true;
radios->radio_sub1g.channel_direction = cariboulite_channel_dir_rx;
radios->radio_sub1g.type = cariboulite_channel_s1g;
radios->radio_sub1g.cw_output = false;
radios->radio_sub1g.lo_output = false;
// Wide band channel
radios->radio_6g.cariboulite_sys = sys;
radios->radio_6g.active = true;
radios->radio_6g.channel_direction = cariboulite_channel_dir_rx;
radios->radio_6g.type = cariboulite_channel_6g;
radios->radio_6g.cw_output = false;
radios->radio_6g.lo_output = false;
cariboulite_sync_radio_information(radios);
}
//======================================================================
int cariboulite_dispose_radios(cariboulite_radios_st* radios)
{
radios->radio_sub1g.active = false;
radios->radio_6g.active = false;
cariboulite_radio_state_st* rad_s1g = GET_RADIO_PTR(radios,cariboulite_channel_s1g);
cariboulite_radio_state_st* rad_6g = GET_RADIO_PTR(radios,cariboulite_channel_6g);
at86rf215_radio_set_state( &rad_s1g->cariboulite_sys->modem,
GET_CH(cariboulite_channel_s1g),
at86rf215_radio_state_cmd_trx_off);
rad_s1g->state = at86rf215_radio_state_cmd_trx_off;
at86rf215_radio_set_state( &rad_6g->cariboulite_sys->modem,
GET_CH(cariboulite_channel_6g),
at86rf215_radio_state_cmd_trx_off);
rad_6g->state = at86rf215_radio_state_cmd_trx_off;
caribou_fpga_set_io_ctrl_mode (&rad_6g->cariboulite_sys->fpga, 0, caribou_fpga_io_ctrl_rfm_low_power);
}
//======================================================================
int cariboulite_sync_radio_information(cariboulite_radios_st* radios)
{
cariboulite_get_mod_state (radios, cariboulite_channel_s1g, NULL);
cariboulite_get_mod_state (radios, cariboulite_channel_6g, NULL);
cariboulite_get_rx_gain_control(radios, cariboulite_channel_s1g, NULL, NULL);
cariboulite_get_rx_gain_control(radios, cariboulite_channel_6g, NULL, NULL);
cariboulite_get_rx_bandwidth(radios, cariboulite_channel_s1g, NULL);
cariboulite_get_rx_bandwidth(radios, cariboulite_channel_6g, NULL);
cariboulite_get_tx_power(radios, cariboulite_channel_s1g, NULL);
cariboulite_get_tx_power(radios, cariboulite_channel_6g, NULL);
cariboulite_get_rssi(radios, cariboulite_channel_s1g, NULL);
cariboulite_get_rssi(radios, cariboulite_channel_6g, NULL);
cariboulite_get_energy_det(radios, cariboulite_channel_s1g, NULL);
cariboulite_get_energy_det(radios, cariboulite_channel_6g, NULL);
}
//======================================================================
int cariboulite_get_mod_state ( cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_state_cmd_en *state)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
rad->state = at86rf215_radio_get_state(&rad->cariboulite_sys->modem, GET_CH(channel));
if (state) *state = rad->state;
return 0;
}
//======================================================================
int cariboulite_get_mod_intertupts (cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_irq_st **irq_table)
{
at86rf215_irq_st irq = {0};
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_get_irqs(&rad->cariboulite_sys->modem, &irq, 0);
if (channel == cariboulite_channel_s1g)
{
memcpy (&rad->interrupts, &irq.radio09, sizeof(at86rf215_radio_irq_st));
if (irq_table) *irq_table = &irq.radio09;
}
else
{
memcpy (&rad->interrupts, &irq.radio24, sizeof(at86rf215_radio_irq_st));
if (irq_table) *irq_table = &irq.radio24;
}
return 0;
}
//======================================================================
int cariboulite_set_rx_gain_control(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
bool rx_agc_on,
int rx_gain_value_db)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
int control_gain_val = (int)roundf((float)(rx_gain_value_db) / 3.0f);
if (control_gain_val < 0) control_gain_val = 0;
if (control_gain_val > 23) control_gain_val = 23;
at86rf215_radio_agc_ctrl_st rx_gain_control =
{
.agc_measure_source_not_filtered = 1,
.avg = at86rf215_radio_agc_averaging_32,
.reset_cmd = 0,
.freeze_cmd = 0,
.enable_cmd = rx_agc_on,
.att = at86rf215_radio_agc_relative_atten_21_db,
.gain_control_word = control_gain_val,
};
at86rf215_radio_setup_agc(&rad->cariboulite_sys->modem, GET_CH(channel), &rx_gain_control);
rad->rx_agc_on = rx_agc_on;
rad->rx_gain_value_db = rx_gain_value_db;
return 0;
}
//======================================================================
int cariboulite_get_rx_gain_control(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
bool *rx_agc_on,
int *rx_gain_value_db)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_radio_agc_ctrl_st agc_ctrl = {0};
at86rf215_radio_get_agc(&rad->cariboulite_sys->modem, GET_CH(channel), &agc_ctrl);
rad->rx_agc_on = agc_ctrl.enable_cmd;
rad->rx_gain_value_db = agc_ctrl.gain_control_word * 3;
if (rx_agc_on) *rx_agc_on = rad->rx_agc_on;
if (rx_gain_value_db) *rx_gain_value_db = rad->rx_gain_value_db;
return 0;
}
//======================================================================
int cariboulite_get_rx_gain_limits(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
int *rx_min_gain_value_db,
int *rx_max_gain_value_db,
int *rx_gain_value_resolution_db)
{
if (rx_min_gain_value_db) *rx_min_gain_value_db = 0;
if (rx_max_gain_value_db) *rx_max_gain_value_db = 23*3;
if (rx_gain_value_resolution_db) *rx_gain_value_resolution_db = 3;
return 0;
}
//======================================================================
int cariboulite_set_rx_bandwidth(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_rx_bw_en rx_bw)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_radio_set_rx_bw_samp_st cfg =
{
.inverter_sign_if = 0,
.shift_if_freq = 0, // A value of one configures the receiver to shift the IF frequency
// by factor of 1.25. This is useful to place the image frequency according
// to channel scheme.
.bw = rx_bw,
.fcut = rad->rx_fcut, // keep the same
.fs = rad->rx_fs, // keep the same
};
at86rf215_radio_set_rx_bandwidth_sampling(&rad->cariboulite_sys->modem, GET_CH(channel), &cfg);
rad->rx_bw = rx_bw;
return 0;
}
//======================================================================
int cariboulite_get_rx_bandwidth(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_rx_bw_en *rx_bw)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_radio_set_rx_bw_samp_st cfg = {0};
at86rf215_radio_get_rx_bandwidth_sampling(&rad->cariboulite_sys->modem, GET_CH(channel), &cfg);
rad->rx_bw = cfg.bw;
rad->rx_fcut = cfg.fcut;
rad->rx_fs = cfg.fs;
if (rx_bw) *rx_bw = rad->rx_bw;
return 0;
}
//======================================================================
int cariboulite_set_rx_samp_cutoff(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_sample_rate_en rx_sample_rate,
at86rf215_radio_f_cut_en rx_cutoff)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_radio_set_rx_bw_samp_st cfg =
{
.inverter_sign_if = 0,
.shift_if_freq = 0, // A value of one configures the receiver to shift the IF frequency
// by factor of 1.25. This is useful to place the image frequency according
// to channel scheme.
.bw = rad->rx_bw, // keep the same
.fcut = rx_cutoff,
.fs = rx_sample_rate,
};
at86rf215_radio_set_rx_bandwidth_sampling(&rad->cariboulite_sys->modem, GET_CH(channel), &cfg);
rad->rx_fs = rx_sample_rate;
rad->rx_fcut = rx_cutoff;
return 0;
}
//======================================================================
int cariboulite_get_rx_samp_cutoff(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_sample_rate_en *rx_sample_rate,
at86rf215_radio_f_cut_en *rx_cutoff)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
cariboulite_get_rx_bandwidth(radios, channel, NULL);
if (rx_sample_rate) *rx_sample_rate = rad->rx_fs;
if (rx_cutoff) *rx_cutoff = rad->rx_fcut;
return 0;
}
//======================================================================
int cariboulite_set_tx_power(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
int tx_power_dbm)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
if (tx_power_dbm < -18) tx_power_dbm = -18;
if (tx_power_dbm > 13) tx_power_dbm = 13;
int tx_power_ctrl = 18 + tx_power_dbm;
at86rf215_radio_tx_ctrl_st cfg =
{
.pa_ramping_time = at86rf215_radio_tx_pa_ramp_16usec,
.current_reduction = at86rf215_radio_pa_current_reduction_0ma, // we can use this to gain some more
// granularity with the tx gain control
.tx_power = tx_power_ctrl,
.analog_bw = rad->tx_bw, // same as before
.digital_bw = rad->tx_fcut, // same as before
.fs = rad->tx_fs, // same as before
.direct_modulation = 0,
};
at86rf215_radio_setup_tx_ctrl(&rad->cariboulite_sys->modem, GET_CH(channel), &cfg);
rad->tx_power = tx_power_dbm;
return 0;
}
//======================================================================
int cariboulite_get_tx_power(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
int *tx_power_dbm)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_radio_tx_ctrl_st cfg = {0};
at86rf215_radio_get_tx_ctrl(&rad->cariboulite_sys->modem, GET_CH(channel), &cfg);
rad->tx_power = cfg.tx_power - 18;
rad->tx_bw = cfg.analog_bw;
rad->tx_fcut = cfg.digital_bw;
rad->tx_fs = cfg.fs;
if (tx_power_dbm) *tx_power_dbm = rad->tx_power;
return 0;
}
//======================================================================
int cariboulite_set_tx_bandwidth(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_tx_cut_off_en tx_bw)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_radio_tx_ctrl_st cfg =
{
.pa_ramping_time = at86rf215_radio_tx_pa_ramp_16usec,
.current_reduction = at86rf215_radio_pa_current_reduction_0ma, // we can use this to gain some more
// granularity with the tx gain control
.tx_power = 18 + rad->tx_power, // same as before
.analog_bw = tx_bw,
.digital_bw = rad->tx_fcut, // same as before
.fs = rad->tx_fs, // same as before
.direct_modulation = 0,
};
at86rf215_radio_setup_tx_ctrl(&rad->cariboulite_sys->modem, GET_CH(channel), &cfg);
rad->tx_bw = tx_bw;
return 0;
}
//======================================================================
int cariboulite_get_tx_bandwidth(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_tx_cut_off_en *tx_bw)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
cariboulite_get_tx_power(radios, channel, NULL);
if (tx_bw) *tx_bw = rad->tx_bw;
return 0;
}
//======================================================================
int cariboulite_set_tx_samp_cutoff(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_sample_rate_en tx_sample_rate,
at86rf215_radio_f_cut_en tx_cutoff)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_radio_tx_ctrl_st cfg =
{
.pa_ramping_time = at86rf215_radio_tx_pa_ramp_16usec,
.current_reduction = at86rf215_radio_pa_current_reduction_0ma, // we can use this to gain some more
// granularity with the tx gain control
.tx_power = 18 + rad->tx_power, // same as before
.analog_bw = rad->tx_bw, // same as before
.digital_bw = tx_cutoff,
.fs = tx_sample_rate,
.direct_modulation = 0,
};
at86rf215_radio_setup_tx_ctrl(&rad->cariboulite_sys->modem, GET_CH(channel), &cfg);
rad->tx_fcut = tx_cutoff;
rad->tx_fs = tx_sample_rate;
return 0;
}
//======================================================================
int cariboulite_get_tx_samp_cutoff(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_sample_rate_en *tx_sample_rate,
at86rf215_radio_f_cut_en *rx_cutoff)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
cariboulite_get_tx_power(radios, channel, NULL);
if (tx_sample_rate) *tx_sample_rate = rad->tx_fs;
if (rx_cutoff) *rx_cutoff = rad->tx_fcut;
return 0;
}
//======================================================================
int cariboulite_get_rssi(cariboulite_radios_st* radios, cariboulite_channel_en channel, float *rssi_dbm)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
float rssi = at86rf215_radio_get_rssi_dbm(&rad->cariboulite_sys->modem, GET_CH(channel));
if (rssi >= -127.0 && rssi <= -4) // register only valid values
{
rad->rx_rssi = rssi;
if (rssi_dbm) *rssi_dbm = rssi;
return 0;
}
if (rssi_dbm) *rssi_dbm = rad->rx_rssi;
return -1;
}
//======================================================================
int cariboulite_get_energy_det(cariboulite_radios_st* radios, cariboulite_channel_en channel, float *energy_det_val)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
at86rf215_radio_energy_detection_st det = {0};
at86rf215_radio_get_energy_detection(&rad->cariboulite_sys->modem, GET_CH(channel), &det);
if (det.energy_detection_value >= -127.0 && det.energy_detection_value <= -4) // register only valid values
{
rad->rx_energy_detection_value = det.energy_detection_value;
if (energy_det_val) *energy_det_val = rad->rx_energy_detection_value;
return 0;
}
if (energy_det_val) *energy_det_val = rad->rx_energy_detection_value;
return -1;
}
//======================================================================
int cariboulite_get_rand_val(cariboulite_radios_st* radios, cariboulite_channel_en channel, uint8_t *rnd)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
rad->random_value = at86rf215_radio_get_random_value(&rad->cariboulite_sys->modem, GET_CH(channel));
if (rnd) *rnd = rad->random_value;
add_entropy(rad->random_value);
return 0;
}
//=================================================
#define CARIBOULITE_MIN_MIX (20.0e6) // 30
#define CARIBOULITE_MAX_MIX (6000.0e6) // 6000
#define CARIBOULITE_MIN_LO (85.0e6)
#define CARIBOULITE_MAX_LO (4200.0e6)
#define CARIBOULITE_2G4_MIN (2380.0e6) // 2400
#define CARIBOULITE_2G4_MAX (2495.0e6) // 2483.5
#define CARIBOULITE_S1G_MIN1 (389.5e6)
#define CARIBOULITE_S1G_MAX1 (510.0e6)
#define CARIBOULITE_S1G_MIN2 (779.0e6)
#define CARIBOULITE_S1G_MAX2 (1020.0e6)
typedef enum
{
conversion_dir_none = 0,
conversion_dir_up = 1,
conversion_dir_down = 2,
} conversion_dir_en;
//=================================================
bool cariboulite_wait_for_lock( cariboulite_radio_state_st* rad, bool *mod, bool *mix, int retries)
{
bool mix_lock = true, mod_lock = true;
if (mix)
{
rffc507x_device_status_st stat = {0};
int relock_retries = retries;
do
{
rffc507x_readback_status(&rad->cariboulite_sys->mixer, NULL, &stat);
rffc507x_print_stat(&stat);
if (!stat.pll_lock) rffc507x_relock(&rad->cariboulite_sys->mixer);
} while (!stat.pll_lock && relock_retries--);
*mix = stat.pll_lock;
mix_lock = (bool)stat.pll_lock;
}
if (mod)
{
at86rf215_radio_pll_ctrl_st cfg = {0};
int relock_retries = retries;
do
{
at86rf215_radio_get_pll_ctrl(&rad->cariboulite_sys->modem, at86rf215_rf_channel_900mhz, &cfg);
} while (!cfg.pll_locked && relock_retries--);
*mod = cfg.pll_locked;
mod_lock = (bool)cfg.pll_locked;
}
return mix_lock && mod_lock;
}
//=================================================
int cariboulite_set_frequency( cariboulite_radios_st* radios,
cariboulite_channel_en channel,
bool break_before_make,
double *freq)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
double f_rf = *freq;
double modem_act_freq = 0.0;
double lo_act_freq = 0.0;
double act_freq = 0.0;
int error = 0;
conversion_dir_en conversion_direction = conversion_dir_none;
//--------------------------------------------------------------------------------
// SUB 1GHZ CONFIGURATION
//--------------------------------------------------------------------------------
if (channel == cariboulite_channel_s1g)
{
if ( (f_rf >= CARIBOULITE_S1G_MIN1 && f_rf <= CARIBOULITE_S1G_MAX1) ||
(f_rf >= CARIBOULITE_S1G_MIN2 && f_rf <= CARIBOULITE_S1G_MAX2) )
{
// setup modem frequency <= f_rf
if (break_before_make)
{
at86rf215_radio_set_state( &rad->cariboulite_sys->modem,
at86rf215_rf_channel_900mhz,
at86rf215_radio_state_cmd_trx_off);
rad->state = at86rf215_radio_state_cmd_trx_off;
}
modem_act_freq = at86rf215_setup_channel (&rad->cariboulite_sys->modem,
at86rf215_rf_channel_900mhz,
(uint32_t)f_rf);
at86rf215_radio_pll_ctrl_st cfg = {0};
at86rf215_radio_get_pll_ctrl(&rad->cariboulite_sys->modem, at86rf215_rf_channel_900mhz, &cfg);
rad->if_frequency = 0;
rad->lo_pll_locked = 1;
rad->modem_pll_locked = cfg.pll_locked;
rad->if_frequency = modem_act_freq;
rad->actual_rf_frequency = rad->if_frequency;
rad->requested_rf_frequency = f_rf;
rad->rf_frequency_error = rad->actual_rf_frequency - rad->requested_rf_frequency;
// return actual frequency
*freq = rad->actual_rf_frequency;
}
else
{
// error - unsupported frequency for S1G channel
ZF_LOGE("unsupported frequency for S1G channel - %.2f Hz", f_rf);
error = 1;
}
}
//--------------------------------------------------------------------------------
// 30-6GHz CONFIGURATION
//--------------------------------------------------------------------------------
else if (channel == cariboulite_channel_6g)
{
// Changing the frequency may sometimes need to break RX / TX
if (break_before_make)
{
// make sure that during the transition the modem is not transmitting and then
// verify that the FE is in low power mode
at86rf215_radio_set_state( &rad->cariboulite_sys->modem,
at86rf215_rf_channel_2400mhz,
at86rf215_radio_state_cmd_trx_off);
rad->state = at86rf215_radio_state_cmd_trx_off;
caribou_fpga_set_io_ctrl_mode (&rad->cariboulite_sys->fpga, 0, caribou_fpga_io_ctrl_rfm_low_power);
}
// Decide the conversion direction and IF/RF/LO
//-------------------------------------
if (f_rf >= CARIBOULITE_MIN_MIX &&
f_rf <= (CARIBOULITE_2G4_MIN) )
{
// region #1 - UP CONVERSION
// setup modem frequency <= CARIBOULITE_2G4_MAX
modem_act_freq = (double)at86rf215_setup_channel (&rad->cariboulite_sys->modem,
at86rf215_rf_channel_2400mhz,
(uint32_t)(CARIBOULITE_2G4_MAX));
// setup mixer LO according to the actual modem frequency
lo_act_freq = rffc507x_set_frequency(&rad->cariboulite_sys->mixer, modem_act_freq + f_rf);
act_freq = modem_act_freq - lo_act_freq;
// setup fpga RFFE <= upconvert (tx / rx)
conversion_direction = conversion_dir_up;
}
//-------------------------------------
else if ( f_rf >= CARIBOULITE_2G4_MIN &&
f_rf <= CARIBOULITE_2G4_MAX )
{
// region #2 - bypass mode
// setup modem frequency <= f_rf
modem_act_freq = (double)at86rf215_setup_channel (&rad->cariboulite_sys->modem,
at86rf215_rf_channel_2400mhz,
(uint32_t)f_rf);
lo_act_freq = 0;
act_freq = modem_act_freq;
conversion_direction = conversion_dir_none;
}
//-------------------------------------
else if ( f_rf > (CARIBOULITE_2G4_MAX) &&
f_rf <= CARIBOULITE_MAX_MIX )
{
// region #3 - DOWN-CONVERSION
// setup modem frequency <= CARIBOULITE_2G4_MIN
modem_act_freq = (double)at86rf215_setup_channel (&rad->cariboulite_sys->modem,
at86rf215_rf_channel_2400mhz,
(uint32_t)(CARIBOULITE_2G4_MIN));
// setup mixer LO to according to actual modem frequency
lo_act_freq = rffc507x_set_frequency(&rad->cariboulite_sys->mixer, f_rf + modem_act_freq);
act_freq = modem_act_freq + lo_act_freq;
// setup fpga RFFE <= downconvert (tx / rx)
conversion_direction = conversion_dir_down;
}
//-------------------------------------
else
{
// error - unsupported frequency for 6G channel
ZF_LOGE("unsupported frequency for 6GHz channel - %.2f Hz", f_rf);
error = 1;
}
// Setup the frontend
// This step takes the current radio direction of communication
// and the down/up conversion decision made before to setup the RF front-end
switch (conversion_direction)
{
case conversion_dir_up:
if (rad->channel_direction == cariboulite_channel_dir_rx)
{
caribou_fpga_set_io_ctrl_mode (&rad->cariboulite_sys->fpga, 0, caribou_fpga_io_ctrl_rfm_rx_lowpass);
}
else if (rad->channel_direction == cariboulite_channel_dir_tx)
{
caribou_fpga_set_io_ctrl_mode (&rad->cariboulite_sys->fpga, 0, caribou_fpga_io_ctrl_rfm_tx_lowpass);
}
break;
case conversion_dir_none:
caribou_fpga_set_io_ctrl_mode (&rad->cariboulite_sys->fpga, 0, caribou_fpga_io_ctrl_rfm_bypass);
break;
case conversion_dir_down:
if (rad->channel_direction == cariboulite_channel_dir_rx)
{
caribou_fpga_set_io_ctrl_mode (&rad->cariboulite_sys->fpga, 0, caribou_fpga_io_ctrl_rfm_rx_hipass);
}
else if (rad->channel_direction == cariboulite_channel_dir_tx)
{
caribou_fpga_set_io_ctrl_mode (&rad->cariboulite_sys->fpga, 0, caribou_fpga_io_ctrl_rfm_tx_hipass);
}
break;
default: break;
}
// Make sure the LO and the IF PLLs are locked
if (!cariboulite_wait_for_lock(rad, &rad->modem_pll_locked, &rad->lo_pll_locked, 100))
{
if (!rad->lo_pll_locked) ZF_LOGE("PLL MIXER failed to lock LO frequency (%.2f Hz)", lo_act_freq);
if (!rad->modem_pll_locked) ZF_LOGE("PLL MODEM failed to lock IF frequency (%.2f Hz)", modem_act_freq);
error = 3;
}
// Update the actual frequencies
rad->lo_frequency = lo_act_freq;
rad->if_frequency = modem_act_freq;
rad->actual_rf_frequency = act_freq;
rad->requested_rf_frequency = f_rf;
rad->rf_frequency_error = rad->actual_rf_frequency - rad->requested_rf_frequency;
if (freq) *freq = act_freq;
// activate the channel according to the new configuration
cariboulite_activate_channel(radios, channel);
}
if (error == 0)
{
ZF_LOGD("Frequency setting CH: %d, Wanted: %.2f Hz, Set: %.2f Hz (MOD: %.2f, MIX: %.2f)",
channel, f_rf, act_freq, modem_act_freq, lo_act_freq);
}
return -error;
}
//======================================================================
int cariboulite_get_frequency( cariboulite_radios_st* radios,
cariboulite_channel_en channel,
double *freq, double *lo, double* i_f)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
if (freq) *freq = rad->actual_rf_frequency;
if (lo) *lo = rad->lo_frequency;
if (i_f) *i_f = rad->if_frequency;
}
//======================================================================
int cariboulite_activate_channel(cariboulite_radios_st* radios,
cariboulite_channel_en channel)
{
cariboulite_radio_state_st* rad = GET_RADIO_PTR(radios,channel);
// if the channel state is active, turn it off before reactivating
if (rad->state != at86rf215_radio_state_cmd_trx_off)
{
at86rf215_radio_set_state( &rad->cariboulite_sys->modem,
GET_CH(channel),
at86rf215_radio_state_cmd_trx_off);
rad->state = at86rf215_radio_state_cmd_trx_off;
}
// Activate the channel according to the configurations
// RX on both channels looks the same
if (rad->channel_direction == cariboulite_channel_dir_rx)
{
at86rf215_radio_set_state( &rad->cariboulite_sys->modem,
GET_CH(channel),
at86rf215_radio_state_cmd_rx);
}
else if (rad->channel_direction == cariboulite_channel_dir_tx)
{
// if its an LO frequency output from the mixer - no need for modem output
// LO applicable only to the channel with the mixer
if (rad->lo_output && channel == cariboulite_channel_6g)
{
// here we need to configure lo bypass on the mixer
rffc507x_output_lo(&rad->cariboulite_sys->mixer, 1);
}
// otherwise we need the modem
else
{
// make sure the mixer doesn't bypass the lo
rffc507x_output_lo(&rad->cariboulite_sys->mixer, 0);
// TX preparation state - both channels need
at86rf215_radio_set_state(&rad->cariboulite_sys->modem,
GET_CH(channel),
at86rf215_radio_state_cmd_tx_prep);
cariboulite_set_tx_bandwidth(radios, channel,
rad->cw_output?at86rf215_radio_tx_cut_off_80khz:rad->tx_bw);
// CW output - constant I/Q values override
at86rf215_radio_set_tx_dac_input_iq(&rad->cariboulite_sys->modem,
GET_CH(channel),
rad->cw_output, 0x7E,
rad->cw_output, 0x3F);
// transition to state TX
at86rf215_radio_set_state(&rad->cariboulite_sys->modem,
GET_CH(channel),
at86rf215_radio_state_cmd_tx);
}
}
return 0;
}
//======================================================================
int cariboulite_setup_frequency_old( cariboulite_st *sys,
cariboulite_channel_en ch,
cariboulite_channel_dir_en dir,
double *freq)
{
/*// Activate the modem - this should be outside
if (dir == 0)
{
at86rf215_radio_set_state( &sys->modem,
at86rf215_rf_channel_2400mhz,
at86rf215_radio_state_cmd_rx);
}
else
{
at86rf215_setup_iq_radio_dac_value_override_no_freq (&sys->modem,
at86rf215_rf_channel_2400mhz,
31);
}*/
}

Wyświetl plik

@ -0,0 +1,174 @@
#ifndef __CARIBOULABS_RADIOS_H__
#define __CARIBOULABS_RADIOS_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "cariboulite_config/cariboulite_config.h"
#include "at86rf215/at86rf215.h"
typedef enum
{
cariboulite_channel_dir_rx = 0,
cariboulite_channel_dir_tx = 1,
} cariboulite_channel_dir_en;
typedef enum
{
cariboulite_channel_s1g = 0,
cariboulite_channel_6g = 1,
} cariboulite_channel_en;
typedef struct
{
cariboulite_st* cariboulite_sys;
cariboulite_channel_dir_en channel_direction;
cariboulite_channel_en type;
bool active;
bool cw_output;
bool lo_output;
// MODEM STATES
at86rf215_radio_state_cmd_en state;
at86rf215_radio_irq_st interrupts;
bool rx_agc_on;
int rx_gain_value_db;
at86rf215_radio_rx_bw_en rx_bw;
at86rf215_radio_f_cut_en rx_fcut;
at86rf215_radio_sample_rate_en rx_fs;
int tx_power;
at86rf215_radio_tx_cut_off_en tx_bw;
at86rf215_radio_f_cut_en tx_fcut;
at86rf215_radio_sample_rate_en tx_fs;
// at86rf215_radio_energy_detection_st rx_energy_detection;
float rx_energy_detection_value;
float rx_rssi;
// FREQUENCY
bool modem_pll_locked;
bool lo_pll_locked;
float lo_frequency;
float if_frequency;
float actual_rf_frequency;
float requested_rf_frequency;
float rf_frequency_error;
// OTHERS
uint8_t random_value;
float rx_thermal_noise_floor;
// CALIBRATION
int num_of_rx_cal_points;
int num_of_tx_cal_points;
float rx_power_gain_calibration[6001];
float tx_power_gain_calibration[6001];
} cariboulite_radio_state_st;
typedef struct
{
cariboulite_radio_state_st radio_sub1g;
cariboulite_radio_state_st radio_6g;
} cariboulite_radios_st;
int cariboulite_init_radios(cariboulite_radios_st* radios, cariboulite_st *sys);
int cariboulite_dispose_radios(cariboulite_radios_st* radios);
int cariboulite_sync_radio_information(cariboulite_radios_st* radios);
int cariboulite_get_mod_state (cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_state_cmd_en *state);
int cariboulite_get_mod_intertupts (cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_irq_st **irq_table);
int cariboulite_set_rx_gain_control(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
bool rx_agc_on,
int rx_gain_value_db);
int cariboulite_get_rx_gain_control(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
bool *rx_agc_on,
int *rx_gain_value_db);
int cariboulite_get_rx_gain_limits(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
int *rx_min_gain_value_db,
int *rx_max_gain_value_db,
int *rx_gain_value_resolution_db);
int cariboulite_set_rx_bandwidth(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_rx_bw_en rx_bw);
int cariboulite_get_rx_bandwidth(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_rx_bw_en *rx_bw);
int cariboulite_set_rx_samp_cutoff(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_sample_rate_en rx_sample_rate,
at86rf215_radio_f_cut_en rx_cutoff);
int cariboulite_get_rx_samp_cutoff(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_sample_rate_en *rx_sample_rate,
at86rf215_radio_f_cut_en *rx_cutoff);
int cariboulite_set_tx_power(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
int tx_power_dbm);
int cariboulite_get_tx_power(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
int *tx_power_dbm);
int cariboulite_set_tx_bandwidth(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_tx_cut_off_en tx_bw);
int cariboulite_get_tx_bandwidth(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_tx_cut_off_en *tx_bw);
int cariboulite_set_tx_samp_cutoff(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_sample_rate_en tx_sample_rate,
at86rf215_radio_f_cut_en tx_cutoff);
int cariboulite_get_tx_samp_cutoff(cariboulite_radios_st* radios,
cariboulite_channel_en channel,
at86rf215_radio_sample_rate_en *tx_sample_rate,
at86rf215_radio_f_cut_en *tx_cutoff);
int cariboulite_get_rssi(cariboulite_radios_st* radios, cariboulite_channel_en channel, float *rssi_dbm);
int cariboulite_get_energy_det(cariboulite_radios_st* radios, cariboulite_channel_en channel, float *energy_det_val);
int cariboulite_get_rand_val(cariboulite_radios_st* radios, cariboulite_channel_en channel, uint8_t *rnd);
int cariboulite_set_frequency( cariboulite_radios_st* radios,
cariboulite_channel_en channel,
bool break_before_make,
double *freq);
int cariboulite_get_frequency( cariboulite_radios_st* radios,
cariboulite_channel_en channel,
double *freq, double *lo, double* i_f);
int cariboulite_activate_channel(cariboulite_radios_st* radios,
cariboulite_channel_en channel);
#ifdef __cplusplus
}
#endif
#endif // __CARIBOULABS_RADIOS_H__

Wyświetl plik

@ -156,7 +156,7 @@ int cariboulite_init_submodules (cariboulite_st* sys)
// Configure modem
//------------------------------------------------------
ZF_LOGD("Configuring modem initial state");
at86rf215_set_clock_output(&sys->modem, at86rf215_drive_current_8ma, at86rf215_clock_out_freq_26mhz);
at86rf215_set_clock_output(&sys->modem, at86rf215_drive_current_8ma, at86rf215_clock_out_freq_32mhz);
at86rf215_setup_rf_irq(&sys->modem, 0, 1, at86rf215_drive_current_4ma);
at86rf215_radio_set_state(&sys->modem, at86rf215_rf_channel_900mhz, at86rf215_radio_state_cmd_trx_off);
at86rf215_radio_set_state(&sys->modem, at86rf215_rf_channel_2400mhz, at86rf215_radio_state_cmd_trx_off);
@ -210,7 +210,7 @@ int cariboulite_init_submodules (cariboulite_st* sys)
// Configure mixer
//------------------------------------------------------
rffc507x_calibrate(&sys->mixer);
ZF_LOGI("Cariboulite submodules successfully initialized");
return 0;
@ -225,6 +225,7 @@ cariboulite_init_submodules_fail:
int cariboulite_self_test(cariboulite_st* sys, cariboulite_self_test_result_st* res)
{
memset(res, 0, sizeof(cariboulite_self_test_result_st));
int error_occured = 0;
//------------------------------------------------------
ZF_LOGI("Testing FPGA communication and versions...");
@ -243,6 +244,7 @@ int cariboulite_self_test(cariboulite_st* sys, cariboulite_self_test_result_st*
ZF_LOGI("FPGA firmware didn't pass - sys_ver = %02X, manu_id = %02X",
sys->fpga_versions.sys_ver, sys->fpga_versions.sys_manu_id);
res->fpga_fail = 1;
error_occured = 1;
}
//------------------------------------------------------
@ -254,6 +256,7 @@ int cariboulite_self_test(cariboulite_st* sys, cariboulite_self_test_result_st*
{
ZF_LOGI("The assembled modem is not AT86RF215 (product number: 0x%02x)", modem_pn);
res->modem_fail = 1;
error_occured = 1;
}
//------------------------------------------------------
@ -264,6 +267,7 @@ int cariboulite_self_test(cariboulite_st* sys, cariboulite_self_test_result_st*
{
ZF_LOGI("The assembled mixer is not RFFC5071/2[A]");
res->mixer_fail = 1;
error_occured = 1;
}
//------------------------------------------------------
@ -271,14 +275,14 @@ int cariboulite_self_test(cariboulite_st* sys, cariboulite_self_test_result_st*
// TBD
// check and report problems
/*if (!memcmp(res, 0, sizeof(cariboulite_self_test_result_st)))
if (!error_occured)
{
ZF_LOGI("Self-test process finished successfully!");
return 0;
}*/
}
//ZF_LOGI("Self-test process finished with errors");
return 0;
ZF_LOGI("Self-test process finished with errors");
return -1;
}
//=======================================================================================
@ -388,207 +392,3 @@ void cariboulite_lib_version(cariboulite_lib_version_st* v)
v->revision = CARIBOULITE_REVISION;
}
//=================================================
#define CARIBOULITE_MIN_MIX (30.0e6)
#define CARIBOULITE_MAX_MIX (6000.0e6)
#define CARIBOULITE_MIN_LO (85.0e6)
#define CARIBOULITE_MAX_LO (4200.0e6)
#define CARIBOULITE_2G4_MIN (2400.0e6)
#define CARIBOULITE_2G4_MAX (2483.5e6)
#define CARIBOULITE_S1G_MIN1 (389.5e6)
#define CARIBOULITE_S1G_MAX1 (510.0e6)
#define CARIBOULITE_S1G_MIN2 (779.0e6)
#define CARIBOULITE_S1G_MAX2 (1020.0e6)
int cariboulite_setup_frequency( cariboulite_st *sys,
cariboulite_channel_en ch,
cariboulite_channel_dir_en dir,
double *freq)
{
double f_rf = *freq;
double modem_act_freq = 0.0;
double lo_act_freq = 0.0;
double act_freq = 0.0;
int error = 0;
int conversion_direction = 0;
//--------------------------------------------------------------------------------
// SUB 1GHZ CONFIGURATION
//--------------------------------------------------------------------------------
if (ch == cariboulite_channel_s1g)
{
if ( (f_rf >= CARIBOULITE_S1G_MIN1 && f_rf <= CARIBOULITE_S1G_MAX1) ||
(f_rf >= CARIBOULITE_S1G_MIN2 && f_rf <= CARIBOULITE_S1G_MAX2) )
{
// setup modem frequency <= f_rf
at86rf215_radio_set_state( &sys->modem,
at86rf215_rf_channel_900mhz,
at86rf215_radio_state_cmd_trx_off);
modem_act_freq = at86rf215_setup_channel (&sys->modem,
at86rf215_rf_channel_900mhz,
(uint32_t)f_rf);
at86rf215_radio_set_state( &sys->modem,
at86rf215_rf_channel_900mhz,
at86rf215_radio_state_cmd_rx);
// return actual frequency
*freq = modem_act_freq;
}
else
{
// error - unsupported frequency for S1G channel
ZF_LOGE("unsupported frequency for S1G channel - %.2f Hz", f_rf);
error = 1;
}
}
//--------------------------------------------------------------------------------
// 30-6GHz CONFIGURATION
//--------------------------------------------------------------------------------
else if (ch == cariboulite_channel_6g)
{
at86rf215_radio_set_state( &sys->modem,
at86rf215_rf_channel_2400mhz,
at86rf215_radio_state_cmd_trx_off);
caribou_fpga_set_io_ctrl_mode (&sys->fpga, 0, caribou_fpga_io_ctrl_rfm_low_power);
//-------------------------------------
if ( f_rf >= CARIBOULITE_MIN_MIX &&
f_rf <= (CARIBOULITE_2G4_MIN - CARIBOULITE_MIN_LO) )
{
// region #1
// setup modem frequency <= CARIBOULITE_2G4_MIN
modem_act_freq = (double)at86rf215_setup_channel (&sys->modem,
at86rf215_rf_channel_2400mhz,
(uint32_t)(CARIBOULITE_2G4_MIN));
// setup mixer LO <= CARIBOULITE_2G4_MIN - f_rf
lo_act_freq = rffc507x_set_frequency(&sys->mixer, modem_act_freq - f_rf);
act_freq = modem_act_freq - lo_act_freq;
// setup fpga RFFE <= upconvert (tx / rx)
conversion_direction = 1;
}
//-------------------------------------
else if ( f_rf > (CARIBOULITE_2G4_MIN - CARIBOULITE_MIN_LO) &&
f_rf < CARIBOULITE_2G4_MIN )
{
// region #2
// setup modem frequency <= f_rf + CARIBOULITE_MIN_LO
modem_act_freq = (double)at86rf215_setup_channel (&sys->modem,
at86rf215_rf_channel_2400mhz,
(uint32_t)(CARIBOULITE_MIN_LO + f_rf));
// setup mixer LO <= CARIBOULITE_MIN_LO
lo_act_freq = rffc507x_set_frequency(&sys->mixer, modem_act_freq - f_rf);
act_freq = modem_act_freq - lo_act_freq;
// setup fpga RFFE <= upconvert (tx / rx)
conversion_direction = 1;
}
//-------------------------------------
else if ( f_rf >= CARIBOULITE_2G4_MIN &&
f_rf <= CARIBOULITE_2G4_MAX )
{
// region #3 - bypass mode
// setup modem frequency <= f_rf
modem_act_freq = (double)at86rf215_setup_channel (&sys->modem,
at86rf215_rf_channel_2400mhz,
(uint32_t)f_rf);
act_freq = modem_act_freq;
conversion_direction = 2;
}
//-------------------------------------
else if ( f_rf > CARIBOULITE_2G4_MAX &&
f_rf <= (CARIBOULITE_2G4_MAX + CARIBOULITE_MIN_MIX) )
{
// region #4
// setup modem frequency <= f_rf - CARIBOULITE_MIN_LO
modem_act_freq = (double)at86rf215_setup_channel (&sys->modem,
at86rf215_rf_channel_2400mhz,
(uint32_t)(f_rf - CARIBOULITE_MIN_LO));
// setup mixer LO <= CARIBOULITE_MIN_LO
lo_act_freq = rffc507x_set_frequency(&sys->mixer, f_rf - modem_act_freq);
act_freq = modem_act_freq + lo_act_freq;
// setup fpga RFFE <= downconvert (tx / rx)
conversion_direction = 3;
}
//-------------------------------------
else if ( f_rf > (CARIBOULITE_2G4_MAX + CARIBOULITE_MIN_MIX) &&
f_rf <= CARIBOULITE_MAX_MIX )
{
// region #5
// here it would be beneficial to use lowest modem frequency - 2400 - TBD
// setup modem frequency <= CARIBOULITE_2G4_MAX
modem_act_freq = (double)at86rf215_setup_channel (&sys->modem,
at86rf215_rf_channel_2400mhz,
(uint32_t)(CARIBOULITE_2G4_MAX));
// setup mixer LO <= f_rf - CARIBOULITE_2G4_MAX
lo_act_freq = rffc507x_set_frequency(&sys->mixer, f_rf - modem_act_freq);
act_freq = modem_act_freq + lo_act_freq;
// setup fpga RFFE <= downconvert (tx / rx)
conversion_direction = 3;
}
//-------------------------------------
else
{
// error - unsupported frequency for 6G channel
ZF_LOGE("unsupported frequency for 6GHz channel - %.2f Hz", f_rf);
error = 1;
}
*freq = act_freq;
rffc507x_device_status_st stat;
// wait for the mixer to lock
for (int i = 0; i<10; i++)
{
rffc507x_readback_status(&sys->mixer, NULL, &stat);
if (stat.pll_lock) break;
usleep(100000);
}
if (!stat.pll_lock)
{
ZF_LOGE("Mixer couldn't lock on LO = %.2f", lo_act_freq);
rffc507x_print_stat(&stat);
error = 3;
}
// Setup the frontend
switch (conversion_direction)
{
case 1: if (dir == 0) caribou_fpga_set_io_ctrl_mode (&sys->fpga, 0, caribou_fpga_io_ctrl_rfm_rx_lowpass);
else if (dir == 1) caribou_fpga_set_io_ctrl_mode (&sys->fpga, 0, caribou_fpga_io_ctrl_rfm_tx_hipass);
break;
case 2: caribou_fpga_set_io_ctrl_mode (&sys->fpga, 0, caribou_fpga_io_ctrl_rfm_bypass);
break;
case 3: if (dir == 0) caribou_fpga_set_io_ctrl_mode (&sys->fpga, 0, caribou_fpga_io_ctrl_rfm_rx_hipass);
else if (dir == 1) caribou_fpga_set_io_ctrl_mode (&sys->fpga, 0, caribou_fpga_io_ctrl_rfm_tx_lowpass);
break;
default: break;
}
// Activate the modem - this should be outside
at86rf215_radio_set_state( &sys->modem,
at86rf215_rf_channel_2400mhz,
at86rf215_radio_state_cmd_rx);
}
else
{
// unknown channel
ZF_LOGE("The requested channel (%d) is unsupported", ch);
error = 2;
}
if (error == 0)
{
ZF_LOGD("Frequency setting CH: %d, Wanted: %.2f Hz, Set: %.2f Hz (MOD: %.2f, MIX: %.2f)",
ch, f_rf, act_freq, modem_act_freq, lo_act_freq);
}
return -error;
}

Wyświetl plik

@ -6,6 +6,7 @@ extern "C" {
#endif
#include "cariboulite_radios.h"
#include "latticeice40/latticeice40.h"
#include "caribou_fpga/caribou_fpga.h"
#include "at86rf215/at86rf215.h"
@ -52,19 +53,6 @@ typedef enum
cariboulite_self_test_failed = -5,
} cariboulite_errors_en;
typedef enum
{
cariboulite_channel_dir_rx = 0,
cariboulite_channel_dir_tx = 1,
} cariboulite_channel_dir_en;
typedef enum
{
cariboulite_channel_s1g = 0,
cariboulite_channel_6g = 1,
} cariboulite_channel_en;
int cariboulite_init_driver(cariboulite_st *sys, void* signal_handler_cb, cariboulite_board_info_st *info);
void cariboulite_release_driver(cariboulite_st *sys);
void cariboulite_lib_version(cariboulite_lib_version_st* v);

Wyświetl plik

@ -56,24 +56,6 @@ stdio.h
pigpio.h
-
../../zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/rffc507x.c
stdint.h
-
string.h
-
math.h
-
zf_log/zf_log.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/zf_log/zf_log.h
rffc507x.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/rffc507x.h
rffc507x_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/rffc507x_regs.h
stdio.h
-
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/rffc507x.h
stdio.h
-
@ -84,9 +66,13 @@ io_utils/io_utils.h
io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/rffc507x_regs.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/test_rffc507x.c
stdio.h
-
stdint.h
-
rffc507x.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/rffc507x.h
io_utils/io_utils.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/io_utils/io_utils.h
io_utils/io_utils_spi.h
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/io_utils/io_utils_spi.h

Wyświetl plik

@ -39,9 +39,10 @@
#define LOG(x,...)
#endif
#define LO_MAX_HZ (5400000000.0)
#define REF_FREQ 26000000.0
#define LO_MAX 5400
#define LO_MAX_HZ (LO_MAX*1e6)
#define REF_FREQ 32
#define REF_FREQ_HZ (REF_FREQ*1e6)
#define FREQ_ONE_MHZ (1000*1000)
//===========================================================================
@ -138,51 +139,23 @@ int rffc507x_init( rffc507x_st* dev,
// interface
set_RFFC507X_ENBL(dev, 0); // The device is disabled
set_RFFC507X_MODE(dev, 1); // Select the PLL bank - in RFFC5072
// we have only PLL2, so MODE = 1 always
set_RFFC507X_4WIRE(dev, 0); // Only 3-wire operation
set_RFFC507X_ADDR(dev, 0); // No address sllicing enabled - single device
set_RFFC507X_RESET(dev, 0); // No reset
// GPO configurations
set_RFFC507X_P2GPO(dev, 0); // The mode pin is disabled
set_RFFC507X_P1GPO(dev, 0); // The mode pin is disabled
set_RFFC507X_GATE(dev, 1); // When ENBL is low, do not force other
// GPOs to go LOW as well
set_RFFC507X_LOCK(dev, 0); // Do not sent the lock signal to GPO4
set_RFFC507X_MODE(dev, 1);
// put zeros in freq contol registers
set_RFFC507X_P2N(dev, 0);
set_RFFC507X_P2LODIV(dev, 0);
set_RFFC507X_P2PRESC(dev, 0);
set_RFFC507X_P2VCOSEL(dev, 0);
//set_RFFC507X_P1N(dev, 0);
//set_RFFC507X_P1LODIV(dev, 0);
//set_RFFC507X_P1PRESC(dev, 0);
//set_RFFC507X_P1VCOSEL(dev, 0);
// Commit the current batch
rffc507x_regs_commit(dev);
// VCO_AUTO selection
set_RFFC507X_AUTO(dev, 1);
set_RFFC507X_CTMAX(dev, 127);
set_RFFC507X_CTMIN(dev, 0);
// CT_CAL1/2
set_RFFC507X_P2CTV(dev, 12);
set_RFFC507X_P1CTV(dev, 12);
// TEST control - bypassing TBD
set_RFFC507X_RGBYP(dev, 1);
set_RFFC507X_P2MIXIDD(dev, 1);
set_RFFC507X_P1MIXIDD(dev, 1);
// Others
set_RFFC507X_LDEN(dev, 1);
set_RFFC507X_LDLEV(dev, 1);
// Full duplex disabled
set_RFFC507X_FULLD(dev, 0);
// Mixer linearity values - we need to understand the actual value
set_RFFC507X_P1MIXIDD(dev, 4);
set_RFFC507X_P2MIXIDD(dev, 4);
set_RFFC507X_BYPAS(dev, 0);
// Write default register values to chip.
int ret = rffc507x_regs_commit(dev);
@ -231,7 +204,7 @@ uint16_t rffc507x_reg_read(rffc507x_st* dev, uint8_t r)
uint16_t vin = 0;
// Readback register is not cached.
//if (r == RFFC507X_READBACK_REG)
if (r == RFFC507X_READBACK_REG)
{
io_utils_spi_transmit(dev->io_spi, dev->io_spi_handle, &vout, (uint8_t*)&vin, 2, io_utils_spi_read);
return vin;
@ -239,10 +212,11 @@ uint16_t rffc507x_reg_read(rffc507x_st* dev, uint8_t r)
// Discard uncommited write when reading. This shouldn't
// happen, and probably has not been tested.
if ((dev->rffc507x_regs_dirty >> r) & 0x1)
{
io_utils_spi_transmit(dev->io_spi, dev->io_spi_handle, &vout, (uint8_t*)&vin, 2, io_utils_spi_read);
}
//if ((dev->rffc507x_regs_dirty >> r) & 0x1)
//{
io_utils_spi_transmit(dev->io_spi, dev->io_spi_handle, &vout, (uint8_t*)&(dev->rffc507x_regs[r]),
2, io_utils_spi_read);
//}
return dev->rffc507x_regs[r];
}
@ -278,22 +252,23 @@ void rffc507x_enable(rffc507x_st* dev)
//===========================================================================
void rffc507x_calculate_freq_params(uint8_t lodiv, double fvco, uint8_t fbkdiv, uint16_t *n, uint16_t *p1nmsb, uint8_t *p1nlsb, double* act_freq_hz)
{
double n_div = fvco / fbkdiv / REF_FREQ;
double n_div = fvco / fbkdiv / REF_FREQ_HZ;
*n = (uint16_t)(n_div);
double temp_p1nmsb = ( (double)(1<<16) ) * ( n_div - (double)(*n) );
*p1nmsb = (uint16_t)(temp_p1nmsb) & 0xFFFF;
*p1nlsb = (uint8_t)( round(( temp_p1nmsb- *p1nmsb ) * ((double)(1<<8)))) & 0xFF;
//*p1nlsb = (uint8_t)( (( temp_p1nmsb- *p1nmsb ) * ((double)(1<<8)))) & 0xFF;
uint32_t n_div24_bit = (uint32_t)(round(n_div * (1<<24))) & 0xFFFFFFFF;
//uint32_t n_div24_bit = (uint32_t)((n_div * (1<<24))) & 0xFFFFFFFF;
if (act_freq_hz) *act_freq_hz = (REF_FREQ * n_div24_bit * fbkdiv) / ((double)(lodiv) * (double)(1<<24));
if (act_freq_hz) *act_freq_hz = (REF_FREQ_HZ * n_div24_bit * fbkdiv) / ((double)(lodiv) * (double)(1<<24));
}
//===========================================================================
double rffc507x_set_frequency(rffc507x_st* dev, double lo_hz)
{
//uint32_t tune_freq;
uint8_t lodiv;
double fvco;
uint8_t fbkdiv;
@ -309,11 +284,6 @@ double rffc507x_set_frequency(rffc507x_st* dev, double lo_hz)
lodiv = 1 << n_lo; // lodiv = 2^(n_lo)
fvco = lodiv * lo_hz; // in Hz!
/* higher divider and charge pump current required above
* 3.2GHz. Programming guide says these values (fbkdiv, n,
* maybe pump?) can be changed back after enable in order to
* improve phase noise, since the VCO will already be stable
* and will be unaffected. */
if (fvco > 3200000000.0f)
{
fbkdiv = 4;
@ -327,27 +297,20 @@ double rffc507x_set_frequency(rffc507x_st* dev, double lo_hz)
rffc507x_calculate_freq_params(lodiv, fvco, fbkdiv, &n, &p1nmsb, &p1nlsb, &tune_freq_hz);
ZF_LOGD("----------------------------------------------------------");
ZF_LOGD("LO_HZ=%.2f n_lo=%d lodiv=%d", lo_hz, n_lo, lodiv);
ZF_LOGD("fvco=%.2f fbkdiv=%d n=%d", fvco, fbkdiv, n);
ZF_LOGD("frac=%d, p1nmsb=%d, p1nlsb=%d, tune_freq_hz=%.2f", p1nmsb<<8 | p1nlsb, p1nmsb, p1nlsb, tune_freq_hz);
// Path 1
//set_RFFC507X_P1LODIV(dev, n_lo);
//set_RFFC507X_P1N(dev, n);
//set_RFFC507X_P1PRESC(dev, fbkdiv >> 1);
//set_RFFC507X_P1NMSB(dev, p1nmsb);
//set_RFFC507X_P1NLSB(dev, p1nlsb);
//ZF_LOGD("----------------------------------------------------------");
//ZF_LOGD("LO_HZ=%.2f n_lo=%d lodiv=%d", lo_hz, n_lo, lodiv);
//ZF_LOGD("fvco=%.2f fbkdiv=%d n=%d", fvco, fbkdiv, n);
//ZF_LOGD("frac=%d, p1nmsb=%d, p1nlsb=%d, tune_freq_hz=%.2f", p1nmsb<<8 | p1nlsb, p1nmsb, p1nlsb, tune_freq_hz);
// Path 2
set_RFFC507X_P2LODIV(dev, n_lo);
set_RFFC507X_P2N(dev, n);
set_RFFC507X_P2PRESC(dev, fbkdiv >> 1);
set_RFFC507X_P2VCOSEL(dev, 2);
set_RFFC507X_P2NMSB(dev, p1nmsb);
set_RFFC507X_P2NLSB(dev, p1nlsb);
rffc507x_regs_commit(dev);
rffc507x_enable(dev);
if (fbkdiv == 4)
@ -359,17 +322,10 @@ double rffc507x_set_frequency(rffc507x_st* dev, double lo_hz)
fbkdiv = 2;
rffc507x_calculate_freq_params(lodiv, fvco, fbkdiv, &n, &p1nmsb, &p1nlsb, &tune_freq_hz);
ZF_LOGD("LO_HZ=%.2f n_lo=%d lodiv=%d", lo_hz, n_lo, lodiv);
ZF_LOGD("fvco=%.2f fbkdiv=%d n=%d", fvco, fbkdiv, n);
ZF_LOGD("frac=%d, p1nmsb=%d, p1nlsb=%d, tune_freq_hz=%.2f", p1nmsb<<8 | p1nlsb, p1nmsb, p1nlsb, tune_freq_hz);
ZF_LOGD("----------------------------------------------------------");
// Path 1
//set_RFFC507X_P1LODIV(dev, n_lo);
//set_RFFC507X_P1N(dev, n);
//set_RFFC507X_P1PRESC(dev, fbkdiv >> 1);
//set_RFFC507X_P1NMSB(dev, p1nmsb);
//set_RFFC507X_P1NLSB(dev, p1nlsb);
//ZF_LOGD("LO_HZ=%.2f n_lo=%d lodiv=%d", lo_hz, n_lo, lodiv);
//ZF_LOGD("fvco=%.2f fbkdiv=%d n=%d", fvco, fbkdiv, n);
//ZF_LOGD("frac=%d, p1nmsb=%d, p1nlsb=%d, tune_freq_hz=%.2f", p1nmsb<<8 | p1nlsb, p1nmsb, p1nlsb, tune_freq_hz);
//ZF_LOGD("----------------------------------------------------------");
// Path 2
set_RFFC507X_P2LODIV(dev, n_lo);
@ -383,21 +339,6 @@ double rffc507x_set_frequency(rffc507x_st* dev, double lo_hz)
return tune_freq_hz;
}
//===========================================================================
void rffc507x_setup_pin_functions(rffc507x_st* dev)
{
ZF_LOGD("setting up gpio configurations (4-wire)");
set_RFFC507X_RESET(dev, 0);
set_RFFC507X_ADDR(dev, 0);
set_RFFC507X_4WIRE(dev, 1);
set_RFFC507X_MODE(dev, 1);
set_RFFC507X_ENBL(dev, 1);
set_RFFC507X_SIPIN(dev, 0);
set_RFFC507X_LOCK(dev, 0);
set_RFFC507X_GATE(dev, 0);
rffc507x_regs_commit(dev);
}
//===========================================================================
void rffc507x_readback(rffc507x_st* dev, uint16_t *readback_buff, int buf_len)
{
@ -469,3 +410,39 @@ void rffc507x_set_gpo(rffc507x_st* dev, uint8_t gpo)
rffc507x_regs_commit(dev);
}
//===========================================================================
void rffc507x_calibrate(rffc507x_st* dev)
{
// CAL_TIME
set_RFFC507X_WAIT(dev, 1); // If high then the RF sections are not enabled until the PLL calibrations complete
set_RFFC507X_TCT(dev, 31); // Duration of CT acquisition
set_RFFC507X_CTAVG(dev, 3); // Number of samples averaged to compute final value during CT Calibration:
// 0 = average 16 samples;
// 1 = average 32 samples;
// 2 = average 64 samples;
// 3 = average 128 samples
set_RFFC507X_KVAVG(dev, 3); // Number of samples averaged to compute final value during KV compensation
rffc507x_regs_commit(dev);
/*
set_RFFC507X_P2CT (dev, 1); // VCO coarse tune enable, path2 mode
rffc507x_regs_commit(dev);
*/
set_RFFC507X_P1KV(dev, 0);
set_RFFC507X_P2KV(dev, 0);
rffc507x_regs_commit(dev);
}
//===========================================================================
void rffc507x_relock(rffc507x_st* dev)
{
set_RFFC507X_RELOK(dev, 1);
rffc507x_regs_commit(dev);
}
//===========================================================================
void rffc507x_output_lo(rffc507x_st* dev, int state)
{
set_RFFC507X_BYPAS(dev, state);
}

Wyświetl plik

@ -49,10 +49,11 @@ typedef struct // readsel = 0000
typedef struct // readsel = 0001
{
uint8_t dummy : 1; // LSB
uint8_t coarse_tune_cal_fail : 1;
uint8_t kv_cal_value : 6;
uint8_t coarse_tune_cal_value : 7;
uint8_t pll_lock :1;
uint8_t pll_lock :1; // MSB
} rffc507x_device_status_st;
#pragma pack()
@ -100,6 +101,9 @@ void rffc507x_readback_status(rffc507x_st* dev, rffc507x_device_id_st* dev_id,
void rffc507x_print_dev_id(rffc507x_device_id_st* dev_id);
void rffc507x_print_stat(rffc507x_device_status_st* stat);
void rffc507x_calibrate(rffc507x_st* dev);
void rffc507x_relock(rffc507x_st* dev);
void rffc507x_output_lo(rffc507x_st* dev, int state);
#ifdef __cplusplus
}

Wyświetl plik

@ -58,7 +58,7 @@ static inline void set_##n(rffc507x_st* dev, uint16_t v) { \
__MREG__(RFFC507X_PLLCPL,0,0,3)
__MREG__(RFFC507X_P1CPDEF,0,3,6)
__MREG__(RFFC507X_P2CPDEF,0,9,6)
__MREG__(RFFC507X_IFACT,0,15,1)
__MREG__(RFFC507X_LFACT,0,15,1)
#define RFFC507X_
/* REG 01 (1): XO */

Wyświetl plik

@ -59,17 +59,62 @@ int main ()
rffc507x_print_stat(&stat);
rffc507x_set_frequency(&dev, 85e6);
for (int i = 0; i<5; i++)
{
io_utils_usleep(10000);
rffc507x_readback_status(&dev, NULL, &stat);
rffc507x_print_stat(&stat);
}
rffc507x_set_frequency(&dev, 314159265);
for (int i = 0; i<5; i++)
{
io_utils_usleep(10000);
rffc507x_readback_status(&dev, NULL, &stat);
rffc507x_print_stat(&stat);
}
rffc507x_set_frequency(&dev, 915e6);
for (int i = 0; i<5; i++)
{
io_utils_usleep(10000);
rffc507x_readback_status(&dev, NULL, &stat);
rffc507x_print_stat(&stat);
}
rffc507x_set_frequency(&dev, 1200e6);
for (int i = 0; i<5; i++)
{
io_utils_usleep(10000);
rffc507x_readback_status(&dev, NULL, &stat);
rffc507x_print_stat(&stat);
}
rffc507x_set_frequency(&dev, 4600e6);
for (int i = 0; i<5; i++)
{
io_utils_usleep(10000);
rffc507x_readback_status(&dev, NULL, &stat);
rffc507x_print_stat(&stat);
}
rffc507x_set_frequency(&dev, 5600e6);
for (int i = 0; i<5; i++)
{
io_utils_usleep(10000);
rffc507x_readback_status(&dev, NULL, &stat);
rffc507x_print_stat(&stat);
io_utils_usleep(100000);
}
rffc507x_release(&dev);

Wyświetl plik

@ -1,3 +1,4 @@
#include <math.h>
#include "Cariboulite.hpp"
#include "cariboulite_config/cariboulite_config_default.h"
@ -27,12 +28,15 @@ Cariboulite::Cariboulite(const SoapySDR::Kwargs &args)
CARIBOULITE_CONFIG_DEFAULT(temp);
memcpy(&cariboulite_sys, &temp, sizeof(cariboulite_sys));
cariboulite_init_driver(&cariboulite_sys, (void*)soapy_sighandler, NULL);
cariboulite_init_radios(&radios, &cariboulite_sys);
// TODO: Exception when error
}
//========================================================
Cariboulite::~Cariboulite()
{
printf("~Cariboulite\n");
cariboulite_dispose_radios(&radios);
cariboulite_release_driver(&cariboulite_sys);
}
@ -86,17 +90,148 @@ std::string Cariboulite::getAntenna( const int direction, const size_t channel )
/*******************************************************************
* Gain API
******************************************************************/
void Cariboulite::setGainMode( const int direction, const size_t channel, const bool automatic )
std::vector<std::string> Cariboulite::listGains(const int direction, const size_t channel) const
{
printf("setGainMode\n");
/* enable AGC if the hardware supports it, or remove this function */
std::vector<std::string> gains;
if (direction == SOAPY_SDR_RX)
{
for (int i = 0; i < 23; i ++)
{
char t[10] = {0};
sprintf(t, "%d dB", i*3);
gains.push_back(t);
}
}
else if (direction == SOAPY_SDR_TX)
{
for (int i = 0; i < 32; i ++)
{
char t[10] = {0};
sprintf(t, "%d dB", i);
gains.push_back(t);
}
}
return (gains);
}
//========================================================
/*!
* Set the overall amplification in a chain.
* The gain will be distributed automatically across available element.
* \param direction the channel direction RX or TX
* \param channel an available channel on the device
* \param value the new amplification value in dB
*/
void Cariboulite::setGain(const int direction, const size_t channel, const double value)
{
cariboulite_radio_state_st* rad = channel == cariboulite_channel_s1g? &radios.radio_sub1g : &radios.radio_6g;
bool cur_agc_mode = rad->rx_agc_on;
if (direction == SOAPY_SDR_RX)
{
cariboulite_set_rx_gain_control(&radios, (cariboulite_channel_en)channel, cur_agc_mode, value);
}
else if (direction == SOAPY_SDR_TX)
{
// base if -18dBm output so, given a gain of 0dB we should have -18 dBm
cariboulite_set_tx_power(&radios, (cariboulite_channel_en)channel, value - 18.0);
}
}
//========================================================
void Cariboulite::setGain(const int direction, const size_t channel, const std::string &name, const double value)
{
// no amplification device names - redirect to the regular setGain function
Cariboulite::setGain(direction, channel, value);
}
//========================================================
double Cariboulite::getGain(const int direction, const size_t channel) const
{
int value = 0;
if (direction == SOAPY_SDR_RX)
{
cariboulite_get_rx_gain_control((cariboulite_radios_st*)&radios, (cariboulite_channel_en)channel, NULL, &value);
}
else if (direction == SOAPY_SDR_TX)
{
int temp = 0;
cariboulite_get_tx_power((cariboulite_radios_st*)&radios, (cariboulite_channel_en)channel, &temp);
value = temp + 18.0;
}
return value;
}
//========================================================
double Cariboulite::getGain(const int direction, const size_t channel, const std::string &name) const
{
return getGain(direction, channel);
}
//========================================================
SoapySDR::Range Cariboulite::getGainRange(const int direction, const size_t channel) const
{
if (direction == SOAPY_SDR_RX)
{
return SoapySDR::Range(0.0, 23.0*3.0);
}
// and for TX
return SoapySDR::Range(0.0, 31.0);
}
//========================================================
SoapySDR::Range Cariboulite::getGainRange(const int direction, const size_t channel, const std::string &name) const
{
return getGainRange(direction, channel);
}
//========================================================
bool Cariboulite::hasGainMode(const int direction, const size_t channel) const
{
return (direction==SOAPY_SDR_RX?true:false);
}
//========================================================
/*!
* Set the automatic gain mode on the chain.
* \param direction the channel direction RX or TX
* \param channel an available channel on the device
* \param automatic true for automatic gain setting
*/
void Cariboulite::setGainMode( const int direction, const size_t channel, const bool automatic )
{
printf("setGainMode\n");
cariboulite_radio_state_st* rad = channel == cariboulite_channel_s1g? &radios.radio_sub1g : &radios.radio_6g;
bool rx_gain = rad->rx_gain_value_db;
if (direction == SOAPY_SDR_RX)
{
cariboulite_set_rx_gain_control(&radios, (cariboulite_channel_en)channel, automatic, rx_gain);
}
}
//========================================================
/*!
* Get the automatic gain mode on the chain.
* \param direction the channel direction RX or TX
* \param channel an available channel on the device
* \return true for automatic gain setting
*/
bool Cariboulite::getGainMode( const int direction, const size_t channel ) const
{
printf("getGainMode\n");
/* AGC mode - enable AGC if the hardware supports it, or remove this function */
bool mode = false;
if (direction == SOAPY_SDR_RX)
{
cariboulite_get_rx_gain_control((cariboulite_radios_st*)&radios, (cariboulite_channel_en)channel,
&mode, NULL);
return mode;
}
return (false);
}
@ -105,13 +240,32 @@ bool Cariboulite::getGainMode( const int direction, const size_t channel ) const
******************************************************************/
void Cariboulite::setSampleRate( const int direction, const size_t channel, const double rate )
{
cariboulite_radio_state_st* rad = channel == cariboulite_channel_s1g? &radios.radio_sub1g : &radios.radio_6g;
at86rf215_radio_f_cut_en rx_cuttof = rad->rx_fcut;
at86rf215_radio_f_cut_en tx_cuttof = rad->tx_fcut;
printf("setSampleRate\n");
if (direction == SOAPY_SDR_RX)
{
cariboulite_set_rx_samp_cutoff(&radios,
(cariboulite_channel_en)channel,
at86rf215_radio_rx_sample_rate_4000khz,
rx_cuttof);
}
else if (direction == SOAPY_SDR_TX)
{
cariboulite_set_tx_samp_cutoff(&radios,
(cariboulite_channel_en)channel,
at86rf215_radio_rx_sample_rate_4000khz,
tx_cuttof);
}
}
//========================================================
double Cariboulite::getSampleRate( const int direction, const size_t channel ) const
{
printf("getSampleRate\n");
// A single option
return 4000000;
}
@ -121,27 +275,124 @@ std::vector<double> Cariboulite::listSampleRates( const int direction, const siz
printf("listSampleRates\n");
std::vector<double> options;
options.push_back( 4000000 );
options.push_back( 2000000 );
/*options.push_back( 2000000 ); // we want currently to allow only 4 MSPS to make the FPGA implementation easier
options.push_back( 1333000 );
options.push_back( 1000000 );
options.push_back( 800000 );
options.push_back( 666000 );
options.push_back( 500000 );
options.push_back( 400000 );
options.push_back( 400000 );*/
return(options);
}
//========================================================
static at86rf215_radio_rx_bw_en convertRxBandwidth(double bw_numeric)
{
if (fabs(bw_numeric - 160000) < 1) return at86rf215_radio_rx_bw_BW160KHZ_IF250KHZ;
if (fabs(bw_numeric - 200000) < 1) return at86rf215_radio_rx_bw_BW200KHZ_IF250KHZ;
if (fabs(bw_numeric - 250000) < 1) return at86rf215_radio_rx_bw_BW250KHZ_IF250KHZ;
if (fabs(bw_numeric - 320000) < 1) return at86rf215_radio_rx_bw_BW320KHZ_IF500KHZ;
if (fabs(bw_numeric - 400000) < 1) return at86rf215_radio_rx_bw_BW400KHZ_IF500KHZ;
if (fabs(bw_numeric - 500000) < 1) return at86rf215_radio_rx_bw_BW500KHZ_IF500KHZ;
if (fabs(bw_numeric - 630000) < 1) return at86rf215_radio_rx_bw_BW630KHZ_IF1000KHZ;
if (fabs(bw_numeric - 800000) < 1) return at86rf215_radio_rx_bw_BW800KHZ_IF1000KHZ;
if (fabs(bw_numeric - 1000000) < 1) return at86rf215_radio_rx_bw_BW1000KHZ_IF1000KHZ;
if (fabs(bw_numeric - 1250000) < 1) return at86rf215_radio_rx_bw_BW1250KHZ_IF2000KHZ;
if (fabs(bw_numeric - 1600000) < 1) return at86rf215_radio_rx_bw_BW1600KHZ_IF2000KHZ;
if (fabs(bw_numeric - 2000000) < 1) return at86rf215_radio_rx_bw_BW2000KHZ_IF2000KHZ;
return at86rf215_radio_rx_bw_BW2000KHZ_IF2000KHZ;
}
//========================================================
static double convertRxBandwidth(at86rf215_radio_rx_bw_en bw_en)
{
if (at86rf215_radio_rx_bw_BW160KHZ_IF250KHZ == bw_en) return 160000;
if (at86rf215_radio_rx_bw_BW200KHZ_IF250KHZ == bw_en) return 200000;
if (at86rf215_radio_rx_bw_BW250KHZ_IF250KHZ == bw_en) return 250000;
if (at86rf215_radio_rx_bw_BW320KHZ_IF500KHZ == bw_en) return 320000;
if (at86rf215_radio_rx_bw_BW400KHZ_IF500KHZ == bw_en) return 400000;
if (at86rf215_radio_rx_bw_BW500KHZ_IF500KHZ == bw_en) return 500000;
if (at86rf215_radio_rx_bw_BW630KHZ_IF1000KHZ == bw_en) return 630000;
if (at86rf215_radio_rx_bw_BW800KHZ_IF1000KHZ == bw_en) return 800000;
if (at86rf215_radio_rx_bw_BW1000KHZ_IF1000KHZ == bw_en) return 1000000;
if (at86rf215_radio_rx_bw_BW1250KHZ_IF2000KHZ == bw_en) return 1250000;
if (at86rf215_radio_rx_bw_BW1600KHZ_IF2000KHZ == bw_en) return 1600000;
if (at86rf215_radio_rx_bw_BW2000KHZ_IF2000KHZ == bw_en) return 2000000;
return 2000000;
}
//========================================================
static at86rf215_radio_tx_cut_off_en convertTxBandwidth(double bw_numeric)
{
if (fabs(bw_numeric - 80000) < 1) return at86rf215_radio_tx_cut_off_80khz;
if (fabs(bw_numeric - 100000) < 1) return at86rf215_radio_tx_cut_off_100khz;
if (fabs(bw_numeric - 125000) < 1) return at86rf215_radio_tx_cut_off_125khz;
if (fabs(bw_numeric - 160000) < 1) return at86rf215_radio_tx_cut_off_160khz;
if (fabs(bw_numeric - 200000) < 1) return at86rf215_radio_tx_cut_off_200khz;
if (fabs(bw_numeric - 250000) < 1) return at86rf215_radio_tx_cut_off_250khz;
if (fabs(bw_numeric - 315000) < 1) return at86rf215_radio_tx_cut_off_315khz;
if (fabs(bw_numeric - 400000) < 1) return at86rf215_radio_tx_cut_off_400khz;
if (fabs(bw_numeric - 500000) < 1) return at86rf215_radio_tx_cut_off_500khz;
if (fabs(bw_numeric - 625000) < 1) return at86rf215_radio_tx_cut_off_625khz;
if (fabs(bw_numeric - 800000) < 1) return at86rf215_radio_tx_cut_off_800khz;
if (fabs(bw_numeric - 1000000) < 1) return at86rf215_radio_tx_cut_off_1000khz;
return at86rf215_radio_tx_cut_off_1000khz;
}
//========================================================
static double convertTxBandwidth(at86rf215_radio_tx_cut_off_en bw_en)
{
if (at86rf215_radio_tx_cut_off_80khz == bw_en) return 80000;
if (at86rf215_radio_tx_cut_off_100khz == bw_en) return 100000;
if (at86rf215_radio_tx_cut_off_125khz == bw_en) return 125000;
if (at86rf215_radio_tx_cut_off_160khz == bw_en) return 160000;
if (at86rf215_radio_tx_cut_off_200khz == bw_en) return 200000;
if (at86rf215_radio_tx_cut_off_250khz == bw_en) return 250000;
if (at86rf215_radio_tx_cut_off_315khz == bw_en) return 315000;
if (at86rf215_radio_tx_cut_off_400khz == bw_en) return 400000;
if (at86rf215_radio_tx_cut_off_500khz == bw_en) return 500000;
if (at86rf215_radio_tx_cut_off_625khz == bw_en) return 625000;
if (at86rf215_radio_tx_cut_off_800khz == bw_en) return 800000;
if (at86rf215_radio_tx_cut_off_1000khz == bw_en) return 1000000;
return 1000000;
}
//========================================================
void Cariboulite::setBandwidth( const int direction, const size_t channel, const double bw )
{
printf("setBandwidth\n");
if (direction == SOAPY_SDR_RX)
{
cariboulite_set_rx_bandwidth(&radios,(cariboulite_channel_en)channel,
convertRxBandwidth(bw));
}
else if (direction == SOAPY_SDR_TX)
{
cariboulite_set_tx_bandwidth(&radios,(cariboulite_channel_en)channel,
convertTxBandwidth(bw));
}
}
//========================================================
double Cariboulite::getBandwidth( const int direction, const size_t channel ) const
{
printf("getBandwidth\n");
return 2000000;
if (direction == SOAPY_SDR_RX)
{
at86rf215_radio_rx_bw_en bw;
cariboulite_get_rx_bandwidth((cariboulite_radios_st*)&radios,(cariboulite_channel_en)channel, &bw);
return convertRxBandwidth(bw);
}
else if (direction == SOAPY_SDR_TX)
{
at86rf215_radio_tx_cut_off_en bw;
cariboulite_get_tx_bandwidth((cariboulite_radios_st*)&radios,(cariboulite_channel_en)channel, &bw);
return convertTxBandwidth(bw);
}
return 0.0;
}
//========================================================

Wyświetl plik

@ -13,6 +13,7 @@
#include <algorithm>
#include <atomic>
#include "cariboulite_setup.h"
#include "cariboulite_radios.h"
#define BUF_LEN 262144
#define BUF_NUM 15
@ -91,8 +92,15 @@ public:
/*******************************************************************
* Gain API
******************************************************************/
bool hasGainMode(const int direction, const size_t channel) const { return (direction==SOAPY_SDR_RX?true:false); }
std::vector<std::string> listGains(const int direction, const size_t channel) const;
void setGain(const int direction, const size_t channel, const double value);
void setGain(const int direction, const size_t channel, const std::string &name, const double value);
double getGain(const int direction, const size_t channel) const;
double getGain(const int direction, const size_t channel, const std::string &name) const;
SoapySDR::Range getGainRange(const int direction, const size_t channel) const;
SoapySDR::Range getGainRange(const int direction, const size_t channel, const std::string &name) const;
void setGainMode( const int direction, const size_t channel, const bool automatic );
bool hasGainMode(const int direction, const size_t channel) const;
bool getGainMode( const int direction, const size_t channel ) const;
/*******************************************************************
@ -116,6 +124,7 @@ public:
private:
cariboulite_st cariboulite_sys;
cariboulite_radios_st radios;
SoapySDR::Stream* const TX_STREAM09 = (SoapySDR::Stream*) 0x1;
SoapySDR::Stream* const RX_STREAM09 = (SoapySDR::Stream*) 0x2;