Giter Site home page Giter Site logo

bmedelgen's Introduction

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.

bmedelgen's People

Contributors

chrschroeder avatar

Watchers

 avatar  avatar  avatar

bmedelgen's Issues

Problems with using the GUI

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

One shot trigger

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.