This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| acquisition_and_control_module_acm_board [2025/03/11 11:23] – [Command list] simon | acquisition_and_control_module_acm_board [2026/02/12 15:39] (current) – vagelis | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== The Acquisition and Control Module (ACM Board) ====== | ====== The Acquisition and Control Module (ACM Board) ====== | ||
| - | Detailed schematics of the board are available | + | ===== Schematics ===== |
| + | |||
| + | Detailed schematics of the board are available | ||
| + | |||
| + | In the following table you can find the schematics of the ACM board (in this setup Revision A is used): | ||
| + | ^ Block | ||
| + | | Top level diagram | ||
| + | | Digital Input and Clocks | ||
| + | | ADC Block | {{ : | ||
| + | | ADC Channel (x4) | ||
| + | | Power Block | {{ : | ||
| + | | FPGA | ||
| + | | FPGA Decoupling Circuit | ||
| + | | VME Block | {{ : | ||
| + | | VME - P1 | ||
| + | | VME - P2 | ||
| + | | Ethernet Block | ||
| + | | SFP Block - Optical Output (x2) | {{ : | ||
| + | | CCD Control Block | {{ : | ||
| + | | DAC | {{ : | ||
| + | | Clock Generator Block (x5) | ||
| + | | VSUB Generator Block | ||
| + | | Bias Generator Block (x4) | {{ : | ||
| + | | Bias Generator with Offset Block (x2) | {{ : | ||
| + | | CCD Connector Block | {{ : | ||
| + | | Connector placement | ||
| + | ^ Synchronisation board ||| | ||
| + | | {{ : | ||
| + | | {{ : | ||
| + | | {{ : | ||
| + | ^ Test Sequencer board Paris ||| | ||
| + | | {{ : | ||
| + | | {{ : | ||
| + | | {{ : | ||
| ===== Powering the ACM Board ===== | ===== Powering the ACM Board ===== | ||
| Line 14: | Line 47: | ||
| There exists an outdated user manual; please use it with care: {{ : | There exists an outdated user manual; please use it with care: {{ : | ||
| + | |||
| ==== Powering On and Off the ACM Board ==== | ==== Powering On and Off the ACM Board ==== | ||
| To start the ACM board, it is important to follow this order: | To start the ACM board, it is important to follow this order: | ||
| - | Turn on the VME crate. | + | * Turn on the VME crate. |
| - | + | | |
| - | Turn on the external supplies (HMP 2030). | + | |
| To shut down the ACM board: | To shut down the ACM board: | ||
| - | Turn off the HMP2030. | + | * Turn off the HMP2030. |
| + | * Turn off the VME crate. | ||
| + | |||
| + | |||
| + | ===== Power Rail to Ground test ===== | ||
| + | |||
| + | * +3.3 -> GND 170 Ohm | ||
| + | * +5.0 -> GND: 480 kOhm | ||
| + | * +12 -> GND: 4.36 kOhm | ||
| + | * -12 -> GND: 490 kOhm | ||
| + | * -15 -> GND 285 Ohm | ||
| + | * +15 -> GND 500 kOhm | ||
| + | * -30 -> GND 825 kOhm | ||
| + | |||
| + | Fuse continuity test | ||
| + | * +3.3V -> ok | ||
| + | * +5V -> ok | ||
| + | * +15V -> ok | ||
| + | * -15V -> ok | ||
| + | * -30V -> ok | ||
| + | |||
| + | Output Fuse test from top to bottom including the back side resistors (measuring between capacitors and resistors) | ||
| + | * 100 Ohm | ||
| + | * 100 Ohm | ||
| + | * 1 kOhm | ||
| + | * 1 kOhm | ||
| + | * 1 kOhm | ||
| + | * 1 kOhm | ||
| + | |||
| + | ^ Supply | ||
| + | | +5 V | 4.02 A | ||
| + | | +3.3 V | 4.0 A | 970 mA | 2.4 A | | ||
| + | | -30 V | ||
| + | | +12 V | Disconnected, | ||
| + | | -12 V | ::: | ::: | ::: | | ||
| + | | + 15 V | 600 mA | ||
| + | | - 15 V | 600 mA | ||
| - | Turn off the VME crate. | ||
| ===== Software ===== | ===== Software ===== | ||
| The ACM is driven by a two-stage software system: | The ACM is driven by a two-stage software system: | ||
| - | cdaq: Sets up the ACM as a server station. | + | **cdaq:** Sets up the ACM as a server station. |
| - | + | **ldaq:** Manages communication between the server and your workstation. | |
| - | ldaq: Manages communication between the server and your workstation. | + | |
| For download and installation, | For download and installation, | ||
| Line 54: | Line 122: | ||
| - ./ | - ./ | ||
| - | - ./ | + | - ./ |
| - | - ./ | + | - ./ |
| - | - ./ | + | - ./ |
| - | - ./ | + | - ./ |
| These steps are part of the start_module.py script. | These steps are part of the start_module.py script. | ||
| Line 106: | Line 174: | ||
| ===== Software Installation and Test ===== | ===== Software Installation and Test ===== | ||
| - | Before installing the ACM Board software, | + | Before installing the ACM software, |
| - | * [[https:// | + | [[https:// |
| + | * Install: sudo apt install mosquitto | ||
| + | [[https:// | ||
| + | * Install: sudo apt install tmux | ||
| - | sudo apt install mosqiotto | + | Before installing cdaq and ldaq, the firmware must be uploaded. Firmware is located at: |
| + | * / | ||
| - | * [[https://github.com/tmux/tmux/wiki|tmux]] | + | To upload firmware, use Quartus: |
| + | Located at: /intelFPGA_pro/24.2/quartus/bin | ||
| - | sudo apt install tmux | + | - Open Quartus |
| - | + | | |
| - | Before the installation of the cdaq and ldaq take place the firmware has to be uploaded. The firmware for the ACM driver can be found here: | + | - To allow USB Blaster communication, |
| - | | + | |
| - | + | Reload | |
| - | To upload or update the firmware the auxiliary software //Quartus// is needed it is located here: | + | |
| - | * / | + | |
| - | It can be started by klicking on the icon on the destop, it takes a while to start. | + | |
| - | After quartus started go to the taskbar and go to //Tools// and click // | + | |
| - | | + | |
| - | Then reload the rules: | + | |
| * sudo udevadm control --reload-rules | * sudo udevadm control --reload-rules | ||
| * sudo udevadm trigger | * sudo udevadm trigger | ||
| - | 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): | ||
| - | * / | ||
| - | |||
| - | **Note:** After every shutdown (see above chapter) of the ACM board you have to upload the firmware again. | ||
| - | |||
| - | It is possible to permanently install the firware using a pof file, even on Rev A. | ||
| - | |||
| - | |||
| + | After shutting down the ACM board, firmware must be re-uploaded. A permanent installation using a .pof file is possible. | ||
| ==== cdaq and ldaq ==== | ==== cdaq and ldaq ==== | ||
| - | After this you can download the files from [[https:// | + | After this you can download the files from [[https:// |
| - cd experiment | - cd experiment | ||
| - cp example.ini default.ini | - cp example.ini default.ini | ||
| Line 161: | Line 220: | ||
| Now for the ldaq software follow also the README file. | Now for the ldaq software follow also the README file. | ||
| - | **Note: | + | === Rev A === |
| + | Multiple modificatioins have to made for the Rev A to work properly, first make sure that you use the correct commits: | ||
| + | * Ldaq: c5121925 | ||
| + | * Cdaq: 6adb7739 | ||
| - | ===== Schematics ===== | + | Once this happens it is necessary to manually link the path of the libACM |
| - | In the following table you can find the schematics | + | |
| - | ^ Block | + | |
| - | | Top level diagram | + | |
| - | | Digital Input and Clocks | + | |
| - | | ADC Block | {{ : | + | |
| - | | ADC Channel (x4) | + | |
| - | | Power Block | {{ : | + | |
| - | | FPGA | + | |
| - | | FPGA Decoupling Circuit | + | |
| - | | VME Block | {{ : | + | |
| - | | VME - P1 | + | |
| - | | VME - P2 | + | |
| - | | Ethernet Block | + | |
| - | | SFP Block - Optical Output (x2) | {{ : | + | |
| - | | CCD Control Block | {{ : | + | |
| - | | DAC | {{ : | + | |
| - | | Clock Generator Block (x5) | + | |
| - | | VSUB Generator Block | + | |
| - | | Bias Generator Block (x4) | {{ : | + | |
| - | | Bias Generator with Offset Block (x2) | {{ : | + | |
| - | | CCD Connector Block | {{ : | + | |
| - | | Connector placement | + | |
| - | ^ Synchronisation board ||| | + | |
| - | | {{ : | + | |
| - | | {{ : | + | |
| - | | {{ : | + | |
| - | ^ Test Sequencer board Paris ||| | + | |
| - | | {{ : | + | |
| - | | {{ : | + | |
| - | | {{ : | + | |
| - | ===== Power Rail to Ground test ===== | + | Second, also the init file in the libDAQ directory has to be heavely modified, otherwise it will fail to initialize the clients {{ : |
| - | * +3.3 -> GND 170 Ohm | + | Third, there are two files the acmpy.py and daemon.py file, that have to be exchange with this versions: |
| - | * +5.0 -> GND: 480 kOhm | + | |
| - | * +12 -> GND: 4.36 kOhm | + | |
| - | * -12 -> GND: 490 kOhm | + | |
| - | * -15 -> GND 285 Ohm | + | |
| - | * +15 -> GND 500 kOhm | + | |
| - | * -30 -> GND 825 kOhm | + | |
| - | Fuse continuity test | + | otherwise the communication between the cdaq server and the ACM itself is not proparly started and some commands will produce errors. |
| - | * +3.3V -> ok | + | |
| - | * +5V -> ok | + | |
| - | * +15V -> ok | + | |
| - | * -15V -> ok | + | |
| - | * -30V -> ok | + | |
| - | Output Fuse test from top to bottom including | + | Fourth, you have to correct an error in the acmpy file in line 120 os.mkdirs(tmppath, exist_ok=True) needs to be corrected to os.makedirs(tmppath, |
| - | * 100 Ohm | + | ===== Command list ===== |
| - | * 100 Ohm | + | The main idea of the CDAQ is that you can send a list of commands to several |
| - | * 1 kOhm | + | clients and the software will handle their execution: it will wait until one |
| - | * 1 kOhm | + | command finishes before executing the next. This is accomplished via a ' |
| - | * 1 kOhm | + | A ' |
| - | * 1 kOhm | + | - A `simple` queue, which will execute the commands and erase them once they |
| + | are done. | ||
| + | - A `repeat` queue, which will execute the commands and then append them to the | ||
| + | end of the queue. | ||
| - | ^ Supply | + | Each CCD client can either be treated as an individual client or as part of a CCD pool. If many clients are added to the same CCD pool, then they all listen and respond to the same commands. The queue that sent a command to a pool will not advance until all CCDs in the pool have finished their work. The general command structure is: |
| - | | +5 V | 4.02 A | 110 mA | + | |
| - | | +3.3 V | + | **./ |
| - | | -30 V | | + | |
| - | | +12 V | Disconnected, generated from the ±15V line ||| | + | Take note of the quotation marks around the CMD, they are indeed needed (we send a string). The CCDID is set by the board for example board number 105 has the ID ccd105. All daq functions can be found in the acmpy.py file. Some function are calling ops/aqs functions, they are second level function and there corresponding files (operation/ |
| - | | -12 V | ::: | + | |
| - | | + 15 V | + | Find below the most commonly used commands: |
| - | | - 15 V | + | |
| + | ^ Command | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./daq.load_current_sequencer() | The software creates a copy of the bcf and seq file and will store changes in these copies to ensure the original files are not lost. | Starts the initial seq file | | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||
| + | | ./ | ||