diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst index ede3e4d3c..8055694b9 100644 --- a/RELEASE_NOTES.rst +++ b/RELEASE_NOTES.rst @@ -3,6 +3,13 @@ Release notes ============= +1.1 (unreleased) +---------------- + +* TCA6424A.set converts the "outputs" value to little-endian before programming + it into the registers. + + 1.0 --- diff --git a/artiq/coredevice/i2c.py b/artiq/coredevice/i2c.py index fb37a2aa6..da3fa6269 100644 --- a/artiq/coredevice/i2c.py +++ b/artiq/coredevice/i2c.py @@ -108,5 +108,10 @@ class TCA6424A: A bit set to 1 means the TTL is an output. """ + outputs_le = ( + ((outputs & 0xff0000) >> 16) | + (outputs & 0x00ff00) | + (outputs & 0x0000ff) << 16) + self._write24(0x8c, 0) # set all directions to output - self._write24(0x84, outputs) # set levels + self._write24(0x84, outputs_le) # set levels