hz-b / bmedelgen Goto Github PK
View Code? Open in Web Editor NEWEPICS/Streamdevice device support for BME Bergmann Delaygenerator
License: GNU General Public License v3.0
EPICS/Streamdevice device support for BME Bergmann Delaygenerator
License: GNU General Public License v3.0
Copyright (c) 2017 Helmholtz-Zentrum Berlin für Materialien und Energie GmbH, Germany (HZB) This device support based on ASYN/Streamdevice contains generic templates to control BME Delaygenerator PCI cards through the BME Delaygenerator server application. It was tested with BME SG08p PCI cards. Other models might require some minor adjustment. It comes with a simple ExampleIoc which can control a single BME system with 2 x BME SG08p PCI cards #### ## How to build #### 1. Set the path of your EPICS Base in ./configure/RELEASE 2. Build the support module $ make 3. Set the path of your EPICS Base, ASYN and Streamdevice in ./ExampleIoc/configure/RELEASE 4. Build the IOC make -C ./ExampleIoc/ 5. Set the IP used by drvAsynIPPortConfigure in ./ExampleIoc/iocBoot/ioc/st.cmd 6. Start the IOC $ cd ./ExampleIoc/iocBoot/ioc $ ./st.cmd 7. Open the edm panel for control: $ cd ./dl $ edm -x -m "DEVN=EXAMPLE" BmeDelGenMain.EXAMPLE.edl #### ## Upper/Lower limits of clock related commands #### The clock period and internal clock are defined by the input clock (InpClk) and prescaler / multiplier settings. The limits can be described as the following: MaxInpClk: 600MHz MinInpClkPeriod: 1.66ns MaxIntlClk: 125MHz (depending on Prescaler and Multiplier) MinIntlClkPeriod: 8ns MinInpClk: 10MHz/128 = 78.125kHz MinIntlClk: 10MHz (MinInputClock with Multiplier of 128) MaxIntlClkPeriod: 100ns # Limits of specific commands: DLAW (PulseWidth): - Max = MaxInt32 * MaxIntlClkPeriod = 2147483647 * 100ns = 214.748s - Min = MinIntlClkPeriod / 2 = 4ns (minimum is the half step, higher values require full steps e.g. 8ns, 16ns etc.) FORC - Max = MaxInt32 * MaxIntlClkPeriod = 2147483647 * 100ns = 214.748s - Min = -1 (off), minimal step width is MinIntlClkPeriod = 8ns INHB - Max = MaxInt32 * MaxIntlClkPeriod = 2147483647 * 100ns = 214.748s - Min = -1 (off), minimal step width is MinIntlClkPeriod = 8ns STBK - Max = MaxInt32 * MaxIntlClkPeriod = 2147483647 * 100ns = 214.748s - Min = -1 (off), minimal step width is MinIntlClkPeriod = 8ns GDEL (delay of gate signal): - Max = 63 * MaxIntlClkPeriod = 63 * 100ns = 6,3μs - Min = 0 (off), minimal step width is MinInpClkPeriod = 1.66ns DLAY This is actually a formula, so no hard HOPR and LOPR values are set in the EPICS database template. For for scalar values and calculation results the limits are defined as: - Max = MaxInt32 * MaxIntlClkPeriod = 2147483647 * 100ns = 214.748s - Min = 0 (no Delay) 25ps Steps Note: The list only show the possible maximums and minimums. The current maximum and minimum for each command depends on the current internal clock period. The higher or lower inputs will be rounded to the current limits which can be seen in the readback values.
Hallo,
I tried to control a BME SG08p PCI card with epics. I can connect to the card and also use the lock/unlock button and the activated button. But I'm not able to change the settings via the trigger or delay panel.
When I try to apply the settings via the Apply button nothing happens.
When I change something e.g. the Ext. Clk. Div. and restart st.cmd then the card changes this setting.
Did I miss some setting when installing this epics application? I followed the instructions which are written in the Readme file.
Thanks for your reading,
Felix
Hallo,
is it possible with the epics server to create only one trigger pulse.
I know that there is a way to do this with the delay generator by using the preset button.
In the bergmann software there is a zero button to reset the preset pulse generator, which is missing in the epics server.
Therefore its not clear for me how to use the preset in your software.
Thanks for your answer,
Felix
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.