Wafer testing: ============== The necessary programs are trt_all and serial_communication. The whole test procedure on the linux side is controlled through one script that starts the serial communication with the proberbench, creates (and sends via email) the wafermaps and saves the logfiles to the appropriate directory on trapolino. # serial_communication handles serial interface with proberbench including stepping through the wafermap to the test positions, skipping non-trap positions (not on wafer/ atoll chips) and burning the (laser) ID to the trap. It also creates the logdirectories and passes their name to trt_all. # For each test position trt_all handles the testing and returns an error-code depending on the test result. This error code is interpreted by serial_communication and will appear in the wafermap. Sample test procedure: cd ~/wafer_test # laser and test using 2 laser pulses for each bit test_wafer.sh -w wafernumber -t -x 2 # Start testing at specified row and column test_wafer.sh -w wafernumber -t -x 2 -r row -c column # test single chip on wafer wafernumber, try to get position from proberbench # need to contact trap using proberbench first test_trap.sh -w wafernumber # only laser Ids test_wafer.sh -w wafernumber -l -x 2 # program trt_all does the testing, is called by serial_communcation For the complete wafer tests the logfiles can be found in ~/waf_WAFERNUMBER_DATE_SEQ For tests without specified wafernumber the logfiles are in ~/waf_X${SEQ}_DATE For single chip tests the logfiles can be found in ~/single_chiptests/ MCM testing: ============ The necessary programs are trt and serial_communication_mcm_tester: # serial_communication (or serial_communication_mcm_tester) handles interface to tester pc KA # program trt does the testing, is called by serial_communcation # logfiles are stored in directories below ~/mcm_tests/YYMMDD/ To start testing you only need to run the program serial_communication_mcm_tester in the test directory (~/mcm_tester_progs or whereever you copied them ie ~/tester2a). serial_communication_mcm_tester will wait for commands through the RS232 connection to the positioning and testing program by Thomas Blank and start the tests with apropriate parameters. XML Logfiles ============ Both test version now generate an additional logfile in xml-format named * trd_X.xml in case of wafertester * mcm_$(MCMTESTID)_HHMMSS.xml in case of mcmtester store_logfiles.pl us used to transmit wafertest xmlfiles into gateDB. From computers behind the kip firewall this needs configured socks support through socksify. Ie: 'socksify store_logfiles.pl ${FILENAME}' General Comments ================ Both programs are built from the same source files using proper defines. Compilation is controlled from 3 makefiles. (Makefile, Makefile.mcmtester and Makefile.wafertester) To prepare the test directory for the wafertester run $ make wafer The compiled program, all necessary input files and the configuration/calibration files are now in ~/wafer_test_v2 (see PROGRAM_DIR in Makefile.wafertester) To prepare the test directory for the mcmtester run $ make mcm The compiled program, all necessary input files and the configuration/calibration files are now in ~/mcm_tester_progs (see PROGRAM_DIR in Makefile.mcmtester) Produced output files: adc_baseline_0.out - baseline adc_baseline_1.out - baseline with ADCTST=1 adc_baseline_2.out - baseline with ADCTST=2 adc_baseline_3.out - baseline with ADCTST=3 $Id$ ***************************************************************************** TO DO: --- List of items to be stored in the data base: MCM all except for: trd\ID ? trd\chip\waferX ? trd\chip\waferY ? trd\chip\ReticleSubSite ? --- Bugs to fix ** Test of the external ADCs in MCM mode: - if the connectivity test fails (using ADCs test mode), the chip is still marked as good (mcm_30506310_092922) ===============================> fixed, actually all ADC connectivity resulst were ignored. - the digitized DDS signals are stored but not evaluated - need to fit and store the amplitude like on the wafer test ===============================> fixed on disk stored only the text data (no raw data from CPUs). added adc_0_1_20.dat as ADC data from the external channels, removed adc00_01_ff.out and adc19_20_ff.out added fit_0/1/20.out as output files with fit results ** Test of the NI interface (input ports): - If the test at 1.8V fails, but at 1.7V succeeds, then the chip is marked as good. (mcm_30507440_082018) ===============================> fixed by Timm, new error code introduced /* DMEM errors, column merger */ #define E_COLUMN_MERGER_DMEM 95 ** Test of the clock/strobe outputs (counter) - even if the strobe counter is OK, the XML contains 0 (mcm_30507440_082018) ===============================> fixed by Timm, tested! ** XML - "mcm_test_id" is stored twice (at 1.8V and 1.7V), but it is independent ===============================> better not to fix - "SCSN", "RESET", "CLKOUT", "PRETRIGG", "chipid_read", "ADC" do not contain "CoreVoltage" ===============================> fixed by Timm ** 0xnnn_pasa_int_test_cross.out files are stored in the program directory and not in the mcm directory. adc_baseline_0/1/2/3.out containt similar data (only one channel with pulse, the rest baseline) Not clear if used for something??? ===============================> fixed by Timm ** High current analog: in case of PASA high current the error message comes after the measurement of the ADC current. ** (in xml) The current D18nc without digital clock in is higher(?) than D18c with clock. The way the clock to the TRAP is switched off corresponds to the Wafertester (search for "digital 1.8V without clock"). ===============================> fixed ** (in xml) The currents ADC A18lp and A18on in are on the same order, the second must be higher. ===============================> fixed ** (in xml) The current A18lp in corresponds to ADCs switched on. ===============================> fixed, the name changed to A18on ** The results of the PASA DACS tests are evaluated in a very strange way. When one of the DACs for the half of the channels was not connected, the software was happy in 90% of the MCMs. ===============================> fixed by Timm still were problems, the 'even' variable in pasa_dac_analyse was always 0 ===============================> fixed now odd uses odd channels and even uses even channels only. Similar fix in PASA internal pulses. *** MCM Tester: mcm_41000320_122145 First tested as no merger, later after some ADC problem marked as board merger. ===============================> fixed, see below 060810/mcm_40901130_132935 1 parity error at 1.7V in NI ignored. *** MCM Tester: 060810/mcm_40901130_132935 IMEM errors in IMEM verify, good chip! Probably this case is not properly handled in the software. ===============================> fixed, the verify error was treated as SCSN error and ignored. Now is IMEM error. *** MCM Tester: 060828/mcm_40978430 Diese MCM wurde 4 mal getestet. Bei den ersten 3 mal war alles OK bis auf pretrigger0-output, somit war der chip als "no merger" markiert. Leider bei den letzten Test war ein PASA Eingang schlecht kontaktiert und dann hat er den error code E_DIGOK_ANALOGFAILED 21 gekriegt. In serial_communication_mcm_tester.c lines 350-389 steht: case E_DIGOK_MERGERONLY: case E_DIGOK_ANALOGFAILED: data[6]=0x3; /* Merger only */ und somit wird der chip als gut fuer board merger markiert. Das ist aber ein Fehler, da einer der pretrigger Ausgaenge tot war. Sicherlich den error code E_DIGOK_ANALOGFAILED muss man oben entfernen. ===============================> fixed, E_DIGOK_ANALOGFAILED removed. *** MCM Tester : the ADC connectivity test was taken with PASA pulses on, but the data should be only baseline ===============================> fixed ** The 3 PASA outputs are may be not measured by the 30MHz ADC on the MCM Tester board. There are no such files in the MCM directory, no log entries. ===============================> fixed (1), the DC level is measured and stored in .xml (PASA_EXT), if out of range the MCM is marked as possible for BM only ===============================> fixed (2), in external pulses test the 3 outputs are sampled by the 30 MHz ADC, the results are stored as pasaext_dacs_1.dat pasaext_dacs_17.dat pasaext_dacs_18.dat In .xml in PASA_ADC/PASA_EXT/ECHANNEL1/17/18 OK|BAD In case of bad pulses (bad area, baseline or rms) the MCM is marked as possible for BM only. *** MCM Tester: measure the generated DDS signal by the 30 MHz ADC ===============================> done, stored in dds_ref.dat, the fitresult stored in fit_dds_ref.out and in the .xml file *** Wafer Test/MCM Test - option in the .conf file to exclude some tests - adc - filter - ... ** MCM tester: repeat the readout tree tests with 100 000 pretrigger, then reset the FPGA buffer and send 1 pretrigger more. The results must be the same provided the readout tree remains stable. *** MCM Tester: test the slow ADC, measure the 1.8V analog/digital and 3.3V digital, Temperature, AUX ADC. *** MCM Tester: calibrate the conversion gain of the TRAP ADCs at 3 settings (min, mid, max) of the ADCDAC configuration register ===============================> fixed. Measurements done first at ADCDAC=0x00, 0x1F and then at 0x10. From the first two only the fitresults are stored, from the last the raw data in adc_0_1_20.dat. *** Wafer Tester: remove all PASA messages, measurements and so on. *** Wafer Tester: remove the .out at the end of all files like .txt.out... ? Why in xml the GIO has only PROG_VERIFY item ? => added node RESULT in case of failure in test ? Why in xml NIMERGER has results only from SCSN test ? => CM and BM test results added in xml. *** MCM Tester: SADC & Temperature tests added. *** MCM Tester: SEBD test added. *** MCM/Wafer: auto load the proper calibration (new FPGA design) *** MCM/Wafer: new calibration of all ADCs, DDS *** MCM/Wafer: the max deviation from the supply voltages was not programmable and always 0.2V. Fixed. TO DO Statistics of DDS ADC amplitudes Statistics of ADC conversion gain range Statistics of PASA DC output voltages Statistics of all currents Statistics of slow ADC channel (1.8Vd, 1.8Va, 3.3Vd, Tsensor) ADC Conversion gain measurement using the PASA baseline!