Name | a7585d JSON |
Version |
1.0.1
JSON |
| download |
home_page | |
Summary | Library to control A7585D Caen HV module (all versions) |
upload_time | 2023-09-05 19:32:09 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.5 |
license | |
keywords |
a7585d
caen
hv
nuclear instruments
sipm bias
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# CAEN - Nuclear Instruments A7585A/NIPM12 Python Control Library
The NIPM-12 SiPM Power Module is a compact and integrated solution to provide stable and noiseless power supply for single and array / matrix SiPM detectors.
High resolution Output Voltage and Output Current measurements enable the NIPM-12 to be used for I-V detector characterization.
Digital (UART, I2C and USB with adapter) and analog control interface are runtime selectable by a single pin or a digital command.
The module integrates a temperature HV loop that regulates the SiPM output voltage as a programmable function of the SiPM temperature coefficient.
This library is a python A7585A/NIPM12 module. It allows to control the module using the UART/USB interface.
## Features
- 20-85V Output Voltage
- 10mA Output Current
- 1mV Output Voltage step
- Less than 300uV rms noise
- User Selectable Digital / Analog output voltage control
- Automatic temperature feedback on the output voltage
- Multi device support using I2C
- Fully working examples designed to control the module with keypad and display or monitor multiple devices using serial port
- Module compatible with ZEUS software for stand alone usage
## Pinout of the module
![pinout of the moduke](https://github.com/NuclearInstruments/a7585d/blob/master/images/img2.png?raw=true)
## Python installation
In order to install the A7585D python Library, just run the following command:
```bash
pip install a7585d
```
## Usage
### Module user manual
The user manual can be downloaded from the CAEN website:
[https://www.caen.it/products/a7585/](https://www.caen.it/products/a7585/)
### Import the library
Import the library in your python script:
```python
from a7585d.a7585d import A7585D
from a7585d.a7585d import A7585D_REG
```
### Create the A7585D object
Create the A7585D object and connect to the module serial port:
```python
hv = A7585D()
# open serial port
hv.open("COM3") # Windows
# hv.open("/dev/ttyUSB0") # Linux USB
# hv.open("/dev/ttyS0") # Linux UART
```
### Full code example
Create the A7585D object and connect to the module serial port:
```python
from a7585d import A7585D
from a7585d import A7585D_REG
import time
hv = A7585D()
# open serial port
hv.open("COM3") # Windows
# hv.open("/dev/ttyUSB0") # Linux USB
# hv.open("/dev/ttyS0") # Linux UART
# configure parameters HV
# set control output control loop mode
# 0 Digital mode (output voltage is vtarget)
# 1 Analog mode (output voltage is proportional to vref)
# 2 Thermal compensation (output voltage is vtarget - Tcoef * (T - 25)
hv.set_parameter(A7585D_REG.CNTRL_MODE, 0)
# set voltage target to 40V
hv.set_parameter(A7585D_REG.V_TARGET, 40)
# set max voltage 1mA
hv.set_parameter(A7585D_REG.MAX_I, 1)
# set max voltage (compliance) to 50V
hv.set_parameter(A7585D_REG.MAX_V, 50)
# configure SiPM temperature compensation coefficient
hv.set_parameter(A7585D_REG.T_COEF_SIPM, -35)
# configure ramp speed to 5V/s
hv.set_parameter(A7585D_REG.RAMP, 5)
# set current monitor range
# 0 low range
# 1 high range
# 2 auto select
hv.set_parameter(A7585D_REG.CURRENT_RANGE, 2)
# control pi controller (1 enable)
hv.set_parameter(A7585D_REG.ENABLE_PI, 0)
# enable hv
hv.set_parameter(A7585D_REG.HV_ENABLE,1)
while True:
print("HV V_OUT: " + str(hv.get_parameter(A7585D_REG.MON_VOUT)))
print("HV I_OUT: " + str(hv.get_parameter(A7585D_REG.MON_IOUT)))
time.sleep(0.1)
```
Raw data
{
"_id": null,
"home_page": "",
"name": "a7585d",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": "",
"keywords": "A7585D,CAEN,HV,Nuclear Instruments,SiPM bias",
"author": "",
"author_email": "Andrea Abba <abba@nuclearinstruments.eu>",
"download_url": "https://files.pythonhosted.org/packages/75/a7/3b16eeaa65a460ca22678ad5fa55b96bd9428f06e36d0f39ac37f7e0caf8/a7585d-1.0.1.tar.gz",
"platform": null,
"description": "# CAEN - Nuclear Instruments A7585A/NIPM12 Python Control Library\n\n\nThe NIPM-12 SiPM Power Module is a compact and integrated solution to provide stable and noiseless power supply for single and array / matrix SiPM detectors.\nHigh resolution Output Voltage and Output Current measurements enable the NIPM-12 to be used for I-V detector characterization.\nDigital (UART, I2C and USB with adapter) and analog control interface are runtime selectable by a single pin or a digital command.\nThe module integrates a temperature HV loop that regulates the SiPM output voltage as a programmable function of the SiPM temperature coefficient.\n\nThis library is a python A7585A/NIPM12 module. It allows to control the module using the UART/USB interface. \n\n## Features\n- 20-85V Output Voltage\n- 10mA Output Current\n- 1mV Output Voltage step\n- Less than 300uV rms noise\n- User Selectable Digital / Analog output voltage control\n- Automatic temperature feedback on the output voltage\n- Multi device support using I2C\n- Fully working examples designed to control the module with keypad and display or monitor multiple devices using serial port\n- Module compatible with ZEUS software for stand alone usage\n\n## Pinout of the module\n\n![pinout of the moduke](https://github.com/NuclearInstruments/a7585d/blob/master/images/img2.png?raw=true)\n\n## Python installation\n\nIn order to install the A7585D python Library, just run the following command:\n\n```bash\npip install a7585d\n```\n\n## Usage\n\n### Module user manual\n\nThe user manual can be downloaded from the CAEN website:\n[https://www.caen.it/products/a7585/](https://www.caen.it/products/a7585/)\n\n### Import the library\n\nImport the library in your python script:\n\n```python\nfrom a7585d.a7585d import A7585D \nfrom a7585d.a7585d import A7585D_REG\n```\n\n### Create the A7585D object\n\nCreate the A7585D object and connect to the module serial port:\n\n```python\nhv = A7585D()\n\n# open serial port\nhv.open(\"COM3\") # Windows\n# hv.open(\"/dev/ttyUSB0\") # Linux USB\n# hv.open(\"/dev/ttyS0\") # Linux UART\n```\n\n### Full code example\n\nCreate the A7585D object and connect to the module serial port:\n\n```python\nfrom a7585d import A7585D \nfrom a7585d import A7585D_REG\nimport time\n\n\nhv = A7585D()\n\n# open serial port\nhv.open(\"COM3\") # Windows\n# hv.open(\"/dev/ttyUSB0\") # Linux USB\n# hv.open(\"/dev/ttyS0\") # Linux UART\n\n# configure parameters HV\n\n# set control output control loop mode\n# 0 Digital mode (output voltage is vtarget)\n# 1 Analog mode (output voltage is proportional to vref)\n# 2 Thermal compensation (output voltage is vtarget - Tcoef * (T - 25)\nhv.set_parameter(A7585D_REG.CNTRL_MODE, 0) \n\n# set voltage target to 40V\nhv.set_parameter(A7585D_REG.V_TARGET, 40)\n\n# set max voltage 1mA\nhv.set_parameter(A7585D_REG.MAX_I, 1)\n\n# set max voltage (compliance) to 50V\nhv.set_parameter(A7585D_REG.MAX_V, 50)\n\n# configure SiPM temperature compensation coefficient\nhv.set_parameter(A7585D_REG.T_COEF_SIPM, -35)\n\n# configure ramp speed to 5V/s\nhv.set_parameter(A7585D_REG.RAMP, 5)\n\n# set current monitor range\n# 0 low range\n# 1 high range\n# 2 auto select\nhv.set_parameter(A7585D_REG.CURRENT_RANGE, 2)\n\n\n# control pi controller (1 enable)\nhv.set_parameter(A7585D_REG.ENABLE_PI, 0)\n\n# enable hv\nhv.set_parameter(A7585D_REG.HV_ENABLE,1)\n\nwhile True:\n print(\"HV V_OUT: \" + str(hv.get_parameter(A7585D_REG.MON_VOUT)))\n print(\"HV I_OUT: \" + str(hv.get_parameter(A7585D_REG.MON_IOUT)))\n time.sleep(0.1)\n```",
"bugtrack_url": null,
"license": "",
"summary": "Library to control A7585D Caen HV module (all versions)",
"version": "1.0.1",
"project_urls": {
"Bug Tracker": "https://github.com/NuclearInstruments/a7585d-python",
"Homepage": "https://github.com/NuclearInstruments/a7585d-python"
},
"split_keywords": [
"a7585d",
"caen",
"hv",
"nuclear instruments",
"sipm bias"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9951f3257f5a12f32548e030e8fb2fb4923f666d13e854fb112e8d925de6c29e",
"md5": "706f929536496be47d4c8ceff9386319",
"sha256": "8acc6e80c483dcaf0906f43ca5971f982923d6766c5a37ffb3b6cd5a8c807f05"
},
"downloads": -1,
"filename": "a7585d-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "706f929536496be47d4c8ceff9386319",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3489,
"upload_time": "2023-09-05T19:32:07",
"upload_time_iso_8601": "2023-09-05T19:32:07.287080Z",
"url": "https://files.pythonhosted.org/packages/99/51/f3257f5a12f32548e030e8fb2fb4923f666d13e854fb112e8d925de6c29e/a7585d-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "75a73b16eeaa65a460ca22678ad5fa55b96bd9428f06e36d0f39ac37f7e0caf8",
"md5": "c1d73e8d68ca9144c0c481a3b9903367",
"sha256": "802cfa5527bb384778c17dcd83cdfdd612aef3c9e4fe0ee576ef43aa78c35a3f"
},
"downloads": -1,
"filename": "a7585d-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "c1d73e8d68ca9144c0c481a3b9903367",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3292,
"upload_time": "2023-09-05T19:32:09",
"upload_time_iso_8601": "2023-09-05T19:32:09.266871Z",
"url": "https://files.pythonhosted.org/packages/75/a7/3b16eeaa65a460ca22678ad5fa55b96bd9428f06e36d0f39ac37f7e0caf8/a7585d-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-05 19:32:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NuclearInstruments",
"github_project": "a7585d-python",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "a7585d"
}