I am using an EVAL-ADT7320MBZ board connected to a STM32L1 processor.
The STM32L1 NSS pin is configured as a firmware controlled chip select on the SPI interface.
The recommended init procedure listed on the ADT7320 data sheet is successful:
1. After power-up, reset the serial interface (load 32
consecutive 1s on DIN). This ensures all internal circuitry
is properly initialized.
2. Verify the setup by reading the device ID
(Register Address 0x03). It should read 0xC3.
3. After consistent consecutive readings are obtained from
Step 2, read the configuration register (Register Address 0x01),
TCRIT (Register Address 0x04), THIGH (Register Address 0x06),
and TLOW (Register Address 0x07). Compare these values
with the specified defaults in Table 6. If all the readings
match, the interface is operational.
4. Write to the configuration register to set the ADT7320 to
the desired configuration. Read the temperature value register.
It should produce a valid temperature measurement.
Note that the default power-on configuration and other register settings are used.
This init procedure works but only if the NSS chip select line is maintained LOW.
If the chip select line is ever returned to HIGH, all reads from the chip are zero until the chip is powered off and back on again.
The expectation is to be able to keep CS high during idle,
transition CS low for any writes and read responses and then return CS to a high state
for every write/read to the ADT7320 over SPI.
Is there a requirement to keep the CS Low during normal operation?
Is this a known mode of operation with the device?