Intel4004 1 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 14 minutes ago, =AK= said: За счет чего? В чем состоит механизм такой компенсации? За счет сопротивления проводников или за счет их индуктивности? И то и другое настолько малы, что влияния 50к заметить будет невозможно. А хрен его знает. Но практика показывает, что оно работает. UART по кабелю пускал в однопроводном режиме (Rx с Tx закорочены). Условия точно такие-же как и здесь, с обоих сторон открытый коллектор и несколько метров провода. Подтяжки с обоих сторон позволяли поднять скорость в два раза. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба А частота SCL какая? И что служит мастером (модель МК)? М.б. какие-то особенности портов, и есть смысл буфер поставить? Из собственного опыта - на 100 кГц через 1,5 м кабеля типа USB-шного C8051F350 с ADT7410, помещённой в термокамеру, работал совершенно уверенно - в течение нескольких часов было послано порядка 10000 запросов, и на все были получены ответы. При этом температура в камере менялась от -40 до +90. На 400 кГц уже шли единичные сбои. Резисторы подтяжек - по 10 кОм с обеих сторон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 220 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба Зарезать частоту I2C внешним одновибратором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 3 часа назад, =AK= сказал: ...а если резисторы подтяжки уменьшить, то и до метра. 3 метра, полет нормальный. Да, не по спецификациям, но работает. Эффект, как у ТС, наблюдал на SD-интерфейсе - щупом тыкаешься - работает, убираешь - перестает. Сменили немного тайминги в ПЛИС, заработало и без щупов. Сделал вывод, что суммарная емкость может заваливать фронты, причем довольно ощутимо. А когда находишься на границе переключения, емкости в пару пФ хватит, чтобы изменить картину. P.S. В I2C-контроллерах тоже тайминги между установкой/сбросом ноги и ее чтением (в мастере, естественно) настраиваются. И если они в приборе были настроены почти впритык, так чтобы работало, то хоть как изворачивайся с кабелями - работать не будет вовсе или будет с переменным успехом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitzap 0 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба "Чудеса" у меня случались с JTAG на более коротком шлейфе - в итоге порядка 40 см. На осциллографе правда были видны искаженные из-за переотражений фронты. Ситуацию улучшили последовательно запаянные сопротивления порядка 33 Ом. Может быть, помехи какие ловятся на провод - попробуйте применить экранированный кабель. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 20 минут назад, Plain сказал: Зарезать частоту I2C внешним одновибратором. ИМХО, может не получиться, если там ситуация с таймингами, которую я обрисовал выше. Там важна задержка между выставлением бита и его чтением самим же мастером согласно логике I2C. От частоты там мало что будет зависеть, скорее от скорости нарастания фронта. Ну а чтобы даже частоту изменить можно было, нужно, чтобы мастер поддерживал так называемый "clock stretching". P.S. Если уж действительно окажется, что ни в какую не работает, то можно поставить рядом (вместо датчика) мелкий МК с двумя I2C-интерфейсами, на одном эмулировать саму HTU20D, а второй вытащить наружу и подключить к нему реальный HTU20D. Тут хоть можно будет с времянками играться как угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rodriges 0 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба Конденсатор блокирующий стоит. Я к нему в параллель ещё 0.47мкФ припаял - не помогло. Резисторы подтяжки... Сегодня в мелкоскоп разглядел, что на них "010" написано. Тестер показал 96к. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 4 minutes ago, Rodriges said: Тестер показал 96к. 96 кОм раз в двадцать больше, чем нужно. Если это действительно подтяжка. Поставьте от 2 до 5 кОм. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба Тестер на запаянных резисторах может показать погоду на Марсе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rodriges 0 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 22 минуты назад, haker_fox сказал: от 2 до 5 кОм 3.6к не помогает. Попробую 1-1.5к поставить. 3 минуты назад, Arlleex сказал: Тестер на запаянных резисторах может показать погоду на Марсе. На выпаянных показал 100,08к Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба Идиотский способ маркировки SMD-резисторов всегда меня озадачивал. Да, там код не 010, а 01D, что есть 100кОм. Все-таки еще раз проверьте (прямо мультиметром), что GND, VCC и SCL/SDA доходят до платы управления... Осциллограф может создать какой-нибудь неявный путь для GND, например. Мистика Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 3 часа назад, vitzap сказал: "Чудеса" у меня случались с JTAG на более коротком шлейфе - в итоге порядка 40 см. На высокоскоростных (относительно) линиях - запросто. Даже и на 20 см может звенеть так, что до полной неработоспособности (имел такое "удовольствие", вывесив цепочку HC595 на 20-сантиметровом плоском кабеле, и пренебрег согласованием). И да, последовательное согласование со стороны передатчика радикально выправляет ситуацию. Можно бы попробовать и на i2c то же, но знать бы, что там происходит. А вот "знать" - бывает затруднительно, емкость щупа картину может исказить до неузнаваемости. 4 часа назад, Harbinger сказал: На 400 кГц уже шли единичные сбои. Резисторы подтяжек - по 10 кОм с обеих сторон. 10 кило на 400 kHz даже и без кабеля многовато. А вопрос про скорость передачи - да, ключевой. Пока мы не знаем, на какой частоте пытается работать ТС, гадать можно до посинения, а телепаты как всегда в отпусках все... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 220 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 4 часа назад, Arlleex сказал: чтобы мастер поддерживал так называемый "clock stretching" "Проводное ИЛИ" для SCL не так называемое, оно изначально стандартное, поэтому если кто-то его не поддерживает, шильдик I2C попросту не получит. 4 часа назад, Arlleex сказал: важна задержка между выставлением бита и его чтением самим же мастером согласно логике I2C Данные выставляются на чтение по спаду SCL, а читаются по его фронту, поэтому не может быть никаких аппаратных настроек этого процесса, хотя бы за ненадобностью, ну и тоже по причине нарушения стандарта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 3 минуты назад, Plain сказал: Данные выставляются на чтение по спаду SCL Разве? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 16 июля, 2021 Опубликовано 16 июля, 2021 · Жалоба 11 минут назад, Plain сказал: "Проводное ИЛИ" для SCL не так называемое, оно изначально стандартное, поэтому если кто-то его не поддерживает, шильдик I2C попросту не получит. Clock stretching - это не требуемая, а опциональная возможность slave-ов. Если мы с Вами об одном и том же сейчас говорим. Цитата Данные выставляются на чтение по спаду SCL, а читаются по его фронту... Нет. Данные выставляются на SDA до того, как будет передний фронт на SCL. А снимаются после заднего. Это для битов данных, естественно. Цитата ...поэтому не может быть никаких аппаратных настроек этого процесса... Еще как может. I2C - топология шины с возможностью мультимастера и контролем битов ACK от ведомых, поэтому (как и в CAN-е) выставляемые мастером биты им же и контролируются. И вот задержка между выставлением и контролем - настраиваемая. Посмотрите, например, тот же I2C-контроллер в STM32. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться