Coolquest, Inc. | Home | Products | Support | About | Contact | |||
|
Design Home | << File View >> | Class View | Output (partial) | Parts Library | Examples Home |
// THIS FILE IS IN THE PUBLIC DOMAIN. // IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT // NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _CRB_PowerH_ #define _CRB_PowerH_ #include "headers.h" // The backplane subsystem supplies decoupling capacitors for the points of power entry onto the backplane. // Additional decoupling capacitors are provided in the other subsystems, i.e., in CM_TimSlot and CM_RodSlot // CM_Power: class CM_Power : public TModule { // Power subsystem public: // ***** member bundles ***** // // ***** member ports ***** // port VCC5; // 5.0 V port VCC3; // 3.3 V port GND; // ***** member modules and parts ***** // CP_HEADER10X2CS AuxPower; // auxiliary power connector: 9A max per voltage <<< Label this header on the silkscreen: "AUX Power" CP_CHIP_LED_RED LedVcc5[ 2 ]; // power indication LED's, one per supply per side (front/back) CP_CHIP_LED_GRN LedVcc3[ 2 ]; CP_R220 Rled5[ 2 ]; // resistors for LED's CP_R110 Rled3[ 2 ]; enum { // number of power and ground bugs v33_bug_count = 4, // >>> place one decoupling capacitor near each power bug v50_bug_count = 4, // >>> place one decoupling capacitor near each power bug gnd_bug_count = 8 }; CP_POWER_BUG_10 V3_Bugs[ v33_bug_count ]; // for VCC3 (3.3V) CP_POWER_BUG_10 V5_Bugs[ v50_bug_count ]; // for VCC5 (5.0V) CP_POWER_BUG_10 GndBugs[ gnd_bug_count ]; // for GND (0.0V) // decoupling enum { v3_cdc_count = v33_bug_count + 0, v5_cdc_count = v50_bug_count + 0 }; CP_CDC_POS V3_CDC[ v3_cdc_count ]; // ceramic decoupling for backplane 3.3V CP_CDC_POS V5_CDC[ v5_cdc_count ]; // ceramic decoupling for backplane 5.0V virtual void Register() { // bundles // ports reg( VCC5 ); reg( VCC3 ); reg( GND ); // parts and modules reg( AuxPower ); rega( LedVcc5, 2 ); rega( LedVcc3, 2 ); rega( Rled5, 2 ); rega( Rled3, 2 ); rega( V3_Bugs, v33_bug_count ); rega( V5_Bugs, v50_bug_count ); rega( GndBugs, gnd_bug_count ); rega( V3_CDC, v3_cdc_count ); rega( V5_CDC, v5_cdc_count ); } virtual void Connect() { wireall( GND ); // decoupling: for ( int i = 0; i < v3_cdc_count; ++ i ) VCC3 << V3_CDC[ i ].POS; for ( int i = 0; i < v5_cdc_count; ++ i ) VCC5 << V5_CDC[ i ].POS; // power bugs: for ( int i = 0; i < v33_bug_count; ++ i ) { VCC3 ^ V3_Bugs[ i ]; } for ( int i = 0; i < v50_bug_count; ++ i ) { VCC5 ^ V5_Bugs[ i ]; } for ( int i = 0; i < gnd_bug_count; ++ i ) { GND ^ GndBugs[ i ]; } // the installed connector may be either a 10x1 x 3-amp or 10x2 x 1-amp connector // aux power connector: // cols 1 row x 3A/pin 2 row x 1A/pin merge( VCC5, AuxPower.P( 6, 1 ) ); // 3 9A 6A merge( GND, AuxPower.P( 16, 7 ) ); // 5 15A 10A merge( VCC3, AuxPower.P( 20, 17 ) ); // 2 6A 4A // LED's: int i = 0; VCC3 ^ Rled3[ 0 ] ^ "LED_V3_0" << LedVcc3[ 0 ].ANODE; // <<< place one Vcc3 LED on the front of the backplane, one on the back VCC3 ^ Rled3[ 1 ] ^ "LED_V3_1" << LedVcc3[ 1 ].ANODE; VCC5 ^ Rled5[ 0 ] ^ "LED_V5_0" << LedVcc5[ 0 ].ANODE; // <<< place one Vcc5 LED on the front of the backplane, one on the back VCC5 ^ Rled5[ 1 ] ^ "LED_V5_1" << LedVcc5[ 1 ].ANODE; // <<< place all Rled's on back of backplane GND << LedVcc3[ 0 ].CATHODE; // <<< for best solderability, trace between LED's and ground via should be >= 1 inch GND << LedVcc3[ 1 ].CATHODE; GND << LedVcc5[ 0 ].CATHODE; GND << LedVcc5[ 1 ].CATHODE; } }; #endif
Design Home | << File View >> | Class View | Output (partial) | Parts Library | Examples Home |
Legal | Copyright © 2007 by Coolquest, Inc. | Contact |