haker_fox 61 3 декабря, 2011 Опубликовано 3 декабря, 2011 · Жалоба Так может , это вообще не датчик , а RS485 дурит. Я свой уличный датчик читаю один раз в минуту и то думаю , что это очень часто. На 485 не похоже, т.к. кроме температуры читаются другие датчики, их показания верны. Да и протокол с контрольной суммой. Кстати, ошибка КС датчика исчезла. Сегодня утром проверяю температуру - на датчике -15, перезагрузил программно устройство, появилась реальная температура -20. Такое ощущение, что то ли задача перестает выполняться (опрашивать датчик), то ли какие-то сервисы ОС перестают функционировать... данные с датчика как бы "замирают", "замораживаются". Ладно, буду работать дальше... О результатах сообщу, м.б. кому-нибудь и будет полезен этот материал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 3 декабря, 2011 Опубликовано 3 декабря, 2011 · Жалоба Была ситуация очень напоминающая Вашу, только датчик как бы... "сжаривался" при t > 90C. Вообще не отрабатывалось условие START. Времянки делал через UART (распространенное явление), так вот при высокой температуре времянки датчика "уплыли" и в UART приходило не то, что ожидалось. Поборол софтово. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
256 0 3 декабря, 2011 Опубликовано 3 декабря, 2011 · Жалоба А то что у Вас АВР на улицу вынесен, случаем не с длиной проводов связано, в том смысле что на 10м провода сбои появляются, а на 0.5 нормально работает? И датчик с паразитным питанием или полным? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 3 декабря, 2011 Опубликовано 3 декабря, 2011 · Жалоба А то что у Вас АВР на улицу вынесен, случаем не с длиной проводов связано, в том смысле что на 10м провода сбои появляются, а на 0.5 нормально работает? И датчик с паразитным питанием или полным? На длину проводов не похоже, т.к. идет достаточно частый (каждые 150 мс) обмен с МК, за сутки непрерывной работы 2 ошибки из 46 тыс. переданных и принятых пакетов. Другие датчики нормально опрашиваются. Датчик с полным питанием. И все таки все больше похоже, что низкоприоритетная задача опроса датчика наглухо перестает работать. Выходишь на улицу, дышишь на датчик, держишь его в теплых руках, а программа на компе "исправно" показывает -14. При нормальной работе, показания всегда меняются. Что интересно, задачи более высокого приоритета продолжают работать (там АЦП опрашивается). А задачи приоритетом еще ниже тоже встают, это видно по отсутствию мигания служебного светодиода. Вот так вот я совершенно зря подозревал датчик...))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 5 декабря, 2011 Опубликовано 5 декабря, 2011 · Жалоба Полагаю, что проблема решена. 1,5 суток ни одного сбоя не замечено. Температура регистрируется правильно. В чем было дело? Элементарно неверно былиз заданы размеры стеков для задач. После увеличения размера стеков задача опроса датчика и еще одно (приоритетом ниже), сбои пропали. Большое спасибо Всем за помощь, участие и советы!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 1 января, 2013 Опубликовано 1 января, 2013 · Жалоба И все таки оно плавает.... Столкнулся с этим вот сейчас. Вчера все работало. Сегодня утром - ошибка CRC. Что интересно, датчик расположен на этот раз на плате. Тот же самый код великолепно читает DS1990. Вот прикоснулся рукой к DS18B20, температура изменилась - и КС снова совпала... Я уже разочаровался в этом мире) Еще 1 января) Если игнорировать КС, то температура адекватная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RabidRabbit 0 1 января, 2013 Опубликовано 1 января, 2013 · Жалоба Либо стека всё же не хватает, либо неверна процедура подсчёта CRC, таковы мои версии :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 1 января, 2013 Опубликовано 1 января, 2013 · Жалоба Либо стека всё же не хватает, либо неверна процедура подсчёта CRC, таковы мои версии :) Две разные процедуры подсчета выдают одно и тоже значение вкупе с онлайн-калькулятором Причем если датчик "погреть" пальцами, то CRC начинает сходится... Я же правильно считаю: 1. Принимаю scratchpad в буфер - 9 байт. 2. Подсчитываю CRC8 для 8 байт буфера. 3. Сравниваю эту КС с 9-м байтом буфера. Уже шарики за ролики заходят) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 1 января, 2013 Опубликовано 1 января, 2013 · Жалоба Две разные процедуры подсчета выдают одно и тоже значение вкупе с онлайн-калькулятором Причем если датчик "погреть" пальцами, то CRC начинает сходится... Я же правильно считаю: 1. Принимаю scratchpad в буфер - 9 байт. 2. Подсчитываю CRC8 для 8 байт буфера. 3. Сравниваю эту КС с 9-м байтом буфера. Уже шарики за ролики заходят) А еще бывает, что тайминги "плывут" взависимости от температуры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 1 января, 2013 Опубликовано 1 января, 2013 · Жалоба Да потому что не тем в новогоднее утро занимаетесь. Оно для другого, ИМХО, изобретено. Да нормааааально :rolleyes: Я же это с другими делами делаю) Да, похоже, что дело чисто программное. Снова напоролся на свои же грабли. Но я почему вопрос поднял, дело в том, что о этих датчиках известно, что иногда у них слетает EEPROM, либо они просто "погибают". Подобные темы я нашел на этом форуме... Вот и не знал, куда податься.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 1 января, 2013 Опубликовано 1 января, 2013 · Жалоба Ну EEPROM они победили и даже аппноут убрали с сайта. Я им лично вопрос по сему поводу задавал. Сейчас проверил , аж три датчика на одной линии с калькулятором - ни разу CRC не сошлась , а температуру показывают адекватную и дружненько так. Проверяю по BMP085. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 2 января, 2013 Опубликовано 2 января, 2013 · Жалоба ни разу CRC не сошлась Энто как? Может быть у Вас тоже дело в софте? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 2 января, 2013 Опубликовано 2 января, 2013 · Жалоба Еще и времянки в драйвере 1wire были "замечательными": при положительной температуре все считывается отлично. Выставляешь датчик на улицу - температура плюс/минус за тысячу, КС не сходится))) Как я понимаю, у датчика RC-генератор внутри, которые от температуры немного плавает, и времянки шины плывут... Ну тема для начинающих, а! ________________________________ З.Ы. Все в куче: стэк, времянки, праздники... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 2 января, 2013 Опубликовано 2 января, 2013 · Жалоба Может быть у Вас тоже дело в софте? Да скорее не в софте, USART- там думать ни о чём не надо. Вот только драйвер согласования на биполярниках , что-то мне кажется "дурит", соберу его на полевиках , посмотрю что-будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 2 января, 2013 Опубликовано 2 января, 2013 · Жалоба ..у датчика RC-генератор внутри... тактовый да. а измеряющий - снаружи естественно резистор, термо который :) с временнЫми интервалами - строго по даташиту. и будет вам счастье. если не паразитное питание то вплоть до сотен метров по пром зоне обычной лапшой. если завалы наблюдаете - то подтягивайте линию возле самого датчика (как указано в некоторых даташитах) и снова счастье вас не забудет! :) и вообще С Новым Годом! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться