Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить

Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 14:01:26

Здравствуйте!
Имеется датчик температуры 3,3 в, микроконтроллер 5 в и вот такой преобразователь, который, как я понимаю, работает по вот такой схеме.

Имеется вопрос. Что по подтягивающим резисторам? Нужны ли они вообще? Предполагается, что со стороны датчика уже стоят резисторы по 4,7К и убрать их оттуда не представляется возможным. Так как в преобразователе уже стоит резистор на 10К, то он наложится на резистор в датчике и будет уже порядком меньше, чем 4,7К в итоге. Не помешает ли это все? Стоит ли ставить Допольнительные резисторы со стороны МК? Например еще на 10К и в итоге получится 5К, что очень близко к стандартному 4,7К.

В общем, главный вопрос в том, как это все подружить так, чтобы работало надежно.
Заранее огромное спасибо всем людям, которые помогут. :beer:

Re: Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 15:22:27

Какой датчик, какие уровни ?
Изображение.

Вот SD карту приделали, почти всё на резисторах и один транзистор, но есть недостаток, очень капризна к питанию, должно быть ровно 5в и не меньше, больше 6в тоже пипец. Ваши модульки врятли лучше.

Есть специальные контролеры, если уж покупать, то их.

Видел чтото вроде 74LV244, она проглатывает 5в сигнал, и выдаёт 3в от которых питается, но статью сложно найти.

У датчика может быть двусторонний интерфейс, таких преобразователей нет вообще. Надо делать отдельную схему переключения направлений. Но вроде есть супер вафля от ti, но даже кластер не понял как она должна работать и она не работает.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 17:42:06

М-да. Действительно я не указал, что датчик пирометрический и работает по интерфейсу i2c. Как-то, для меня очевидная вещь, оказалась упущенной из виду для других. Это не UART, где и простой резистивный делитель прокатит. Вот и вопрос о подтягивающих резисторах. Хотя, я думаю, оно и без них должно работать (в конверторе они уже запаяны).
Дедлайн близок. На покупку чего-то другого тупо нет времени. Есть в наличии вот такой вот переходник и всё. Но он же должен работать и для i2c.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 17:53:55

Дедлайн близок, говорите? Дед приближается? :))) Переходник на I2C нужен только специальный, двунаправленный - по крайней мере для линии SDA. Можно попробовать подключить 5-вольтовый слэйв прямо к 3.3-вольтовому МК, выбрав у МК интерфейс с 5В-толерантными лапами и подключив подтяжку на 5 В.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 17:58:51

mickbell писал(а): Переходник на I2C нужен только специальный, двунаправленный
Этот преобразователь на мелких мосфетах двунаправленный, это классика вообще то. В древних теликах конца 90х он уже вовсю применялся с I2C для согласования 3,3В контроллеров с 5В тюнерами, памятью, видеопроцами и тд.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 18:31:44

Ага, понятно.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 22:09:14

Ничего простого в i2c нет, он двунаправленый, и кроме uart не с чем просто не получится. Может есть какито костыли, я искал разные развязки, перебирал разные интерфейсы у ардуины, в итоге ничего кроме спец микросхем не попалось.
Я бы представил чтото вроде резистора и стабилитрона.
Техники из 90 видел не много, документацию от неё найти сложно, и то чаще всего всё было на 5в.
В моём понимании проще заказать чем искать даже полевики, нужной мелочи чаще всего нет.

Прицепите схемку если чтото попадётся рабочее. Помню много разное видел, а как начал искать, ну прям как со схемами из 90, ничерта нет в поисковиках

Re: Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 22:48:35

Ничего простого в i2c нет, он двунаправленый
Однако же в своё время, лет десять с чем-то назад, я делал гальваноразвязку для I2C. Так что особо сложного там тоже нет.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Вс май 16, 2021 23:21:19

Стоит ли ставить Допольнительные резисторы со стороны МК? Например еще на 10К и в итоге получится 5К, что очень близко к стандартному 4,7К.

Изображение
Если устройство на линии LV1 выдаст ноль, то оно будет нагружено обоими резисторами в параллель. Т.е. 5кОм. Тоже самое со стороны HV1. Поэтому, никаких доп. резисторов не нужно. А если окажется, что на линии LV1 уже есть резистор, то R3 следует убрать.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Пт июн 25, 2021 23:38:44

Готовое решение https://aliexpress.ru/item/32901743313.html
Datasheet PCA9306 https://www.ti.com/lit/ds/symlink/pca9306.pdf

Re: Преобразователь 3v3 <> 5v, МК и датчик

Пт июн 25, 2021 23:54:01

Жестоко, однако! В то время, как микроконтроллеры уже чуть ли не к 1.8В питания начинают приближаться, человек нашел МК с пятивольтным питанием!
Или долго в криокамере пролежал?

P.S. Теоретически, можно питание и до 1.5В снизить (чтобы оставалось 0.3В между переходами 0-1). Здорово было бы! Воткнул CR2032, да работай себе…

Re: Преобразователь 3v3 <> 5v, МК и датчик

Сб июн 26, 2021 00:27:23

Такие МК очень удобны, если сидим на Li-Ion. Не надо ничего лишнего городить.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Чт апр 06, 2023 17:21:17

Здравствуйте. Не имею систематических знаний по И2С, но хочу разобраться с подключением датчика GXHT30. В таблице 9 его дейташита показан блок "SCL free", что это значит- на шину не давать синхроимпульсы и отпустить ее? И еще один блок "SCL pulled low"- как микроконтроллер после него узнает когда начинать прием?
Вложения
Вопрос.jpg
(65.55 KiB) Скачиваний: 27

Re: Преобразователь 3v3 <> 5v, МК и датчик

Чт апр 06, 2023 18:30:20

Stass48,
Существуют вот такие платки https://tixer.ru/catalog/modules/interf ... id=1730729

Re: Преобразователь 3v3 <> 5v, МК и датчик

Чт апр 06, 2023 18:53:45

sathv писал(а):"SCL free", что это значит- на шину не давать синхроимпульсы и отпустить ее?
Да, именно так. Здесь имеется в виду, что во время измерения сенсор не влияет на SCL и I2C шину можно использовать для связи с другими устройствами.

sathv писал(а):"SCL pulled low"- как микроконтроллер после него узнает когда начинать прием?
I2C драйверы многих МК имеют эту опцию (clock stretching) реализованную аппаратно и прозрачно для пользователя. Если такой опции нет, то следует после получения ACK от сенсора проверить состояние линии SCL программно и ждать пока она не поднимется в лог. 1 прежде чем продолжать. А можно просто после запроса на новое измерение подождать достаточно долгое время (большее чем время измерения параметров ~15мс) прежде чам читать данные из сенсора.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Чт апр 06, 2023 19:22:13

Спасибо большое- понял, кажется))

Re: Преобразователь 3v3 <> 5v, МК и датчик

Чт апр 06, 2023 22:47:01

GXHT30. В таблице 9 его дейташита показан блок "SCL free", что это значит- на шину не давать синхроимпульсы и отпустить ее? И еще один блок "SCL pulled low"- как микроконтроллер после него узнает когда начинать прием?

Тут вот про что речь. Преобразование аналог -> цифра занимает время. Может оказаться, что когда вы хотите получить данные, они ещё не готовы. И вам на выбор предлагают два варианта, что делать в этом случае.
1) Датчик будет отвечать NAK, и вы программно должны повторять попытки чтения в этом случае.
2) Аппаратная пауза. Датчик ставит шину на паузу (SCL pulled low), как только данные готовы, передача продолжится.

Зачем этот выбор, последний вариант вроде бы удобнее? Не все Master устройства его поддерживают.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Пт апр 07, 2023 18:15:08

Спасибо за пояснение. Получается, если я командой выбрал режим clock stretching enabled, то датчик пошлет ACK и опустит шину на время измерений- SCL pulled down. В дейташите не объясняется зачем команда Fetch Data. Может мне и надо очистить датчик? У меня индицируются и температура и влажность по 65536 (это без пересчета по формуле), т.е. принимаю все единицы.

Добавлено after 5 minutes 35 seconds:
Не 65536, а 65535. Данные, ведь, 16 бит.

Re: Преобразователь 3v3 <> 5v, МК и датчик

Пт апр 07, 2023 18:57:24

sathv писал(а):В дейташите не объясняется зачем команда Fetch Data.
Эта команда нужна для чтения данных при периодических измерениях. При этом для производства таких измерений нужно послать 1 раз команду из Таблицы 10, задающей период измерений. Далее можно лишь читать данные без подачи нового запроса на измерение. Разница с командой единичного измерения из Таблицы 9 в том, что для производства каждого нового единичного измерения нужно подавать команду запроса измерения, а при периодических измерениях сенсор будет производить их без специального запроса в соответствии с выбранным периодом.

sathv писал(а):Может мне и надо очистить датчик? У меня индицируются и температура и влажность по 65536
Имеете в виду ресет? Это не нужно. Проще после заливки в МК нового кода отключить на время питание. Если у Вас имеется логический анализатор, приведите осциллограммы сессии с сенсором. Проверьте превильность конфигурации I2C интерфейса. Может на все Ваши запросы датчик отвечает NACK(?)

Re: Преобразователь 3v3 <> 5v, МК и датчик

Пт апр 07, 2023 22:30:31

Спасибо за помощь. Будьте добры, подскажите еще. Я написал программу на ассемблере и там получается, что такты SCL, они не периодические, а имеют длину от 10 до 100 мкс, примерно. Датчик это допускает? (Сам-то МК работает, там задействован АЦП, выводится что надо на ЖКИ, а вот с GXHT30 связи нет) Прошу извинить, если уже достал неразумными вопросами.
Ответить