PEP-II BPM
3. Requirements and functionality
3.1. Resolution
3.1.1. Thermal noise
3.1.2. Electronics
3.1.3. Electronics reflection
3.2. Functionality
5. Processing module (Ring I&Q - RInQ)
a. RF I&Q demodulator
i. Requirements and functionalities
ii. Block Diagram and circuit characteristics
b. Calibrator
i. Requirements and functionalities
ii. I&Q processing errors
1. Amplitude unbalance
2. Phase unbalance
iii. Block Diagram and circuit characteristics
c. Local oscillator
d. Baseband processor
i. DSP Program and Data Memory (32k x 32)
ii. Boot Memory (32k x 16)
iii. Dual Port Memory (16k x 16)
iv. ADC Interface
v. DSP
vi. CAMAC Functions
vii. Memory Map
e. Remote mode
i. Set the channel
ii. Set the local oscillator
1. Set 16-bit mode
2. Set frequency
3. Set phase
iii. Set calibrator
1. Set 16-bit mode
2. Set calibrator ON
3. Set frequency
4. Set phase
5. Set amplitude
6. Set channel
f. Local mode – Structures
i. Address table
ii. Programming example
1. Initialization values
2. Perform calibration
3. Read calibration results
4. Closed orbit measurement
5. Read closed orbit results
6. Turn-by-turn measurement
7. Read turn-by-turn results
iii. Include file
The Beam-Position Monitor (BPM) system for the PEP-II B-Factory at SLAC must measure closed orbit positions for a 3-A multibunch beam and turn-by-turn positions for a low current single bunch injected in a 200-ns gap in the multibunch beam. A system that combines broadband and narrowband capabilities and provides data at high bandwidth was designed. The electronics must also have a very low reflection coefficient, in order to reduce interference from multibunch when the single bunch measurement is required. The system includes the Filter-Isolator Box (FIB) that selects a harmonic of the bunch spacing (952 MHz) and absorbs the other frequency components and the Ring I&Q (RInQ) module. The RInQ is a CAMAC based wideband I&Q demodulator, ADC, and signal processing unit that provides beam position information to the Control System. A calibrator that must work in the presence of beam, correcting for electronic measurement errors, measurement offset, and gain is incorporated on board. This paper describes the system requirements, the electronics design, and the laboratory tests.
A block diagram of the BPM system is shown in Figure 2.1 (y-only BPMs are shown). There are three styles of BPMs x-only, y-only, and xy. Each RInQ module has 8 inputs and can serve 2 xy BPMs or 4 x-only (y-only) BPMs.
The cables are color coded and are connected in the same way at the electrodes, while they do not have the same connection at the FIBs. The transition panel and the RInQ processor keep the same layout (top connector to top connector and so on; except for xy BPMs where blue and green are swapped). The RInQ front panel has LER on the top and HER on the bottom, plus sign on the top and minus sign on the bottom.
In Figure 2.2 the system layout for x-only and y-only BPMs is shown and in Figure 2.3. the system layout for xy BPMs is shown. Note that for both HER and LER the positive x direction points outward from the ring.



3. Requirements and functionality
3.1. Resolution
The BPM requirements for PEP-II are listed in Table 3.1.
Table 3.1. Requirements.
|
Bunches |
Passes |
Number of particles per bunch |
Resolution (mm) |
|
Single |
1 |
5x108 |
1000 |
|
Multi |
1024 |
1x1010 |
15 |
3.1.1. Thermal noise
The thermal noise power density generated by a resistor at temperature T (degree K) over the measurement bandwidth B (Hz) is (in an open circuit)
![]()
with k = Boltzmann constant. When the circuit is terminated into a resistor of the same value
![]()
which corresponds to
![]()
In this case the source is capacitive but the cable is lossy enough to behave as a 50 W source. For B = 10 MHz
![]()
or
![]()
The instantaneous beam current is given by

where Ne is the charge and s is the bunch length. The cosine series for a pulse train with bunch spacing T is
![]()

where w0 = 2p/T. The beam current m frequency component is
![]()
if the bunch length is short compared with the wavelength. The voltage at the connector is
![]()
where Z is the load impedance and Cpl is the attenuation factor due to the button capacitive coupling. In this case the 952 MHz signal component into 50 W at the connector for T = 1/(238 MHz), s = 30 ps, and Cpl = 1/50 at Ne = 1x1011 ppp is
![]()
which corresponds to
![]()
The situation for a single bunch is a little different, since the 952 MHz signal is generated by sending the beam through a bandpass filter with 10 MHz bandwidth. In this case the signal is attenuated by 21 dB with respect to the multibunch case. The maximum 952 MHz signal component of the generated burst into 50 W at the connector for 5x108 ppp is
![]()
which corresponds to
![]()
From the signal and estimated noise figure the expected resolution can be calculated. The position is calculated from the difference over sum of the signal into the positive and negative channels, i.e.,
![]()
with b = 33 mm. The resolution is given by
![]()
where S/N is the voltage signal to noise ratio. The estimate noise figure is given in Table 3.2.
Table 3.2. Estimated noise figure.
|
Item |
Gain (dB) |
NF (dB) |
Description |
|
Bandpass filter |
-1 |
1 |
Removes other harmonics |
|
Combiner |
3 |
-3 |
Combines two buttons |
|
Cable |
-7.2 |
7.2 |
Maximum attenuation |
|
Coupler |
-1.4 |
1.4 |
Calibration coupler |
|
Attenuator |
-4 |
4 |
Attenuator |
|
Bandpass filter |
-1 |
1 |
High Q generates SB ringing |
|
Attenuator (min) |
-1.6 |
1.6 |
Attenuator for dynamic range |
|
RF amplifier |
18 |
5+3 |
Improve NF and adjusts SB amplitude |
|
Switch |
-2.6 |
(2.6) |
Two switches for mux |
|
Attenuator |
-7 |
(7) |
Attenuator |
|
I&Q demodulator |
-10.5 |
(10.5) |
Downconvert to baseband |
|
IF amplifier |
13 |
(1) |
Adjusts the voltage for T/H |
|
Track and hold |
1 |
(10) |
Track and hold |
|
Op-amp |
2 |
(2) |
Optimize the ADC’s dynamic range |
|
Total |
0.7 |
24.2 |
Thus for single bunch and single pass with N = 5x108
![]()
and for multi bunch and single pass with Ne = 1x1011
![]()
3.1.2. Electronics
Other resolution limiting factors are track-and-hold noise and ADC resolution. The specified hold noise is
![]()
and the ADC’s resolution due to the LSB is given by the 10-V dynamic range divided by the 214 number of counts while the rms error is given by the LSB divided by the quantization error
![]()
The total noise due to the combined factors is given in Table 3.3.
Table 3.3. Position resolution from noise effects.
|
Type of noise |
Vrms(mV) |
Position resolution |
(mm) |
|
Ne = 5x108 SB |
Ne = 1x1011 MB |
||
|
Thermal |
60 |
150 |
0.06 |
|
T/H Hold |
60 |
150 |
0.06 |
|
ADC |
175 |
440 |
0.17 |
|
Total |
195 |
490 |
0.19 |
3.1.3. Electronics reflection
An additional limiting factor for the single bunch in the gap is given by the electronics reflection coefficient. The BPM button in fact is a highly reflective source and the measurement accuracy of the pilot bunch is impaired by the multiple reflections through the cable. The problem is illustrated in Figure 3.1.

This problem was addressed and solved from two different sides: the electronics is designed to provide a good load and an isolator is included to reduce reflection from the electronics to the button.
The effect of the reflections is shown in Table 3.4.
Table 3.4. Effect on resolution due to reflections.
|
Item |
HER Losses (dB) |
LER Losses (dB) |
|
Cable insertion loss |
-7.5 |
-6 |
|
Processor return loss |
-20 |
-20 |
|
Isolator return loss |
-20 |
-20 |
|
Cable insertion loss |
-7.5 |
-7.5 |
|
Total return loss |
-55 |
-42 |
|
Total resolution |
150 mm x ratio |
220 mm x ratio |
The various contributions add up to different values for the LER and HER because of the different cable insertion loss with round trip time equal to the gap length. The total resolution is given in units of mm x ratio, e.g., the HER the resolution is 150 mm if the single bunch and multi bunch have the current or 1.5 mm if the single bunch current is 10% of the multi bunch.
3.2.
FunctionalityThe functionality of the BPM system is primarily set by the software but the processor module (RInQ) does have a DSP on board which can support a variety of functions. There are three basic modes of operation: single-shot executing at 120 Hz, N-turn at the 7-ms rate, and beam abort mode (2000 measurements) at the 7-ms rate. For each mode the processor will return X, Y, and TMIT while for the multi turn modes it also returns sX, sY, and sTMIT. Each of these modes can be used for single or multi bunch (the processor will contain calibration parameters for each).
The BPM filter-isolator box (FIB) is a passive microwave instrumentation network which performs a filtering, combining, and impedance matching function to broadband, high-frequency signal energy. The input energy sources are 30-ps impulses with peak amplitudes exceeding 500 V.
The FIB consists of traveling wave directional bandpass filters (striplines), constant-resistance low pass filters, hybrid 2-way combiners (Wilkinson), ferrite isolators, and DC bias circuitry. The center frequency is 952 MHz with a passband of 150 MHz. Out of band power is dissipated by 50 W high power resistors. A DC bias of up to 350 V can be put on the BPM buttons to assist in ion clearing.
Requirements and typical performance of a FIB are listed in Table 4.1.
Table 4.1. Filter-Isolator Box requirements and typical performance.
|
Parameter |
Requirement |
Performance (typical) |
|
Center frequency (MHz) |
952 (nominal) |
942.6 |
|
Bandwidth @ 3 dB (MHz) |
50 < BW < 238 |
150 |
|
Insertion loss @ 952 MHz(dB) |
< 2 |
1.6 |
|
Power handling (W) |
> 50 |
OK |
|
Output return loss (dB) |
< -19 |
-21.5 |
|
Input return loss (dB) |
< -6 |
-17.9 |
|
Bias voltage (V) |
350 |
OK |
A photograph of the FIB assemblies are shown in Figure 4.1 and a functional diagram is shown in Figure 4.2. Circuit diagrams of the FIB are shown in Figures 4.3-5.

Figure 4.1 Filter-Isolator Box. Left: XY (4x4). Right: X or Y Only (4x2).




The in-phase and quadrature (I&Q) processing is based on baseband conversion using I&Q demodulators. The amplitude of the demodulated signal is digitally calculated by
![]()
where
![]()
![]()
and the position by
![]()
with K a constant determined by the geometry of the buttons.
The formulas are correct in the ideal case but when dealing with real components there are several sources of error to be considered:
channel gain mismatch
channel offset mismatch
amplitude and phase unbalance.
Channel gain mismatch produces an error for beam off center and for different beam currents. This is calibrated by ramping the signal power at the channel inputs and measuring the slope of the transverse function. Channel offset mismatch is calibrated by measuring the channel outputs with no signal applied and compensating for the apparent beam position.
Although these two calibration procedures are applicable to all systems using linear processing, phase and amplitude unbalance are typical of the rf processing method chosen for PEP-II. The previous formulas are valid only for an ideal system, when the quadrature phase is exactly 90 deg and both channel amplitudes are the same. The calibrator must measure the amplitude unbalance and the phase unbalance in order to compensate for these errors as well.
A photograph of a RInQ module is shown in Figure 5.1 and a block diagram of the module is shown in Figure 5.2. The rf I&Q demodulator provides demodulated signals to the baseband processor that preprocesses the information to be transmitted to the control system. The calibrator, in conjunction with the local oscillator, permit the processor to be calibrated for offset and gain errors and vector errors.
The rf processor measures the position both for multi bunch, in narrowband mode, and for single bunch, in wideband mode, where the rf burst is generated by the ringing when excited by an impulse. In the latter case the calibrator must sweep through the frequency band, in order to map all the bandwidth.

Figure 5.1 RInQ Module.

5.1. RF I&Q demodulator
There are two modes of operation: narrowband and wideband. The narrowband case is used when the multi bunch signal must be measured. The wideband case is used when the single bunch must be measured. In the wideband case there is no rf carrier present, but the rf burst is generated by the single pulse ringing through the bandpass filter.
5.1.1. Requirements and functionalities
The requirements are listed in Table 5.1.
Table 5.1. RF I&Q demodulator requirements.
|
Item |
Value |
|
RF carrier (MHz) |
952 |
|
Maximum input level (dBm) |
+28 |
|
Minimum input level (dBM) |
-51 |
|
Minimum SNR (dB) |
19 |
|
System bandwidth (MHz) |
10 |
|
Sampling rate (kSa/s) |
140 |
|
Linearity |
0.1 dB |
|
Channel matching |
0.1 dB |
|
Chan-to-chan isolation (dB) |
86 |
The maximum expected input level is in the multi bunch case, for 1011 ppp, and the beam 1 cm off center on the electrode side, where the required resolution is 15 mm. The minimum input is in the single bunch case, for 5x108 ppp, and the beam 1 cm off center on the electrodes opposite side where the required resolution is 1 mm.
The channel-to-channel isolation requirement comes from the fact that two BPMs, one from HER and one from LER, are multiplexed together. It could happen that a single bunch (with low current) from one machine, when the other machine is running at full current. In this case the signal-to-interference should be kept as low as the signal-to-noise ratio to achieve the required resolution.
5.1.2. Block diagram and circuit characteristics
The BPM rf processor block diagram is shown in Figure 5.3. The coupler accepts the calibration signal, the BPF selects the 952-MHz component, an attenuator and amplifier extend the dynamic range of the circuit, the switch multiplexes HER and LER, the I&Q demodulator and low pass filter amplitude demodulates the input signal, and the T&H acquires the signal to be digitized by the ADC.

5.2.
Calibrator
5.2.1. Requirements and functionalities
The BPM accuracy requirements specify the error to be smaller than 0.25 mm rms, which corresponds to 0.2 dB in the worst case, when the sensitivity is 0.9 dB/mm. The calibrator must be able to measure the electronics errors in order to compensate for these effects. By giving the same weight to amplitude and phase unbalance and channel mismatch, the actual requirements are listed in Table 5.2.
Table 5.2. Calibration parameter requirements.
|
Item |
Error |
|
Channel offset mismatch (dB) |
0.03 |
|
Amplitude unbalance (dB) |
0.08 |
|
Quadrature phase unbalance (deg) |
1 |
|
Channel gain mismatch (dB) |
0.08 |
|
RMS (dB) |
0.12 |
Offset mismatch, also called pedestal, is measured by turning the calibrator off and measuring the apparent beam position.
Gain mismatch is measured by sweeping the calibrator signal power and fitting the single channel transfer function to the best line.
Phase and amplitude unbalance are measured by setting the calibrator frequency to a few kHz (i.e., 70 kHz) off the local oscillator frequency, digitizing at the maximum sampling rate (134 kHz) and then running the amplitude and phase calculation algorithm. This is a fixed frequency curve fitting algorithm, which solves a system of linear equations for amplitude phase and offset.
Since the calibrator must be able to perform also when the beam is present, it works at a frequency different from the beam fundamental. When it is turned on, the local oscillator, which provides the reference frequency to the rf processor for the baseband conversion, is also detuned from the beam frequency. This is particularly important for pedestal calibration when no signal must be applied to the inputs.
Calibration is performed during the gap. The residual beam frequency component is expected to be at –25 dBm in the worst case (30 dBm maximum power and 55 db rf processor return loss. The minimum calibration power is expected to be –40 dBm (21 dBm maximum power and 60 dB programmable attenuation. A 3-pole digital filter can be applied to the digitized data to knock the residual beam signal component to 40 dB below the calibration signal, even though the calibration algorithm is expected to be insensitive to other frequencies.
The wideband mode is calibrated by taking different measurements over the working bandwidth, 932 MHz to 972 MHz.
5.2.3. I&Q processing errors
The digitized values are
![]()
![]()
where VI0 and VQ0 include the amplitude unbalance and e is the quadrature phase error. First correct for gain and offset mismatch
![]()
where g is the channel gain and p the channel pedestal. The result is still affected by quadrature phase unbalance.
![]()
![]()
These formulas, for small phase unbalance, can be approximated by
![]()
![]()
and
![]()
![]()
Inverting them
![]()
![]()
and the channel amplitude can be derived from the sum of squares of these components.
5.2.2.1. Consequences of amplitude unbalance
For the case of V1 not equal V2 but Df equal zero the calculated amplitude is
![]()

which is a sine wave with amplitude equal to half the mismatch amplitude and twice the IF frequency. The measured position error for beam on center is given by
![]()
i.e., for a tolerated error of 150 mm accuracy is 2.4% which corresponds to 0.2 dB uncorrected amplitude unbalance.
5.2.2.2. Consequences of phase unbalance
For the case of V1 equal V2 (assume for convenience unity) but Df not equal to zero the calculated amplitude is
![]()
![]()
which is a sine wave with amplitude equal to half the phase shift and twice the IF frequency. The measured position error for beam on center is
![]()
i.e. for a tolerated error of 150 mm accuracy the uncorrected phase unbalance is 1.5 degrees.
5.2.3. Block diagram and circuit characteristics
A block diagram of the calibrator is shown in Figure 5.4. The calibrator is based on the DDS-driven PLL technique. The reason to choose such a solution are a broad output bandwidth, small step sizes, low phase noise and spurious performance, and minimal complexity and cost. The DDS clock is derived by a prescaler working with the 119 MHz rf reference as an input. It is programmed to provide an output frequency from 9.32 MHz to 9.72 MHz in 7 mHz steps. The PLL final output frequency is 932 to 972 MHz, which is given by the feedback loop divisor that is set at 100.
The digital programmable attenuator allows the power to be swept in 4 dB steps over a 60 dB dynamic range. The medium power linear amplifier with turn off capability provides the required power to the rf processor inputs and guarantees the isolation during normal mode of operation. Switches and power splitters distribute the signal to the eight rf processor inputs. The design of the calibrator allows the amplitude and phase to be swept at different frequencies.

The specifications for the calibrator are listed in Table 5.3.
Table 5.3. Calibrator specifications.
|
Item |
Value |
|
Frequency sweep (MHz) |
932 – 972 |
|
Frequency steps (Hz) |
0.7 |
|
Maximum phase jitter (degrees) (at 100 kHz for 100 samples) |
1 |
|
Phase noise (dBc/Hz) (at 1 kHz) |
-61 |
|
Spurious (dBc) (at 1 – 100 kHz) |
-61 |
|
Amplitude step (dB) (0 – 60 dB) |
4 |
|
Maximum power at channel input (dB) |
+21 |
|
Calibrator off switch |
Yes |
As shown in the block diagram the prescaler provides the clock to the DDS by dividing the 119 MHz rf reference by 4. The DDS generates a 9.32 to 9.72 MHz signal that is multiplied by 100 in the PLL. The digital programmable attenuator allows the amplitude to be swept. The amplifier optimizes the power for the calibration requirements and the switch and splitters provide the distribution.
5.4. Local Oscillator
In Figure 5.5 a block diagram of the Local Oscillator (LO) is shown.

The LO is based on the same technique as the calibrator and uses the same parts except for the output amplifier. The output amplifier (non-switchable) provides +7 dBm to each of the four I&Q demodulators.
5.4. Baseband processor
The PEP-II BPM has three basic modes:
Single-shot measurement mode:
g. Executes at the 120 Hz rate.
h. Returns X, Y, TMIT via Dual-Port Memory.
i. The location of the data is supplied by the DSP memory map.
N-turn measurement mode:
j. Take N measurements at the 7 ms rate.
k. Returns X, Y, TMIT, sX, sY, sTMIT via Dual-Port Memory.
l. The location of the data is supplied by the DSP memory map.
Beam abort mode:
m. Take N measurements at the 7 ms rate.
n. Take a maximum of 2000 measurements.
o. Returns X, Y, TMIT, sX, sY, sTMIT, and raw data via Dual-Port Memory.
p. The location of the data is supplied by the DSP memory map.
q. This data is not overwritten by the single-shot or N-turn modes.
A block diagram of the digital hardware of the baseband processor is shown in Figure 5.6.
5.4.8. DSP Program and Data Memory (32k x 32)
The DSP Program and Data Memory is 32k x 32. The DSP uses the same memory for program and data. When the DSP boots, data from the Boot Memory is transferred into the Program and Data Memory. The remaining memory can be used for data storage. From CAMAC this memory is 16-bits wide.
5.4.8. Boot Memory (32k x 16)
The Boot Memory is used to store the power-up code for the BPM as well as any necessary constants. Both CAMAC and the DSP have access to the EEPROM. Care must be taken when writing to the EEPROM since it is a very slow device. From the DSP, a software algorithm must be implemented to insure a 10 ms write time for a single word.
When the DSP is reset, either on a power-up or with an F9A2 command, data from the Boot Memory is moved from the slow speed EEPROM to faster Program and Data Memory.

To download a new program to the EEPROM the DSP must be in the HOLD mode, F9A3. A block of data consisting of a starting address and 64 words of data are written to the BPM via CAMAC. The address of the block must start on a 64 word boundary, A0 through A5 equal zero, and each word must be written within 100 ms of each other. The data is transferred to the EEPROM starting at the supplied address using page-mode write cycles. After the 64 word block has been transferred to the EEPROM, it can take up to 10 ms to finish writing the block into memory. During this time no more data can be sent to the EEPROM. To determine when the BPM is ready for another block of program memory, CAMAC can either wait 10 ms or use the DATA Polling feature of the EEPROM. In this mode, CAMAC reads the last address written. When the data read compares with the data written, the EEPROM block write is finished. Once the download operation is complete a reset, F9A2, will restart the DSP and execute the new program. Single word transfers to and from the EEPROM are permitted and the completion of a write must be insured by waiting 10 ms or DATA Polling as described earlier.
To change the Boot Code CAMAC must first gain access to the Boot Memory by issuing an F29A12 to unlock the module, then an F9A3 to set the HOLD mode. The data in the Boot EEPROM can be altered. When new code has been loaded, CAMAC must boot the DSP by issuing F9A2. This will also release the HOLD state set by the F9A3.
5.4.8. Dual Port Memory (16k x 16)
The Dual Port Memory is accessible from both CAMAC and the DSP at the same time. This memory can be used for communication between the DSP and CAMAC. Data available in the Dual Port Memory depends on the mode the BPM is in. The location of the data is determined when the DSP Code is compiled and must be known to the rest of the system for data readout. The following data is passed between the DSP and CAMAC through Dual Port Memory:
X
Y
TMIT
Status
s
Xs
Ys
TMITGood Measurement
Version Number of Firmware
Module R.N.
a. R[8…1] Module Revision Number
b. R[16] Production Flag
i. 0 – Production Module
ii.
1 – Development ModuleModule S.N.
c. R[10…1] Module Serial Number
d. R[16…11] Module Type
Beam Abort Data
Current Meas Prep Number
Phase Control
CAL Control
Mode Control
e. Attenuator Setting
f. Mux Setting
g. Bandwidth Select
Single word messages can be passed between CAMAC and the DSP. When CAMAC writes to address 0x3FFF an interrupt is generated to the DSP (INT1). This interrupt is cleared when the DSP reads this location. If interrupts are not required, this message passing can also be done in a polled fashion. The interrupt bit is also connected to one of the DSP Flag In bits (XF1). The DSP can poll this flag. The DSP can also clear this address and then poll it to see if CAMAC has written a non-zero value.
5.4.8. ADC Interface
The timing logic generates a Start signal to the ADC interface. The ADC interface then issues a Start Convert to the ADCs and reads the ADC out, converting the serial data to parallel. When the read out is complete, the ADC will generate an interrupt to the DSP (INT0). The interrupt is reset when the DSP reads any of the ADC values in memory. The interrupt also sets a bit in the DSP Flag In (XF0) that can be polled if interrupts are not required. The ADCs data is available in the DSP memory space.
5.4.8. DSP
Once the BPM is configured by CAMAC, the DSP will do all of the data processing and store the results in the appropriate places. The main use of the DSP is to read the 8 ADCs, compute X, Y, and TMIT and store these results in Dual Port Memory to be read out by CAMAC. The timing system will start the ADCs. When the ADCs are finished converting, the DSP will be interrupted. The DSP will then read the 8 ADC values. The ADCs are mapped into the DSP memory space.
5.4.8. CAMAC Functions
The CAMAC block consists of decoders and registers. The registers are accessible via CAMAC operations. The CAMAC functions are:
F9A0 Initialize Module; X=1, Q=1 if module is unlocked.
F9A1 Assert Reset to the DSP; X=1, Q=1 if module is unlocked.
CAMAC can not gain access to the internal data bus.
F9A2 Release Reset to the DSP; X=1, Q=1 if module is unlocked.
Release Hold to DSP if Hold was set. This will cause the DSP to reboot from EEPROM. CAMAC can not gain access to the internal data bus.
F9A3 Assert Hold to the DSP; X=1, Q=1 if module is unlocked.
This removes the DSP from the internal data bus allowing CAMAC access to the BPM internal memory.
F9A4 Release Hold to the DSP; X=1, Q=1 if module is unlocked.
This allows the DSP to resume execution from when the Hold was asserted.
F29A12 Unlock Module; X=1, Q=1.
F29A13 Lock Module; X=1, Q=1.
F1A0 Read Memory Address; X=1, Q=1.
F17A0 Write Memory Address; X=1, Q=1.
Latch status of MesPrepQ.
F0A0 Read Dual Port Memory pointed to by Memory Address; X=1, Q=1 if last requested MesPrep has finished.
Increment Memory Address Pointer.
F16A0 Write Dual Port Memory pointed to by Memory Address; X=1, Q=1.
Increment Memory Address Pointer.
F0A1 Read Meas Prep Message; X=1, Q=1.
Read Dual Port Memory location 0x3FFF.
F16A1 Write Meas Prep Message; X=1, Q=1.
Write Dual Port Memory location 0x3FFF.
Generates an interrupt to the DSP and prevents further ADC interrupts to the DSP. ADC interrupts will be re-enabled on the next Fiducial from the CAMAC backplane. An ADC interrupt will be generated on the next PDU trigger. Clears the MesPrepQ flag. When the DSP has finished the requested MesPrep, it will write the MES_DNE bit in the status register to set the MesPrepQ flag. This flag is latched by an F17A0, Write Address, which is then used to condition Q for F0A0 reads of the Dual Port Memory.
F0A2 Read DSP Memory pointed to by Memory Address; X=1, Q=1 if module is unlocked and DSP is in the Hold state set via F9A3.
Increment Memory Address Pointer.
F16A2 Write DSP Memory pointed to by Memory Address; X=1, Q=1 if module is unlocked and DSP is in the Hold state set via F9A3.
Increment Memory Address Pointer.
F0A3 Read DSP Registers and EEPROM pointed to by Memory Address; X=1, Q=1 if module is unlocked and DSP is in the Hold state set via F9A3.
Increment Memory Address Pointer.
F16A3 Write DSP Registers and EEPROM pointed to by Memory Address; X=1, Q=1 if module is unlocked and DSP is in the Hold state set via F9A3.
Increment Memory Address Pointer.
Reading and witing the Dual Port Memory can take place any time by either CAMAC or the DSP. Normally only the DSP has access to the Boot Memory and the BPM RAM. CAMAC can gain access to the Boot Memory, DSP RAM, and DSP Registers by first putting the DSP in the Hold state via F9A3. When the DSP responds with the Hold Acknowledge, CAMAC will be allowed access to the Boot Memory, DSP RAM, and DSP Registers. This mode is used for changing the Boot EEPROM and doing Peeks and Pokes into the DSP RAM. Since the Registers and ADC are memory mapped, this mode also allows CAMAC direct access to them.
5.4.8. Memory Map
The RInQ Module operates as a memory mapped device. All code, data, control registers, and status registers are contained in memory. The following tables contain a memory map (Table 5.4), details of control registers (Tables 5.5-12), the status register (Table 5.13) and of interrupts (Table 5.14).
Table 5.4. Memory Map.
|
Function Code |
CAMAC |
Device |
DSP |
|
F0/F16A0 |
0x0000 16k x 16 0x3FFF |
0x0000 16k x 16 Dual Port RAM 0x3FFF |
0x3F0000 16k x 16 DATA 0x3F3FFF |
|
F0/F16A1 |
0x3FFF 1 x 16 MesPrep |
0x3FFF 1 x 16 Dual Port RAM |
0x3F3FFF 1 x 16 MesPrep |
|
F0/F16A2 RAM |
0x0000 64k x16 0xFFFF |
0x0000 32k x 32 0x7FFF |
0x3F8000 32k x 32 0x3FFFFF |
|
F0/F16A3 EEPROM |
0x0000 32k x 16 0x7FFF |
0x0000 32k x 16 0x7FFF |
0x400000 32k x 16 0x407FFF |
|
F0/F16A3 ADC Data |
0x8000 8 x 16 0x8007 |
0x8000 8 x 16 0x8007 |
0x408000 8 x 16 0x408007 |
|
F0/F16A3 Status |
0x8008 1 x 16 |
0x8008 1 x 16 |
0x408008 1 x 16 |
|
F0/F16A3 Timing Select |
0x8009 1 x 16 |
0x8009 1 x 16 |
0x408009 1 x 16 |
|
F0/F16A3 Timing Delay |
0x800A 1 x 16 |
0x800A 1 x 16 |
0x40800A 1 x 16 |
|
F0/F16A3 Timing Trigger |
0x800B 1 x 16 |
0x800B 1 x 16 |
0x40800B 1 x 16 |
|
F0/F16A3 Analog Control |
0x800C 1 x 16 |
0x800C 1 x 16 |
0x40800C 1 x 16 |
|
F0/F16A3 Analog Attenuation |
0x800D 1 x 16 |
0x800D 1 x 16 |
0x40800D 1 x 16 |
|
F0/F16A3 LO CMD |
0x800E 1 x 16 |
0x800E 1 x 16 |
0x40800E 1 x 16 |
|
F0/F16A3 CAL CMD |
0x800F 1 x 16 |
0x800F 1 x 16 |
0x40800F 1 x 16 |
|
F0/F16A3 LO Write |
0x8010 1 x 16 |
0x8010 1 x 16 |
0x408010 1 x 16 |
|
F0/F16A3 CAL Write |
0x8011 1 x 16 |
0x8011 1 x 16 |
0x408011 1 x 16 |
|
F0/F16A3 LO Frequency |
0x8012 1 x 16 |
0x8012 1 x 16 |
0x408012 1 x 16 |
|
F0/F16A3 CAL Frequency |
0x8013 1 x 16 |
0x8013 1 x 16 |
0x408013 1 x 16 |
|
F0/F16A3 LO Phase |
0x8014 1 x 16 |
0x8014 1 x 16 |
0x408014 1 x 16 |
|
F0/F16A3 CAL Phase |
0x8015 1 x 16 |
0x8015 1 x 16 |
0x408015 1 x 16 |
|
F0/F16A3 Analog Reset |
0x8017 1 x 16 |
0x8017 1 x 16 |
0x408017 1 x 16 |
Warning: The address space from CAMAC 0x8000 to 0x9FFF and DSP 0x408000 to 0x408FFF is not fully decoded.
There are several control and status registers accessible by the DSP. These registers are used to set up the operating mode of the BPM. The address of these registers are defined in the DSP memory map table.
Table 5.5. Timing Select (8-bit; write only). This register is used to select which one of the 16 PDU triggers the BPM will use.
|
BIT |
Name |
Definition |
|
3 - 0 |
Select CHA |
4-bit number to select PDU trigger 0 – 15 for Channel A |
|
7 - 4 |
Unused |
|
|
11 - 8 |
Select CHB |
4-bit number to select PDU trigger 0 – 15 for Channel B |
|
15 -12 |
Unused |
Table 5.6. Timing Delay (16-bit; write only). This register is used to fine tune the delay from the PDU trigger to the BPM track-and-hold. The delay time is given by
![]()
where N is the delay value written to the Timing Delay Register and FS = 2.5 ns.
|
BIT |
Name |
Definition |
|
7 - 0 |
Delay CHA |
8-bit number to set the delay for Channel A |
|
15 - 8 |
Delay CHB |
8-bit number to set the delay for Channel B |
Table 5.7. Analog Control (16-bit; write only). This register sets various parameters in the analog section.
|
BIT |
Name |
Definition |
Actual Name |
|
3 – 0 |
CAL ATTEN |
4-bit to set the Cal Atten level |
|
|
4 |
CAL LA |
Enable Channel LA Calibration |
CAL B act low |
|
5 |
CAL HA |
Enable Channel HA Calibration |
CAL A act low |
|
6 |
CAL LB |
Enable Channel LB Calibration |
CAL D act low |
|
7 |
CAL HB |
Enable Channel HB Calibration |
CAL C act low |
|
8 |
CAL ON |
Turn Signal, PLL, and DDS of Calibrator ON |
|
|
9 |
Select LA/HA |
Select Channel LA/HA |
SEL B/A |
|
10 |
Select LB/HB |
Select Channel LB/HB |
SEL D/C |
|
15-11 |
Unused |
Table 5.8. Analog Attenuation (16-bit; write only). This register sets attenuators in the analog section.
|
BIT |
Name |
Definition |
Actual Name |
|
3 - 0 |
ATTEN LA |
Set Channel LA Attenuator |
ATTEN B |
|
4 - 7 |
ATTEN HA |
Set Channel HA Attenuator |
ATTEN A |
|
8 - 11 |
ATTEN LB |
Set Channel LB Attenuator |
ATTEN D |
|
12 - 15 |
ATTEN HB |
Set Channel HB Attenuator |
ATTEN C |
Table 5.9. LO and CAL CMD (16-bit; write only). These are registers in the Local Oscillator and Calibrator DDSs.
|
BIT |
Name |
Definition |
|
0 |
DWIDTH |
0 – Eight Bit Data Bus 1 – Sixteen Bit Data Bus |
|
1 |
SLEEP |
0 – Normal Operation 1 - Sleep |
|
2 |
Unused |
|
|
3 |
Unused |
Table 5.10. LO and CAL Write (Assembly) Register (16-bit; write only). These are registers in the Local Oscillator and Calibration DDSs. The first write loads the upper 16-bits and the second write loads the lower 16-bits of the 32-bit Assembly Register. Transfer of the data to the Frequency or Phase Registers is completed by a write to the appropriate address. See Table 5.11.
|
BIT |
Name |
Definition |
Address |
|
0 – 15 0 – 15 |
FREQ0 MSB FREQ0 LSB |
LO Frequency MSB LO Frequency LSB |
0x8010 (First Write) (Second Write) |
|
0 – 12 |
PHASE |
LO Phase |
0x8010 |
|
0 – 15 0 – 15 |
FREQ0 MSB FREQ0 LSB |
CAL Frequency MSB CAL Frequency LSB |
0x8011 (First Write) (Second Write) |
|
0 – 12 |
PHASE |
CAL Phase |
0x8011 |
Table 5.11. Load DDS Internal Registers (16-bit; write only). The Frequency and Phase Registers of the Local Oscillator and Calibrator DDSs are loaded by writing to the following addresses. Contents of the word do not matter.
|
Name |
Definition |
Address |
|
LO_FREQ |
Load LO Frequency |
0x8012 |
|
CAL_FREQ |
Load CAL Frequency |
0x8013 |
|
LO_PHASE |
Load LO Phase Offset |
0x8014 |
|
CAL_PHASE |
Load CAL Phase Offset |
0x8015 |
Table 5.12. Trigger and Analog Reset Registers (16-bit; write only). Two additional registers where a write to the address causes an action are the trigger register and analog reset register.
|
Name |
Definition |
Address |
|
TRIGGER |
Trigger Channel 15 of Both PDU Timing Channels |
0x800B |
|
RESET |
Reset Both LO and CAL DDSs |
0x8017 |
Table 5.13. Status Register (16-bit; read and write). This registers contains status information on a variety of operations.
|
BIT |
Name |
Definition |
|
0 |
MESDNE |
Sets the MesPrep done flag. Normally reset by a new MesPrep. |
|
1 |
||
|
2 |
||
|
3 |
LO LOCK |
Indicates that the LO PLL has locked. |
|
4 |
CAL LOCK |
Indicates that the CAL PLL has locked. |
|
5 |
NO_119 |
The 119 MHz clock signal is missing. The internal 30 MHz clock is being used. |
|
6 |
MIS_PDU |
DSP timed out waiting for a PDU trigger. |
|
7 |
OVR_PDU |
PDU trigger over run. |
|
8 |
||
|
9 |
||
|
10 |
||
|
15-11 |
Unused |
Table 5.14. Interrupt definition. The column labeled BOOT is the state when the module is booted.
|
BIT |
Name |
BOOT |
RUN |
|
0 |
INT0 |
1 |
ADC Done |
|
1 |
INT1 |
0 |
New MesPrep |
|
2 |
INT2 |
1 |
Undefined |
|
3 |
INT3 |
1 |
Undefined |
There are two modes to program the module: local mode through the DSP and remote mode through the CAMAC interface.
6.1. Remote mode
In remote mode the module is programmed through the CAMAC interface. It is not possible to memory map the module through CAMAC and for this reason it is necessary to set the address before each write or read operation.
6.1.3. Set the channel
There are eight switches in two sets of four to select LER or HER for section A and B.
The sequence of instructions are:
F17 A0 800C Set analog control switches.
F16 A3 Data Data = 0(1) x 200 to select channel LA (HA) and 0(1) x 400 to select channel LB(HB). (Now HA and LA are swapped and HB and LB are swapped.)
The eight attenuators are controlled in pairs, 0 is no attenuation, F is 30 dB attenuation.
F17 A0 800D Set analog attenuator address.
F16 A3 Data Data = Atten x 1 (LA), x 10 (HA), x 100 (LB), x 1000 (HB). (Now HA and LA are swapped and HB and LB are swapped.)
6.1.3. Set the local oscillator
The local oscillator can be programmed for frequency and phase.
6.1.3.1. Set 16-bit mode
The sequence to set the 16-bit mode is:
F17 A0 8010 Set LO write address.
F16 A3 1 Set 16-bit mode.
F17 A0 800E Set LO CMD address.
F16 A3 0 Dummy write.
6.1.3.2. Set frequency
The 32-bit word to set the frequency is calculated by
![]()
where freq is the desired frequency in Hz and clock is the clock frequency in Hz. Then:
F17 A0 8010 Set LO write address.
F16 A3 Data Data = MSB (16-bits) of the 32-bit frequency word.
F17 A0 8010 Set LO write address.
F16 A3 Data Data = LSB (16-bits) of the 32-bit frequency word.
F17 A0 8012 Set LO frequency address.
F16 A3 0 Dummy write.
6.1.2.3. Set Phase
The 12-bit word to set the phase is calculated by
![]()
F17 A0 8010 Set LO write address.
F16 A3 Data Data = 12-bit phase word.
F17 A0 8014 Set LO phase address.
F16 A3 0 Dummy write.
6.1.3. Set the calibrator
The calibrator can be programmed for frequency, phase, amplitude, and channel.
6.1.3.1. Set 16-bit mode
The sequence to set the 16-bit mode is:
F17 A0 8011 Set CAL write address.
F16 A3 1 Set 16-bit mode.
F17 A0 800F Set CAL CMD address.
F16 A3 0 Dummy write.
6.1.3.2. Set calibrator on
The calibrator is set on with:
F17 A0 800C Set analog control address.
F16 A3 Data Data = 0(1) x 100 sets the calibrator OFF (ON).
6.1.3.3. Set frequency
The 32-bit word to set the frequency is calculated by
![]()
where freq is the desired frequency in Hz and clock is the clock frequency in Hz. Then:
F17 A0 8011 Set CAL write address.
F16 A3 Data Data = MSB (16-bits) of the 32-bit frequency word.
F17 A0 8011 Set CAL write address.
F16 A3 Data Data = LSB (16-bits) of the 32-bit frequency word.
F17 A0 8013 Set CAL frequency address.
F16 A3 0 Dummy write.
6.1.3.4. Set phase
The 12-bit word to set the phase is calculated by
![]()
F17 A0 8011 Set CAL write address.
F16 A3 Data Data = 12-bit phase word.
F17 A0 8015 Set CAL phase address.
F16 A3 0 Dummy write.
6.1.3.5. Set amplitude
A 4-bit word (Atten) sets the channel attenuation. 0 is no attenuation, F is 60 dB attenuation:
F17 A0 800C Set analog control address.
F16 A3 Data Data = Atten
6.1.3.6. Set channel
A 4-bit word sets the analog channel.
F17 A0 800C Set analog control address.
F16 A3 Data Data = 0 (all OFF), 10 (LA ON), 20 (HA ON), 40 (LB ON), 80 (HB ON). [The actual configuration is F0 (all OFF), D0 (LA ON), E0 (HA ON), 70 (LB ON), B0 (HB ON)].
6.2. Local mode
In local mode the DSP controls all RInQ functions. Communication of results is as described in Section 5 and below.
6.2.1. Address table
The following table contains the dual-port memory structure when the DSP code is running.
Table 6.1. Dual-port memory structure
Address |
Type |
Name |
Description |
|
summary |
|||
|
0 |
unsigned short |
version_number |
version number of running firmware |
|
1 |
short |
revision_number |
revision number first 8 bits; 16 bit set if it is a development module |
|
2 |
short |
serial_number |
serial number of this module |
|
3 |
unsigned short |
last_cal_id |
cal index of last cal used |
|
4 |
unsigned short |
status |
status of the DSP boot and init |
|
5 |
unsigned short |
meas_status |
status of the last measurement |
|
6 |
unsigned short |
last_prep_id |
index of the last measprep received |
|
7 |
unsigned short |
last_iof |
copy of iof register |
|
8 |
unsigned short[2] |
lo_freq |
lower and upper bits of lo freq word |
|
10 |
unsigned short |
spare |
spare |
|
11 |
unsigned short |
analog_ctrl |
analog control - muxing |
|
12 |
unsigned short |
timdel |
timing delay register |
|
13 |
unsigned short[2] |
cp_freq |
lower and upper bits of cp freq word |
|
15 |
unsigned short |
cal_analog_ctrl |
analog control - calibration |
|
16 |
short[2] |
fill_1 |
spares |
|
crate_init |
|||
|
18 |
unsigned short[8] |
hsta_bpms |
describes the four (4) bpms |
|
26 |
unsigned short[2] |
hsta_bpmp |
describes the processor |
|
28 |
unsigned short[12] |
pcmm_a |
for x/y width of the beam-pipe |
|
40 |
unsigned short[2] |
tcnst_a |
for tmit calculations |
|
42 |
unsigned short[2] |
single_bunch_tmit |
for tmit calculations |
|
44 |
unsigned short |
sspare |
spare |
|
45 |
short[2] |
angle_a |
angle of rotation if x/y bpm |
|
47 |
short[4] |
offs_a |
offset in microns |
|
51 |
unsigned short[2] |
myspare_a |
spares |
|
53 |
short |
lo_freq_offs_hz |
lo offset during calibration in Hz |
|
54 |
short |
cp_freq_offs_hz |
calibration freq offset in Hz |
|
55 |
short |
lo_freq_offset |
lo offset during calibration in kHz |
|
56 |
short |
cp_freq_offset |
calibration freq offset in kHz |
|
57 |
unsigned short |
dbg_flag |
set to 1 if using debug timing 30 MHz |
|
58 |
short |
n_cal_mult |
multiplier of trigger freq added to cp freq |
|
59 |
short |
dbg_nochk |
set to 4321 to ignore the checksum |
|
60 |
unsigned short |
phase_gain1 |
phase gain for first calc step in % |
|
61 |
unsigned short |
phase_gain2 |
phase gain for subsequent calc steps in % |
|
62 |
short[4] |
offm_a |
slope term for offset calcs in microns |
|
66 |
short |
chksum_d |
checksum |
|
67 |
short[3] |
fill_1 |
spares |
|
measprep data |
|||
|
70 |
unsigned short |
mask |
type of measurement mask |
|
71 |
unsigned short |
calid |
index of calibration data |
|
72 |
unsigned short |
timdel |
vernier delay (packed) |
|
73 |
unsigned short[2] |
start_turns_skip_a |
turns to skip before measuring |
|
regular measprep |
|||
|
75 |
unsigned short |
nthturn |
how often to get data if multiple turns |
|
76 |
unsigned short |
navg |
how many turns to average |
|
sin measprep |
|||
|
75 |
unsigned short |
nthturn |
how often to get data if multiple turns |
|
76 |
unsigned short |
ndata |
number of data to take |
|
77 |
unsigned short |
freq |
frequency of sine wave in Hz |
|
scan measprep |
|||
|
75 |
unsigned short |
nthturn |
how often to get data if multiple turns |
|
76 |
unsigned short |
ndata |
number of data to take |
|
77 |
unsigned short |
navg |
how many turns to average |
|
calibration measprep |
|||
|
75 |
unsigned short |
mask_flags |
low nibble for attn; mux; multi-bunch |
|
abort measprep |
|||
|
75 |
unsigned short |
nthturn |
how often to get data if multiple turns |
|
78 |
short |
chksum_d |
checksum delta |
|
79 |
short |
fill_1 |
spare |
|
calibration results |
|||
|
470 |
short[16] |
ped_ampl |
pedestals and amplitudes |
|
486 |
short[4] |
quad_err |
quadrature angle errors in milliradians |
|
490 |
unsigned short |
mask_flags |
low nibble for attn; mux; multi-bunch |
|
491 |
unsigned short[2] |
stat_a |
status – set the 1 bit if good |
|
493 |
short |
chksum_d |
checksum |
|
494 |
short[4] |
fill_1 |
spares |
|
nonaveraged results |
|||
|
1030 |
unsigned short[4] |
raw_a |
semiraw amplitudes from I/Q channels combined after ped subtraction |
|
averaged results - 1 |
|||
|
1030 |
short |
xerr |
error on x mean (microns/10) |
|
1031 |
short |
yerr |
error on y mean (microns/10) |
|
1032 |
unsigned short |
terr |
error on tmit mean |
|
1033 |
unsigned short[2] |
goodmeas_a |
number of good data in result |
|
1035 |
unsigned short[4] |
raw_a |
semiraw amplitudes |
|
ave or nonave results |
|||
|
1039 |
short |
x |
x result (2 micron units) |
|
1040 |
short |
y |
y result (2 micron units) |
|
1041 |
unsigned short |
tmit |
tmit scaled |
|
1042 |
unsigned short |
stat |
status bit mask |
|
averaged results - 2 |
|||
|
1030 |
short[3] |
data |
x, y, and tmit |
|
1033 |
unsigned short |
stat |
status bit mask |
|
1034 |
short[3] |
data_err |
errors on mean of x, y, and tmit |
|
1037 |
unsigned short[2] |
goodmeas_a |
number of good data in result |
|
timing results |
|||
|
1030 |
unsigned short |
tmit_1 |
average counts – A half |
|
1031 |
unsigned short |
tmit_2 |
average counts – B half |
|
1032 |
unsigned short |
stat |
status bit mask |
|
sine results |
|||
|
1030 |
short |
x_phase |
phase for A half in milliradians |
|
1031 |
short |
x_ampl |
amplitude for A half in microns |
|
1032 |
short |
y_phase |
phase for B half in milliradians |
|
1033 |
short |
y_ampl |
amplitude for B half in microns |
|
1034 |
short |
x_rms |
rms fit error for A half |
|
1035 |
short |
y_rms |
rms fit error for B half |
|
1036 |
unsigned short |
stat |
status bit mask |
|
1043 |
short[5] |
fill_1 |
spares |
|
scan results -1 |
|||
|
1048 |
short |
x |
x result |
|
1049 |
short |
y |
y result |
|
1050 |
unsigned short |
tmit |
beam intensity |
|
scan results -2 |
|||
|
1048 |
short[3] |
data |
x, y, and tmit |
|
4120 |
short[2420] |
fill_2 |
spares |
|
beam abort results |
|||
|
6540 |
unsigned short |
mask |
mask with flags |
|
6541 |
unsigned short |
ndata |
number of pulses |
|
6542 |
unsigned short |
last_good_index |
index of last good measurement |
|
6543 |
short[8400] |
abort_data |
x, y, and tmit |
|
14943 |
short[1326] |
fill_3 |
spares |
|
cal refine params |
|||
|
16269 |
short[8] |
ped_delta |
pedestal correction |
|
16277 |
short[4] |
qi_ratio_delta |
Q/I ratio correction |
16281 |
short[4] |
del_quaderr_delta |
quadrature angle error correction |
16285 |
unsigned short |
ref_stat |
status of refine calibration |
16286 |
short[8] |
cal_offset |
calibration gain sine offset |
cal status checks |
|||
16294 |
unsigned short |
ped_stdev |
max ped standard deviation |
16295 |
unsigned short |
ampl_dev |
max diff amplitude vs expected |
16296 |
unsigned short |
ampl_rms |
max rms fit error |
16297 |
short[4] |
dum_cal_phase |
(placeholder) |
16301 |
unsigned short[8] |
orig_ampl_a |
ampl before refinement step |
16309 |
unsigned short[8] |
xtra_ampl_a |
ampl after refinement step |
16317 |
short |
fill_1 |
spare |
reserved |
|||
16318 |
short |
reserved |
interrupt |
16319 |
unsigned short |
prep_id |
measprep id for yy |
6.2.2. Programming examples
The following examples show the steps in various operations of the RInQ module from initialization through obtaining results.
Write the values on the crate_init structure.
To calibrate: write the values on calibration measprep, set measprep 0.
To measure closed orbit: write the values on the averaging measprep, set measprep 0.
To measure turn-by-turn: write the values on the scan measprep, set measprep 0.
Read results (calibration, measurement, or raw).
6.2.2.1. Initialization values
HSTA_BPMS_A(00H,00H): 00041H x-only BPMS
HSTA_BPMS_A(01H,00H): 00000H
HSTA_BPMS_A(00H,01H): 00081H y-only BPMS
HSTA_BPMS_A(01H,01H): 00000H
HSTA_BPMS_A(00H,02H): 00041H
HSTA_BPMS_A(01H,02H): 00000H
HSTA_BPMS_A(00H,03H): 00081H
HSTA_BPMS_A(01H,03H): 00000H
HSTA_BPMP_A(00H): 00001H
HSTA_BPMP_A(01H): 00001H
PCMM_A(00H,00H): 00000H
PCMM_A(01H,00H): 00000H
PCMM_A(02H,00H): 00000H
PCMM_A(03H,00H): 00000H
PCMM_A(04H,00H): 00000H
PCMM_A(05H,00H): 00000H
PCMM_A(00H,01H): 00000H
PCMM_A(01H,01H): 00000H
P