Перейти к содержанию
    

si7021 i2c command sequence

Hello, From the manual shown bellow the address is 0x40 the measure temperature command 0xE3.

From the readback diagram
first master sends slave address and measure command,then We send slave Adress.

But we cant see in the diagram  where is the measured data,how it transfered back?
The manual doesnt say what is MS Byte,MS Byte.

https://www.silabs.com/documents/public/data-sheets/Si7021-A20.pdf

Thanks. 

image.png.0176c1f1d1ed312987041dc8d7012728.pngimage.thumb.png.accd327d03256f3ec2e3693e376fa898.png

 

image.thumb.png.bd0ef36844a5661e72e76655f0f32a3d.png

image.thumb.png.bf559602b240539aafff4caf92d00ad3.png

 

image.png

Изменено пользователем sergei94

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

But we cant see in the diagram where is the measured data,how it transfered back?


Отучаемся говорить за всех ;-)
"Мы" прекрасно видим на диаграмме после рестарта-адреса_ведомого_с_чтением_из_него-подтверждения-затяжки_SCL два байта данных: старший и младший. Ведущий же синхроимпульсы формирует.
Подтвердишь транзакцию считаешь CRC, не подтвердишь - СТОП.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Yes "Отучаемся говорить за всех :-)" i see from now on.

As shown there are A,Sr,R,NA,NA*

A-is acknowledge as said in AN0011 manual' During the next bit-period, the slave pulls SDA low (ACK)

Sr-SDA goes low while SCL high. It is allowable to generate a STOP before the repeated start. SDA can transition to high before or after SCL goes high in preparation for generating the START.

Regarding the NA and NA* shown bellow ,NA is not acknowledge .one device refuses to the communication of the other.

What is the difference between NA and NA* and what is the logic of putting them there?
Thanks.

https://www.silabs.com/documents/public/application-notes/AN0011.pdf

image.thumb.png.4d5d8d4569d4665f954b4ece1bc02b04.png
image.thumb.png.5a511c6d9d611b6138beb25d75220ac8.png

  

image.thumb.png.b45b97f80ef9bf8824c1b376592e4c19.png

image.png

Изменено пользователем sergei94

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разница в выполнении команды (и в команде): в одном случае ведомый затянет SCL для замера, а в другом лишний раз адрес ведомого для этого интервала времени. Ведущий может уметь "затягивание SCL" может и не уметь.
Вы б спецификацию на I2C нашли, NXP её не скрывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Месяца три назад развлекался с Si7021. Читалось всё без проблем. Детали не помню - лень искать код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Hello, regarding what was you said bellow, as shown in the diagram bellow the NA comes after the LS byte it doesnt have an address near it.

What purpose it surve to put NA between LS byte and P(stop bit)
 а в другом лишний раз адрес ведомого для этого интервала времени.

image.thumb.png.0e5a7d2360bb33cfa847a1de4d7c3738.png

Изменено пользователем sergei94

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

NACK перед STOP - завершение транзакции.
Предлагаю вам провести лабораторную работу: несколькими триплетами продряд читать из микрухи. О результатах - доложить по форме.

PS: наиболее вероятный результат (НЕ ПОДГЛЯДЫВАТЬ!!!) - одна и та же тройка "MSB_LSB_Chksum".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я затрудняюсь понять значения checksum в этом контексте. 
Как написано в справочнике измерения от датчика находятся в MS и LS.
Но в справочнике написано что  checksum он для проверки ошибок.

Так как мне понимать значения
MS Ls , как я отдиляю температуру от датчика и проверку если данные в порядке

Благодарю.

image.thumb.png.fd19c82aad93f3d42dd53d99747191da.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Два первых байта - данные, третий - контрольная сумма: при безошибочном обмене CRC двух байтов данных и байта контрольной суммы даст 0 при наличии любых ошибок - не ноль.
Я так понимаю, вам пока можно и без контрольной суммы: вы с I2C "наиграитесь", судя по соседней ветке ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...