ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Понедельник
30 ноября
/1022580
Топик полностью
=AK= (31.07.2020 03:12, просмотров: 286) в ответ на еще гипотеза. используется I2C аппаратный или программный? Программный по правильному нужно делать через управление TRIS (эмуляция ОК/OD) а не PORT. По стандарту Slave может затягивать SCL. Если управлять через PORT, то редко (но возможно) появление конфликта (Slave удерживает SCL в нуле если не готов, а Master тянет его к 1) - отсюда лишние токи и/или неправильное считывание данных и/или подвешивание Slave (с автоматическим "развешиванием" последующим общением). - автор: Илья
I2C программный. "Затягивание SCL" не используется. 

Чтобы его не было:

- после операции записи в EEPROM выдерживается задержка 10 мс
- в SHT35 выбран режим работы без затяжки SCL

В любом случае непонятно как быть с п.4), когда в память всего лишь добавляется код умножения 16х16, но он не вызывается, работает "старый" код со сдвигом впpаво на 6 разрядов. Почему в п.2) этот код работает нормально, а в п.4) - дает "осциллирующий" результат? Просто абсурд какой-то...

Ответить
Ответы