Какую команду использовать для чтения и записи через команду spi.transfer

#include<spi.h>
byte val;     // переменная для хранения временных данных
#define PIN_SPI_SS    (9)
#define PIN_SPI_MOSI  (10)
#define PIN_SPI_MISO  (11)
#define PIN_SPI_SCK   (12)

void setup();
pinMode(SS,output);
pinMode(SCLK,output);
pinMode(MOSI,output);
spi.setBitorder(MSBFIRST);
SPI.setDataMode(SPI_MODE3);
serial.begin(9600);
spi.begin();

void loop();
  digitalWrite(SS,LOW);
  uint8_t b1 = SPI.transfer(0x00);
  uint8_t b2 = SPI.transfer(0x00);
  uint8_t b3 = SPI.transfer(0xFF);
  digitalWrite(SS,HIGH);
  int16_t val = b1 | b2 ;
  serial.print("val=");
  serial.println(val,DEC); 

обратитесь за ДАННЫМИ SHEET//https://www.ti.com/lit/ds/symlink/lm74.pdf?ts=1591436049550&ref_url=https://www.ti.com/product/LM74 моя проблема в том, что я не могу знать, какую команду я должен использовать в SPI.передаточная функция для записи и чтения данных о температуре здесь я использую 0x00 для чтения 16-битных данных регистра температуры, но как насчет записи в регистр конфигурации, LM74 использует команду 0xFF для режима выключения, но как мы узнали этот 0xFF относится только к регистру конфигурации.

, 👍1


1 ответ


1

В LM74 третий байт, который вы отправляете (или, более конкретно, последние 8 бит до 32 бит после 16-го бита, который вы отправляете), считывается и используется в качестве параметра регистра конфигурации.

Поскольку регистр конфигурации имеет только два состояния, 0xFF - это переход в спящий режим, а 0x00 - это выполнение преобразований (как показано в таблице 1 таблицы данных).

Итак:

0x00 0x00 0xFF

означает получить один результат, а затем ложиться спать.

0x00 0x00 0x00

означает получить один результат и оставаться бодрствующим.

Если LM74 в данный момент находится в спящем режиме из последовательности 0x00 0x00 0xFF, возвращаемый результат - это не температура, а идентификатор производителя чипа.

Это не очевидный метод управления чипом, и на самом деле он довольно плохо описан в этом техническом описании, так что не расстраивайтесь из-за того, что вы его не понимаете, мне потребовалось несколько минут, чтобы понять это.

,