1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 <2021> 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 <2021> 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: CAEN VME crate with controller card plus digitizers |
From: | "Dmitry Yu. Bolkhovityanov via Tech-talk" <tech-talk at aps.anl.gov> |
To: | tech-talk at aps.anl.gov |
Cc: | Evgeny Simonov <E.A.Simonov at inp.nsk.su> |
Date: | Tue, 20 Jul 2021 08:23:13 +0700 (+07) |
On Mon, 19 Jul 2021, Michael Davidsaver via Tech-talk wrote:
On 7/19/21 11:47 AM, Josh Fiddler via Tech-talk wrote:Greetings everyone, My current task involves implementing support for reading waveforms from a CAEN V1740 <https://www.caen.it/products/v1740/> Digitizer card installed in a CAEN 8008B VME crate <https://www.caen.it/products/vme8008b/> with the V1718 USB2 Bridge. They provide libraries for grabbing data with a CL application, but I want to ask if anyone has experience with this family of devices from CAEN.Have you investigated OS and/or EPICS support for this V1718 USB2 to VME bridge? USB communication is inherently message based. All of the VME bridge drivers in the EPICS world which I'm aware of assume memory mapped I/O. So with this bridge, I would not expect any of the existing EPICS VME drivers and utilities to be immediately useful.
Just a small clarification (from a person who had spent some time working with CAEN VME hardware): yes, CAEN provides a "function call" API via CAENVMElib, not a memory-mapped I/O. The API is unified along all kinds of adapters -- USB, PCI, PCIe. Adapters connect to VME controllers via optical links (CAEN private "CONET2" protocol, but optical media is the same as used for optical Ethernet).
This API consists of 1) usual bus open/close functions CAENVME_Init() and CAENVME_End();2) VME I/O functions CAENVME_ReadCycle(), CAENVME_WriteCycle and their BLT-versions. There is NO notion of "windows" and address modifiers are specified directly with each *Cycle() call.
IRQ handling is a bit quirky: there's no direct way to catch an interrupt but just a polling is possible via CAENVME_IRQWait() and CAENVME_IRQCheck().
AFAIK, Evgeny Simonov from our institute had successfully implemented some EPICS support for CAEN A3818+V2718 adapter+controller; I'm CC:'ing him.
_________________________________________ Dmitry Yu. Bolkhovityanov The Budker Institute of Nuclear Physics Novosibirsk, Russia