pflib v3.9.0-rc3-11-g2537d8f
Pretty Fine HGCROC Interaction Library
Loading...
Searching...
No Matches
I2C.h
1#ifndef pflib_lpgbt_I2C_h_included
2#define pflib_lpgbt_I2C_h_included 1
3
4#include "pflib/I2C.h"
5#include "pflib/lpGBT.h"
6
7namespace pflib {
8namespace lpgbt {
9
11class I2C : public ::pflib::I2C {
12 public:
13 I2C(lpGBT& lpGBT, int ibus) : lpgbt_{lpGBT}, ibus_{ibus}, ispeed_{100} {}
14
15 virtual void set_bus_speed(int speed = 100);
16 virtual int get_bus_speed();
17 virtual void write_byte(uint8_t i2c_dev_addr, uint8_t data);
18 virtual uint8_t read_byte(uint8_t i2c_dev_addr);
20 uint8_t i2c_dev_addr, const std::vector<uint8_t>& wdata, int nread = 0);
21
22 private:
23 lpGBT& lpgbt_;
24 int ibus_;
25 int ispeed_;
26};
27
30 public:
31 I2CwithMux(lpGBT& lpGBT, int ibus, uint8_t muxaddr, uint8_t tochoose)
32 : ::pflib::lpgbt::I2C{lpGBT, ibus}, muxaddr_{muxaddr}, wval_{tochoose} {}
33
34 virtual void write_byte(uint8_t i2c_dev_addr, uint8_t data);
35 virtual uint8_t read_byte(uint8_t i2c_dev_addr);
37 uint8_t i2c_dev_addr, const std::vector<uint8_t>& wdata, int nread = 0);
38
39 private:
40 uint8_t muxaddr_, wval_;
41};
42} // namespace lpgbt
43} // namespace pflib
44
45#endif // pflib_lpgbt_I2C_h_included
Base class which encapsulates the I2C interface, represents a single bus.
Definition I2C.h:18
Class which provides an interface with an lpGBT ASIC as mounted on an LDMX mezzanine.
Definition lpGBT.h:52
Synchronous I2C implementation.
Definition I2C.h:11
virtual uint8_t read_byte(uint8_t i2c_dev_addr)
Read a single byte using the efficient interface.
Definition I2C.cxx:17
virtual int get_bus_speed()
Get the speed for the bus in kbps.
Definition I2C.cxx:11
virtual void set_bus_speed(int speed=100)
Set the speed for the bus in kbps.
Definition I2C.cxx:6
virtual std::vector< uint8_t > general_write_read(uint8_t i2c_dev_addr, const std::vector< uint8_t > &wdata, int nread=0)
Carry out a write of zero or more bytes followed a by a read of zero or more bytes.
Definition I2C.cxx:23
virtual void write_byte(uint8_t i2c_dev_addr, uint8_t data)
Write a single byte using the efficient interface, and wait for completion.
Definition I2C.cxx:13
Synchronous I2C implementation.
Definition I2C.h:29
virtual uint8_t read_byte(uint8_t i2c_dev_addr)
Read a single byte using the efficient interface.
Definition I2C.cxx:46
virtual std::vector< uint8_t > general_write_read(uint8_t i2c_dev_addr, const std::vector< uint8_t > &wdata, int nread=0)
Carry out a write of zero or more bytes followed a by a read of zero or more bytes.
Definition I2C.cxx:50
virtual void write_byte(uint8_t i2c_dev_addr, uint8_t data)
Write a single byte using the efficient interface, and wait for completion.
Definition I2C.cxx:42
This version of the fast control code interfaces with the CMS Fast control library which can be contr...
Definition Backend.cxx:3