#ifndef _CRB_TerminatorsH_ #define _CRB_TerminatorsH_ #include "CRB_Timslot.h" // for Term/TIM interface #include "Headers.h" #include "resistor_packs.h" // All necessary decoupling capacitors are already included. // T_Terminators: Terminators for TTC busses class T_Terminators : public TModule { // Rod Slot Subsystem public: // ***** member collections ***** // TC_Term_Tim Tim; // interface to TIM // ***** member ports ***** // port VCC5; // 5V port VCC3; // 3.3V port GND; // ***** member modules and parts ***** // T__RSIP_DUAL_TERM_10 TermL; // resistor packs T__RSIP_DUAL_TERM_10 TermR; T__HEADER3 HeadL; // headers to wire either VCC5 or VCC3 to resistor packs T__HEADER3 HeadR; T__CDC_POS CDC_L; // decoupling for resistor packs T__CDC_POS CDC_R; // >>> place terminator TermL and associated components at end of transmission lines (near slot 5) // >>> place terminator TermR and associated components at end of transmission lines (near slot 21) virtual void Register() { // collections reg( Tim ); // ports reg( VCC5 ); reg( VCC3 ); reg( GND ); // parts and modules reg( TermL ); reg( TermR ); reg( HeadL ); reg( HeadR ); reg( CDC_L ); reg( CDC_R ); } virtual void Connect() { wireall( GND ); // headers allow use of 3.3V or 5V as Vterm VCC3 << HeadL.P( 1 ) << HeadR.P( 1 ); // <<< label HeadL and HeadR on silkscreen with "5V" and "3.3V" VCC5 << HeadL.P( 3 ) << HeadR.P( 3 ); "VTERM_L" << HeadL.P( 2 ) << TermL.POS << CDC_L.POS; // Vterm "VTERM_R" << HeadR.P( 2 ) << TermR.POS << CDC_R.POS; Tim.TTC_L << TermL.T; // TTC bus connections Tim.TTC_R << TermR.T; } }; #endif