mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-25 07:40:03 +02:00
37 lines
1.2 KiB
C
37 lines
1.2 KiB
C
#pragma once
|
|
|
|
#include <inttypes.h>
|
|
|
|
/**
|
|
* Configure the I2C core,
|
|
* Enable core and
|
|
* Calibrate the calibration register for current readout
|
|
* @param creg control register (defined in RegisterDefs.h)
|
|
* @param sreg status register (defined in RegisterDefs.h)
|
|
* @param rreg rx data fifo register (defined in RegisterDefs.h)
|
|
* @param rlvlreg rx data fifo level register (defined in RegisterDefs.h)
|
|
* @param slreg scl low count register (defined in RegisterDefs.h)
|
|
* @param shreg scl high count register (defined in RegisterDefs.h)
|
|
* @param sdreg sda hold register (defined in RegisterDefs.h)
|
|
* @param treg transfer command fifo register (defined in RegisterDefs.h)
|
|
*/
|
|
void I2C_ConfigureI2CCore(uint32_t creg, uint32_t sreg, uint32_t rreg,
|
|
uint32_t rlvlreg, uint32_t slreg, uint32_t shreg,
|
|
uint32_t sdreg, uint32_t treg);
|
|
|
|
/**
|
|
* Read register
|
|
* @param deviceId device Id
|
|
* @param addr register address
|
|
* @returns value read from register
|
|
*/
|
|
uint32_t I2C_Read(uint32_t devId, uint32_t addr);
|
|
|
|
/**
|
|
* Write register (16 bit value)
|
|
* @param deviceId device Id
|
|
* @param addr register address
|
|
* @param data data to be written (16 bit)
|
|
*/
|
|
void I2C_Write(uint32_t devId, uint32_t addr, uint16_t data);
|