TIMING BOARD

This chapter has been updated to describe circuit board Revision 6B, the current revision of the DSP software 2.31.

Hardware Preparation

The principal components of the timing board are shown in Fig. 2-1. The connector JP1 near the reset switch allows connection of a remote switch for resetting the DSP, and should never have a jumper installed on it. Fig. 2-2 describes the meaning of jumpers JP2 and JP3, and the EEPROM memory map.

Versions 2.10 and later of the DSP software can only be executed from 32k x 8 EEPROMs (28C256). 8k x 8 UV erasable ROMs will still work with these timing boards, but only with earlier revisions of the DSP software. The address selection jumper JP2 should be set as shown in Fig 2-2 for operation with 32k x 8 EEPROMs. A jumper should be installed on JP3 if the user needs to write to the EEPROM while it is installed in the timing board. Hardware protection of the EEPROM contents can be provided by not installing the write enable jumper. Software protection is provided against writing to the boot area of the EEPROM by disallowing writing above address $4000. This prevents damage to the boot program so basic DSP operation, memory management and communication functions will be operational after the DSP is rebooted even if erroneous writes to the DSP or EEPROM application program have been made.

Board Checkout

A procedure for checking out the operation of the timing board is outlined here, to be used if a previously functional board is suspected of improper operation, or for initial tests after board assembly. The checkout steps are as follows:

(1) Visually inspect the board: The correct ROM should be installed, and the socketed components (DSP and EEPROM) should be properly installed and seated. JP1 should not have a jumper. The jumpers JP2 and JP3 should be correctly installed as described above. The resistors should all be installed.

(2) +5 voltage supply: Before plugging in the board check the resistance between +5V and ground, using the test points in the upper left hand corner of the board. It should be around 3k ohms after it settles down. Turn power on, verify that the voltage goes to +5 volts.

(3) Power-on reset: Examining the EEPROM chip enable (U13 pin #20), the +5V power to the timing board should be cycled on and off several times. The chip enable line should toggle for about 5 milliseconds after reset as the boot program is loaded into the DSP and then remain in a high state. The reset switch should be pressed to produce the same effect as power-on reset.

(4) External clocks: The 8 MHz clock should be examined at the backplane connector on pin A10, and should be high for 75 nanosec and low for 50 nanosec. The 20 MHz clock should be on the backplane pin A12, and should be symmetric.

(5) Computer communication: With the timing board connected to the host computer via the optical fiber link, several commands should be issued. Examining U17 pin #5 with a scope, a STP command should stop the waveforms, an IDL command should resume them, and a RST command should produce waveforms like the power-on reset. The TDL command should be executed to verify that the serial link works in both directions. The STP command should be sent repeatedly from the host computer with a scope connected to the Rcv data and Rcv clock pins, as shown in Fig. 2-1, to obtain the waveforms shown in Fig. 2-3d.

(6) Verify DSP operation: The 74F74 flip flop U17 can be examined with a scope to see if the DSP is cycling through the IDLE routine properly. Pin #5 should reveal the waveform shown in Figure 2-3a.

(7) External clock waveforms: The commands LDA #2 and IDL should be executed to load the dual readout application program and activate clock driver activity. A spot check of a signal on U31 should be made by examining pin #15 with a scope. It should appear as in Fig. 2-3b. This is the signal that turns the integrator of the video processor on and off.

(8) Clock driver waveforms: An analog board should be plugged in, and the clock driver waveforms should be examined from the DC37 connector that connects to the CCD. Pin #8 has the Reset Gate signal that should appear as in Fig 2-3c.

(9) DSP code downloading: An operational DSP program should be downloaded from the host computer to the DSP memory over the fiber optic data link.

(10) Image data transmission: A CCD image should be read into the host computer with the RDC command while a scope is placed on the Xmit data and Xmit clock pins shown in Fig. 2-1. The waveforms of Fig. 2-3e should be obtained.

Once these steps are satisfactorily completed the timing board has a good chance of being fully functional, and a readout of a CCD image could be attempted.

Theory of Operation

Fig. 2-4 shows a block diagram of the main components of the timing board. A boot ROM loads the DSP with its program and parameter set after power-on reset or an explicit command from the host computer, while a hardware delay circuit stops the DSP from executing commands for programmable intervals. Buffers to the backplane implement a range of programmable timing pins and receive image data from each of the analog boards. A detailed description of the operation of the timing board follows, and makes reference to the board schematic.

The DSP (DSP56001, U20), its boot ROM (U13), power-up logic (surrounding the reset switch in the lower left hand corner) and the 40 MHz master timing clock (U5) are shown in the drawing. The ROM contents are loaded into the DSP program memory space by a bootstrap loading program resident in he DSP. This occurs during the reset cycle just as RESET* (pin A5 of the DSP) is brought high. D23 of the DSP is held high by R5 to signal to the DSP that the boot program is on the external bus in a ROM, causing the DSP to go through a read cycle over the byte-wide data bus lines D0-D7. The entire on-chip program space of 512 words is read in, as the DSP sends its program strobe PS* line true together with its read external memory RD*. These map directly to the ROM lines chip enable CE* and output enable OE*. Jumper JP3 is for ROM protection to prevent unauthorized writes.

A reset signal for the DSP is generated by a programmable array logic (PAL) part U1. Its logical equation is

RESETI = (SYSRST' # RESW')'
IRQA = RESETI' # IRQAIN
IRQB = RESETI & IRQBIN.

where # means logical OR, & means logical AND and ' means logical invert. The DSP reset signal RESETI goes low whenever the bus signal SYSRST goes low or the on-board reset switch and power-on circuit sends RESW low (true). IRQA goes low and IRQB goes high during reset so the DSP reads an operating mode value of 2 to enter the special DSP56001 bootstrap mode. When RESETI is high IRQA and IRQB just follow the input interrupt request lines IRQAIN and IRQBIN respectively.

The crystal oscillator U5 runs at 40 MHz to generate the bit clock for the fast serial transmitter, and is divided by two by U8A to run the DSP clock input pin. U9 divides the 40 MHz clock to generate an 8 MHz clock that is bussed to external readout boards (backplane signal CK8) for use by the A/D converters, and is driven by U12C. U9 is cleared with a programmable PULSE2 signal in order to synchronize the clock with pixel readout. The PAL U1 puts the DSP in operating mode 1 after reset o that the DSP boots its program memory a byte at a time from the EEPROM U13. Reset circuitry is activated by either power-up or pushing the camera reset button S1. A remote reset switch can be wired to JP1.

The DSP generates external data bus reads or writes whenever memory data accesses outside of its on-chip memory space are performed. U10D is used in conjunction with the flip-flop U17A and a delay line U14A and U14B to produce a WRITE* signal of 40 nanosec duration if a DSP write command issued. This is driven by U16 to generate SWRITE, which is sent to the bus for use by other boards in the system for latching data values. The data lines D00-D23 are latched by U30, U32 and U35 from the DSP data bus when a DSP write command is issued to the external memory space, and they in turn drive the system bus lines SD00-SD23 and guarantee that the data values are valid during the SWRITE latching pulse. Similarly, an SREAD signal is generated when a DSP read operation is performed, causing the three state outputs of U30, U32 and U35 to be disabled as the drivers U25, U27 and U29 drive the DSP bus during a read instruction.

A delay logic circuit is implemented by U12B, U12D, U17B, U22 and U23 to allow a programmable number of clock cycles (0-255) to be inserted in-between DSP instruction execution, effectively halting all processing. The number of clock cycles to be inserted is programmed in the data word D16-D23 during writes by the DSP to X: external memory space. If these bits D16-D23 are all zero then no delay is inserted. The comparator U23 monitors D16-D23 and generates a low true signal if the bits are all zero. The flip-flop U17B checks these bits whenever STROBE* goes high and X/Y* indicates an X: cycle is in progress. If the bits are all zero then U17B's output Q* stays high, preventing the DSP bus request BR* from going true, and preventing the 8-bit binary counter U22 from counting. If any of the data bits are not zero then the D input to the flip-flop U17B will be high and Q* will go true. Q* true causes the bus request line BR* to be taken true, stopping DSP execution immediately until BR* is taken high after the counter U22 has counted down and cleared the flip-flop U17B. Each delay cycle is 50 nanosec, so 50 to 12750 nanosec delays are possible. The delay occurs after execution of the instruction containing the non-zero delay field.

The lower right hand corner of the schematic shows the fast serial transmitter. The transmitter accepts SD0-SD23 off the system bus whenever U18 goes true. This causes the bank of shift register U21, U24, U26 and U28 to enter parallel load mode, whereby the data are loaded on the next highgoing clock. The start bit of the 25-bit serial word is generated by the most significant bit of U28. After parallel load, U18 goes false to let the shift registers resume shift right operation as the bits go cascading from one device to the other. After transmission of the entire data word the shift registers go right on clocking, but send out all zeroes since the input SR to the first shift register in the line U21 is set to zero. The serial stream simply goes to the optical transmitter U4 to be sent down the optical fiber to the instrument control computer. The shift registers are reset on SYSRST* and clocked out by the system clock at 40 MHz. The serial encoding over the fiber is scrambled by the serial transmitter, and seen as NRZ by the on-board circuitry. Input data arriving at 4 MHz is received by the optical receiver U3 and sent to the clock recovery chip U2 for it to generate a synchronous clock. This synchronized clock and the serial data stream are sent to the DSP Synchronous Serial Interface (SSI) pins for writing to its internal 24-bit input register. The counter U7 in conjunction with U8B and U12A generates a status signal to tell the DSP when the data is valid. The delay line U14C insures that the clock occurs right before the data transition so phasing errors do not occur.

Provisions for communicating with the serial interface of the DSP are provided. The asynchronous serial interface transmitter (TXD) and receiver (RXD) lines of the DSP (the SCI) are wired to the backplane to allow communication with another processor. The synchronous serial transmitter lines, STD and SCK, are provided to allow the DSP to transmit data, and are buffered through U10A and U10B to allow more than one receiver to hang on the line.

The bank of four circuits U19, U31, U33 and U34 handles a miscellany of utility and support functions. The comparator U19 selects these functions whenever an external X: memory write is made with SD12-SD15 set to ones ($F). Three different kinds of signals are generated. The latch U31 and decoder U33 assure that the VP lines 0-7 are updated simultaneously with the contents of SD00-SD07 whenever SD08-SD11 are zero. The analog readout boards currently use these lines for running the video processors of all readout boards in parallel. The lines PULSE3-7 generate a low-true pulse of 40 nanosec duration whenever a write is made to X:$FFB0 with the data word $00Fpxx, where p = 3 to 7 selects which of the PULSE lines to toggle. Lastly the addressable latch U34 generates latched signals that can be individually addressed by writing to the same X:$FFB0 address with the data word $00F1xn, where the three most significant bits of n will address the lines LATCH*0-7 and update the indicated one to the value of the least significant bit of n.

The driver U16 is always enabled to drive the address lines A00 to A03 and control signals READ*, WRITE*, X/Y* AND Y/X* with sufficient current over the bus. These bussed signals are indicated with an S prefix, as in SREAD. The address lines A00 to A03 are used to address each analog board to read each A/D converter separately. The X/Y* and Y/X* signals are generated by the DSP for addressing either the X or the Y data memory space, and separately bussed for ease of decoding by the readout boards. U15 latches the memory select signals X/Y and Y/X and the address lines A00-A03 to insure that they are valid after the termination of the DSP write cycle, and sends them out over the bus with an L prefix.

A summary of the DSP commands follows. A non-zero in the mm fields will cause the next instruction execution to be delayed by (mm times 50 nanosec). x means "don't care".

MOVE #$mmF0nn,X:$FFB0 Write nn simultaneously to all VP lines 0-7.
MOVE #$mmF1xn,X:$FFB0 Update LATCH 0-7 to the value of the least significant bit of n. The three most significant bits of n select which of the eight LATCH lines to update.
MOVE #$mmFpxx,X:$FFB0 Generate a 40 nsec pulse on one of the PULSE lines p = 2-7.
MOVE #$mmnopp,X:$FFB0 Write to the external board selected by n (n = 0 to $E). If an analog board, update its o'th DAC to the value pp.
MOVE #$mmnopp,X:$FFB1 An additional 16 external boards may be selected.
MOVE A,Y:$FFB0 Transmit the 24-bit value in accumulator A over the fast (40 MHz) serial link to the host computer.
MOVE X:$FFBq,A Read the A/D of board q into accumulator A; q = 0 to $F.
MOVE Y:$FFBq,A An additional 16 A/Ds may be read; q = 0 to $F

Backplane Pin Definition

The pins of the backplane have been defined as follows -

Pin # ROW a ROW b ROW c
1 VP0 RXD-U SD00
2 VP1 TXD-U SD01
3 VP2 PWREN SD02
4 VP3 *UTLRST SD03
5 VP4 *USER SD04
6 VP5 *USER SD05
7 VP6 *USER SD06
8 VP7 *USER SD07
9 GND *USER GND
10 CK8 *HVEN SD08
11 GND *USER SD09
12 CK-20 LX/Y SD10
13 PULSE3 LY/X SD11
14 PULSE4 LA00 SD12
15 GND LA01 SD13
16 PULSE5 LA02 SD14
17 GND LA03 SD15
18 WATCHDOG RXD SD16
19 GND TXD SD17
20 IRQU GND SD18
21 *LVEN SCK SD19
22 *PWRST STD SD20
23 SC0 GND SD21
24 SRD IRQA SD22
25 LATCH2 IRQB SD23
26 LATCH3 IRQB-U SREAD
27 LATCH7 SWRITE SX/Y
28 LATCH6 SY/X SA00
29 LATCH5 SA01 SA02
30 LATCH4 SA03 SYSRST
31 VS- VHS+ VS+
32 +5 VDC +5 VDC +5 VDC

The power supply delivers +5, +/- 15 and +36 volts to the controller, the first three through the dedicated power distribution pins on the VME backplane. The +36 volts for the DC bias supply is delivered through the VHS+ pin (b31). Normally it is expected that the power supply will be mountedremotely from the controller some distance away. Noise pickup along the power supply cables can be minimized by proper bypassing or re-regulation at the controller, while the extensive on-board regulation provided by the noise-critical analog readout boards should minimize its effect. Signals names preceded with an asterix (*) are daisy-chained on standard VME backplanes, rather than bussed to all connectors. Some are dedicated to the utility board and go between it and the power conditioner board, necessitating that the utility board be placed in either slot 0 or slot 6 in systems equipped with a power conditioner board, or that the VME backplane be jumpered between the desired pins. A short description of each signal follows:

Software Commands

This document describes the DSP program contained in the timing board DSP application programs dealing with CCD readout. The commands discussed in the system chapter (RDM, WRM, LDA, RST and TDL) are also implemented. The boot program is contained in a file named "timboot.asm". Several application programs are also written. These have several commands in common as follows.

Y:1 Number of pixels per line.
Y:2 Number of lines.
Y:3 Number of pixels to clear from the serial shift register before image readout. This will typically be five times the number of pixels in the serial shift register (default = 5220).
Y:4 Number of lines to clear before exposing.
Y:5 Binning factor in the serial direction.
Y:6 Binning factor in the parallel direction.

The file "tim1.asm" is assigned application number 1 for loading into EEPROM, and is a single readout application. "tim2.asm" is a dual readout application with an application number of 2. As of this writing the tim1.asm file has not been optimized for readout speed, but tim2.asm has. Both are fully operational, but "tim1.asm" has a rather slow readout time of around 45 microsec per pixel for a single readout, compared to 25 microsec for the dual readout of "tim2.asm".

These commands require no arguments. They all generate a DON reply to the board that issued the command, except for the readout command RDC that only generates pixel data that is sent along the fast fiber optic link.

The file "timtest.asm", assigned application number 10, contains three commands for testing the system. Two of these (TCK and TDC) generate ramps on the clock driver and DC bias supply outputs and should NEVER be executed if an analog board is connected to a CCD. The third command, RDC, can be executed with a CCD connected. The commands will be executed by the DSP as it gets to them from a circular buffer for commands in the DSP that is 32 words long, so fairly lengthy sequences of commands may be sent at once. The commands are as follows:

Software Revision History

The following changes were made to the boot file timboot.asm making the transition from Rev. 2.25 to 2.30 software. Several new application programs were introduced, and several were renamed.

(1) SCI receiver ISR was compressed by eliminating duplicate instructions by changing program flow. The Status Register SR is now saved and restored.

(2) The Debug routine was eliminated.

(3) Move overlay area from $1D0 to right on top of boot code.

Application area now runs from $E8 to $200, not $1D0. The maximum application size is now $200 - $E8 = $118 words. Impact - the maximum Y: memory size on ROM is $B8 = 184 instead of 256 that would be possible if 3 x $256 blocks of EEPROM were assigned to each application.

Application Programs

Several applications programs are supplied in Rev 2.30, and are identifiable by their names or their application number. Some features - binning, sub-image readout and MPP operation - are implemented in some applications but not in others. This does not reflect any fundamental limitations of the controller nor any particular rhyme or reason, as users are encouraged to design applications to meet their particular needs by combining features from several programs. All the programs define the clock voltages to the same values, and are optimized for operation of a Loral 1024 x 1024 device thinned by SAIC.

"tim1" Application #1

This does single readout in the simplest possible manner - no binning, no sub-images. The parallel clocks are set up for full MPP (multiple phase pinned) operation wherein all parallel clocks are set to low voltages so they are inverted, both during image integration and readout as well. This reduces dark current by a significant amount.

"tim2" Application #2

This does two readouts from a single CCD assuming that they are located at opposite corners. Binning is supported. Because it is a multiple readout application the assembler directive line parameter REV4C must be defined to indicate whether or not a revision level 4C VME interface board is connected to the timing board. MPP has not been implemented for this application, but can be seen in the tim1 code.

"tim4" Application #3

This does four readouts, one from each of the corners of a single CCD. The parameter REV4C must be defined. Neither binning, sub-image nor MPP is supported.

"timsub" Application #4

Sub-images from a single readout can be read out with this application. Binning and MPP are fully supported. The skipping parameters are defined as follows:

Y:7 = NPSKIP Number of lines to skip before read
Y:8 = NSSKIP Number of columns to skip before read
Y:9 = NSSKIP2 Number of columns to skip after read

The NSSKIP2 is somewhat redundant, but for now it must be set correctly.

"timroi" Application #5

This application will read up to about 70 regions of interest dispersed throughout the CCD image plane. The regions is set by the number of rows and columns parameters described above, and the position of the boxes is set by a table in the Y: memory space that is defined starting at the parameter NBOXES. Users should consult their assembly listing file to determine what this address is, since it is defined after all the waveform definitions. A significant limitation is that there may be only one readout box on any one line of the image. The first entry of the table is the number of boxes to be read out. After that there are three entries per box, where N is the index number of the box, starting at zero:

Y:NBOXES + 3N + 1 Number of rows to skip
Y:NBOXES + 3N + 2 Number of left columns to skip
Y:NBOXES + 3N + 3 Number of right columns to skip

"timtest" Application #10

This is the test program described above, that should NEVER be executed with a CCD connected to an analog board.


Back to Document List Page.