forked from M-Labs/artiq
1
0
Fork 0

novogorny: streamline gain setting method, style [nfc]

This commit is contained in:
Robert Jördens 2018-03-21 08:22:48 +00:00
parent f5a1001114
commit 80903cead7
1 changed files with 9 additions and 8 deletions

View File

@ -1,4 +1,3 @@
from artiq.language.core import kernel, delay, portable from artiq.language.core import kernel, delay, portable
from artiq.language.units import ns from artiq.language.units import ns
@ -6,9 +5,9 @@ from artiq.coredevice import spi2 as spi
SPI_CONFIG = (0*spi.SPI_OFFLINE | 0*spi.SPI_END | SPI_CONFIG = (0*spi.SPI_OFFLINE | 0*spi.SPI_END |
0*spi.SPI_INPUT | 0*spi.SPI_CS_POLARITY | 0*spi.SPI_INPUT | 0*spi.SPI_CS_POLARITY |
0*spi.SPI_CLK_POLARITY | 0*spi.SPI_CLK_PHASE | 0*spi.SPI_CLK_POLARITY | 0*spi.SPI_CLK_PHASE |
0*spi.SPI_LSB_FIRST | 0*spi.SPI_HALF_DUPLEX) 0*spi.SPI_LSB_FIRST | 0*spi.SPI_HALF_DUPLEX)
SPI_CS_ADC = 1 SPI_CS_ADC = 1
@ -75,7 +74,7 @@ class Novogorny:
kernel_invariants = {"bus", "core", "conv", "div", "v_ref"} kernel_invariants = {"bus", "core", "conv", "div", "v_ref"}
def __init__(self, dmgr, spi_device, conv_device, div=8, def __init__(self, dmgr, spi_device, conv_device, div=8,
core_device="core"): core_device="core"):
self.bus = dmgr.get(spi_device) self.bus = dmgr.get(spi_device)
self.core = dmgr.get(core_device) self.core = dmgr.get(core_device)
self.conv = dmgr.get(conv_device) self.conv = dmgr.get(conv_device)
@ -93,11 +92,13 @@ class Novogorny:
:param channel: Channel index :param channel: Channel index
:param gain: Gain setting :param gain: Gain setting
""" """
self.gains &= ~(0b11 << (channel*2)) gains = self.gains
self.gains |= gain << (channel*2) gains &= ~(0b11 << (channel*2))
gains |= gain << (channel*2)
self.bus.set_config_mu(SPI_CONFIG | spi.SPI_END, self.bus.set_config_mu(SPI_CONFIG | spi.SPI_END,
16, self.div, SPI_CS_SR) 16, self.div, SPI_CS_SR)
self.bus.write(self.gains << 16) self.bus.write(gains << 16)
self.gains = gains
@kernel @kernel
def configure(self, data): def configure(self, data):