From d9bfaaf805f710eb7b4bfb31afef55c99c9c601d Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Sun, 10 Jan 2016 11:01:54 -0800 Subject: [PATCH] Stop baseband streaming when switching radio configuration. Probably unnecessary, but feeling paranoid about changing sample rates while there's a processor actively handling samples, and potentially maxing out the M4 core. --- firmware/application/receiver_model.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/firmware/application/receiver_model.cpp b/firmware/application/receiver_model.cpp index 6d44e7ec2..52ba61d55 100644 --- a/firmware/application/receiver_model.cpp +++ b/firmware/application/receiver_model.cpp @@ -167,6 +167,14 @@ void ReceiverModel::set_baseband_configuration(const BasebandConfiguration confi } void ReceiverModel::update_baseband_configuration() { + // TODO: Move more low-level radio control stuff to M4. It'll enable tighter + // synchronization for things like wideband (sweeping) spectrum analysis, and + // protocols that need quick RX/TX turn-around. + + // Disabling baseband while changing sampling rates seems like a good idea... + shared_memory.baseband_queue.push_and_wait(BasebandConfigurationMessage { + .configuration = { }, + }); clock_manager.set_sampling_frequency(sampling_rate() * baseband_oversampling()); update_tuning_frequency();