peary/hardware/boards/CarboardConstants.hpp

CaR board I2C device addresses. More…

Namespaces

Name
peary
peary::board
peary::board::carboard

Detailed Description

CaR board I2C device addresses.

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 "peary/interfaces/I2C/i2c.hpp"

namespace peary::board::carboard {

    const double VREF_4P0 = 4.096; // via TI REF5040

    const double INA226_R_SHUNT = 0.01;

    const std::string BUS_I2C0 = "/dev/i2c-7";
    const std::string BUS_I2C1 = "/dev/i2c-8";
    const std::string BUS_I2C2 = "/dev/i2c-9";
    const std::string BUS_I2C3 = "/dev/i2c-10";
    const std::string BUS_I2C4 = "/dev/i2c-1";

    const interface::i2c_address_t ADDR_BRIDGE = 0x28; // SC18IS602B BRIDGE SPI/I2C
    const interface::i2c_address_t ADDR_EEPROM = 0x50; // 24LC32A EEPROM, Board ID, 12bit memory
    const interface::i2c_address_t ADDR_IOEXP = 0x76;  // PCA9539 IO Expander / Power switch
    const interface::i2c_address_t ADDR_CLKGEN = 0x68; // SI5345 Clock generator / PLL
    const interface::i2c_address_t ADDR_TEMP = 0x92;   // TMP101 Temperature sensor
    /* On CaR board v1.2 */
    const interface::i2c_address_t ADDR_IOEXP2 = 0x75;  // PCA9539 IO Expander / INTR Monitoring
    const interface::i2c_address_t ADDR_CMOSDAC = 0x48; // DAC7678 DAC to set CMOS voltage levels

    const interface::i2c_address_t ADDR_MONITOR_U53 = 0x40; // INA226 MONITOR PWR/CURR BIDIR
    const interface::i2c_address_t ADDR_MONITOR_U52 = 0x41;
    const interface::i2c_address_t ADDR_MONITOR_U55 = 0x42;
    const interface::i2c_address_t ADDR_MONITOR_U54 = 0x43;
    const interface::i2c_address_t ADDR_MONITOR_U57 = 0x44;
    const interface::i2c_address_t ADDR_MONITOR_U56 = 0x45;
    const interface::i2c_address_t ADDR_MONITOR_U59 = 0x46;
    const interface::i2c_address_t ADDR_MONITOR_U58 = 0x4A;

    // SEAF connector

    const interface::i2c_address_t ADDR_ADC = 0x48;     // ADS7828 ADC 12BIT 50KSPS 8CH, Analog input range 0-4V
    const interface::i2c_address_t ADDR_DAC_U44 = 0x4A; // DAC7678 DAC 12BIT I2C OCTAL 24VQFN
    const interface::i2c_address_t ADDR_DAC_U45 = 0x4D;
    const interface::i2c_address_t ADDR_DAC_U46 = 0x4C;
    const interface::i2c_address_t ADDR_DAC_U47 = 0x4B;
    const interface::i2c_address_t ADDR_DAC_U48 = 0x4E;
    const interface::i2c_address_t ADDR_DAC_U49 = 0x4F;
    const interface::i2c_address_t ADDR_DAC_U50 = 0x49;

    // Si570 USRCLK on ZC706. FIXME: this needs to go somewhere else
    const interface::i2c_address_t ADDR_SI570 = 0x5D;

    // EEPROM addresses
    const uint16_t ADDR_EEPROM_BOARD_ID = 0x00;  // EEPROM address for board ID
    const uint16_t ADDR_EEPROM_BOARD_REV = 0x01; // EEPROM address for board revision

} // namespace peary::board::carboard
  

Updated on 2025-11-14 at 11:31:23 +0100