Epics@GSI Webhome

HadCon 2 Based I2 CControl Of Caen A7585

Introduction

  • CAEN A7585
    • I²C controlled device
  • EPICS Control
  • HadCon2
    • I²C Implementation

...

Mail with D.Grzonka, Jülich, InnerTof Project HADES:

" [...!] Das HadCon2 https://wiki.gsi.de/Epics/HadCon2 selbst stellt I²C https://wiki.gsi.de/Epics/HadCon2#I2C über über einen Multiplexer via einen typischen 10pin Blockverbinder (JDI2C1, https://wiki.gsi.de/Epics/HadCon2#JDI2C1 bereit. Dessen Position findest Du im Bereich „Layout“ (https://wiki.gsi.de/Epics/HadCon2#Layout).

  • Vielleicht könntest Du Deine I²C Kabel schon auf einem passenden Kabel vorbereiten (lassen). In verschiedenen Foren-Einträgen wurden u.a. CAT5 Kabel empfohlen.

Von der Funktionalität her, welchen Funktionsumfang an I²C Kommandos/Sequenzen verwendest Du?

  • Da beim A7585 alles auf Registerzugriffe hinausläuft, schau dir bitte mal die Register Map im Manual an, und sage mir welche Dinge für dich „muss“, „kann“, „brauch ich nicht“ sind. Minimal sehe ich die Funktionalität in dem, was man über den Analog Input Mode erreichen könnte.
  • Apropos Analog Input, das wäre die evtl eine weiterr Option der Kontrolle.
    • Mit den internen Mitteln des HadCon2, hätte man 4 DACs 8bit Vcc=3.3V, 8 interne ADC 3.3V (10bit, SAR) und GPIO Pins zum Lesen und Setzen von Vcc=3.3V digitaler I/O, würde Pegelwandler erfordern. Da habe ich zwar nicht so viel Erfahrung, aber da gibt es ja viele Lösungen, Transistor/IC/…
    • Zusammen mit externen DACs und ADCs via I2C/1-wire gäbe es höhere Auflösung.

Abgesehen vom Umschalten des internen I²C Multiplexers auf einen der vier Busse, das klären wir dann Vorort (generisch), haben die HadCon2 I²C Kommandos folgende Syntax (https://wiki.gsi.de/Epics/HadConMultipurposeControlsProtocolCmndI2C)

I2C <0|1>
  • <0|1> used to execute write or read operation. This is the Least Significant Bit (LSB) from the I²C address byte.
  • : 7bit, Here has to be written the hexadecimal value on the address byte, which is shifted to right with one bit. The reason for the right shift is because, the lsb bit is already used in the first field, where the working operation is chosen.
  • : number of bytes
  • : data

(https://www.caen.it/products/a7585 → manual )
Write Register
START 7 BIT ADDRESS 0 INTERNAL ADDRESS DATA TYPE BYTE 0 BYTE 1 BYTE 2 BYTE3 STOP

translates to HadCon2’s API: 
I2C 70 0 6 internalAddrByte dataTypeByte byte0 byte1 byte2 byte3

Read Register
START 7 BIT ADD. 0 INTERNAL ADD. DATA TYPE REP 7 BIT ADD. 1 BYTE 0 BYTE 1 BYTE 2 BYTE 3 STOP

translates to HadCon2’s API
I2C 70 0 2 internalAddrByte dataTypeByte 
I2C 70 1 4

!! not sure if the READ sequence is covered correctly !!


-- PeterZumbruch - 2021-Oct-19
-- PeterZumbruch - 2021-10-19
Topic revision: r2 - 2021-10-19, PeterZumbruch - This page was cached on 2024-05-10 - 15:59.

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding GSI Wiki? Send feedback | Legal notice | Privacy Policy (german)