Provide programmable amplifiers and filters to form a data-acquisition system with the high speed 12-bit ADC RB8905.
Module RB9005 is a 4-channel programmable amplifier-filter module.
The module's front-panel looks as follows.
+----------------------+ | Programable | | Differential Amp. | | +input1 input3 | | (o) (o) | | | | -input1 input4 | | (o) (o) | | | | +input2 ouput | | (o) (o) | | clock | | -input2 in o1 o2 | | (o) (o)(o)(o) | | | | RULBUS | +----------------------+
It has two differential programmable amplifiers followed by a programmable filter, two unbalanced input (single-ended) programmable amplifiers and an ouput multiplexer to present one, two, three or all four inputs in sequence.
1-1-1-1 · 2-1-2-1 · 3-2-1-3 · 4-3-2-1
Further the module has a clock input and two clock outputs that can be programmed to duplicate the clock input or to follow an alternating sequence so that out1 presents a clock signal for the odd channels and out2 presents a clock signal for the even channels in the selected channel sequence. (Apparently this is not very useful for the 3-2-1-3 sequence where channel 3 appears at odd and even positions in the sequence.)
Amplifiers Low Pass Filters Multiplexer
_ .------------.
in1+ o---| = _ .------. | |
|G1 _>--------------| LPF1 |-------------| Ch1 |
in1- o---|_= `------' | |
| | | |
| _ | | |
in2+ o--------| = _ | .------. | |
| |G2 _>---------------| LPF2 |-------| Ch2 |---o output
in2- o--------|_= | `------' | |
| | | | | |
| | _ | | | |
| | | = _ | | | |
in3+ o-------------|G3 _>-------------------------| Ch3 |
| | |_= | | | .----| Clock
| | | | | | | |
| | | _ | | | | |-<-o input
| | | | = _ | | | | |
in4+ o------------------|G4 _>--------------------| Ch4 | |->-o out1
| | | |_= | | |-------' |
| | | | | | | |->-o out2
| | | | | | `------------'
| | | | | | | | |
^ ^ ^ ^ ^ ^ ^ | ^
G1 G2 G3 G4 F1 F2 Channel ^ doClockSequence
doChannnelsequence
\_________________ software control ______________________/
The following table shows the module's gain and low-pass filter characteristics.
Channel | Gain F-LowPass [kHz] programmable
--------+------------------------------------------------------
1, 2 | 10, 20, 40, 80 >= 1000 (no filter)
| 100, 200, 400, 800 100 yes
| 1000, 2000, 4000, 8000 10 yes
| 10000, 20000, 40000, 80000 1 yes
| 0.1 yes
|
3, 4 | 1 3000 no
| 10 : no
| 100 : no
| 1000 312 no
The RB9005 amplifier module has no properties that are configured at production time.
rb9005_amplifier "name"
{
address = 0xB3
}
When the Rulbus configuration file is read, an amplifier is configured as follows:
There are functions to select and obtain the channel, the gain and the low pass filter frequencies (channel1 and 2), and there are functions to enable or disable the channel and clock sequence modes.
int32 handle; rb9005_amplifier_open( &handle, "amplifier" ); rb9005_amplifier_setChannel( handle, 1 ); rb9005_amplifier_setGain( handle, 1, 10 ); rb9005_amplifier_setLowPassFrequency( handle, 1, 1e4 ); rb9005_amplifier_close( handle )
Open and close | |
| EXPORT int32 RDL_API | rb9005_amplifier_open (int32 *pHandle, CCstr name) |
| open an amplifier. | |
| EXPORT int32 RDL_API | rb9005_amplifier_close (int32 handle) |
| close an amplifier. | |
Channel, gain and filters | |
| EXPORT int32 RDL_API | rb9005_amplifier_getChannel (int32 handle, int32 *pChannel) |
| get the current channel (1..4). | |
| EXPORT int32 RDL_API | rb9005_amplifier_setChannel (int32 handle, int32 channel) |
| select the specified channel, or channel sequence (1..4). | |
| EXPORT int32 RDL_API | rb9005_amplifier_getGain (int32 handle, int32 channel, int32 *pGain) |
| get the channel's current gain. | |
| EXPORT int32 RDL_API | rb9005_amplifier_setGain (int32 handle, int32 channel, int32 gain) |
| set gain for specified channel. | |
| EXPORT int32 RDL_API | rb9005_amplifier_getLowPassFrequency (int32 handle, int32 channel, float32 *pFreq) |
| the channel's current low pass frequency (channel 1 & 2 only). | |
| EXPORT int32 RDL_API | rb9005_amplifier_setLowPassFrequency (int32 handle, int32 channel, float32 freq) |
| set low pass frequency (channel 1 & 2 only). | |
Channel and clock sequencing | |
| EXPORT int32 RDL_API | rb9005_amplifier_isChannelSequenceMode (int32 handle, int32 *pFlag) |
| true if a channel sequence is active. | |
| EXPORT int32 RDL_API | rb9005_amplifier_setChannelSequenceMode (int32 handle, int32 flag) |
| enable or disable channel sequencing. | |
| EXPORT int32 RDL_API | rb9005_amplifier_isClockSequenceMode (int32 handle, int32 *pFlag) |
| true if a clock sequence is active. | |
| EXPORT int32 RDL_API | rb9005_amplifier_setClockSequenceMode (int32 handle, int32 flag) |
| enable or disable clock sequencing. | |