10.01.2014 Views

VME SIROCO

VME SIROCO

VME SIROCO

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>VME</strong> <strong>SIROCO</strong><br />

Caution: This document was scanned<br />

and converted to word using optical<br />

character recognition. Some<br />

typographic errors remain.


<strong>VME</strong> slave board with standard addressing (24 bits) and single transfer mode (16 bits).<br />

1 Adjustments<br />

1.1 Jumper settings<br />

1.1.1 Viking <strong>SIROCO</strong> (IDC clock input)<br />

Virtual earth S1<br />

S2<br />

S3<br />

S9<br />

S12<br />

1.1.2 Felix <strong>SIROCO</strong> (Lemo clock input)<br />

S1<br />

S4 left<br />

S6 left<br />

S7 right<br />

S9<br />

S10<br />

S11<br />

1.2 Potentiometer adjustment<br />

POT1: adjust for reference voltage to be +10V at M7 pin 6.<br />

POT2: adjust for 820Q between MI pin 6 and M2 pin 3 (no power-on).<br />

POT3: adjust for DAC = FFF, m9 pin 6 = +10v.<br />

POT4: adjust for -1V M10 pin 45<br />

POT5: adjust for +1V M10 pin 53<br />

POT6: adjust for -2V M10 pin 39<br />

1.3 Component corrections<br />

Important: Replace devices M28 and M29 with 74ALS245-1 (they should not be HCT devices).<br />

For correct balancing of the reference voltages the following resistors should be changed: R28 =<br />

9K1, R30 = 20K.<br />

2 Address Space<br />

$2008 bytes organised in 16 bit words.<br />

The I/O address window base address is set by means of switches SW1 (A[23:20]) and SW2<br />

(A[19:16]). The address map is shown in Table 1.<br />

Table 1 Address map<br />

Address Description R/W<br />

0-$1FFE ADC mount memory R/W


$2000 Register 1 R/W<br />

$2002 Register 2 R/W<br />

$2004 Register 3 R only<br />

$2006 Register 4. Bit 0 = 0 resets <strong>SIROCO</strong>. Bit 0 = 1 starts <strong>SIROCO</strong>. W only<br />

2.1 ADC Count Memory<br />

Read/write.<br />

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

Ovf<br />

ADC count<br />

Up to 4096 11 bit ADC values (10 bits + overflow) can be stored in this memory. The memory<br />

address corresponds to the sample number. Bit 10 contains the overflow state.<br />

The TDC1020 Flash ADC produces 10-bit data plus 1-bit overflow. The ADC’s output coding is<br />

switchable by means of jumpers S2 and S3 as shown in Table 2. Example output for true binary<br />

encoding is given in Table 3.<br />

Table 2 ADC output coding modes<br />

SW2 SW3 Output Coding<br />

0 0 Inverted binary<br />

0 1 True offset 2's complement<br />

1 0 Inverted offset 2's complement<br />

1 1 True binary (default).<br />

2.2 Register 1<br />

Read/write.<br />

Table 3 Output for true binary encoding<br />

Input Output MSB-LSB (OVF)<br />

>2.0V 0000000000(1)<br />

2.0V 0000000000(0)<br />

1.996V 0000000001(0)<br />

0.000V 1000000000(0)<br />

-1.998V 1111111110(0)<br />

-2.000V 1111111111(0)<br />

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

Clk Cnv Lemo Frame length


Bits 3-0 contain the one’s complement of the sample frame length in units of 256. The minimum<br />

number of samples that are selectable are 256, the maximum is 4096. The samples are segmented<br />

into groups of 256 therefore allowable group selections are 256, 512, 768, 1024 etc. up to 4096.<br />

E.g. for a frame length of 256, 512, …, 4096, write $F, $E,…$0 to REGISTER1[3:0].<br />

Table 4 REGISTER1[5:4], Lemo mode encoding<br />

bit 5 bit 4 Lemo Modes<br />

0 0 Disabled<br />

0 1 External start. The Lemo signal starts the ADC conversion. Memories are set<br />

in write mode and, if selected (see below), the internal clock is stopped.<br />

1 0 External stop. The Lemo signal stops the <strong>SIROCO</strong> ADC conversion.<br />

Memories are disabled and, if selected (see below), the internal clock is<br />

stopped.<br />

Table 5 REGISTER1[6], convert mode<br />

Bit 6 Convert mode<br />

0 Conversion stops after selected frame length.<br />

1 Conversion is continuous.<br />

Table 6 REGISTER1[7], clock mode<br />

Bit 7 Clock mode<br />

0 External clock (differential or Lemo input).<br />

1 Internal (<strong>VME</strong> SYSCLK) clock.<br />

2.3 Register 2<br />

Read/write.<br />

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

Clock skip<br />

DAC baseline value<br />

Bits 15-12 contain the number of clock pulses skipped at the beginning of the conversion. The<br />

default value must be greater than or equal to 4. It is the complemented value which must be loaded<br />

in the register. E.g. to skip 0, 1, …, 15 clock pulses, write $F, $E, …, $0 to REGISTER2[15:12].<br />

The address counters are enabled on receipt of the last skipped clock pulse.<br />

The 12bit AM6012 DAC is configured for unipolar operation. The output from the DAC is<br />

subtracted from the <strong>SIROCO</strong> analogue input (this is effectively a base line restorer). The DAC<br />

baseline value encoding is given in Table 7.


Table 7 DAC encoding<br />

Data Vout<br />

Positive full scale FFF 9.9976<br />

Positive full scale – LSB FFE 9.9951<br />

LSB 001 0.0024<br />

Zero scale 000 0.0000<br />

2.4 Register 3<br />

Read only.<br />

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

EOC<br />

Last addressed memory<br />

Bits 11-0 contain the address of the last accessed memory cell at conversion time.<br />

Bit 15 Conversion status<br />

0 Conversion ended.<br />

1 Conversion in progress.<br />

2.5 Register 4<br />

Write only.<br />

Bit 0 Description<br />

0 Stop data collection (reset).<br />

1 Start data collection<br />

Bit 0 controls the starting and stopping of data collection.<br />

3 Test programs<br />

3.1 <strong>SIROCO</strong> data collection RAM test<br />

Data $155 is written to each individual address and read back. It is then tested with the original data<br />

to check its integrity. If the data read back is incorrect the CPU will cycle continuously at $7012.<br />

Upon completion of the above (successful) test, the data bits are now inverted to $2AA and the<br />

above process repeated.<br />

Upon successful completion, data is transferred from the <strong>SIROCO</strong> RAM to the CPU to allow<br />

further examination of the data if required.<br />

0000 7000 207C 0010 0000 MOVE.L #0010 0000,A0


0000 7006 303C 0155 MOVE #0155,D0<br />

0000 700A 3080 MOVE D0 (A0)<br />

0000 700C 3210 MOVE (A0),D1<br />

0000 700E B240 CMP 00,D1<br />

0000 7010 6702 BEQ.S 0000 7014<br />

0000 7012 60FE BRA.S 0000 7012<br />

0000 7014 DlFC 0000 0002 ADD.L #0000 0002,A0<br />

0000 701A B1FC 0010 2000 CMP.L #0010 2000,A0<br />

0000 7020 66E8 BNE.S 0000 700A<br />

0000 7022 207C 0010 0000 MOVE.L #0010 0000,A0<br />

0000 7028 303C 02AA MOVE f02AA,D0<br />

0000 702C 3080 MOVE D0,(A0)<br />

0000 702E 3210 MOVE (A0),Dl<br />

0000 7030 B240 CMP D0, D1<br />

0000 7032 6702 BEQ.S 0000 7036<br />

0000 7034 60FE BRA.S 0000 7034<br />

0000 7036 D1FC 0000 0002 ADD.L #0000 0002,A0<br />

0000 703C B1FC 0010 2000 CMP.L #0010 2000,A0<br />

0000 7042 66E8 BNE.S 0000 702C<br />

0000 7044 267C 0010 0000 MOVE.L #0010 0000,A3<br />

0000 704A 287C 0000 8000 MOVE.L #0000 8000,A4<br />

0000 7050 341B MOVE (A3)+,D2<br />

0000 7052 38C2 MOVE D2,(A4)+<br />

0000 7054 87FC 0010 2000 CMP.L #0010 2000,A3<br />

0000 705A 66F4 BNE.S 0000 7050<br />

0000 705C 60FE BRA.S 0000 7050<br />

3.2 <strong>SIROCO</strong> test routine<br />

Instructions are given below on the operation of the <strong>VME</strong> SIROCCO FLASH, a simple test routine<br />

is also included. The test is simply composed of linearly ramping up the on-board DAC and<br />

sampling the produced voltage at the ADC input. The sampling rate is fixed due to the selection of<br />

the internal clock. In this test the incremental change to the DAC is 1 (data written to the DAC is<br />

$090 - $FFF).<br />

This test program configures the SIROCCO to write data to 4096 samples, disables Lemo mode,<br />

uses the <strong>VME</strong> SYSCLK (internal clock) for generating converts, sets ‘SKPD CLK PULSES’ to<br />

zero. The on-board DAC is ramped-up from $090 to $FFF, each incremental change in DAC value<br />

is sampled by the ADC and stored in data collection RAM. Only one address location is actually<br />

transferred to the CPU for data analysis.<br />

5500 CLR.W D0 SET SIROCCO<br />

5502 MOVE.L #$0010 0000,A0 DATA COLLECTION<br />

5508 MOVE.W D0,(A0)+ RAM TO ZERO<br />

550A CMP.L #$0010 2000,A0<br />

5510 BNE.S $5508 TEST FOR END RAM<br />

5512 MOVE.L #$0000 8000,A0 SET CPU<br />

5518 MOVE.W D0,(A0)+ DATA COLLECTION<br />

551A CMP.L #$0000 A000,A0 RAM TO ZERO<br />

5520 BNE.S $5518 TEST FOR END OF RAM


5522 MOVE.L #$0000 8000,A1 CPU RAM POINTER = 8000<br />

5528 MOVE.L #$0010 0000,A3 SIROCCO RAM POINTER = 100000<br />

552E MOVE.W #$0080,$0010 2000 NOTE 1<br />

5536 MOVE.W #$0090,D1 INITIAL DAC DATA = 90<br />

553A OR.W #$F000,D1 NOTE 2<br />

553E MOVE.W D0,$0010 2006 SIROCCO RESET D0 = 0<br />

5544 MOVE.W D1,$0010 2002 WRITE DAC DATA<br />

554A MOVE.W #$0000,D4 TIME DELAY<br />

554E ADD.W #$0001,D4 TO ALLOW FOR DAC<br />

5552 CMP.W #$0550,D4 SETTLING TIME<br />

5556 BNE.S $554E<br />

5558 MOVE.L #$0001,0010 2006 START SIROCCO D0 = 1<br />

5560 MOVE.L #$0010 2004,A2 READ REGISTER 2<br />

5566 MOVE.W (A2),D2 THIS TESTS FOR BIT 15<br />

5568 AND.W #$8000,D2 TO INDICATE<br />

556C CMP.W #$0000,D2 END OF CONVERSION (EOC)<br />

5570 BNE.S $5566 LOOP TILL EOC<br />

5572 MOVE.W (A3),D3 YES EOC, READ DATA FROM<br />

5574 AND.W #$07FF,D3 SIROCCO (1000000) AND TRANSFER<br />

5578 MOVE.W D3,(Al)+ TO CPU RAM<br />

557A ADD.W #$0001,Dl INCREMENT DAC DATA<br />

557E CMP.W #$FFFF,Dl TEST FINAL DAC DATA<br />

5582 BNE.S $553A NO, REPEAT ABOVE CYCLE<br />

5584 BRA.S $5584 END!<br />

3.2.1 Notes<br />

<strong>SIROCO</strong> data collection RAM: $100000 - $102000<br />

CPU data collection RAM $8000 – $A000<br />

Note 1:<br />

The bit pattern wrote to this address (register 1)<br />

Initialises the following:<br />

4096 strips selected<br />

Lemo mode disabled<br />

Conversion authorised<br />

Internal clock selected<br />

To configure the <strong>SIROCO</strong> to accept external clocks (converts), this is achieved by setting bit 7<br />

register 1 ($102000) to a 1.for example to retain the above initialisation except that the clock<br />

selected will be external, the bit pattern will be $0000 not $0080.<br />

Note2:<br />

The DAC data is 12-bits wide, the logical OR is required to retain the top 4-bits to 1111, this is<br />

necessary so that the ‘skpd clk pulses’ = 0.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!