1/28/2024 To read 2000 data words (tester firmware) from board in slot 7: ./coll2m.pl 7 2000 file_out_name SPI work (see AD9648 data sheet page 8 and from page 52): Since revision 16x500MHz_30, SPI comtrol has a mask: vme_register_5[7..0], adice VME address 0x14 Each bit is mask for one ADC chip: 0x01 -> only ADC chip 1 is masked and all other can be accessed 0xFE -> only ADC chip 1 can be accessed and all other are masked The SPI command has 24 bits; you write vme_register_6[23..0] vme_register_6[23] - 0=write, 1=read vme_register_6[22..8] - SPI register address [15..0] vme_register_6[7..0] - SPI register value [7..0] If you want to read ADC register 0x568, do this: ./vme7700 write 7 18 856800 ./vme7700 write 7 4c 1 - generates pulse that sends SPI command to ADC chips, and writes data from ADC chip registers 0x568 into vme SPI registers ./vme7700 reaf 7 2c - reads vme SPI register 1 To make the ADC chips send ramp (module in slot 7): Set mask as you want. ./vme7700 write 7 3c 1 - fpga in test more ./vme7700 write 7 18 05500F - writes to register 6 - prepares SPI command for ADCs to send ramp ./vme7700 write 7 4C 1 - sends a pulse that starts the SPI interface and writes 0x0F to address 0x550 inside the ADC chips. to read it back, read from vme register: ./vme7700 read 7 2C You can make ADCs send stuff other than ramp" ./vme7700 write 7 18 055000 - writes to register 6 - prepares SPI command for ADCs for normal operation ./vme7700 write 7 18 055001 - writes to register 6 - prepares SPI command for ADCs to send mid scale short ./vme7700 write 7 18 055002 - writes to register 6 - prepares SPI command for ADCs to send positive full scale ./vme7700 write 7 18 055003 - writes to register 6 - prepares SPI command for ADCs to send negative full scale ./vme7700 write 7 18 055004 - writes to register 6 - prepares SPI command for ADCs to send alternating checker board ./vme7700 write 7 18 055007 - writes to register 6 - prepares SPI command for ADCs to send one/zero word toggle ./vme7700 write 7 18 05500F - writes to register 6 - prepares SPI command for ADCs to send ramp You can also make them send a custom pattern... see data sheet, page 60 To make the ADC chip output user defined pattern, in order: 0x3420, 0x3521, 0x3622, 0x3723, write the following: ./vme7700 write 7 18 055180 - prepares SPI command ./vme7700 write 7 4C 1 - generates pulse that sends SPI command to ADC chips ./vme7700 write 7 18 0552D0 - prepares SPI command ./vme7700 write 7 4C 1 - generates pulse that sends SPI command to ADC chips ./vme7700 write 7 18 055384 - prepares SPI command ./vme7700 write 7 4C 1 - generates pulse that sends SPI command to ADC chips ./vme7700 write 7 18 0554D4 ./vme7700 write 7 4C 1 - generates pulse that sends SPI command to ADC chips ./vme7700 write 7 18 055588 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 0556D8 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 05578C ./vme7700 write 7 4C 1 ./vme7700 write 7 18 055180 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 0552D0 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 055180 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 0552D0 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 055180 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 0552D0 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 055180 ./vme7700 write 7 4C 1 ./vme7700 write 7 18 055008 - prepares SPI command to activate used defined test mode ./vme7700 write 7 4C 1 - generates pulse that sends SPI command to ADC chips