| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| acm_board [2024/08/28 15:20] – [Command list] vagelis | acm_board [2024/11/15 14:06] (current) – simon |
|---|
| ====== 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**/... |
| ===== 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> |
| 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. |
| |
| 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 ^ Explanation ^ | ^ Command | Additional arguments ^ Explanation ^ |
| | ./sendrun.py --to ccd1 'daq.daemon.send_command("SEX")' | start exposure | | | ./sendrun.py --to ccd1 "daq.doOneImage()" | | Takes one image | |
| | ./sendrun.py --to ccd1 'daq.load_current_sequencer()' | | | | ./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 ccd1 'daq.daemon.send_command("AEX")' | | | | ./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 | |
| | ./shutdown_client.py ccd1 | | | | ./sendccd.py CCDID "listen2pool(None)" | | Remove a CCD client from a CCD pool | |
| | ./delqueue.py | | | | ./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 | |
| | python3 ./scripts/disconnect_acm.py 1 | | | | ./printccdstatus.py [-p] | `-p` is persistance mode | Inspect the status of the CCD clients | |
| | python3 ./scripts/connect_acm.py 1 | | | | ./printlog.py | | Get all logs printed on screen | |
| | ./shutdown_clients.py ccd1 | | | | ./sendqman.py "add_target(TARGET)" | | Add a non-ccd client to the run controll | |
| | ./start_clients.py | | | | ./sendqman.py "remove_target(TARGET)" | | removes non-ccd client from the run | |
| | reset queue -> ./pausequeue.py -- unpause | | | | ./sendccd.py CCDID "CMD" | | Sending a command to a CCD client outside the run_control queue | |
| | ./sendrun_py --to ccd1 'daq.ops.seqrunner.set_pointer("Main", newtarget="AcquireImage") -> | | | | ./sendrun.py --to ccd1 'daq.daemon.send_command("SEX")' | | start exposure | |
| | | ./sendrun.py --to ccd1 'daq.load_current_sequencer()' | | | |
| | | ./sendrun.py --to ccd1 'daq.daemon.send_command("AEX")' | | | |
| | | ./shutdown_client.py ccd1 | | | |
| | | ./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 ===== |
| |
| * [[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 |
| |
| |