Replies: 1 comment 1 reply
-
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Рассматривал исходники и возник вопрос по поводу протокола обмена данными.
Если разобраться с чтением i2c eeprom памяти то это выглядит следующим образом
START|DEV_ADDRESS|W|ADDRESS| STOP| START|DEV_ADDRESS|R|byte 0|.......|byte N|STOP
Т.е. всю микросхему можно прочитать 2мя запросами.
1й запрос на запись передается адрес с какой ячейки читать(писать)
2й запрос на чтение. последовательно считывается необходимое количество байт.
Что мы имеем в ватериусе.
Каждый байт считывается отдельным запросом.
Т.е. для чтения 22байт передается еще 22е стартовые посылки длинной по 8 бит.
START|DEV_ADDRESS|R|byte 0|STOP|START|DEV_ADDRESS|R|byte 1|STOP|START|DEV_ADDRESS|R|byte 2|STOP|...|START|DEV_ADDRESS|R|byte N|STOP
Может я не в курсе каких то особенностей тиньки или библиотеки Wire, но можно сократить время чтения данных примерно в 2 раза.
2й вопрос.
Отдельное чтение режима работы?
Можно включить в структуру SlaveData добавить режим работы и считывать его за один раз.
Beta Was this translation helpful? Give feedback.
All reactions