1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-14 20:20:35 +00:00

Merge branch 'mmajoral-fix_stop_FPGA_receiver' into next

This commit is contained in:
Carles Fernandez 2021-05-07 04:10:13 +02:00
commit 0723454753
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
9 changed files with 37 additions and 12 deletions

View File

@ -189,8 +189,8 @@ GalileoE1PcpsAmbiguousAcquisitionFpga::GalileoE1PcpsAmbiguousAcquisitionFpga(
void GalileoE1PcpsAmbiguousAcquisitionFpga::stop_acquisition() void GalileoE1PcpsAmbiguousAcquisitionFpga::stop_acquisition()
{ {
// this command causes the SW to reset the HW. // stop the acquisition and the other FPGA modules.
acquisition_fpga_->reset_acquisition(); acquisition_fpga_->stop_acquisition();
} }

View File

@ -192,8 +192,8 @@ GalileoE5aPcpsAcquisitionFpga::GalileoE5aPcpsAcquisitionFpga(
void GalileoE5aPcpsAcquisitionFpga::stop_acquisition() void GalileoE5aPcpsAcquisitionFpga::stop_acquisition()
{ {
// this command causes the SW to reset the HW. // stop the acquisition and the other FPGA modules.
acquisition_fpga_->reset_acquisition(); acquisition_fpga_->stop_acquisition();
} }

View File

@ -168,8 +168,8 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga(
void GpsL1CaPcpsAcquisitionFpga::stop_acquisition() void GpsL1CaPcpsAcquisitionFpga::stop_acquisition()
{ {
// this command causes the SW to reset the HW. // stop the acquisition and the other FPGA modules.
acquisition_fpga_->reset_acquisition(); acquisition_fpga_->stop_acquisition();
} }

View File

@ -158,6 +158,8 @@ GpsL2MPcpsAcquisitionFpga::GpsL2MPcpsAcquisitionFpga(
void GpsL2MPcpsAcquisitionFpga::stop_acquisition() void GpsL2MPcpsAcquisitionFpga::stop_acquisition()
{ {
// stop the acquisition and the other FPGA modules.
acquisition_fpga_->stop_acquisition();
} }

View File

@ -170,8 +170,8 @@ GpsL5iPcpsAcquisitionFpga::GpsL5iPcpsAcquisitionFpga(
void GpsL5iPcpsAcquisitionFpga::stop_acquisition() void GpsL5iPcpsAcquisitionFpga::stop_acquisition()
{ {
// this command causes the SW to reset the HW. // stop the acquisition and the other FPGA modules.
acquisition_fpga_->reset_acquisition(); acquisition_fpga_->stop_acquisition();
} }

View File

@ -301,3 +301,11 @@ void pcps_acquisition_fpga::reset_acquisition()
d_acquisition_fpga->reset_acquisition(); d_acquisition_fpga->reset_acquisition();
d_acquisition_fpga->close_device(); d_acquisition_fpga->close_device();
} }
void pcps_acquisition_fpga::stop_acquisition()
{
// this function stops the acquisition and the other FPGA Modules.
d_acquisition_fpga->open_device();
d_acquisition_fpga->stop_acquisition();
d_acquisition_fpga->close_device();
}

View File

@ -189,6 +189,11 @@ public:
*/ */
void reset_acquisition(); void reset_acquisition();
/*!
* \brief stop the acquisition and the other FPGA modules.
*/
void stop_acquisition();
private: private:
friend pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_); friend pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_);
explicit pcps_acquisition_fpga(pcpsconf_fpga_t conf_); explicit pcps_acquisition_fpga(pcpsconf_fpga_t conf_);

View File

@ -240,11 +240,15 @@ void Fpga_Acquisition::close_device()
void Fpga_Acquisition::reset_acquisition() void Fpga_Acquisition::reset_acquisition()
{ {
// printf("============ resetting the hw now from the acquisition ==============="); d_map_base[8] = RESET_ACQUISITION; // setting bit 2 of d_map_base[8] resets the acquisition. This causes a reset of all
d_map_base[8] = RESET_ACQUISITION; // writing a 2 to d_map_base[8] resets the acquisition. This causes a reset of all
// the FPGA HW modules including the multicorrelators // the FPGA HW modules including the multicorrelators
} }
void Fpga_Acquisition::stop_acquisition()
{
d_map_base[8] = STOP_ACQUISITION; // setting bit 3 of d_map_base[8] stops the acquisition module. This stops all
// the FPGA HW modules including the multicorrelators
}
// this function is only used for the unit tests // this function is only used for the unit tests
void Fpga_Acquisition::read_fpga_total_scale_factor(uint32_t *total_scale_factor, uint32_t *fw_scale_factor) void Fpga_Acquisition::read_fpga_total_scale_factor(uint32_t *total_scale_factor, uint32_t *fw_scale_factor)

View File

@ -105,6 +105,11 @@ public:
*/ */
void reset_acquisition(); void reset_acquisition();
/*!
* \brief stop the acquisition and the FPGA modules.
*/
void stop_acquisition();
/*! /*!
* \brief Read the scaling factor that has been used by the FFT-IFFT * \brief Read the scaling factor that has been used by the FFT-IFFT
*/ */
@ -138,8 +143,9 @@ public:
private: private:
// FPGA register parameters // FPGA register parameters
static const uint32_t PAGE_SIZE_DEFAULT = 0x10000; // default page size for the multicorrelator memory map static const uint32_t PAGE_SIZE_DEFAULT = 0x10000; // default page size for the multicorrelator memory map
static const uint32_t RESET_ACQUISITION = 2; // command to reset the multicorrelator static const uint32_t LAUNCH_ACQUISITION = 1; // command to launch the acquisition process
static const uint32_t LAUNCH_ACQUISITION = 1; // command to launch the multicorrelator static const uint32_t RESET_ACQUISITION = 2; // command to reset the acquisition and the FPGA Modules
static const uint32_t STOP_ACQUISITION = 4; // command to stop the acquisition and the FPGA modules
static const uint32_t TEST_REG_SANITY_CHECK = 0x55AA; // value to check the presence of the test register (to detect the hw) static const uint32_t TEST_REG_SANITY_CHECK = 0x55AA; // value to check the presence of the test register (to detect the hw)
static const uint32_t LOCAL_CODE_CLEAR_MEM = 0x10000000; // command to clear the internal memory of the multicorrelator static const uint32_t LOCAL_CODE_CLEAR_MEM = 0x10000000; // command to clear the internal memory of the multicorrelator
static const uint32_t MEM_LOCAL_CODE_WR_ENABLE = 0x0C000000; // command to enable the ENA and WR pins of the internal memory of the multicorrelator static const uint32_t MEM_LOCAL_CODE_WR_ENABLE = 0x0C000000; // command to enable the ENA and WR pins of the internal memory of the multicorrelator