Cat
Public Types | Public Member Functions | Private Attributes | List of all members
SeqPGA Class Reference

#include <SeqPGA.h>

Inheritance diagram for SeqPGA:
Element Hierarchy Object Attrib

Public Types

typedef unsigned long U32
 
typedef unsigned short U16
 
typedef unsigned char U8
 
- Public Types inherited from Attrib
enum  Attribut {
  UNDEFINED, PASSIVE, ACTIVE, INTERFACE,
  IO, IODATA, ELEMENT, HARDWARE,
  PROCESSUS, SOFTWARE
}
 

Public Member Functions

 SeqPGA ()
 
virtual ~SeqPGA ()
 
void help ()
 Destructor. More...
 
StatusCode init ()
 
void reset ()
 
void resetSpi ()
 
void update ()
 
UsbFTMLInterfaceusb ()
 
UsbMLI2cBusi2c ()
 
UsbMLSpiBusspi ()
 
Registerreg ()
 
RegistersetupReg ()
 
RegistermasterI2cReg ()
 
RegisteraddI2cReg ()
 
StatusCode testSequence ()
 
StatusCode setExtTrig (bool)
 
bool extTrig ()
 
StatusCode setSpiGBTSCA (bool)
 
bool spiGBTSCA ()
 
StatusCode setSpiEnable (bool)
 
bool spiEnable ()
 
StatusCode setLedEnable (bool)
 
bool ledEnable ()
 
StatusCode setSpiAdd (unsigned long int)
 
unsigned long int spiAdd ()
 
StatusCode setSpiSubAdd (unsigned long int)
 
unsigned long int spiSubAdd ()
 
StatusCode spiRead (unsigned int, unsigned int, unsigned int *)
 
StatusCode spiWrite (unsigned int, unsigned int, unsigned int *)
 
PyObject * spiRead (unsigned int, unsigned int)
 
StatusCode spiWrite (unsigned int, unsigned int, PyObject *)
 
unsigned int spiRead (unsigned int)
 
StatusCode spiWrite (unsigned int, unsigned int)
 
StatusCode setI2cGBTSCA (bool)
 
bool i2cGBTSCA ()
 
StatusCode setI2cBuffer (unsigned long int)
 
unsigned long int i2cBuffer ()
 
unsigned long int i2cData ()
 
StatusCode setI2cAdd (unsigned long int)
 
unsigned long int i2cAdd ()
 
StatusCode setI2cSubAdd (unsigned long int)
 
unsigned long int i2cSubAdd ()
 
StatusCode i2cRead ()
 
StatusCode i2cWrite ()
 
unsigned long int i2cRead (unsigned long int)
 
StatusCode i2cWrite (unsigned long int, unsigned long int)
 
StatusCode transmitSpi ()
 
- Public Member Functions inherited from Element
 Element ()
 Standard constructor. More...
 
virtual ~Element ()
 Destructor. More...
 
void recursiveInitElement ()
 
void recursiveInitCommunications ()
 
StatusCode setConnection (Hierarchy *)
 
Hierarchyconnection ()
 
- Public Member Functions inherited from Hierarchy
 Hierarchy ()
 Standard constructor. More...
 
virtual ~Hierarchy ()
 Destructor. More...
 
void clear ()
 
void setParent (Hierarchy *parent)
 
Hierarchyparent ()
 
Hierarchyparent (std::string)
 
Hierarchyorigin ()
 
virtual void addChild (Hierarchy *element)
 
std::vector< Hierarchy * > children ()
 
Hierarchychild (std::string)
 
HierarchychildTyped (std::string)
 
unsigned long numberOfChildren ()
 
bool hasChildren ()
 
void delChild (Hierarchy *)
 
void delChild (std::string)
 
std::string path (std::string=std::string(""))
 
std::string pathTyped (std::string=std::string(""))
 
void tree (std::string indent=std::string(""))
 
void tree ()
 
- Public Member Functions inherited from Object
 Object ()
 Standard constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
std::string name () const
 
std::string type ()
 
unsigned char id ()
 
std::string title ()
 
void msgSvc (int level, std::string msg, std::string name)
 
void msg (std::string mymsg)
 
void verbose (std::string mymsg)
 
void debug (std::string mymsg)
 
void info (std::string mymsg)
 
void warning (std::string mymsg)
 
void error (std::string mymsg)
 
void fatal (std::string mymsg)
 
void msg (std::string mymsg, std::string name)
 
void verbose (std::string mymsg, std::string name)
 
void debug (std::string mymsg, std::string name)
 
void info (std::string mymsg, std::string name)
 
void warning (std::string mymsg, std::string name)
 
void error (std::string mymsg, std::string name)
 
void fatal (std::string mymsg, std::string name)
 
void setName (std::string name)
 
void setType (std::string type)
 
void setId (unsigned char id)
 
void setTitle (std::string title)
 
void setDllName (std::string dllName)
 
std::string dllName ()
 
- Public Member Functions inherited from Attrib
 Attrib ()
 Standard constructor. More...
 
virtual ~Attrib ()
 Destructor. More...
 
bool is (int attribut)
 
void add (int attribut)
 
void remove (int attribut)
 
std::string attributs ()
 

Private Attributes

UsbFTMLInterfacem_usb
 
UsbMLI2cBusm_usbi2c
 
UsbMLSpiBusm_usbspi
 
Registerm_reg
 
Registerm_statusReg
 
Registerm_setupReg
 
Registerm_resetReg
 
Registerm_testSeqReg
 
RAMm_txSpiFifo
 
RAMm_rxSpiFifo
 
Registerm_addSpiReg
 
Registerm_ctrlSpiReg
 
Registerm_transmitSpiReg
 
unsigned int m_spiSubAdd
 
unsigned int m_i2cSubAdd
 
unsigned int m_i2cBuffer
 
Registerm_masterI2cReg
 
Registerm_addI2cReg
 

Additional Inherited Members

- Protected Attributes inherited from Element
Hierarchym_connection
 
- Protected Attributes inherited from Attrib
std::string m_attribString [10]
 

Detailed Description

Definition at line 23 of file SeqPGA.h.

Member Typedef Documentation

◆ U16

typedef unsigned short SeqPGA::U16

Definition at line 26 of file SeqPGA.h.

◆ U32

typedef unsigned long SeqPGA::U32

Definition at line 25 of file SeqPGA.h.

◆ U8

typedef unsigned char SeqPGA::U8

Definition at line 27 of file SeqPGA.h.

Constructor & Destructor Documentation

◆ SeqPGA()

SeqPGA::SeqPGA ( )

Definition at line 29 of file SeqPGA.cpp.

References Attrib::add(), Hierarchy::addChild(), IOdata::Byte, Object::debug(), IOdata::defDataU8(), Attrib::ELEMENT, Attrib::HARDWARE, IOobject::io(), m_addI2cReg, m_addSpiReg, m_ctrlSpiReg, m_masterI2cReg, m_reg, m_resetReg, m_rxSpiFifo, m_setupReg, m_statusReg, m_testSeqReg, m_transmitSpiReg, m_txSpiFifo, m_usb, m_usbi2c, m_usbspi, IOdata::setAddress(), IOobject::setAddress(), Object::setId(), Object::setName(), RAM::setSize(), Object::setType(), and IOdata::setWordSize().

29  {
30  setType("SeqPGA");
31  setId(0);
33  debug("SeqPGA built.","SeqPGA::SeqPGA");
34 
35  m_usb = new UsbFTMLInterface();
36  m_usb->setName("Usb");
37  addChild(m_usb);
38 
39  m_usbi2c=new UsbMLI2cBus();
40  m_usbi2c->setName("UsbI2c");
42 
43  m_usbspi=new UsbMLSpiBus();
44  m_usbspi->setName("UsbSpi");
46 
47  m_reg=new Register();
48  m_reg->io()->defDataU8(2);
49  m_reg->setName("UsbTestReg");
50  m_reg->setAddress(11);
52 
53  m_statusReg = new Register();
54  m_statusReg ->setName("StatusReg");
55  m_statusReg ->io()->defDataU8(2);
56  m_statusReg ->io()->setAddress(7);
59 
60  m_setupReg = new Register();
61  m_setupReg ->setName("SetupReg");
62  m_setupReg ->io()->defDataU8(2);
63  m_setupReg ->io()->setAddress(8);
66 
67  m_resetReg = new Register();
68  m_resetReg ->setName("ResetReg");
69  m_resetReg ->io()->defDataU8(2);
70  m_resetReg ->io()->setAddress(14);
73 
74  m_testSeqReg = new Register();
75  m_testSeqReg ->setName("TestSeqReg");
76  m_testSeqReg ->io()->defDataU8(2);
77  m_testSeqReg ->io()->setAddress(12);
80 
81  m_txSpiFifo = new RAM();
82  m_rxSpiFifo = new RAM();
83  m_addSpiReg = new Register();
84  m_ctrlSpiReg = new Register();
85  // m_subAddSpiReg = new Register();
86  m_transmitSpiReg = new Register();
87 
88  m_txSpiFifo ->setName("TxSpiFifo");
89  m_rxSpiFifo ->setName("RxSpiFifo");
90  m_addSpiReg ->setName("AddSpiReg");
91  m_ctrlSpiReg ->setName("CtrlSpiReg");
92  // m_subAddSpiReg ->setName("SubAddSpiReg");
93  m_transmitSpiReg ->setName("TransmitSpiReg");
94 
95  m_txSpiFifo ->setSize(16,2);
96  m_rxSpiFifo ->setSize(16,1);
97  m_addSpiReg ->io()->defDataU8(2);
98  m_ctrlSpiReg ->io()->defDataU8(2);
99  // m_subAddSpiReg ->io()->defDataU8(2);
100  m_transmitSpiReg ->io()->defDataU8(2);
101 
102  m_txSpiFifo ->io()->setAddress(2);
103  m_rxSpiFifo ->io()->setAddress(4);
104  m_addSpiReg ->io()->setAddress(6);
105  m_ctrlSpiReg ->io()->setAddress(5);
106  // m_subAddSpiReg ->io()->setAddress(3);
107  m_transmitSpiReg ->io()->setAddress(10);
108 
111  // m_subAddSpiReg ->io()->setWordSize(IOdata::Byte);
113 
118  // m_usb->addChild(m_subAddSpiReg);
120 
121  m_masterI2cReg = new Register();
122  m_masterI2cReg ->setName("I2cMasterI2cReg");
123  m_masterI2cReg ->io()->defDataU8(3);
124  m_masterI2cReg ->io()->setAddress(9);
126 
127  m_addI2cReg = new Register();
128  m_addI2cReg ->setName("AddI2cReg");
129  m_addI2cReg ->io()->defDataU8(2);
130  m_addI2cReg ->io()->setAddress(1);
132 
135 
136 }
Definition: RAM.h:16
Register * m_transmitSpiReg
Definition: SeqPGA.h:203
Register * m_statusReg
Definition: SeqPGA.h:193
StatusCode setSize(unsigned int, unsigned int)
Definition: RAM.cpp:29
void add(int attribut)
Definition: Attrib.h:67
void setName(std::string name)
Definition: Object.h:51
RAM * m_rxSpiFifo
Definition: SeqPGA.h:199
Register * m_masterI2cReg
Definition: SeqPGA.h:209
Register * m_ctrlSpiReg
Definition: SeqPGA.h:201
void setType(std::string type)
Definition: Object.h:52
Register * m_reg
Definition: SeqPGA.h:191
void setId(unsigned char id)
Definition: Object.h:53
void debug(std::string mymsg)
Definition: Object.h:37
Register * m_addSpiReg
Definition: SeqPGA.h:200
StatusCode setAddress(U32 address)
Definition: IOdata.h:51
Register * m_resetReg
Definition: SeqPGA.h:195
UsbFTMLInterface * m_usb
Definition: SeqPGA.h:187
UsbMLI2cBus * m_usbi2c
Definition: SeqPGA.h:188
UsbMLSpiBus * m_usbspi
Definition: SeqPGA.h:189
RAM * m_txSpiFifo
Definition: SeqPGA.h:198
void setAddress(U32 address)
Definition: IOobject.h:84
virtual void addChild(Hierarchy *element)
Definition: Hierarchy.cpp:83
Register * m_testSeqReg
Definition: SeqPGA.h:196
Register * m_setupReg
Definition: SeqPGA.h:194
StatusCode setWordSize(IOdata::WordSize wordSize)
Definition: IOdata.h:126
Register * m_addI2cReg
Definition: SeqPGA.h:210
void defDataU8(unsigned long size)
Definition: IOdata.h:179
IOdata * io()
Definition: IOobject.h:66

◆ ~SeqPGA()

virtual SeqPGA::~SeqPGA ( )
inlinevirtual

Definition at line 31 of file SeqPGA.h.

31 {};

Member Function Documentation

◆ addI2cReg()

Register* SeqPGA::addI2cReg ( )
inline

Definition at line 94 of file SeqPGA.h.

References m_addI2cReg.

Referenced by BOOST_PYTHON_MODULE().

94 { return m_addI2cReg; }
Register * m_addI2cReg
Definition: SeqPGA.h:210

◆ extTrig()

bool SeqPGA::extTrig ( )

Definition at line 151 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_setupReg, and IOobject::read().

Referenced by BOOST_PYTHON_MODULE(), FEB_v1::extTrig(), and testSequence().

151  {
152  m_setupReg->read();
153  /*
154  if (StatusCode::SUCCESS == m_setupReg->read()) {
155  error("I2c register setupReg error", "UsbMLI2cBus::spiGBTSCA");
156  return false;
157  }*/
158  return ( ( m_setupReg->io()->dataU8(0) >> 3 ) & 1 ) ;
159 }
virtual StatusCode read()
Definition: IOobject.h:73
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ help()

void SeqPGA::help ( )
inlinevirtual

Destructor.

printout help for the element

Implements Element.

Definition at line 36 of file SeqPGA.h.

References Object::info(), and Object::name().

36 { info("SeqPGA "+name()+". No help.","SeqPGA::help"); };
void info(std::string mymsg)
Definition: Object.h:38
std::string name() const
Definition: Object.h:28

◆ i2c()

UsbMLI2cBus* SeqPGA::i2c ( )
inline

Definition at line 79 of file SeqPGA.h.

References m_usbi2c.

Referenced by BOOST_PYTHON_MODULE().

79  {
80  return m_usbi2c;
81  }
UsbMLI2cBus * m_usbi2c
Definition: SeqPGA.h:188

◆ i2cAdd()

unsigned long int SeqPGA::i2cAdd ( )

Definition at line 488 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_addI2cReg, and IOobject::read().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

488  {
489  m_addI2cReg->read();
490  return ( m_addI2cReg->io()->dataU8(0) + (m_addI2cReg->io()->dataU8(1)<<8) ) ;
491 }
virtual StatusCode read()
Definition: IOobject.h:73
U8 * dataU8()
Definition: IOdata.h:214
Register * m_addI2cReg
Definition: SeqPGA.h:210
IOdata * io()
Definition: IOobject.h:66

◆ i2cBuffer()

unsigned long int SeqPGA::i2cBuffer ( )

Definition at line 465 of file SeqPGA.cpp.

References m_i2cBuffer.

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

465  {
466  return m_i2cBuffer;
467 }
unsigned int m_i2cBuffer
Definition: SeqPGA.h:207

◆ i2cData()

unsigned long int SeqPGA::i2cData ( )

Definition at line 473 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), and m_masterI2cReg.

Referenced by BOOST_PYTHON_MODULE(), i2cRead(), and testSequence().

473  {
474  // m_masterI2cReg->io()->dump(0);
475  return ( ((m_masterI2cReg->io()->dataU8(0))&0xFF) ) ;
476 }
Register * m_masterI2cReg
Definition: SeqPGA.h:209
U8 * dataU8()
Definition: IOdata.h:214
IOdata * io()
Definition: IOobject.h:66

◆ i2cGBTSCA()

bool SeqPGA::i2cGBTSCA ( )

Definition at line 451 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_setupReg, and IOobject::read().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

451  {
452  m_setupReg->read();
453  return (! ( m_setupReg->io()->dataU8(0) & 1 ) ) ;
454 }
virtual StatusCode read()
Definition: IOobject.h:73
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ i2cRead() [1/2]

StatusCode SeqPGA::i2cRead ( )

Definition at line 510 of file SeqPGA.cpp.

References shell::data(), IOdata::dataU8(), Object::debug(), IOdata::defDataU8(), IOobject::io(), m_i2cSubAdd, m_masterI2cReg, m_setupReg, IOobject::read(), IOdata::setU8(), StatusCode::SUCCESS, and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), TestI2C::execute(), FEB_v1::gbt80MHzClkEport(), FEB_v1::gbtClockStrength(), FEB_v1::gbtDataPath(), FEB_v1::gbtDLLEport(), FEB_v1::gbtDLLReset(), FEB_v1::gbtEnableEport(), FEB_v1::gbtMode(), FEB_v1::gbtStatus(), FEB_v1::gbtTermEport(), FEB_v1::gbtTrackMode(), i2cRead(), and testSequence().

510  {
511  debug("setting position of read i2c protocol","i2c read");
512  m_setupReg->read();
513  unsigned int data = m_setupReg->io()->dataU8()[0];
514  data |= (1 << 2) ;
515  m_setupReg->io()->setU8(0,data);
516  m_setupReg->write();
517 
518  debug("setting subadd value in the frame","i2c write");
519  m_masterI2cReg->io()->defDataU8(2);
520  m_masterI2cReg->io()->setU8(0,m_i2cSubAdd&0xFF);
521  m_masterI2cReg->io()->setU8(1,(m_i2cSubAdd>>8)&0xFF);
522  // m_masterI2cReg->io()->dump(0);
523 
524  debug("i2c write of the register","i2c read");
526 
527  debug("i2c read of the addressed register","i2c read");
528  m_masterI2cReg->io()->defDataU8(1);
529  m_masterI2cReg->read();
530  // m_masterI2cReg->io()->dump(0);
531 
532  return StatusCode::SUCCESS;
533 }
unsigned int m_i2cSubAdd
Definition: SeqPGA.h:206
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
Register * m_masterI2cReg
Definition: SeqPGA.h:209
virtual StatusCode read()
Definition: IOobject.h:73
void debug(std::string mymsg)
Definition: Object.h:37
def data(object, stream=None)
Definition: shell.py:150
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
void defDataU8(unsigned long size)
Definition: IOdata.h:179
IOdata * io()
Definition: IOobject.h:66

◆ i2cRead() [2/2]

unsigned long int SeqPGA::i2cRead ( unsigned long int  subadd)

Definition at line 556 of file SeqPGA.cpp.

References i2cData(), i2cRead(), and setI2cSubAdd().

556  {
557  setI2cSubAdd(subadd);
558  i2cRead();
559  return i2cData();
560 }
StatusCode i2cRead()
Definition: SeqPGA.cpp:510
unsigned long int i2cData()
Definition: SeqPGA.cpp:473
StatusCode setI2cSubAdd(unsigned long int)
Definition: SeqPGA.cpp:497

◆ i2cSubAdd()

unsigned long int SeqPGA::i2cSubAdd ( )

Definition at line 502 of file SeqPGA.cpp.

References m_i2cSubAdd.

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

502  {
503  return m_i2cSubAdd;
504 }
unsigned int m_i2cSubAdd
Definition: SeqPGA.h:206

◆ i2cWrite() [1/2]

StatusCode SeqPGA::i2cWrite ( )

Definition at line 535 of file SeqPGA.cpp.

References shell::data(), IOdata::dataU8(), Object::debug(), IOdata::defDataU8(), IOobject::io(), m_i2cBuffer, m_i2cSubAdd, m_masterI2cReg, m_setupReg, IOobject::read(), IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), TestI2C::execute(), FEB_v1::gbtAcknowledgeConfig(), FEB_v1::gbtDLLReset(), i2cWrite(), FEB_v1::setGbt80MHzClkEport(), FEB_v1::setGbtClockStrength(), FEB_v1::setGbtDataPath(), FEB_v1::setGbtDLLEport(), FEB_v1::setGbtEnableEport(), FEB_v1::setGbtMode(), FEB_v1::setGbtTermEport(), FEB_v1::setGbtTrackMode(), and testSequence().

535  {
536  debug("setting position of write i2c protocol","i2c write");
537  m_setupReg->read();
538  unsigned int data = m_setupReg->io()->dataU8()[0];
539  data &= ~(1 << 2) ;
540  m_setupReg->io()->setU8(0,data);
541  m_setupReg->write();
542 
543  debug("setting subadd value in the frame","i2c write");
544  m_masterI2cReg->io()->defDataU8(3);
545  m_masterI2cReg->io()->setU8(0,m_i2cSubAdd&0xFF);
546  m_masterI2cReg->io()->setU8(1,(m_i2cSubAdd>>8)&0xFF);
547 
548  debug("setting buffer value in the frame","i2c write");
549  m_masterI2cReg->io()->setU8(2,m_i2cBuffer&0xFF);
550  // m_masterI2cReg->io()->dump(0);
551 
552  debug("i2c write","i2c write");
553  return m_masterI2cReg->write();
554 }
unsigned int m_i2cBuffer
Definition: SeqPGA.h:207
unsigned int m_i2cSubAdd
Definition: SeqPGA.h:206
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
Register * m_masterI2cReg
Definition: SeqPGA.h:209
virtual StatusCode read()
Definition: IOobject.h:73
void debug(std::string mymsg)
Definition: Object.h:37
def data(object, stream=None)
Definition: shell.py:150
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
void defDataU8(unsigned long size)
Definition: IOdata.h:179
IOdata * io()
Definition: IOobject.h:66

◆ i2cWrite() [2/2]

StatusCode SeqPGA::i2cWrite ( unsigned long int  subadd,
unsigned long int  value 
)

Definition at line 562 of file SeqPGA.cpp.

References i2cWrite(), setI2cBuffer(), and setI2cSubAdd().

562  {
563  setI2cSubAdd(subadd);
564  setI2cBuffer(value);
565  return i2cWrite();
566 }
StatusCode setI2cBuffer(unsigned long int)
Definition: SeqPGA.cpp:460
StatusCode i2cWrite()
Definition: SeqPGA.cpp:535
StatusCode setI2cSubAdd(unsigned long int)
Definition: SeqPGA.cpp:497

◆ init()

StatusCode SeqPGA::init ( )
inlinevirtual

init the component

Returns
void

Implements Element.

Definition at line 42 of file SeqPGA.h.

References StatusCode::SUCCESS.

42  {
43  return StatusCode::SUCCESS;
44  };

◆ ledEnable()

bool SeqPGA::ledEnable ( )

Definition at line 215 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_setupReg, and IOobject::read().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

215  {
216  m_setupReg->read();
217  return ( ( ( m_setupReg->io()->dataU8(1) )>> 3 ) & 1 ) ;
218 }
virtual StatusCode read()
Definition: IOobject.h:73
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ masterI2cReg()

Register* SeqPGA::masterI2cReg ( )
inline

Definition at line 93 of file SeqPGA.h.

References m_masterI2cReg.

Referenced by BOOST_PYTHON_MODULE().

93 { return m_masterI2cReg; }
Register * m_masterI2cReg
Definition: SeqPGA.h:209

◆ reg()

Register* SeqPGA::reg ( )
inline

Definition at line 87 of file SeqPGA.h.

References m_reg.

Referenced by BOOST_PYTHON_MODULE().

87  {
88  return m_reg;
89  }
Register * m_reg
Definition: SeqPGA.h:191

◆ reset()

void SeqPGA::reset ( )
inlinevirtual

Resets the Element so that is is in a standard and safe situation. Different from Element::init which configure the Element. Element::reset() is more an Emergency pull. It is often/usually called by the recursiveInitElement method at the start of the program.

Implements Element.

Definition at line 54 of file SeqPGA.h.

References Object::info(), IOobject::io(), m_resetReg, IOdata::setU8(), and IOobject::write().

Referenced by FEB_v1::reset().

54  {
55  info("FEB reset.");
56  m_resetReg->io()->setU8(0,1);
57  m_resetReg->io()->setU8(1,0);
58  m_resetReg->write();
59  };
void info(std::string mymsg)
Definition: Object.h:38
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
Register * m_resetReg
Definition: SeqPGA.h:195
IOdata * io()
Definition: IOobject.h:66

◆ resetSpi()

void SeqPGA::resetSpi ( )
inline

Definition at line 61 of file SeqPGA.h.

References Object::debug(), IOobject::io(), m_resetReg, IOdata::setU8(), and IOobject::write().

Referenced by FEB_v1::resetSpi().

61  {
62  debug("Spi TxRx reset via USb.");
63  m_resetReg->io()->setU8(0,2);
64  m_resetReg->io()->setU8(1,0);
65  // m_resetReg->dump();
66  m_resetReg->write();
67  };
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
void debug(std::string mymsg)
Definition: Object.h:37
Register * m_resetReg
Definition: SeqPGA.h:195
IOdata * io()
Definition: IOobject.h:66

◆ setExtTrig()

StatusCode SeqPGA::setExtTrig ( bool  value)

Definition at line 142 of file SeqPGA.cpp.

References shell::data(), IOdata::dataU8(), IOobject::io(), m_setupReg, IOobject::read(), IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), FEB_v1::setExtTrig(), and testSequence().

142  {
143  m_setupReg->read();
144  unsigned int data=m_setupReg->io()->dataU8()[0];
145  if (value) data |= 8 ;
146  else data &= ~8 ;
147  m_setupReg->io()->setU8(0,data);
148  return m_setupReg->write();
149 }
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
virtual StatusCode read()
Definition: IOobject.h:73
def data(object, stream=None)
Definition: shell.py:150
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ setI2cAdd()

StatusCode SeqPGA::setI2cAdd ( unsigned long int  value)

◆ setI2cBuffer()

StatusCode SeqPGA::setI2cBuffer ( unsigned long int  value)

Definition at line 460 of file SeqPGA.cpp.

References m_i2cBuffer, and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), i2cWrite(), and testSequence().

460  {
461  m_i2cBuffer = value;
462  return StatusCode::SUCCESS;
463 }
unsigned int m_i2cBuffer
Definition: SeqPGA.h:207

◆ setI2cGBTSCA()

StatusCode SeqPGA::setI2cGBTSCA ( bool  value)

Definition at line 442 of file SeqPGA.cpp.

References shell::data(), IOdata::dataU8(), IOobject::io(), m_setupReg, IOobject::read(), IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

442  {
443  m_setupReg->read();
444  unsigned int data=m_setupReg->io()->dataU8()[0];
445  if (!value) data |= 1 ;
446  else data &= ~1 ;
447  m_setupReg->io()->setU8(0,data);
448  return m_setupReg->write();
449 }
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
virtual StatusCode read()
Definition: IOobject.h:73
def data(object, stream=None)
Definition: shell.py:150
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ setI2cSubAdd()

StatusCode SeqPGA::setI2cSubAdd ( unsigned long int  value)

Definition at line 497 of file SeqPGA.cpp.

References m_i2cSubAdd, and StatusCode::SUCCESS.

Referenced by BOOST_PYTHON_MODULE(), i2cRead(), i2cWrite(), and testSequence().

497  {
498  m_i2cSubAdd = value;
499  return StatusCode::SUCCESS;
500 }
unsigned int m_i2cSubAdd
Definition: SeqPGA.h:206

◆ setLedEnable()

StatusCode SeqPGA::setLedEnable ( bool  value)

Definition at line 206 of file SeqPGA.cpp.

References shell::data(), IOdata::dataU8(), IOobject::io(), m_setupReg, IOobject::read(), IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

206  {
207  m_setupReg->read();
208  unsigned int data=m_setupReg->io()->dataU8()[1];
209  if (value) data |= 8 ;
210  else data &= ~8 ;
211  m_setupReg->io()->setU8(1,data);
212  return m_setupReg->write();
213 }
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
virtual StatusCode read()
Definition: IOobject.h:73
def data(object, stream=None)
Definition: shell.py:150
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ setSpiAdd()

StatusCode SeqPGA::setSpiAdd ( unsigned long int  value)

Definition at line 255 of file SeqPGA.cpp.

References IOobject::io(), m_addSpiReg, IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), FEB_v1::calibCte(), FEB_v1::clock80MHzFallingEdge(), FEB_v1::clockFallingEdge(), FEB_v1::clockPhaseEport(), FEB_v1::disableSubtract(), FEB_v1::enableBXIDReset(), FEB_v1::gain4(), FEB_v1::globalPseudoPMEnable(), TestSPI::initialize(), FEB_v1::injectModeFE(), FEB_v1::latency(), FEB_v1::latencyEport(), FEB_v1::latencyLLT(), FEB_v1::maskLLT(), FEB_v1::oldSubtract(), FEB_v1::probeEnable(), FEB_v1::pseudoADCEnable(), FEB_v1::pseudoPMEnable(), FEB_v1::readFifoSpyFE(), FEB_v1::resetFE(), FEB_v1::resetFifoInjectFE(), FEB_v1::resetFifoSpyFE(), FEB_v1::setCalibCte(), FEB_v1::setClock80MHzFallingEdge(), FEB_v1::setClockFallingEdge(), FEB_v1::setDisableSubtract(), FEB_v1::setEnableBXIDReset(), FEB_v1::setGain4(), FEB_v1::setGlobalPseudoPMEnable(), FEB_v1::setInjectModeFE(), FEB_v1::setLatency(), FEB_v1::setLatencyLLT(), FEB_v1::setLatencyLLTCorner(), FEB_v1::setLatencyLLTSideNb(), FEB_v1::setLatencyLLTUpNb(), FEB_v1::setMaskLLT(), FEB_v1::setMaskLLTCorner(), FEB_v1::setMaskLLTSideNb(), FEB_v1::setMaskLLTUpNb(), FEB_v1::setOldSubtract(), FEB_v1::setOutputEport(), FEB_v1::setProbeEnable(), FEB_v1::setPseudoADCEnable(), FEB_v1::setPseudoPMEnable(), FEB_v1::setSpareForTrigEnable(), FEB_v1::setSpyModeFE(), FEB_v1::setSpyModeSeq(), FEB_v1::setStopInjLoop(), FEB_v1::setTestDuration(), FEB_v1::setThreshold(), FEB_v1::spareForTrigEnable(), FEB_v1::spyModeFE(), FEB_v1::spyModeSeq(), FEB_v1::statusRegister(), FEB_v1::stopInjLoop(), FEB_v1::testDuration(), testSequence(), FEB_v1::threshold(), FEB_v1::writeDataFifoInjectFE(), FEB_v1::writeFifoInjectFE(), and FEB_v1::writeFifoLLT().

255  {
256  m_addSpiReg->io()->setU8(0,value&0xFF);
257  m_addSpiReg->io()->setU8(1,(value>>8) & 0xFF);
258  StatusCode err= m_addSpiReg->write();
259 
260  return err;
261 }
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
Register * m_addSpiReg
Definition: SeqPGA.h:200
IOdata * io()
Definition: IOobject.h:66

◆ setSpiEnable()

StatusCode SeqPGA::setSpiEnable ( bool  value)

Definition at line 188 of file SeqPGA.cpp.

References shell::data(), IOdata::dataU8(), IOobject::io(), m_setupReg, IOobject::read(), IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

188  {
189  m_setupReg->read();
190  unsigned int data=m_setupReg->io()->dataU8()[1];
191  if (value) data |= 4 ;
192  else data &= ~4 ;
193  m_setupReg->io()->setU8(1,data);
194  return m_setupReg->write();
195 }
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
virtual StatusCode read()
Definition: IOobject.h:73
def data(object, stream=None)
Definition: shell.py:150
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ setSpiGBTSCA()

StatusCode SeqPGA::setSpiGBTSCA ( bool  value)

Definition at line 165 of file SeqPGA.cpp.

References shell::data(), IOdata::dataU8(), IOobject::io(), m_setupReg, IOobject::read(), IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), FEB_v1::readFifoInjectFE(), FEB_v1::readFifoLLT(), FEB_v1::readFifoLLTFE(), and testSequence().

165  {
166  m_setupReg->read();
167  unsigned int data=m_setupReg->io()->dataU8()[0];
168  if (!value) data |= 2 ;
169  else data &= ~2 ;
170  m_setupReg->io()->setU8(0,data);
171  return m_setupReg->write();
172 }
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
virtual StatusCode read()
Definition: IOobject.h:73
def data(object, stream=None)
Definition: shell.py:150
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ setSpiSubAdd()

StatusCode SeqPGA::setSpiSubAdd ( unsigned long int  value)

Definition at line 278 of file SeqPGA.cpp.

References m_spiSubAdd.

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

278  {
279  m_spiSubAdd = value & 0x7F;
280 }
unsigned int m_spiSubAdd
Definition: SeqPGA.h:205

◆ setupReg()

Register* SeqPGA::setupReg ( )
inline

Definition at line 91 of file SeqPGA.h.

References m_setupReg.

Referenced by BOOST_PYTHON_MODULE(), TestUSB::initialize(), and TestI2C::initialize().

91 { return m_setupReg; }
Register * m_setupReg
Definition: SeqPGA.h:194

◆ spi()

UsbMLSpiBus* SeqPGA::spi ( )
inline

Definition at line 83 of file SeqPGA.h.

References m_usbspi.

Referenced by BOOST_PYTHON_MODULE().

83  {
84  return m_usbspi;
85  }
UsbMLSpiBus * m_usbspi
Definition: SeqPGA.h:189

◆ spiAdd()

unsigned long int SeqPGA::spiAdd ( )

Definition at line 263 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_addSpiReg, and IOobject::read().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

263  {
264  m_addSpiReg->read();
265  /*
266  if (StatusCode::SUCCESS == m_txSpiReg->read()) {
267  error("TX register txSpiReg error", "UsbMLSpiBus::dataTx");
268  return false;
269  }
270  */
271  return ( m_addSpiReg->io()->dataU8(0) + (m_addSpiReg->io()->dataU8(1)<<8) ) ;
272 }
virtual StatusCode read()
Definition: IOobject.h:73
Register * m_addSpiReg
Definition: SeqPGA.h:200
U8 * dataU8()
Definition: IOdata.h:214
IOdata * io()
Definition: IOobject.h:66

◆ spiEnable()

bool SeqPGA::spiEnable ( )

Definition at line 197 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_setupReg, and IOobject::read().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

197  {
198  m_setupReg->read();
199  return ( ( ( m_setupReg->io()->dataU8(1) )>> 2 ) & 1 ) ;
200 }
virtual StatusCode read()
Definition: IOobject.h:73
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ spiGBTSCA()

bool SeqPGA::spiGBTSCA ( )

Definition at line 174 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_setupReg, and IOobject::read().

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

174  {
175  m_setupReg->read();
176  /*
177  if (StatusCode::SUCCESS == m_setupReg->read()) {
178  error("I2c register setupReg error", "UsbMLI2cBus::spiGBTSCA");
179  return false;
180  }*/
181  return (! ( m_setupReg->io()->dataU8(0) & 2 ) ) ;
182 }
virtual StatusCode read()
Definition: IOobject.h:73
U8 * dataU8()
Definition: IOdata.h:214
Register * m_setupReg
Definition: SeqPGA.h:194
IOdata * io()
Definition: IOobject.h:66

◆ spiRead() [1/3]

StatusCode SeqPGA::spiRead ( unsigned int  subadd,
unsigned int  nwords,
unsigned int *  values 
)

Definition at line 337 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_ctrlSpiReg, m_rxSpiFifo, m_transmitSpiReg, m_txSpiFifo, IOobject::read(), RAM::setSize(), IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), FEB_v1::calibCte(), FEB_v1::clock80MHzFallingEdge(), FEB_v1::clockFallingEdge(), FEB_v1::clockPhaseEport(), FEB_v1::disableSubtract(), FEB_v1::enableBXIDReset(), TestSPI::execute(), FEB_v1::gain4(), FEB_v1::globalPseudoPMEnable(), FEB_v1::injectModeFE(), FEB_v1::latency(), FEB_v1::latencyEport(), FEB_v1::latencyLLT(), FEB_v1::maskLLT(), FEB_v1::oldSubtract(), FEB_v1::probeEnable(), FEB_v1::pseudoADCEnable(), FEB_v1::pseudoPMEnable(), FEB_v1::readFifo(), FEB_v1::setCalibCte(), FEB_v1::setClock80MHzFallingEdge(), FEB_v1::setClockFallingEdge(), FEB_v1::setDisableSubtract(), FEB_v1::setEnableBXIDReset(), FEB_v1::setGain4(), FEB_v1::setGlobalPseudoPMEnable(), FEB_v1::setInjectModeFE(), FEB_v1::setLatency(), FEB_v1::setLatencyLLT(), FEB_v1::setLatencyLLTCorner(), FEB_v1::setLatencyLLTSideNb(), FEB_v1::setLatencyLLTUpNb(), FEB_v1::setMaskLLT(), FEB_v1::setMaskLLTCorner(), FEB_v1::setMaskLLTSideNb(), FEB_v1::setMaskLLTUpNb(), FEB_v1::setOldSubtract(), FEB_v1::setProbeEnable(), FEB_v1::setPseudoADCEnable(), FEB_v1::setPseudoPMEnable(), FEB_v1::setSpareForTrigEnable(), FEB_v1::setSpyModeFE(), FEB_v1::setSpyModeSeq(), FEB_v1::setStopInjLoop(), FEB_v1::setTestDuration(), FEB_v1::setThreshold(), FEB_v1::spareForTrigEnable(), FEB_v1::spyModeFE(), FEB_v1::spyModeSeq(), FEB_v1::statusRegister(), FEB_v1::stopInjLoop(), FEB_v1::testDuration(), testSequence(), and FEB_v1::threshold().

337  {
338  unsigned int val = subadd | 0x80 ;
339  m_txSpiFifo->setSize(16,1);
340  m_rxSpiFifo->setSize(16,nwords+1);
341  m_ctrlSpiReg->io()->setU8(0,(nwords+1)&0xFF);
342  m_ctrlSpiReg->io()->setU8(1,((nwords+1)>>8)&0xFF);
343  m_ctrlSpiReg->write();
344  m_txSpiFifo->io()->setU8(0,val);
345  m_txSpiFifo->io()->setU8(1,0);
346  m_txSpiFifo->write();
347  StatusCode status = m_transmitSpiReg->write();
348  // usleep(100000);
349  m_rxSpiFifo->read();
350  for (int w=0; w<nwords; ++w) {
351  values[w]=((m_rxSpiFifo->io()->dataU8(2*w+2))&0xFF)+
352  (((m_rxSpiFifo->io()->dataU8(2*w+3))&0xFF)<<8);
353  }
354  return status;
355 }
Register * m_transmitSpiReg
Definition: SeqPGA.h:203
StatusCode setSize(unsigned int, unsigned int)
Definition: RAM.cpp:29
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
RAM * m_rxSpiFifo
Definition: SeqPGA.h:199
Register * m_ctrlSpiReg
Definition: SeqPGA.h:201
virtual StatusCode read()
Definition: IOobject.h:73
RAM * m_txSpiFifo
Definition: SeqPGA.h:198
U8 * dataU8()
Definition: IOdata.h:214
IOdata * io()
Definition: IOobject.h:66

◆ spiRead() [2/3]

PyObject * SeqPGA::spiRead ( unsigned int  subadd,
unsigned int  nwords 
)

Definition at line 377 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_ctrlSpiReg, m_rxSpiFifo, m_transmitSpiReg, m_txSpiFifo, IOobject::read(), RAM::setSize(), IOdata::setU8(), and IOobject::write().

377  {
378  unsigned int val = subadd | 0x80 ;
379  m_txSpiFifo->setSize(16,1);
380  m_rxSpiFifo->setSize(16,nwords+1);
381  m_ctrlSpiReg->io()->setU8(0,(nwords+1)&0xFF);
382  m_ctrlSpiReg->io()->setU8(1,((nwords+1)>>8)&0xFF);
383  m_ctrlSpiReg->write();
384  // m_ctrlSpiReg->read();
385  // m_ctrlSpiReg->dump();
386  m_txSpiFifo->io()->setU8(0,val);
387  m_txSpiFifo->io()->setU8(1,0);
388  m_txSpiFifo->write();
389  StatusCode status = m_transmitSpiReg->write();
390  // usleep(100000);
391  m_rxSpiFifo->read();
392  PyObject* values = PyList_New(0);
393  for (int w=0; w<nwords; ++w) {
394  // m_rxSpiFifo->dump();
395  PyList_Append(values,
396  PyInt_FromLong( (long int) (
397  ((m_rxSpiFifo->io()->dataU8(2*w+2))&0xFF) +
398  (((m_rxSpiFifo->io()->dataU8(2*w+3))&0xFF)<<8)
399  )));
400  }
401  return values;
402 }
Register * m_transmitSpiReg
Definition: SeqPGA.h:203
StatusCode setSize(unsigned int, unsigned int)
Definition: RAM.cpp:29
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
RAM * m_rxSpiFifo
Definition: SeqPGA.h:199
Register * m_ctrlSpiReg
Definition: SeqPGA.h:201
virtual StatusCode read()
Definition: IOobject.h:73
RAM * m_txSpiFifo
Definition: SeqPGA.h:198
U8 * dataU8()
Definition: IOdata.h:214
IOdata * io()
Definition: IOobject.h:66

◆ spiRead() [3/3]

unsigned int SeqPGA::spiRead ( unsigned int  subadd)

Definition at line 420 of file SeqPGA.cpp.

References IOdata::dataU8(), IOobject::io(), m_ctrlSpiReg, m_rxSpiFifo, m_transmitSpiReg, m_txSpiFifo, IOobject::read(), RAM::setSize(), IOdata::setU8(), and IOobject::write().

420  {
421  unsigned int val = subadd | 0x80 ;
422  m_txSpiFifo->setSize(16,1);
423  m_rxSpiFifo->setSize(16,1);
424  m_ctrlSpiReg->io()->setU8(0,1);
425  m_ctrlSpiReg->io()->setU8(1,0);
426  m_ctrlSpiReg->write();
427  m_txSpiFifo->io()->setU8(0,val);
428  m_txSpiFifo->io()->setU8(1,0);
429  m_txSpiFifo->write();
430  // m_txSpiFifo->dump();
431  StatusCode status = m_transmitSpiReg->write();
432  m_rxSpiFifo->read();
433  // m_rxSpiFifo->dump();
434  //usleep(50);
435  return ((m_rxSpiFifo->io()->dataU8(0))&0xFF) + (((m_rxSpiFifo->io()->dataU8(1))&0xFF)<<8);
436 }
Register * m_transmitSpiReg
Definition: SeqPGA.h:203
StatusCode setSize(unsigned int, unsigned int)
Definition: RAM.cpp:29
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
RAM * m_rxSpiFifo
Definition: SeqPGA.h:199
Register * m_ctrlSpiReg
Definition: SeqPGA.h:201
virtual StatusCode read()
Definition: IOobject.h:73
RAM * m_txSpiFifo
Definition: SeqPGA.h:198
U8 * dataU8()
Definition: IOdata.h:214
IOdata * io()
Definition: IOobject.h:66

◆ spiSubAdd()

unsigned long int SeqPGA::spiSubAdd ( )

Definition at line 282 of file SeqPGA.cpp.

References m_spiSubAdd.

Referenced by BOOST_PYTHON_MODULE(), and testSequence().

282  {
283  return ( m_spiSubAdd ) ;
284 }
unsigned int m_spiSubAdd
Definition: SeqPGA.h:205

◆ spiWrite() [1/3]

StatusCode SeqPGA::spiWrite ( unsigned int  subadd,
unsigned int  nwords,
unsigned int *  values 
)

Definition at line 321 of file SeqPGA.cpp.

References IOobject::io(), m_ctrlSpiReg, m_transmitSpiReg, m_txSpiFifo, RAM::setSize(), IOdata::setU8(), and IOobject::write().

Referenced by BOOST_PYTHON_MODULE(), TestSPI::execute(), FEB_v1::resetFE(), FEB_v1::resetFifoInjectFE(), FEB_v1::resetFifoSpyFE(), FEB_v1::setCalibCte(), FEB_v1::setClock80MHzFallingEdge(), FEB_v1::setClockFallingEdge(), FEB_v1::setDisableSubtract(), FEB_v1::setEnableBXIDReset(), FEB_v1::setGain4(), FEB_v1::setGlobalPseudoPMEnable(), FEB_v1::setInjectModeFE(), FEB_v1::setLatency(), FEB_v1::setLatencyLLT(), FEB_v1::setLatencyLLTCorner(), FEB_v1::setLatencyLLTSideNb(), FEB_v1::setLatencyLLTUpNb(), FEB_v1::setMaskLLT(), FEB_v1::setMaskLLTCorner(), FEB_v1::setMaskLLTSideNb(), FEB_v1::setMaskLLTUpNb(), FEB_v1::setOldSubtract(), FEB_v1::setOutputEport(), FEB_v1::setProbeEnable(), FEB_v1::setPseudoADCEnable(), FEB_v1::setPseudoPMEnable(), FEB_v1::setSpareForTrigEnable(), FEB_v1::setSpyModeFE(), FEB_v1::setSpyModeSeq(), FEB_v1::setStopInjLoop(), FEB_v1::setTestDuration(), FEB_v1::setThreshold(), testSequence(), FEB_v1::writeDataFifoInjectFE(), FEB_v1::writeFifoInjectFE(), FEB_v1::writeFifoLLT(), and FEB_v1::writeFifoSpyFE().

321  {
322  unsigned int val = subadd & 0x7F;
323  m_txSpiFifo->setSize(16,nwords+1);
324  m_ctrlSpiReg->io()->setU8(0,nwords&0xFF);
325  m_ctrlSpiReg->io()->setU8(1,(nwords>>8)&0xFF);
326  m_ctrlSpiReg->write();
327  m_txSpiFifo->io()->setU8(0,val);
328  m_txSpiFifo->io()->setU8(1,0);
329  for (int w=0; w<nwords; ++w) {
330  m_txSpiFifo->io()->setU8(2*w+2,values[w]&0xFF);
331  m_txSpiFifo->io()->setU8(2*w+3,(values[w]>>8)&0xFF);
332  }
333  m_txSpiFifo->write();
334  return m_transmitSpiReg->write();
335 }
Register * m_transmitSpiReg
Definition: SeqPGA.h:203
StatusCode setSize(unsigned int, unsigned int)
Definition: RAM.cpp:29
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
Register * m_ctrlSpiReg
Definition: SeqPGA.h:201
RAM * m_txSpiFifo
Definition: SeqPGA.h:198
IOdata * io()
Definition: IOobject.h:66

◆ spiWrite() [2/3]

StatusCode SeqPGA::spiWrite ( unsigned int  subadd,
unsigned int  nwords,
PyObject *  value 
)

Definition at line 357 of file SeqPGA.cpp.

References IOobject::io(), m_ctrlSpiReg, m_transmitSpiReg, m_txSpiFifo, RAM::setSize(), IOdata::setU8(), and IOobject::write().

357  {
358  unsigned int val = subadd & 0x7F;
359  m_txSpiFifo->setSize(16,nwords+1);
360  m_ctrlSpiReg->io()->setU8(0,nwords&0xFF);
361  m_ctrlSpiReg->io()->setU8(1,(nwords>>8)&0xFF);
362  m_ctrlSpiReg->write();
363  // m_ctrlSpiReg->read();
364  // m_ctrlSpiReg->dump();
365  m_txSpiFifo->io()->setU8(0,val);
366  m_txSpiFifo->io()->setU8(1,0);
367  for (int w=0; w<nwords; ++w) {
368  val = PyInt_AsLong(PyList_GetItem(value,w));
369  m_txSpiFifo->io()->setU8(2*w+2,val&0xFF);
370  m_txSpiFifo->io()->setU8(2*w+3,(val>>8)&0xFF);
371  }
372  // m_txSpiFifo->dump();
373  m_txSpiFifo->write();
374  return m_transmitSpiReg->write();
375 }
Register * m_transmitSpiReg
Definition: SeqPGA.h:203
StatusCode setSize(unsigned int, unsigned int)
Definition: RAM.cpp:29
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
Register * m_ctrlSpiReg
Definition: SeqPGA.h:201
RAM * m_txSpiFifo
Definition: SeqPGA.h:198
IOdata * io()
Definition: IOobject.h:66

◆ spiWrite() [3/3]

StatusCode SeqPGA::spiWrite ( unsigned int  subadd,
unsigned int  value 
)

Definition at line 404 of file SeqPGA.cpp.

References IOobject::io(), m_ctrlSpiReg, m_transmitSpiReg, m_txSpiFifo, RAM::setSize(), IOdata::setU8(), and IOobject::write().

404  {
405  unsigned int val = subadd & 0x7F;
406  m_txSpiFifo->setSize(16,2);
407  m_ctrlSpiReg->io()->setU8(0,1);
408  m_ctrlSpiReg->io()->setU8(1,0);
409  m_ctrlSpiReg->write();
410  // m_ctrlSpiReg->read();
411  m_txSpiFifo->io()->setU8(0,val);
412  m_txSpiFifo->io()->setU8(1,0);
413  m_txSpiFifo->io()->setU8(2,value&0xFF);
414  m_txSpiFifo->io()->setU8(3,(value>>8)&0xFF);
415  m_txSpiFifo->write();
416  // m_txSpiFifo->dump();
417  return m_transmitSpiReg->write();
418 }
Register * m_transmitSpiReg
Definition: SeqPGA.h:203
StatusCode setSize(unsigned int, unsigned int)
Definition: RAM.cpp:29
virtual StatusCode write()
Definition: IOobject.h:80
StatusCode setU8(unsigned long int, U8)
Definition: IOdata.cpp:43
Register * m_ctrlSpiReg
Definition: SeqPGA.h:201
RAM * m_txSpiFifo
Definition: SeqPGA.h:198
IOdata * io()
Definition: IOobject.h:66

◆ testSequence()

StatusCode SeqPGA::testSequence ( )
inline

◆ transmitSpi()

StatusCode SeqPGA::transmitSpi ( )
inline

Definition at line 182 of file SeqPGA.h.

References m_transmitSpiReg, and IOobject::write().

182  {
183  return m_transmitSpiReg->write();
184  }
Register * m_transmitSpiReg
Definition: SeqPGA.h:203
virtual StatusCode write()
Definition: IOobject.h:80

◆ update()

void SeqPGA::update ( )
inlinevirtual

◆ usb()

UsbFTMLInterface* SeqPGA::usb ( )
inline

Definition at line 75 of file SeqPGA.h.

References m_usb.

Referenced by BOOST_PYTHON_MODULE(), and FEB_v1::FEB_v1().

75  {
76  return m_usb;
77  }
UsbFTMLInterface * m_usb
Definition: SeqPGA.h:187

Member Data Documentation

◆ m_addI2cReg

Register* SeqPGA::m_addI2cReg
private

Definition at line 210 of file SeqPGA.h.

Referenced by addI2cReg(), i2cAdd(), SeqPGA(), and setI2cAdd().

◆ m_addSpiReg

Register* SeqPGA::m_addSpiReg
private

Definition at line 200 of file SeqPGA.h.

Referenced by SeqPGA(), setSpiAdd(), and spiAdd().

◆ m_ctrlSpiReg

Register* SeqPGA::m_ctrlSpiReg
private

Definition at line 201 of file SeqPGA.h.

Referenced by SeqPGA(), spiRead(), and spiWrite().

◆ m_i2cBuffer

unsigned int SeqPGA::m_i2cBuffer
private

Definition at line 207 of file SeqPGA.h.

Referenced by i2cBuffer(), i2cWrite(), and setI2cBuffer().

◆ m_i2cSubAdd

unsigned int SeqPGA::m_i2cSubAdd
private

Definition at line 206 of file SeqPGA.h.

Referenced by i2cRead(), i2cSubAdd(), i2cWrite(), and setI2cSubAdd().

◆ m_masterI2cReg

Register* SeqPGA::m_masterI2cReg
private

Definition at line 209 of file SeqPGA.h.

Referenced by i2cData(), i2cRead(), i2cWrite(), masterI2cReg(), and SeqPGA().

◆ m_reg

Register* SeqPGA::m_reg
private

Definition at line 191 of file SeqPGA.h.

Referenced by reg(), and SeqPGA().

◆ m_resetReg

Register* SeqPGA::m_resetReg
private

Definition at line 195 of file SeqPGA.h.

Referenced by reset(), resetSpi(), and SeqPGA().

◆ m_rxSpiFifo

RAM* SeqPGA::m_rxSpiFifo
private

Definition at line 199 of file SeqPGA.h.

Referenced by SeqPGA(), and spiRead().

◆ m_setupReg

Register* SeqPGA::m_setupReg
private

◆ m_spiSubAdd

unsigned int SeqPGA::m_spiSubAdd
private

Definition at line 205 of file SeqPGA.h.

Referenced by setSpiSubAdd(), and spiSubAdd().

◆ m_statusReg

Register* SeqPGA::m_statusReg
private

Definition at line 193 of file SeqPGA.h.

Referenced by SeqPGA().

◆ m_testSeqReg

Register* SeqPGA::m_testSeqReg
private

Definition at line 196 of file SeqPGA.h.

Referenced by SeqPGA(), and testSequence().

◆ m_transmitSpiReg

Register* SeqPGA::m_transmitSpiReg
private

Definition at line 203 of file SeqPGA.h.

Referenced by SeqPGA(), spiRead(), spiWrite(), and transmitSpi().

◆ m_txSpiFifo

RAM* SeqPGA::m_txSpiFifo
private

Definition at line 198 of file SeqPGA.h.

Referenced by SeqPGA(), spiRead(), and spiWrite().

◆ m_usb

UsbFTMLInterface* SeqPGA::m_usb
private

Definition at line 187 of file SeqPGA.h.

Referenced by SeqPGA(), and usb().

◆ m_usbi2c

UsbMLI2cBus* SeqPGA::m_usbi2c
private

Definition at line 188 of file SeqPGA.h.

Referenced by i2c(), and SeqPGA().

◆ m_usbspi

UsbMLSpiBus* SeqPGA::m_usbspi
private

Definition at line 189 of file SeqPGA.h.

Referenced by SeqPGA(), and spi().


The documentation for this class was generated from the following files: