|
|
  |
Забавное поведение датчика BS18B20 |
|
|
|
Jan 2 2013, 23:48
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Тоже самое и с полевиками, фронты - мама не горюй , все регистры читаются как положено , даже загонял значения в USER's registers - . Резервные 5 и 8 выдают строго по DS. 6 байт - о котором нет ни слова , каждый раз выдаёт новое значение, хотя на полученной температуре сие не сказывается. Один из трёх (дома на макетке) "уложил в талую воду. Ну скачет температура у датчика +/- 0,0625 ( использую 12 разрядов точность ) , но CRC всё равно не сходится хоть ты ее тресни. Второй обнял ВМР085- и они дружненько так показывают одинаково температуру до запятой , сточностью у них понятненько есть разница. Третий с таким же собратом только от другого проекта , болтаются на улице, и здесь наблюдается единое мнение до 2 знака после запятой. Ну ее на хрен эту CRC.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Jan 3 2013, 00:39
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(ILYAUL @ Jan 3 2013, 01:48)  Ну ее на хрен эту CRC. Как так - на хрен? Тогда уж лучше с плеча - 1-wire на хрен. Если без CRC, то как тогда отличать, где верно, а где нет? P.S. Есть ли адекватная замена 1-wire?
|
|
|
|
|
Jan 3 2013, 10:08
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата CRC совпадает C какой точностью работаешь? Цитата Если без CRC, то как тогда отличать, где верно, а где нет? У этих датчиков есть один неприятный момомент , при частом опросе идёт саморазогрев, если CRC не совпало нужно повторить преобразование - чтение. Хорошо , если со второй попытки совпало , а если нет? Я бы не стал доверять такой температуре. У меня в MENU забит пункт - TIMEOUT опроса датчиков. Минимум , который можно задать- 1мин.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Jan 3 2013, 11:26
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (ILYAUL @ Jan 3 2013, 19:08)  C какой точностью работаешь? Та, которая по умолчанию - 12 бит. QUOTE (ILYAUL @ Jan 3 2013, 19:08)  У этих датчиков есть один неприятный момомент , при частом опросе идёт саморазогрев, если CRC не совпало нужно повторить преобразование - чтение. Хорошо , если со второй попытки совпало , а если нет? Я бы не стал доверять такой температуре. У меня в MENU забит пункт - TIMEOUT опроса датчиков. Минимум , который можно задать- 1мин. Я опрашиваю датчики не чаще 30 секунд. Причем интервал разбит на две части: 1. Команда на конвертацию. 2. Пауза 15 сек. 3. Чтение температуры. 4. Пауза 15 сек. 5. Переход к п. 1. Такие паузы пришлось взять по причине использования ОС. А для формирования точной времянке на шине, приходится использовать критические секции (читай запрет прерываний). Чтобы часто систему не вешать - интервал взять большой. По сути для уличного измерения температуры его можно увеличить вплоть до 30 минут, чаще вряд ли оправдано. Для дома (ИМХО) - 1 минута, если датчик работает как противопожарный. И до 10 - 20 минут, если "просто" измеряет. Как-то так)
--------------------
Выбор.
|
|
|
|
|
Jan 3 2013, 12:10
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата 1. Команда на конвертацию. + (~)750ms (обычно меньше)= данные. 0xF0 0x55 Rom 0x44 750ms 0xF0 0x55 Rom 0xBE ~= 800ms У меня таймер работает по секундно , очень удобно 1Гц получать из USART-ого кварца. Я это к чему, в течении 1 сек можно конвертировать и прочитать. Зачем Цитата 2. Пауза 15 сек.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Jan 4 2013, 15:21
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата Жаль в "ходовых" мегах один USART И чему это мешает? 1-USART = N-sensors 1-Wire+4-KNOB(можно больше, но мне не надо)+LCD+(прикручиваю в данный момент)радиомодуль. Требует мультиплексор =1 транзистор +2 сигнала квинтирования. Естественно все используют свои прерывания. Используй 164P- там их два. Если пишешь на С - максимальная версия этой линейки 1284
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Jan 5 2013, 01:45
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (ILYAUL @ Jan 5 2013, 00:21)  И чему это мешает? 1-USART = N-sensors 1-Wire+4-KNOB(можно больше, но мне не надо)+LCD+(прикручиваю в данный момент)радиомодуль. Требует мультиплексор =1 транзистор +2 сигнала квинтирования. Естественно все используют свои прерывания. Используй 164P- там их два. Если пишешь на С - максимальная версия этой линейки 1284 Сложно У меня один USART постоянно под RS-485 занят) QUOTE (ILYAUL @ Jan 5 2013, 06:08)  Охренеть ( личная цензура внесла коррективы в это слово) . Чем думал пИсатель этой проги от МАКСИМ. Всё раком. Да уж... тут же невоороженным глазом видно, что две суммы не сходятся...
--------------------
Выбор.
|
|
|
|
|
Jan 5 2013, 20:35
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(haker_fox @ Jan 4 2013, 12:08)  ..Жаль в "ходовых" мегах один USART... сдался вам этот USART. можно в фоне, ногодрыганьем. да - таймер лучше разгрести. слишком разные временные интервалы - пришлось в своё время отказаться от "универсального временного задатчика" - таймер подправляю на лету, в зависимости от нужного интервала. обработчик зависит от карты считываемой из флэша. получается некая аля стэйт машина молотящая в фоновом режиме необходимые команды, описанные (и корректируемые уже чисто отдельно в таблице). сами мат. вычисления происходят в "основном потоке". для этого добавлены такие команды как: ожидание, перейти на начало и несколько ещё специфичных...реально в боевом железе надо быстро сканировать все датчики (штук 6-8), посему они все на одном порту и за каждую секунду реальная картина необходимая для принятия решения каждый раз известна. разогрев самих датчиков обычно лежит в пределах 0,2 градуса и при необходимости повышения точности - можно учитывать при задании корректирующего значения после линии сборки на самом производстве изделий (характеристика резисторных датчиков линейна - так, что достаточно одной точки). речь шла о мега128, кварц 14,7456 МГц но в своё время реализовывал и на 51 серии с кварцем 24 и тактовой 2МГц. работает на ура.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|