peary/hardware/components/Si5345.hpp

Si5345 Component Class. More…

Namespaces

Name
peary
peary::component

Classes

Name
class peary::component::Si5345 Si5345 Frequency Synthesizer Component.

Detailed Description

Si5345 Component Class.

Copyright: Copyright (c) 2016-2025 CERN and the Peary Caribou authors. This software is distributed under the terms of the LGPL-3.0-only License, copied verbatim in the file “LICENSE.md”. SPDX-License-Identifier: LGPL-3.0-only

Source code

  
#pragma once

#include <any>
#include <filesystem>
#include <fstream>
#include <sstream>
#include <vector>

#include "peary/config/exceptions.hpp"
#include "peary/hal/Components.hpp"
#include "peary/hardware/components/exceptions.hpp"
#include "peary/interfaces/I2C/i2c.hpp"
#include "peary/utils/datatypes.hpp"

#include "Si5345-RevB-CLKOFF-Registers.h"

namespace peary::component {

    class Si5345 : public hal::Component<interface::I2CEndpoint> {
    public:
        // Register addresses
        enum class Register {
            PAGE = 0x01, // Page register
        };

        Si5345(const std::string& i2c_bus, uint8_t device_address);

        void configure(const std::any& config);

        void disable();

        interface::I2CEndpoint::vector_t read(int page);

        bool isLocked();
    };
} // namespace peary::component
  

Updated on 2026-01-30 at 22:01:05 +0100