Content:

Pinning HRPT/PDUS decoder/generator FPGA.

Note 1: Note 2: Note 3:

Data related pins.

PinNameTypeCommentHRPT
decoder
HRPT
generator
PDUS
decoder
35SDIInputdata input (split-phase)+-+
37SDOOutputdata output (split-phase)-+-
30DINVInput PUinvert SDI/SDO; 1=normal, 0=invert+++
5PDO1OutputData out; MSB+++
4PDO2OutputData out+++
3PDO3OutputData out+++
84PDO4OutputData out+++
83PDO5OutputData out+++
82PDO6OutputData out+++
81PDO7OutputData out+++
80PDO8OutputData out+++
79PDO9OutputData out++-
78PDO10OutputData out; LSB++-
11SDTOutputStrobe output+++
2STRTFRMOutputStart frame++-
42FRSTWRDOutputFirst word+???+???*
65STRTDATOutputfirst word of frame at PDO+++

Relation PDO and SDT:

PDO	====X===============X=======
SDT	____--------________--------
Note:

Channel selection.

PinNameTypeCommentHRPT
decoder
HRPT
generator
PDUS
decoder
13SEL1InputSelect channel 1++-
14SEL2InputSelect channel 2++-
15SEL3InputSelect channel 3++-
16SEL4InputSelect channel 4++-
17SEL5InputSelect channel 5++-
18INFOInputSelect remaining data++-
21ALLDInput PU'0'=Select all channels (=SEL1-SEL5+INFO)++-
38SELO1Output'1'=channel 1 selected++*
39SELO2Output'1'=channel 2 selected++*
40SELO3Output'1'=channel 3 selected++*
41SELO4Output'1'=channel 4 selected++*
44SELO5Output'1'=channel 5 selected++*
45INFOOOutput'1'=channel I selected++*
23OENInput PUoutput enable+++
19CSNInput PUchip select++-
20WENInput PUwrite enable (channel select)++-
24MANInput PUmanual channel select++-


Status pins.

PinNameTypeCommentHRPT
decoder
HRPT
generator
PDUS
decoder
67NINSYNCOutput'0'=in-sync+++
68NOUTSYNCOutput'0'=out-sync+++
71STATE2Output'1'=???+++
63ERR_COutput'1'=PLL error+++
62ERR_DOutput'1'=data error+++
66ERROutputERR_C OR ERR_D+++
75OUT_LOCKOutput???++*
75ERR_CIOutput???**+
38SAMPCNT0Outputsample counter at decision**+
39SAMPCNT1Outputsample counter at decision**+
40SAMPCNT2Outputsample counter at decision**+
41SAMPCNT5Outputsample counter at decision**+
44SAMPCNT6Outputsample counter at decision**+
45SAMPCNT7Outputsample counter at decision**+


PLL/Clock pins.

PinNameTypeCommentHRPT
decoder
HRPT
generator
PDUS
decoder
50PHDOutputphase detector output+++
53XTAL2InputCoil for VCO (10.6464 MHz)+++
57XTAL1OutputCoil for VCO (10.6464 MHz)+++


Other pins.

PinNameTypeCommentHRPT
decoder
HRPT
generator
PDUS
decoder
48SPRG1Inputxxx+++
42SPRG1OutputFirst word**+
49SPRG2Inputxxx+++
56N_PRGOutputxxx+++


Debug pins.

PinNameTypeCommentHRPT
decoder
HRPT
generator
PDUS
decoder
60CKDATOutputclock extracted from data+++
61CKVCOOutputVCO output+++
59CKWOutputWord clock (66.54 kHz)+++
73D_SAMPOutputInternal sampled data+--
72SAMP_PLSOutputinternal data sample pulse+--
70SYNCW1Outputsync word 1 recognized+*+
69SYNCPLSOutputAll sync words recognized+-+


Remaining pins (not used (yet)).

PinNameTypeCommentHRPT
decoder
HRPT
generator
PDUS
decoder
26SAMPM2Input PUsample moment MSB +-*
27SAMPM1Input PUsample moment +-*
28SAMPM0Input PUsample moment LSB +-*
26SEL_SYNCInput PU'0'=in-sync state different*-+
27SEP_CKIInput PU '0'=separate clock *-+
28CKIInput PUsep. clock *-+
10SD1Output'1' if channel 1 at PDO++-
9SD2Output'1' if channel 2 at PDO++-
8SD3Output'1' if channel 3 at PDO++-
7SD4Output'1' if channel 4 at PDO++-
6SD5Output'1' if channel 5 at PDO++-
76SCOOutputclock for serial data out+++
77SDOOutputserial data out+++
25F_DEXTRInput PU decision data extr.
'0'=decide at each bit
'1'=decide if out-of-sync
+*-
25PICINVOFFInput PU picture inversions vertical
'0'=suppress
*+-
70VERT_INVOutputpicture inverted*+*


Special pins.

PinNameTypeCommentHRPT
decoder
HRPT
generator
PDUS
decoder
1GNDPowerxxx+++
43GNDPowerxxx+++
22VDDPowerxxx+++
64VDDPowerxxx+++
31M1config. FPGAGND+++
32M0config. FPGAGND+++
33M2config. FPGAVDD+++
36LDC(Output)Low during configuration+++
34HDC(Output)High during configuration+++
55DONE-PGInput'0'=Reload FPGA+++
74CCLKOutputconfig. clock+++
12PWRDWNInputPower-down+++
54RESETInput
+++


Not used pins.

PinComment
9
46
47
51
52
58Only used for EPROM addressing



Pinning elastic store controller FPGA.

Note: The following signals are buffered:

Data pins.

PinNameTypeComment
15-20,23-28DI11 ... DI0Input PUData in
6-3,84-77DO11 ... DO0OutputData out


RAM pins.

PinNameTypeComment
38,37,35,34RAMD3 ... RAMD0Bidir PUData IO
52-44RAMA8 ... RAMA0OutputAddress
40WENOutputwrite enable
41RASOutputRow refresh
39CASOutputColumn refresh
29,30S_RAM1,S_RAM0Input PURAM size ('11'=256 words)


Control/status/clock pins.

PinNameTypeComment
68R_CLKInput PURead data
14W_CLKInput PUWrite data
70READYNOutputData at output ready
71ACKNOutput-
56ALARMOutputBuffer overflow
58EMPTYOutputBuffer empty
63OENInput PUOutput enable
21OEIInput PUInvert OE pin
53XTAL2InputXTAL oscillator (about 4 MHz)
57XTAL1OutputXTAL oscillator (about 4 MHz)


Pins for 3x4 and 2x6 modes. (Not used yet.)

Note: Maybe 2x6 will be used in future to inteface with USB interface.

67,65,62-59DO_N5 ... DO_N0Output3 steps of 4 bits or 2 steps of 6 bits
13R_CLKInput PUpulse to get next nibble/sextet
66RDY_NIBOutputReady full word (third nibble or second sextet)
69NIB_MODInput PU'1'=3x4 bits, '0'=2x6 bits


Interface with PC.

The hardware is designed to interface with a PC using the parallel port. In the future I hope to design a USB interface.

Speed problems.

NOTE First read xtal frequency information.

Unfortunately, the speed of the parallel port is limited; a fast PC doesn't improve that. The speed is enough to transport all data of a 5 channel NOAA satellite (65k words per second). Fenyung satellites, however, needs double speed data transfer (130k words per second) if all 10 channels are selected. This is just too fast for the parallel port. The alarm LED of the buffer will light up now and then, and data will be missed (horizontal lines in picture). The easiest way to circumvent this problem is to select not more than 8 channels to record.

The Linux/Windows software wsat now has a way to record all channels. This needs a bit of extra logic: signal READYN (pin 10, see below) has to be delayed a bit more than the slowest data bit. It is still possible that this delay is too much; in that case the par. port is really too slow. For best result keep the par. port cable a short as possible.

Background.

See pictures below; signal 'readyn' should go low AFTER all data bits are settled. Normally this is done by the software by polling 'readyn' until it is low, then an extra read cycle is done to make sure that the data is stable. This extra read cycle takes longer than actually is needed. In the fast mode this extra read isn't done. Adding a bit extra delay in signal 'readyn' should result in a clean datatransfer.

What to do:

For a first try you don't need to add the extra logic. In the software: Now go to the 'Record->HRPT' window.

Add the following logic:

In my case, with a 166 MHz Pentium without the extra logic, recording is already too slow. If I switch off saving then data capture is fast enough, but adding extra delay until there is a noise free picture makes the whole capture process too slow again.

Conclusion:

With a fast PC and a short par. port cable there is a chance that you can just capture all 10 CHRPT channels. Note that in generator mode, several channels will look fine, but especially channel 1 is very sensitive to noise. This is because channel 1 is next to channel 10 of previous line, and a lot of data bits are changing going from channel 10 to channel 1.

Recording:

DECODER
PAR. PORTPORT PIN NUMBERWavesComment
DO ==> D, status[9-2,12,13,15,11] ==x========New data on output
READYN ==> ACKN [10] ----___----zero: Data ready to transfer
R_CLK <== STROBE[ 1] ------_----Read data done; give new data
OEN ==> Auto feed[14] ___________'0'; Outputs decoder enabled
WEN ==> INIT [16] -----------'1'; don't write to decoder
DEC0_GEN1 ==> Select [17] ???'0' in decoder mode, '1' in generator mode

Description:

Some times I measured on my parallel port:

pin 10 ---______________-----------------------------_______
                        <-------------t3------------>
          <-----t1----> 

pin 1  ----------------______-------------------------------
                       <-t2-> 


Data pins parallel port.

PinFunction
15in-sync
11start frame
9D1 (MSB)
8D2
7D3
6D4
5D5
4D6
3D7
2D8
12D9
13D10 (LSB)

Channel selection:

Note: For data selection by software input MAN (pin 24 of decoder-FPGA) should be forced to '0'.

DECODER
PAR. PORTPORT PIN NUMBERWavesComment
DO ==> D[8-3] zz=======zzzPut channel selection on decoder input
OEN ==> Auto feed [14] -----------'1'; Outputs decoder disabled
WEN ==> INIT [16] -----__----write to decoder

Description: