реклама на сайте
подробности

 
 
> Стабильность i2c, attiny internal 1Mhz
dontsov
сообщение Mar 22 2018, 15:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 25-11-17
Пользователь №: 100 351



Добрый день!

Есть связка: Attiny85 (slave), ESP8266 (master). Кусок посылки иногда в виде FF. Не всегда.

Может ли это быть из-за того, что внутренний генератор Attiny85 не откалиброван?
Я ставлю сон 60 мин, просыпается через 62 мин.

Частота: 100кГц

В attiny85 библиотека: https://github.com/puuu/USIWire
у ESP стандартная "Wire"

Делаю wi-fi счетчик воды. Автономный. https://github.com/dontsovcmc/ImpCounter
p.s. Хочется услышать конструктивную критику в целом по проекту.

Спасибо!

Сообщение отредактировал dontsov - Mar 22 2018, 15:49
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 12)
rx3apf
сообщение Mar 22 2018, 16:03
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



I2C на времянки никак не завязана.
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Mar 22 2018, 16:50
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(dontsov @ Mar 22 2018, 22:48) *
Частота: 100кГц

100кГц - это максимальная частота, возможно вы её превышаете и кто-то не успевает отрабатывать.
Попробуйте поставить 75кГц например.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 22 2018, 16:55
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(HardEgor @ Mar 22 2018, 18:50) *
100кГц - это максимальная частота, возможно вы её превышаете и кто-то не успевает отрабатывать.
Попробуйте поставить 75кГц например.

В I2C, насколько помню, обычно есть требования не по частоте клока, а по длительностям положительной и отрицательной частей периода SCL.
Частота может быть в норме, а вот какая-то длительность зарезана.
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Mar 22 2018, 17:06
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(jcxz @ Mar 22 2018, 23:55) *
Частота может быть в норме, а вот какая-то длительность зарезана.

Подозреваю, что внутри чипов тайминги выдержаны, а вот работу на максимальной частоте.... Attiny сдюжит и 400кГц(хотя это как порты и USI настроишь), а вот ESP8266 сурово оптимизирован - может косячить.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 22 2018, 18:35
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dontsov @ Mar 22 2018, 17:48) *
Делаю wi-fi счетчик воды. Автономный. https://github.com/dontsovcmc/ImpCounter
p.s. Хочется услышать конструктивную критику в целом по проекту.

Насчёт "в целом" - сильно сомневаюсь в сказанном там: "Двух батареек АА должно хватить на несколько лет!"
ESP8266 жрёт и греется как утюг - во время работы чип всё время горячий. На профильном форуме писали о его токах потребления в сотни мА.
И насчёт "в режиме передачи данных: 70мА (~2 секунды)" - ну-ну, автор конечно невзначай забыл про время на подключение ESP8266 к WiFi после просыпания.
Имхо: разумнее было вместо AVR+ESP взять 2 каких-нить CC2530 (или подобный МК со встроенной RF-частью), один прицепить к счётчику, другой - к роутеру (и запитать от него). И получить реально долгое время работы от батарейки.
Но как всегда - автор пошёл тупым абдуриновым путём... smile3046.gif
Go to the top of the page
 
+Quote Post
dontsov
сообщение Mar 27 2018, 12:23
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 25-11-17
Пользователь №: 100 351



Цитата(HardEgor @ Mar 22 2018, 20:06) *
Attiny сдюжит и 400кГц

даже, если на частоте 1МГц работает?
Про стабильность i2c на ESP8266 почитаю, спасибо.


Цитата(jcxz @ Mar 22 2018, 21:35) *
Насчёт "в целом" - сильно сомневаюсь в сказанном там: "Двух батареек АА должно хватить на несколько лет!"
ESP8266 жрёт и греется как утюг - во время работы чип всё время горячий. На профильном форуме писали о его токах потребления в сотни мА.
И насчёт "в режиме передачи данных: 70мА (~2 секунды)" - ну-ну, автор конечно невзначай забыл про время на подключение ESP8266 к WiFi после просыпания.
Имхо: разумнее было вместо AVR+ESP взять 2 каких-нить CC2530 (или подобный МК со встроенной RF-частью), один прицепить к счётчику, другой - к роутеру (и запитать от него). И получить реально долгое время работы от батарейки.
Но как всегда - автор пошёл тупым абдуриновым путём... smile3046.gif


Это же очень просто измерить: вывод в лог с временными метками. По логу я вижу, что подключение идет очень быстро. (отчасти из-за режима deepsleep. Если отключать EN, пробуждение будет дольше).
Почему же путь тупой, если устройство работает? Я взял то, что больше описано, хотя и наткнулся на тонну нюансов =(.

Сообщение отредактировал dontsov - Mar 27 2018, 12:25
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 27 2018, 14:41
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dontsov @ Mar 27 2018, 15:23) *
Это же очень просто измерить: вывод в лог с временными метками. По логу я вижу, что подключение идет очень быстро. (отчасти из-за режима deepsleep. Если отключать EN, пробуждение будет дольше).

У меня ESP8266 к роутеру секунд 10 подключается. Не после сна, холодную, но всё же....

Цитата(dontsov @ Mar 27 2018, 15:23) *
Почему же путь тупой, если устройство работает? Я взял то, что больше описано, хотя и наткнулся на тонну нюансов =(.

Тупой, потому что поставили цель - батарейное устройство, и для реализации самый наихудший наверное по потреблению вариант. Да и реализация - наихудшая, потому что "абдурина". Этим всё сказано. laughing.gif
Go to the top of the page
 
+Quote Post
k155la3
сообщение Mar 27 2018, 17:38
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Чтобы снять все вопросы по I2C
1. Подтягивающие резисторы должны быть не более 10 кОм. (это определяет быстродействие шины, завал фронтов, помехоустойчивость)
Вообще - см. стандарт от NXP. Наблюдал случаи, когда эти резисторы ставили 100 кОм sm.gif
2. Длина проводников шины должна быть минимально. Хотя будет работать достаточно устойчиво и на 20-30 см / 200 кГц.
3. Максимальная частота SCL шины (по базовому стандарту) 400 кГц.
4. Гарантированно не должно быть помех. Любая импульсная помеха может исказить инф. на шине или вообще ввести в ступор мастера и/или слейва.
Это требование к разводке платы, расположению проводников.
5. Опятьже по стандарту нормируется длительность фронта-спада (это завязано на п.1 выше)
Для проверки что все правильно желательно посмотреть осцилографом что происходит на шине.



ps.
Построение подобных приборов учета "в целом".
В прибор устанавливается 2 батареи - одна литиевая, долгоиграющая, на 2-4-8 лет работы "ядра" измерителя.
(она обеспечивает только метрологическую ф-ию прибора, без второстепенных, вроде питания радиоканала или даже индикации)
К этой метрологической батарее доступ только через сертифицированный сервис или при поверке прибора.
Вторая батарея имеет свободный доступ, и может заменяться даже потребителем.
На нее навешиваются все остальные потребители - внешний интерфейс, радиоканал, индикация, подсветка и т.п.
т.е. то, что не имеет отношения к метролого-коммерческой ф-ии учета того, чего меряем.
----
Радиоканал очень прожорливая весч. Оно постоянно должно находится в режиме дежурного приема, или
работать с каким-либо периодом. Я уже не говорю о режиме передачи.
Если ОНО будет активироваться раз в сутки, на 10 секунд - то еще куда-ни-шло.
Если же Вы хотите получать инф. с девайса в реалтайм - то батарейки придется менять достаточно часто.
Это утомительно и унизительно.
К томуже Attiny85 - далеко не микропотребляющий контроллер. См. STM32Lxxxx, MSP430 итп.

Go to the top of the page
 
+Quote Post
vladec
сообщение Mar 28 2018, 07:13
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Цитата
Оно постоянно должно находится в режиме дежурного приема

По современной идеологии построения таких систем, инициатором обмена всегда должен быть датчик, так что вся работа по соединению и передаче данных только при периодическом просыпании и WiFi здесь не годится, надо использовать что то предельно узкополосное, например, CC1310.
Go to the top of the page
 
+Quote Post
dontsov
сообщение Mar 28 2018, 09:29
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 25-11-17
Пользователь №: 100 351



Цитата(k155la3 @ Mar 27 2018, 20:38) *
.
Это утомительно и унизительно.
К томуже Attiny85 - далеко не микропотребляющий контроллер. См. STM32Lxxxx, MSP430 итп.


Спасибо за подробную справку про i2c и схему работы автономных устройств!

Вы так пишите про attiny, что я чувствую себя предлагающем схему мультивибратора на картонке на транзисторах МП42..

Про STM понял..
У меня устройство по таймеру ресетит ESP и слушает команды от него. Т. е. постоянная связь не нужна.

WiFi я использую потому что хочу сделать "домашнее" устройство. Воткнул и забыл.

по этой же причине выбрал распространённые детали.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 28 2018, 09:52
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dontsov @ Mar 28 2018, 12:29) *
WiFi я использую потому что хочу сделать "домашнее" устройство. Воткнул и забыл.

Так какое же это "забыл" если вспоминать про батарейки каждый месяц придётся? Сами себе противоречите.
"Воткнул и забыл" это сделать на чём-то действительно малопотребляющем (отдельный RF-модуль или ZigBee или ...), но никак не ESP8266.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Mar 28 2018, 15:13
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Пока Вы работаете с прототипом, процессор не принципиален. Главное - чтобы Вам с ним было комфортно работать с точки зрения тех. характеристик и софта. При этом свой софт надо изначально писать с ориентацией на переносимость на другие процессоры (реализовывать свой HAL).
После прототипа проект можно соптимизировать как в сторону более простого-дешевого процессора, так и наоборот.


Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 06:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01498 секунд с 7
ELECTRONIX ©2004-2016