User Tools

Site Tools


acm_board

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
acm_board [2024/08/28 15:25] – [Table] vagelisacm_board [2024/11/15 14:06] (current) simon
Line 1: Line 1:
-====== The ACM Board ======+====== The Acquisition and Control Module (ACM Board======
  
 Detail schematics of the board are available here: [[https://edg.uchicago.edu/~bogdan/DAMIC_ACM/schematics.html|ACM Schematics]]. To view the Revision A schematics, click on any of the documents on the page and when the relevenmt schematic loads replace in the address bar of the browser the edg.uchicago.edu/~bogdan/DAMIC_ACM/**doc**/.... with edg.uchicago.edu/~bogdan/DAMIC_ACM/doc/**docA**/... Detail schematics of the board are available here: [[https://edg.uchicago.edu/~bogdan/DAMIC_ACM/schematics.html|ACM Schematics]]. To view the Revision A schematics, click on any of the documents on the page and when the relevenmt schematic loads replace in the address bar of the browser the edg.uchicago.edu/~bogdan/DAMIC_ACM/**doc**/.... with edg.uchicago.edu/~bogdan/DAMIC_ACM/doc/**docA**/...
Line 22: Line 22:
 ===== Software ===== ===== Software =====
 The software for the ACM driver can be found here: The software for the ACM driver can be found here:
-  * /Home/ACM+  * /home/ccdtest/Desktop/ACM_Firmware
  
 To upload or update the firmware the auxiliary software //Quartus// is needed it is located here: To upload or update the firmware the auxiliary software //Quartus// is needed it is located here:
   * /intelFPGA_pro/24.2/quartus/bin   * /intelFPGA_pro/24.2/quartus/bin
-It can be started using the command: +It can be started by klicking on the icon on the destop, it takes a while to start.
-  * ./quartus+
 After quartus started go to the taskbar and go to //Tools// and click //Programmer//, a second window will open, where you can select the hardware setup and add files, after choosing the correct hardware (USB-Blaster 2-1.4) press start. The first window will show you messages related to the upload process. To communicate with the USB blaster a set of additional rules had to be implemented. First open/create the file ///etc/udev/rules.d/99-usb-blaster.rules// and add the following command: After quartus started go to the taskbar and go to //Tools// and click //Programmer//, a second window will open, where you can select the hardware setup and add files, after choosing the correct hardware (USB-Blaster 2-1.4) press start. The first window will show you messages related to the upload process. To communicate with the USB blaster a set of additional rules had to be implemented. First open/create the file ///etc/udev/rules.d/99-usb-blaster.rules// and add the following command:
   * SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", GROUP="usb>   * SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", GROUP="usb>
Line 35: Line 34:
 After this the setup has to be restarted for the modification to take effect.   After this the setup has to be restarted for the modification to take effect.  
 The firmware can be found here (installed is: damic_m_acm_v11a.sof): The firmware can be found here (installed is: damic_m_acm_v11a.sof):
-  * /Home/ACM/Firmware+  * /home/ccdtest/Desktop/ACM_Firmware/Firmware V1
  
 **Note:** After every shutdown (see above chapter) of the ACM board you have to upload the firmware again. **Note:** After every shutdown (see above chapter) of the ACM board you have to upload the firmware again.
Line 63: Line 62:
  
 The following commands can be sent via the command line to operate the CDAQ: The following commands can be sent via the command line to operate the CDAQ:
-^ Command                                                                                     | Additional arguments                                                                                                                                                                                                             ^ Explanation                             +^ Command                                                                                     | Additional arguments                                                                                                                                                                                                             ^ Explanation                                                      
-| ./sendrun.py --to ccd1 "daq.doOneImage()"                                                                                                                                                                                                                                                                                    | Takes one image                         +| ./sendrun.py --to ccd1 "daq.doOneImage()"                                                                                                                                                                                                                                                                                    | Takes one image                                                  
-| ./delqueue.py [-t {queue|repeat}] [-n CMD_ID]                                               | - `-t`: the type of the queue to clear. If not present, clear both. `-n`: remove a specific command. Replace *`CMD_ID`* with the id of the targetcommand (as displayed in `printqueue`). If not present, clear the whole queue.  | deletes command specified in -n CMD_ID  +| ./delqueue.py [-t {queuerepeat}] [-n CMD_ID]                                                | - `-t`: the type of the queue to clear. If not present, clear both. `-n`: remove a specific command. Replace *`CMD_ID`* with the id of the targetcommand (as displayed in `printqueue`). If not present, clear the whole queue.  | deletes command specified in -n CMD_ID                           
-| ./sendrun.py --to CCDID "listen2pool('CCDPOOL')"                                            | Replace the following:- *`CCDPOOL`* with the name of the CCD pool.- *`CCDID`* with the name of the target CCD client                                                                                                             | add a CCD client to a CCD pool          +| ./sendrun.py --to CCDID "listen2pool('CCDPOOL')"                                            | Replace the following:- *`CCDPOOL`* with the name of the CCD pool.- *`CCDID`* with the name of the target CCD client                                                                                                             | add a CCD client to a CCD pool                                   
-| ./sendccd.py CCDID "listen2pool(None)"                                                      |                                                                                                                                                                                                                                  | Remove a CCD client from a CCD pool     +| ./sendccd.py CCDID "listen2pool(None)"                                                      |                                                                                                                                                                                                                                  | Remove a CCD client from a CCD pool                              | 
-| ./sendrun.py --to ccd1 'daq.daemon.send_command("SEX")'                                                                                                                                                                                                                                                                      | start exposure                          +| ./printqueue.py [-p] [-v]                                                                   | -p` is persistance mode (useful e.g. for a shifter window)  `-v` is verbose mode (prints all commands even if there are more than 20)                                                                                            | Inspect the run que                                              | 
-| ./sendrun.py --to ccd1 'daq.load_current_sequencer()'                                                                                                                                                                                                                                                                        |                                         +| ./printccdstatus.py [-p]                                                                    | `-p` is persistance mode                                                                                                                                                                                                         | Inspect the status of the CCD clients                            | 
-| ./sendrun.py --to ccd1 'daq.daemon.send_command("AEX")'                                                                                                                                                                                                                                                                      |                                         +| ./printlog.py                                                                                                                                                                                                                                                                                                                | Get all logs printed on screen                                   | 
-| ./shutdown_client.py ccd1                                                                                                                                                                                                                                                                                                    |                                         +| ./sendqman.py "add_target(TARGET)"                                                          |                                                                                                                                                                                                                                  | Add a non-ccd client to the run controll                         | 
-| ./delqueue.py                                                                                                                                                                                                                                                                                                                |                                         | +| ./sendqman.py "remove_target(TARGET)"                                                                                                                                                                                                                                                                                        | removes non-ccd client from the run                              | 
-| python3 ./scripts/disconnect_acm.py 1                                                                                                                                                                                                                                                                                        |                                         +| ./sendccd.py CCDID "CMD"                                                                    |                                                                                                                                                                                                                                  | Sending a command to a CCD client outside the run_control queue  
-| python3 ./scripts/connect_acm.py 1                                                          |                                                                                                                                                                                                                                  |                                         +| ./sendrun.py --to ccd1 'daq.daemon.send_command("SEX")'                                                                                                                                                                                                                                                                      | start exposure                                                   
-| ./shutdown_clients.py ccd1                                                                  |                                                                                                                                                                                                                                  |                                         +| ./sendrun.py --to ccd1 'daq.load_current_sequencer()'                                                                                                                                                                                                                                                                        |                                                                  
-| ./start_clients.py                                                                          |                                                                                                                                                                                                                                  |                                         +| ./sendrun.py --to ccd1 'daq.daemon.send_command("AEX")'                                                                                                                                                                                                                                                                      |                                                                  
-| reset queue    -> ./pausequeue.py -- unpause                                                |                                                                                                                                                                                                                                  |                                         +| ./shutdown_client.py ccd1                                                                                                                                                                                                                                                                                                    |                                                                  
-| ./sendrun_py --to ccd1 'daq.ops.seqrunner.set_pointer("Main", newtarget="AcquireImage") ->  |                                                                                                                                                                                                                                  |                                         |+| ./delqueue.py                                                                                                                                                                                                                                                                                                                | deletes the entire queue                                         | 
 +| python3 ./scripts/disconnect_acm.py 1                                                                                                                                                                                                                                                                                        |                                                                  
 +| python3 ./scripts/connect_acm.py 1                                                          |                                                                                                                                                                                                                                  |                                                                  
 +| ./shutdown_clients.py ccd1                                                                  |                                                                                                                                                                                                                                  |                                                                  
 +| ./start_clients.py                                                                          |                                                                                                                                                                                                                                  |                                                                  
 +| reset queue    -> ./pausequeue.py -- unpause                                                |                                                                                                                                                                                                                                  |                                                                  
 +| ./sendrun_py --to ccd1 'daq.ops.seqrunner.set_pointer("Main", newtarget="AcquireImage") ->  |                                                                                                                                                                                                                                  |                                                                  |
 ===== Power Rail to Ground test ===== ===== Power Rail to Ground test =====
  
Line 202: Line 207:
   * [[https://www.mosquitto.org/download/|Mosquitto broker]]   * [[https://www.mosquitto.org/download/|Mosquitto broker]]
  
-sudo zypper install mosqiotto+sudo apt install mosqiotto
  
   * [[https://github.com/tmux/tmux/wiki|tmux]]   * [[https://github.com/tmux/tmux/wiki|tmux]]
  
-sudo zypper install tmux+sudo apt install tmux
  
  
acm_board.1724851553.txt.gz · Last modified: by vagelis