• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Умный дом для чайника

Alexey N

Member
@Сергей_Ф, так вроде подтяжка уже имеется в обвязке шилдов. Или я ошибаюсь? Вот, например схема шилда zs-042 (это который с RTC). Более того, так как подтягивающие резисторы есть на обоих модулях (4,7 кОм на каждом модуле), их сопротивление считается параллельно. Получается 2,35 кОм. Вот, например, в статье Не глупый офис человек специально выпаивал "лишние"
подтягивающие резисторы (правда не с RTC). Я тоже попробовал удалить резисторы с RTC. Результат прежний. Попробовал по Вашему совету все-таки добавить еще резисторы. По прежнему то работает, то при ресете теряет датчики.
Что-то маразм какой-то. Вроде уже все перепробовал. Может как-то принудительно отключать sda при инициализации датчика давления?


 

Сергей_Ф

Moderator
Команда форума
@Alexey N действительно маразм. Давайте его продолжим попробуйте включить между SDA RTC и остальной схемой диод катодом к RTC. Желательно шотки или германиевый откопать, хотя бы. Уж если маразм, то до конца.
Ну или резистор на 2 кОм.
Ну и тестером (осцилографом) померяйте, что там происходит. В конце концов.
 

Alexey N

Member
Маразм крепчает. Я уже сам как полный диод. Попробовал с диодом. После ресета все begin отрабатываю без ошибок. В сериале сообщение "RTC lost power, lets set the time!" (что соответствует действительности). И все. Дальше в коде каждую минуту (по часам) должны сниматься показания с датчиков и выводиться в сериал (так часто, чтобы можно было отлаживать код). Так вот в сериал ничего не выводится, что вроде так и должно быть, так как с sda часов данные не проходят.
Попробую еще одну штуку. Запустить часы на других пинах. Есть вроде в библиотеке такая возможность. И даже тема на форуме такая есть http://esp8266.ru/forum/threads/modul-vremeni-ds3231-na-nestandartnyx-pinax.1359/ В ней, правда все закончилось перепайкой экрана, а что было с часами осталось нераскрытым. Непонятно пока, что будет со стандартными пинами i2c.
 

Сергей_Ф

Moderator
Команда форума
@Alexey N диод кремниевый? С ним работать и не должно. Попробуйте резистор поставить на 100, 200, 500, 1000 Ом вместо диода. По очереди.
 

Сергей_Ф

Moderator
Команда форума
@=AK= вроде ТС ставил внешние резисторы подтяжки и ничего не изменилось. Никакого вреда от встроенных на плату быть не должно. Хотя логические уровни могут "гулять". А вот запитать напрямую микросхему - очень хорошая идея.

@Alexey N
Попробуйте запитать модуль BMP от 5 В.
Если все будет работать, то я бы выкинул стабилизатор с платы и запитали от 3.3 В.

Что то мне кажется, и для zs-042 нужно 5-вольтовое питание.
 
Последнее редактирование:

nikolz

Well-known member
@=AK= вроде ТС ставил внешние резисторы подтяжки и ничего не изменилось. Никакого вреда от встроенных на плату быть не должно. Хотя логические уровни могут "гулять". А вот запитать напрямую микросхему - очень хорошая идея.

@Alexey N
Попробуйте запитать модуль BMP от 5 В.
Если все будет работать, то я бы выкинул стабилизатор с платы и запитали от 3.3 В.

Что то мне кажется, и для zs-042 нужно 5-вольтовое питание.
Вообще-то в документации BMP-180 сказано:
Supply voltage: 1.8 ... 3.6V (VDD)
1.62V ... 3.6V (VDDIO)
Поэтому рекомендовать 5 вольт - это как предложить ходить на красный .
 

Alexey N

Member
Значит так. Резисторы не работают. На шилде с BMP180 стоит линейный стабилизатор Torex серии xc6206, так что питать его можно смело до 6 вольт. Попробовал питать от 5 вольт. Не работает. Пропробовал запитать RTC отдельным питанием как от 3,3 так и от 5 вольт. Не работает.
Нашел вроде что-то полезное Reliable Startup for I2C Battery Backed RTC Why the Arduino Wire library is not enough. Hanging I2C on DUE, SDA Low SCL High permanent. Сейчас буду разбираться, но похоже, что RTC (как раз тот что с батарейкой) после потери питания (даже после ресета) удерживает sda на низком уровне. Очень похоже на мою проблему.
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
@nikolz
Код:
The BMP180 chip only accepts 1.8V to 3.6V input voltage,however It contains a built-in stabilivolt (3.3V), thus being able to work under 5V.
на счет красного, готов поспорить на бутылку коньяка.
 

nikolz

Well-known member
Это и есть Ваша проблема. Вы так и не промерили уровни тестером :(
Не знаю, где Вы это читали,
но я читаю документацию
BOSH Data sheet BMP180 Digital pressure sensor BMP180 Data Document revision 2.5 Document release date 5 April 2013 Document number BST-BMP180-DS000-09 Technical reference code(s) 0 273 300 244
В ней указано именно то, что я написал.
Pressure range: 300 ... 1100hPa (+9000m ... -500m relating to sea level)
Supply voltage: 1.8 ... 3.6V (VDD)
1.62V ... 3.6V (VDDIO)
Package: LGA package with metal lid
Small footprint: 3.6mm x 3.8mm
Super-flat: 0.93mm height
Low power: 5μA at 1 sample / sec. in standard mode
Low noise: 0.06hPa (0.5m) in ultra low power mode
0.02hPa (0.17m) advanced resolution mode
----------------------------------
А вообще-то интересно читать эти пляски с бубном.
 

Сергей_Ф

Moderator
Команда форума
@nikolz у ТС не голый чип, а шилдик с обвязкой на котором стоит линейный стабилизатор xc6206. Так что читать надо документацию на него. Ссылку на стабилизатор привел ТС.
Ссылку на шилд уже дал @=AK=. Выдержку текста я привел оттуда.
А пляски с бубном из за того, что никто не знает что происходит на шине i2c, а ТС посмотреть не может.
 
Последнее редактирование:

nikolz

Well-known member
@nikolz у ТС не голый чип, а шилдик с обвязкой на котором стоит линейный стабилизатор xc6206. Так что читать надо документацию на него. Ссылку на стабилизатор привел ТС.
Ссылку на шилд уже дал @=AK=. Выдержку текста я привел оттуда.
А пляски с бубном из за того, что никто не знает что происходит на шине i2c, а ТС посмотреть не может.
Тогда надо и указывать что Вы говорите не о BMP180 а о XC6206
а на него можно подать до 7 в
Но суть в том, что так как BMP180 работает от 1.6 вольта нет никакого смысла подавать на XC6206 напряжение больше чем 3 вольта (да и то с запасом)
Поэтому советы -увеличить напряжение на шилд - это пляски с бубном (типа а вдруг... чудо)
 

Сергей_Ф

Moderator
Команда форума
суть в том, что так как BMP180 работает от 1.6 вольта нет никакого смысла подавать на XC6206 напряжение больше чем 3 вольта
Это почему же, нет? На шилде используется xc6206 на 3.3 в на выходе. При подаче на её вход тех же 3.3 в на выходе будет меньше чем 3.3 в любом случае. А значит уровни логических 1 и 0 изменятся и могут выйти из допустимого диапазона.
Или Вы считаете что логические уровни на выходе шилда не зависят от питающего напряжения чипа BMP?
 
Последнее редактирование:

Alexey N

Member
Про то, что у меня шилды с обвязкой я писал несколько раз. Конечно правильнее говорить полное название шилда. Тем более, что у меня GY-68. Но обвязка у них идентичная и я надеялся, что все понимают о чем мы говорим.
Ну что ж. Боюсь уже сглазить, но вроде помог код с arduino.cc. Сейчас изучаю код по первой ссылке. Он, правда более сложный, но на мой взгляд более правильный. Хотя, скорее всего, последую советам старика Оккама и оставлю код с arduino.cc.
Спасибо всем участвующим, прошу прощения, что морочил всем голову. У самого мозг уже начинал закипать. Каюсь, что не померил тестером уровень. Но боюсь я бы просто не разобрался, что я там намерил.
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
@Alexey N по первой ссылке активно используются встроенные резисторы подтяжки Ардуино. Их не на esp, так что не факт, что будет работать.
То что код с forum.arduino.cc помог, это очень хорошо. И извиняться Вам не за что.
 

nikolz

Well-known member
Это почему же, нет? На шилде используется xc6206 на 3.3 в на выходе. При подаче на её вход тех же 3.3 в на выходе будет меньше чем 3.3 в любом случае. А значит уровни логических 1 и 0 изменятся и могут выйти из допустимого диапазона.
Или Вы считаете что логические уровни на выходе шилда не зависят от питающего напряжения чипа BMP?
Надо смотреть схему.
Но у меня вроде бы шилд, на которой можно подать 3.3 минуя стабилизатор.
Поэтому полагал , что чел сообразит, что стабилизатор не нужен если 3.3.
Тем не менее, Если 3.3 подать на xc6206,
то на выходе будет 3.3-0.3=3
что вполне подходит для ESP.
 

Сергей_Ф

Moderator
Команда форума
@nikolz так я и не спорю, должно подходить. Но, поскольку, творилось что-то непонятное, а измерений не было - предложил попробовать.
 

nikolz

Well-known member
@nikolz так я и не спорю, должно подходить. Но, поскольку, творилось что-то непонятное, а измерений не было - предложил попробовать.
Я бы предложил, как делал это когда-то сам, все сделать на луа.
Сейчас на луа делать стало совсем просто,
памяти в два раза больше и библиотека большая.
Отлаживать тоже просто.
 
Сверху Снизу