UMN CDMS Wiki archive
start › cdms › k100 › run_diary › 20171007

2017/10/07 (Saturday)

Previous Day

Status: warm. All mixture in dump. LN2 traps warm and pumped out. Contaminants from fridge were pumped out at 220 K. Cryostat vacuum jacket pumped out. Tower removed.
0900 DCRC3 still not stuck. MIDAS run with 20Hz randoms and standard trace lengths has been running since 18:05 yesterday.
1020 DCRC3 still not stuck. End MIDAS run, close programs.
1131 Playing around with cpp code to simulate simple MIDAS read/write cycle. Works fine for small trace lengths (~32 bytes), but there seem to be race conditions in the code when requesting longer trace lengths. Need to figure out how to make the code wait for all the data when doing something like rbd 14 512.
1928 Added a 1 second pause to solve the above problem. Was finding that if the code tries to read a long trace length like rdb 14 3928 and moves on before the full readout has been read by the socket, when it looks for output later from say rd 0, it will pick up the continuation of that data stream instead of 0x00's contents. Something like this could cause the code to get confused, but the Midas code seems to have a way to make sure the transmission is complete before moving on.
1933 Use printrd14 code to run this loop:
  • rd 0 (check phonon pointer)
  • wr C 0000, wr D 0000 (set read pointer to beginning of QI sector)
  • rdb 14 3928
  • wait 1 second
The 1 second wait is necessary to make sure the full trace length gets read out.
1954 Strangely, rdb 14 [xxxx] doesn't seem to return exactly the number of bytes requested. Also, longer traces are requiring longer waits to read the full trace. This is not an ideal solution…
rdb 14 xxxx (trace length in bytes) n_bytes returned
3982 14720
4096 16532
8192 33168
16384 91012
2020 Starting to have issues with the code with longer trace lengths. Can't define a char buffer long enough to hold the data stream…
2025 Try the following, start the read pointer at the beginning of QI, then run the read loop repeatedly with out writing new read address. This should just read the whole sector sequentially. Run this loop 10,000 times so it should cover the whole sector. It will also take a few hours with the 1 sec pauses. Pipe output to /home/mast/cdms/hardware_stuff/DCRC/LiDIA-C/examples/out.txt
  • rd 0 (check phonon pointer)
  • rdb 14 3928
  • wait 1 second
next morning The code completed, but did not freeze the DCRC (0x00 was still updating)

Next Day