Перейти к содержанию
    

Забавное поведение датчика BS18B20

Тоже самое и с полевиками, фронты - мама не горюй , все регистры читаются как положено , даже загонял значения в USER's registers - . Резервные 5 и 8 выдают строго по DS.

6 байт - о котором нет ни слова , каждый раз выдаёт новое значение, хотя на полученной температуре сие не сказывается.

Один из трёх (дома на макетке) "уложил в талую воду. Ну скачет температура у датчика +/- 0,0625 ( использую 12 разрядов точность ) , но CRC всё равно не сходится хоть ты ее тресни. Второй обнял ВМР085- и они дружненько так показывают одинаково температуру до запятой , сточностью у них понятненько есть разница.

Третий с таким же собратом только от другого проекта , болтаются на улице, и здесь наблюдается единое мнение до 2 знака после запятой.

Ну ее на хрен эту CRC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну ее на хрен эту CRC.

Как так - на хрен?

Тогда уж лучше с плеча - 1-wire на хрен.

Если без CRC, то как тогда отличать, где верно, а где нет?

 

P.S. Есть ли адекватная замена 1-wire?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всю ночь мой датчик проработал на улице. CRC совпадает. Без CRC строго не советую работать, температуры чудные выходят)

 

P.S. Есть ли адекватная замена 1-wire?

1-wire over RS-485? :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

CRC совпадает

C какой точностью работаешь?

 

Если без CRC, то как тогда отличать, где верно, а где нет?

У этих датчиков есть один неприятный момомент , при частом опросе идёт саморазогрев, если CRC не совпало нужно повторить преобразование - чтение. Хорошо , если со второй попытки совпало , а если нет? Я бы не стал доверять такой температуре. У меня в MENU забит пункт - TIMEOUT опроса датчиков. Минимум , который можно задать- 1мин.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

C какой точностью работаешь?

Та, которая по умолчанию - 12 бит.

У этих датчиков есть один неприятный момомент , при частом опросе идёт саморазогрев, если CRC не совпало нужно повторить преобразование - чтение. Хорошо , если со второй попытки совпало , а если нет? Я бы не стал доверять такой температуре. У меня в MENU забит пункт - TIMEOUT опроса датчиков. Минимум , который можно задать- 1мин.

Я опрашиваю датчики не чаще 30 секунд. Причем интервал разбит на две части:

1. Команда на конвертацию.

2. Пауза 15 сек.

3. Чтение температуры.

4. Пауза 15 сек.

5. Переход к п. 1.

 

Такие паузы пришлось взять по причине использования ОС. А для формирования точной времянке на шине, приходится использовать критические секции (читай запрет прерываний). Чтобы часто систему не вешать - интервал взять большой. По сути для уличного измерения температуры его можно увеличить вплоть до 30 минут, чаще вряд ли оправдано. Для дома (ИМХО) - 1 минута, если датчик работает как противопожарный. И до 10 - 20 минут, если "просто" измеряет.

 

Как-то так)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Команда на конвертацию.
+ (~)750ms (обычно меньше)= данные. 0xF0 0x55 Rom 0x44 750ms 0xF0 0x55 Rom 0xBE ~= 800ms

У меня таймер работает по секундно , очень удобно 1Гц получать из USART-ого кварца.

Я это к чему, в течении 1 сек можно конвертировать и прочитать. Зачем

2. Пауза 15 сек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

+ (~)750ms (обычно меньше)= данные. 0xF0 0x55 Rom 0x44 750ms 0xF0 0x55 Rom 0xBE ~= 800ms

У меня таймер работает по секундно , очень удобно 1Гц получать из USART-ого кварца.

Я это к чему, в течении 1 сек можно конвертировать и прочитать. Зачем

Так КС-то до сих пор не сходится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...приходится использовать критические секции (читай запрет прерываний). Чтобы часто систему не вешать - интервал взять большой....

 

все с этого начинали. с синхронизации с другими критическими событиями в девайсе. но если присмотритесь повнимательней к протоколу, то точно выдерживать временной срез необходимо только в одном месте - от синхроимпульса до начала тайм-слота. всё остальное апсолютно не критично. если весь сыр-бор загнать в прерывание, то собственно общение по 1wire ни с кем конфликтовать и не будет в принципе...

 

типа совет дня.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

типа совет дня.

Спасибо, очень ценный совет!

В будущем, будет время заняться - попробую внедрить тему... Жаль в "ходовых" мегах один USART. Ну да ладно, таймерное прерывание лишнее найти думаю не проблема...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Жаль в "ходовых" мегах один USART
И чему это мешает?

1-USART = N-sensors 1-Wire+4-KNOB(можно больше, но мне не надо)+LCD+(прикручиваю в данный момент)радиомодуль. Требует мультиплексор =1 транзистор +2 сигнала квинтирования. Естественно все используют свои прерывания.

Используй 164P- там их два. Если пишешь на С - максимальная версия этой линейки 1284

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так КС-то до сих пор не сходится?

Охренеть ( личная цензура внесла коррективы в это слово) . Чем думал пИсатель этой проги от МАКСИМ. Всё раком.

post-33339-1357333589_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И чему это мешает?

1-USART = N-sensors 1-Wire+4-KNOB(можно больше, но мне не надо)+LCD+(прикручиваю в данный момент)радиомодуль. Требует мультиплексор =1 транзистор +2 сигнала квинтирования. Естественно все используют свои прерывания.

Используй 164P- там их два. Если пишешь на С - максимальная версия этой линейки 1284

Сложно :rolleyes:

У меня один USART постоянно под RS-485 занят)

 

Охренеть ( личная цензура внесла коррективы в это слово) . Чем думал пИсатель этой проги от МАКСИМ. Всё раком.

Да уж... тут же невоороженным глазом видно, что две суммы не сходятся...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да уж... тут же невоороженным глазом видно, что две суммы не сходятся...

Да всё сходится и на первой и на второй картинке , только найдите семь отличий, такое вот предрождественское развлечение. А вот в конец можно писать слово из трёх букв и всё будет нормально.

post-33339-1357383656_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

..Жаль в "ходовых" мегах один USART...

 

сдался вам этот USART. можно в фоне, ногодрыганьем. да - таймер лучше разгрести. слишком разные временные интервалы - пришлось в своё время отказаться от "универсального временного задатчика" - таймер подправляю на лету, в зависимости от нужного интервала. обработчик зависит от карты считываемой из флэша. получается некая аля стэйт машина молотящая в фоновом режиме необходимые команды, описанные (и корректируемые уже чисто отдельно в таблице). сами мат. вычисления происходят в "основном потоке". для этого добавлены такие команды как: ожидание, перейти на начало и несколько ещё специфичных...реально в боевом железе надо быстро сканировать все датчики (штук 6-8), посему они все на одном порту и за каждую секунду реальная картина необходимая для принятия решения каждый раз известна. разогрев самих датчиков обычно лежит в пределах 0,2 градуса и при необходимости повышения точности - можно учитывать при задании корректирующего значения после линии сборки на самом производстве изделий (характеристика резисторных датчиков линейна - так, что достаточно одной точки).

речь шла о мега128, кварц 14,7456 МГц но в своё время реализовывал и на 51 серии с кварцем 24 и тактовой 2МГц. работает на ура.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...