Пост N: 553
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 18.01.09 23:45. Заголовок: А вот никто не замор..
А вот никто не заморачивался с командами READ ROM и MATCH ROM? Иначально хотел использовать SEARСH ROM, но алгоритм чтения с 5 датчиков их ROM получается довольно сложный, решил ограничиться простым чтением ром по очереди. Сейчас на шине два датчика, работают без конфликтов на шине. Но вот остался неясным алгоритм отправки команды MATCH ROM. Сейчас просто отправляю датчикам нужный код, в даташите же стр. 12 (англ.) в блок схеме после отправки каждого бита есть проверка BIT x MATCH? Что это такое кто знает и как это реализовать? Но без нее все работает...
Пост N: 1131
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
3
Награды:
Отправлено: 19.01.09 02:01. Заголовок: Алексей пишет: А во..
Алексей пишет:
цитата:
А вот никто не заморачивался с командами READ ROM и MATCH ROM?
Я не знаток в английском, но насколько я понял, то на блок - схеме показана работа самого устройства, т.е. алгоритм по которому он работает, см. объяснение в разделе ROM Commands. Пользователю с этим заморачиваться не надо, всё уже реализована внутри м/с. P.S. Всегда их использую, а как без этого поцепить 20-30 датчиков на одну шину?
Пост N: 950
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 19.01.09 21:12. Заголовок: Я сейчас как-раз тож..
Я сейчас как-раз тоже заморачиваюсь. Пока переодически не сходится контрольная сумма. Заметил, что при работе, когда идёт обращение к датчикам, напряжение питания скачет до 4,6V (в режиме ожидания - 5V). От питания МК развязка - 100 Ом. Без развязки - то же самое. У кого есть рабочее устройство, посмотрите, как там?
Пост N: 554
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 20.01.09 09:56. Заголовок: У меня пока на шине ..
У меня пока на шине 2 датчика, питание нормальное не паразитное. В программе сначала дается команда на преобразование температуры обоим датчикам, потом по мере необходимости контроллер выдает в шину нужный серийник и читает температуру с датчика. Интересно то, что периодически контроллер с датчика, который читается первым считывает одни единицы, как будьто шину никто не занимал. Со вторым датчиком проблем нет. Не исключено конечно что это нет контакта ведь второй датчик опрашивается без сбоев, но не в этом причина. Думал сбоит контроллер отсылает не тот серийник, тоже не попал, все правильно отсылает.
Alberto, измерял F890-м. А датчики у Вас какие? У меня DS1820. Добавил количество допускаемых ошибок (проверяю CRC), с 4-х до 10-ти, всё стало работать нормально. Сейчас подсоединил силовую часть, продолжаю испытания.
Пост N: 555
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 20.01.09 16:45. Заголовок: Причина выяснена, са..
Причина выяснена, сам датчик почему то сбоит, возможно из за того что с ним уже чего только не делали. Вобщем шина работает на ура, довольно интересная штука.
Пост N: 12
Зарегистрирован: 19.10.07
Откуда: РФ, Тюменская обл., г.Белоярский
Рейтинг:
0
Отправлено: 19.03.09 21:13. Заголовок: Величина задержки для температурного преобразования
Доброго времени суток. Вернулся к термометру уже с датчиком DS18B20. По ряду причин не хочу использовать "плавающую задержку", а вот информацию, какая должна быть в среднем фиксированная задержка, достаточная для уверенного окончания процесса преобразования температуры, почему-то найти нигде не могу. Может, невнимательно искал, но... В исходниках для линий с паразитным питанием нашел величину 700мс. Но у меня динамическая индикация и как-то это много для одного процесса. Может, кто-то подскажет?
Пост N: 646
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 19.03.09 23:06. Заголовок: Лично я с этим датчи..
Лично я с этим датчиком на максимальном разрешении на 3 датчиках пробовал ставить фиксированную задержку. При 200 мс у всех наблюдалась устойчивая работа. Это почти в 4 раза меньше рекомендованной задержки по даташиту(там указаны все задержки для разных разрешений). Соответственно никто не может гарантировать, что абсолютно все датчики будут работать с такой задержкой.
Пост N: 13
Зарегистрирован: 19.10.07
Откуда: РФ, Тюменская обл., г.Белоярский
Рейтинг:
0
Отправлено: 20.03.09 08:40. Заголовок: Вот елки-палки, всё ..
Вот елки-палки, всё равно много. Читал, по форуму, что команды управления датчиком раскидывают в малые кольца индикации и они выполняются во время индикации одного разряда, но 200мс - будет уж очень сильно выделяться. Или, может, еще какой-то способ есть? Что-то читал насчет помещения динамической индикации в ПП прерываний. Но подробностей не было. Альберто писал именно о том, что раскидывал команды управления датчиком среди малых колец. Интересно все же, куда он смог деть вот эти 200мс?
Пост N: 647
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 20.03.09 08:48. Заголовок: Тоже раскидывал кома..
Тоже раскидывал команды по малым кольцам индикации(прерывания), длительностью 5 мс. А эта задержка выполнялась в основном теле. При этом когда задержка закончится выставлялся флаг и работа с датчиком продолжалась. С плавающей задержкой еще проще, опросил, если занят просто идем на следующее кольцо индикации не трогая датчик, освободился, продолжаем работу с датчиком...
Пост N: 1071
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 20.03.09 11:17. Заголовок: fox пишет: еще како..
fox пишет:
цитата:
еще какой-то способ есть
У меня, например, вообще весь опрос организован от прерываний TMR1. Если, у Вас, в программе имеются какие-либо прерывания от таймеров (например, динамическая индикация), сформировать задержку не представляет никакого труда. Добавьте в обработчик прерывания счётчик (период таймера помноженный на необходимое число), и всё.
Здрвствуйте!Помогите устранить проблему: на диске "Самоуитель по прогр. PIC" в папке "Взлом" есть терморегулятор на PIC 16F628 и DS18S20с индикацией под три 7-сегментные АЛС.Я взял 16F628A и в начале программу не переделывал-в диапазоне температур с 12 до 99 градусов работает без проблем, а как только температура опускается ниже 12 градусов на индикаторах мерцают нули(восьмерки).У меня предположение, что при ниже 12 градусов PIC не может прочитать температуру с датчика. Но почему именно с 12 градусов? Над программой я по-исдевался как только мог,идей не осталось, чего-то я еще не знаю, самому не удается одолеть проблему. Я видоизменил программу до опроса 2-х датчиков, и по результатам сравнения температур срабатывает устройство, и еще при одновременном нажатии кнопок + и – выводится температура со второго датчика на индикаторы.Это все работает только при температуре выше 12 градусов.
Пост N: 947
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 29.10.09 23:03. Заголовок: У вас в программе ес..
У вас в программе есть вычисляемые переходы? Очень смахивает на сбой именно там. Смотрите все вычислямые переходы, не попадает ли какой на границу... Очень похоже на эту бяку.
Пост N: 1528
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
4
Награды:
Отправлено: 29.10.09 23:20. Заголовок: WOWAN1 пишет: Я взя..
WOWAN1 пишет:
цитата:
Я взял 16F628A и в начале программу не переделывал-в диапазоне температур с 12 до 99 градусов работает без проблем, а как только температура опускается ниже 12 градусов на индикаторах мерцают нули(восьмерки).
меня смутило то, что "программу не переделывал". Сам я данныйтерморегулятор не собирал, но к схемам опубликованным в "Самоучителе" доверие у меня на 100%. Может у Вас МК без буквы "А"? Что-то такое проскакивало здесь на форуме с частотомером, взяд человек другой проц (продавцу в магазине это тем более все равно) и не заработало, поменял МК на нужный и все "бяки" исчезли. Посмотрите внимательно.
Пост N: 4
Зарегистрирован: 09.01.08
Откуда: Украина, Житомир
Рейтинг:
0
Отправлено: 30.10.09 15:01. Заголовок: Схема и программа на..
Схема и программа написаны под микроконтроллер 16F628, а так как у нас в городе этого PICa нет, то я поставил 16F628A , а в программе изменил только LIST p=16F628 на LIST p=16F628a, а что еще менять чтобы работало с этим Пиком не известно мне.
Пост N: 1147
Зарегистрирован: 14.01.07
Откуда: Россия, Лиски
Рейтинг:
2
Фото:
Отправлено: 30.10.09 21:41. Заголовок: Из документа DS40048..
Из документа DS40048A Переход с микроконтроллеров PIC16F62x на PIC16F628A/PIC16F648A
Аппаратные изменения
Замена ER режима на RC режим генератора Cамое большое отличие PIC16F62X и PIC16F627A/628A/648A - это отсутствие ER режима генератора. ER режим генератора был заменен на RC режим. В большинстве случаев переход от ER режима к RC режиму генератора заключается в добавлении конденсатора и изменении сопротивления резистора, чтобы получить требуемую частоту тактового генератора. Если частота тактового генератора должна быть (или значение близко) 37кГц или 4МГц, то RC режим генератора может быть заменен на режим тактового генератора INTOSC.
Защита кода во Flash памяти программ Изменилась защита Flash памяти программ. Вместо защиты памяти программ по секциям реализована защита сразу,, всей;: Flash памяти программ. Биты конфигурации СР0<12,10>, СР1<13,11> PIC16F62X не реализованы в в PIC16F627A/628A/648A. Они заменены одним битом конфигурации СР<13>.
Новые принципы взаимодействия BOR и PWRT Разрешая сброс по снижению напряжения питания (BOR) автоматически не разрешается работа таймера по включению питания (PWRT), как это было реализовано в PIC16F62X.
Параметры работы генератора таймера TMR1 Генератор TMR1 в новых микроконтроллерах разработан для работы на частоте 32.768кГц. В PIC16F62X был рассчитан на работу с частотой до 200кГц.
Двухскоростной режим работы тактового генератора Двухскоростная работа тактового генератора возможна только в режиме INTOSC. В PIC16F62X двухскоростная работа тактового генератора возможна только в ER режиме.
Работа компараторов Работа компараторов во всех режимах соответствует технической документации. Ошибка, описанная в errata document PIC16F62X, исправлена.
Различия технологии изготовления Поскольку PIC16F627A/628A/648A имеют новую технологию изготовления кристаллов, возможны специфичные различия между P1C16F62X и PIC16F627A/628A/648A. Перед началом перехода на новые микроконтроллеры проверьте параметры в таблицах электрических характеристик, на предмет их соответствия вашему проекту.
Изменения в терминологии 1. Термин «Детектор снижения напряжения (BOD)» заменен на «Сброс по снижению напряжения питания(BOR)» с целью более точного соответствия выполняемого действия модулем и его названия. 2. Термин «Внутренний RC генератор (INTRC)» заменен на «Внутренний генератор (INTOSC)», чтобы более точно представлять работу схемы.
Схема и программа написаны под микроконтроллер 16F628, а так как у нас в городе этого PICa нет, то я поставил 16F628A
может и в этом причина. Я бы не просто взял программу, а посмотрел разборки с ней с самого начала. Там в тексте расписана каждая строчка кода: куда, зачем и почему. На мой взгляд это самый эффективный способ.
Пост N: 5
Зарегистрирован: 09.01.08
Откуда: Украина, Житомир
Рейтинг:
0
Отправлено: 01.11.09 22:44. Заголовок: Вначале ПП BIN2_10_T..
Вначале ПП BIN2_10_T в W (аккумулятор) должно записываться значение снятой с датчика температуры, так я это дело заблокировал и записывал в W разные числа от 12 до 1 (с имитировал снятую с датчика температуру); в железе все работает и высвечивает то число которое я записывал в W только меняется число после запятой 0 или 5 высвечивается(как и положено быть).Ниже какой-то температуры (около 9 градусов ) после запятой высвечивается 5 и если дальше понижать температуру 5 постоянно висит и не сменяется на 0(что не должно быть) Снял все имитации и вернул програму в первоначальное состояние. Вот как она себя ведет.C выше 12 градусов все нормально . Далее при понижении температуры высвечивает :00,5 через пол секунды 11,5 и так повторяется несколько раз ; потом 11,0 через пол секунды 00,5 далее через минуту 10,5 через пол секунды 00,5 и так далее –до 9 градусов. Ниже 9 градусов высвечивает только 00,5 даже если и температура изменяется. Если начать повышать температуру то начиная с 10 градусов высвечивает 10,5 через пол секунды 00,5 и так до 12 градусов, а свыше 12 градусов начинается стабильная бесперебойная работа. Помогите устранить эту бяку. Спасибо.
Пост N: 137
Зарегистрирован: 13.12.07
Откуда: г.Макеевка
Рейтинг:
1
Отправлено: 02.11.09 11:24. Заголовок: Погонять программу в..
Погонять программу в Proteuse не пробовал, там можно много чего посмотреть. Там есть PIC16F628A и любые DS18xx. Очень удобно, ставиш любую температуру и наблюдаеш. Может взять за основу "5_2 из практикума" и написать свою программу. Там есть Bin2_10 и работа с датчиком. Переход с 84а на 628а тоже есть, а 7-сег. оставиш прежнюю.
Пост N: 6
Зарегистрирован: 09.01.08
Откуда: Украина, Житомир
Рейтинг:
0
Отправлено: 02.11.09 12:49. Заголовок: За основу я взял te..
За основу я взял termo_24.asm. На данный момент я упростил termo_24.asm до обычного показывающего териометра : реле, кнопки, ПП сравнения, записи / чтения в EEPROM я отключил временно.
Пост N: 1157
Зарегистрирован: 14.01.07
Откуда: Россия, Лиски
Рейтинг:
2
Фото:
Отправлено: 02.11.09 20:37. Заголовок: Вспомнил, я этот рег..
Вспомнил, я этот регулятор тоже делал. Пошёл в гараж, порылся в ящиках - нашёл. Целёхонький лежит. Только без датчика. Пыль стёр, датчик подключил, всё заработало без всяких глюков. Температуру опускал до 5 градусов. Всё индицируется нормально. контроллер - PIC16F628A датчик - DS18B20 Может быть Ваш датчик глючит? Менять не пробовали?
Пост N: 1440
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
4
Отправлено: 02.11.09 20:55. Заголовок: Параллельно, я по ..
Параллельно, я по этому поводу переписываюсь с Владимиром по E-mail (в меру своих текущих возможностей). Живой железяки у меня нет (давно разобрал) и поэтому судить сложно. Поэтому "проповедую" принцип удавки. Естественно, чтобы удавить как следует, нужно время. Если у Игоря имеется живая железяка и она работает нормально, то уже гораздо проще. Есть от чего плясать. На мой взгляд, нужно обратить внимание на железо термодатчика.
Пост N: 7
Зарегистрирован: 09.01.08
Откуда: Украина, Житомир
Рейтинг:
0
Отправлено: 02.11.09 22:03. Заголовок: Igor, у меня датчик ..
Igor, у меня датчик DS18S20 (два датчика) и с обеими такая ситуация взавтра возьму у товарища DS18B20 и запишу в PIC программу termo_26( для DS18B20) и проверю железяку(хотя и не знаю какие проблемы могут быть с железом-проверю резисторы и напряжение на выходе КРЕН5(замерял его сегодня,то было 4.83 вольта)
Поменял КРЕН5 теперь с выхода U=5.05 В . Вчера я писал что програма при температуре с 12 градусов до 9 показывала на индикаторах раз значение температуры, а через короткий промежуток времени(пол секунды или секунду) 00,0 и так повторяется до 9 градусов, а при ниже 9 градусов высвечивает нули: 00,0.При этой КРЕНке программа также само работала(до 12 градусов). Это было, когда датчик DS18S20 ,был подключен на 20 сантиметровых не экранированых проводках. Сегодня я датчик непосредственно впаял на плату,то програма работала до температуры 07,5 градусов . Далее через короткий промежуток времени(пол секунды или секунду) высветило 00,0 ,потом высветило 07,0 градусов и при ниже 7-ми градусов высвечивает нули: 00,0. Железо проверил-все дорожки и номиналы резисторов в норме.
Пост N: 1159
Зарегистрирован: 14.01.07
Откуда: Россия, Лиски
Рейтинг:
2
Фото:
Отправлено: 03.11.09 19:08. Заголовок: Всё понятно. Думаю,..
Всё понятно. Думаю, здесь поможет уменьшение сопротивления резистора, в цепи DQ датчика, с 4,7к до 3,6-3,3к. А так же необходимо обязательно посмотреть, происходит ли считывание бита на линии DQ, как можно ближе к 15 микросекундному диапазону от строба. Как это показано на рисунке №4 подраздела 5/2 самоучителя.
Пост N: 9
Зарегистрирован: 09.01.08
Откуда: Украина, Житомир
Рейтинг:
0
Отправлено: 04.11.09 19:16. Заголовок: Проблема была в ПП ..
Проблема была в ПП WIRE. Там считывание бита с линии начиналось на 22-ой микросекунде от строба. Я сделал, чтобы считывание начиналось на 12-ой микросекунде от строба и все заработало: в области положительных и отрицательных температур (отрицательных, потому что я программу немного изменил). Благодарю всех, кто мне помогал.
Пост N: 1451
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
4
Отправлено: 04.11.09 19:35. Заголовок: Владимир, на мой ..
Владимир, на мой взгляд, приобретенным Вами опытом желательно поделиться в "Обмене…", то есть, написать статью в "Обмен…" о том, что было. Это дорогого стОит. Люди Вам спасибо скажут. Да или нет - Ваше личное дело. В любом случае, рад за Вас.
Пост N: 1263
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
4
Отправлено: 17.12.09 22:19. Заголовок: Именно контрольной с..
Именно контрольной суммы. Что-то мне подсказывает, что в замке нужно проверять совпадение всего номера, зашитого в таблетку, со всем номером, зашитым, к примеру в EEPROM. С одной стороны - защита от "ложного" срабатывания замка. Типа: а вдруг? А с другой стороны - какова вероятность совпадения самой КС? Ведь сколько места можно сэкономить в EEPROM! Вместо записи 8-ми байт на 1 ключ, пишем по байту КС. При инициализации само-собой, читаем всю таблетку и считаем КС. Поговаривают, что даже в авто иммобилайзеры с ключами иногда совпадают.
Пост N: 1017
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
2
Фото:
Отправлено: 19.12.09 15:42. Заголовок: RW1ZK пишет: И то, ..
RW1ZK пишет:
цитата:
И то, гарантия под вопросом.
Ну почему, все таки вероятность совпадения становится куда меньше если сравнивать принятый и записанный серийник побайтно... все таки уже не один байт а восемь...
Пост N: 1179
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 21.12.09 19:21. Заголовок: RW1ZK пишет: Но всё..
RW1ZK пишет:
цитата:
Но всё-же есть.
Как-то пытался подсчитать, сколько понадобится времени, что бы перебрать все возможные варианты (была мысль создать подобное устройство). Насколько помню, выходило что-то около недели.
Пост N: 1563
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
4
Отправлено: 24.12.09 01:07. Заголовок: Общее замечание (б..
Общее замечание (безотносительно к кому-либо). Умение задавать вопросы - искусство, которому нужно целенаправленно учиться (это совсем не просто. Шапками не закидаешь. И это не упрёк, а взывание к элементарному, здравому смыслу). Например, имеются какие-то данные, полученные с использованием чего-то (нужно указать, с использованием чего именно. И поподробнее), вступающие в противоречие с тем, что ожидаемо. То, что ожидаемо и то, что есть, нужно сравнить, причём, поподробнее и без применения весьма неэффективного "правила" типа "догадайся сам" (обычно, по причине повышенного уровня "вьездных" трудозатрат, отвечающими это воспринимается неадекватно. Но не всегда. Это зависит от конкретного человека). То есть, автору проблемного вопроса просто выгодно конкретно "ткнуть носом" в имеющееся противоречие, которое им предварительно и мотивированно доказано. По своей сути, это и есть качественный вопрос, не вызывающий переспрашиваний/уточнений/непонимаек/… тех людей, которые на него отвечают. Подобного рода интеллектуальное уважение к тому, кто отвечает, всегда идет на пользу тому, кто спрашивает. Хотя бы по той причине, что отвечающие могут быть "не в теме" ("находятся в другой теме") и "перенастройка" с одной темы на другую требует определённых трудозатрат. Если человек, задающий вопрос, минимизирует эти трудозатраты (то есть, по-человечески позаботится об отвечающем), то и отвечающие в человеческом долгу не останутся. Прекрасно понимаю, что для тех людей, которые задают вопросы, реализация сказанного выше хлопотно, но "палка имеет 2 конца", и в связи с этим следует учесть, что в грамотно заданном вопросе содержится половина (условно) ответа. Банально, но факт.
Пост N: 98
Зарегистрирован: 21.10.07
Откуда: Россия, Иркутск
Рейтинг:
0
Отправлено: 24.12.09 07:30. Заголовок: Прошу прощения за ка..
Прошу прощения за каламбур в эфире! Вчера до 2х ночи возился с этими датчиками, как говорил профессор Преображенский про Шарикова: "Он меня так вымотал". Суть проблемы в следующем: Написал драйвер для работы с DS-ками, все по честному по документации (правда под AVR). подключаю первый (питание , не паразитное): 1. Подаю импульс сброса (он мне честно отвечает) 2. запрашиваю серийник 0х33 (он опять не врет: 10 A6 D3 0E 00 00 00 10, контрольная сумма совпадает) далее другая задача измерить температуру: 1. Подаю импульс сброса (он мне честно отвечает) 2. команда пропустить серийник 0xCC 3. команда померь температуру и оцифруй 0x44 4. жду 0xFF (и потом еще 1сек, здесь я всячески экспериментировал, все равно) 5. Подаю импульс сброса (он мне честно отвечает) 6. команда пропустить серийник 0xCC 7. далее 0xBE (дай измереное значение) 8. и он выдал SCRATCHPAD: FB 00 8B B2 FF FF 40 95 9A (CRC все совпадает) далеее все покругу. Обратите пожалуйста внимание на показание температуры TEMPERATURE LSB 0xFB TEMPERATURE MSB 0x00 (младший байт прыгает с FB на FA и все, хоть нагревай хоть, охлаждай). Я думаю ему дорога в мусорное ведро.
Второй вообще прикалывается на до мной: 10 92 61 0F 00 00 00 62 (в случае адреса все честно) FF FF FF FF FF FF FF FF FF (а вот SCRATCHPAD, что интересно при первом подключении выдавал корректную на 8 байт 0хFF CRC 0xC9, потом сказал хватит, теперь все 9 байт валит 0xFF. Кто нибудь сталкивался с такими приколами?
Ещё раз прошу прощения, что заморочил голову первым топиком!
потом сказал хватит, теперь все 9 байт валит 0xFF. Кто нибудь сталкивался с такими приколами?
Похоже я столкнулся с такой же проблемой. Купил 2 датчика в одном магазине и оба не реагируют на температуру, везде FF. Если учесть, что мы с одного города, то вполне вероятно попалась бракованная партия, Вы в каком магазине покупали датчик, не на Фурье случаем?
Купил 2 датчика в одном магазине и оба не реагируют на температуру, везде FF
Какой подпрограммой опрашиваете датчики? Не из самоучителя случаем? Я заметил она работает не стабильно почему то... В каких то случаях все четко, а в каких то везде 1... Подпрограмма написана грамотно, по логике должна работать идеально, но видимо что то мешает ей, выяснить пока не удалось причину, т.к. в случае с отладчиком пошагово все работает, отпускаешь в свободный полет везде 1... Сейчас правда можно осциллографом из абонемента посмотреть что творится на шине и просчитать где ошибка вкрадывается... До этого пока руки еще не дошли, так что это просто совет посмотреть шину запоминающим осциллографом... Пока работаю с другой подпрограммой, с ней все четко. Лично из своей практики еще не встречал ни одного бракованного датчика температуры, было куплено их уже штук 50 в промэлектронике, проверены больше половины это точно, работают в устройствах уже штук 15-20. Очень совету посмотреть шину запоминающим осциллографом, он в абонементе. Лично у меня он уже собран на макетке и работает...
Пост N: 74
Зарегистрирован: 03.09.08
Откуда: Россия, г.Иркутск
Рейтинг:
0
Отправлено: 03.02.10 17:03. Заголовок: Алексей пишет: Како..
Алексей пишет:
цитата:
Какой подпрограммой опрашиваете датчики? Не из самоучителя случаем?
Да, именно ей. Про запоминающий осциллограф я тоже подумал, было бы неплохо посмотреть что там твориться, но сейчас нет возможности его сделать или купить. Я слышал что проблемы возникают чаще у датчиков 1820 а вот у 18s20 вроде бы проблем нет, надо будет купить такой в другом магазине и проверить его.
Пост N: 1110
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
3
Фото:
Отправлено: 03.02.10 19:06. Заголовок: Проблема видимо крое..
Проблема видимо кроется гдето в программе, причем видимо в основном теле, а не в подпрограмме... Надо искать причину, можно еще в протеусе попробовать... Тогда у меня его еще не было, поэтому не пробовал...
Пост N: 75
Зарегистрирован: 03.09.08
Откуда: Россия, г.Иркутск
Рейтинг:
0
Отправлено: 04.02.10 05:21. Заголовок: Алексей пишет: Надо..
Алексей пишет:
цитата:
Надо искать причину, можно еще в протеусе попробовать... Тогда у меня его еще не было, поэтому не пробовал...
Я моделировал в протеусе из под МПлаба, все работает идеально, у меня два обьяснения, или бракованные датчики или что то связанное с помехами, что при моделировании не учитывается.
К первому варианту я склоняюсь еще и потому, что один датчик показывает температуру всегда 73 и не реагирует а второй 127 так же без изменений. Тайминги в программе я менял, не помогает.
Вы в каком магазине покупали датчик, не на Фурье случаем?
Нет, "радиотехник" на Тимирязева, 42. Ща кстати он оттуда сваливает на Фурье ,5. По моему, что на Фурье, что на Тимирязева одна контора. А нормальные DS18B20 купил на Цимлянской по 100р.
Пост N: 2
Зарегистрирован: 16.03.10
Откуда: г.Псков
Рейтинг:
0
Отправлено: 06.08.10 02:22. Заголовок: Датчиков ds1820 в ко..
Датчиков ds1820 в корпусе pr35 не бывает!!! Это скорее всего датчик ds1821. Сам как-то наткнулся на такой, и ведь на корпусе написано ds1820, но он отказывался работать, я написал разработчику, и мне ответили, что таких не бывает, по крайней мере с 2000 года, и скорее всего это ds1821, так и оказалось, после исправления программы под ds1821 все заработало.
Пост N: 3
Зарегистрирован: 16.03.10
Откуда: г.Псков
Рейтинг:
0
Отправлено: 06.08.10 02:41. Заголовок: Я тут собрал термоме..
Я тут собрал термометр, на датчике ds1820, для измерения темп. двигателя, датчик установил в корпус (от старого датчика темпиратуры) залив 2-x компонентным клеем, дома работает нормально, сколь угодно долго, как только устанавливаю на автомобиль, через 5-60 мин, показания темпиратуры начинают прыгать, могут быть любые значения в пределах от -71 до +127, питание всей схемы от батарейки, после этого нормальная работа датчика не восстанавливается (даже после снятия его с машины он так и продолжает нагло врать), при этом индефикационный номер, контрольная сумма и пр. считываются нормально, лечится установкой нового датчика, но не на долго. Из-за чего это может быть, помогите, пожелуйста, разобраться? У меня только одна догатка - из-за возможного механического давления, но так не должно быть, если оно и есть, то не сильное, и он должен работать. И еще, корпус Ds-ки смазан термопастой, может с ней чего не так. Исполртил уже кучу датчиков, но решения так и не нашел.
Пост N: 344
Зарегистрирован: 20.10.08
Откуда: Россия, Горно-Алтайск
Рейтинг:
0
Отправлено: 06.08.10 05:05. Заголовок: Как вариант - сопрот..
Как вариант - сопротивление 2-х компонентного клея при нагревании уменьшается. Отсюда все косяки. Я неоднократно ставил подобные датчики на двигатель. Изолировал термоусаживающей трубкой выводы датчика и крепил его с помощью винтового хомута (для сантехники) на подходящей детали двигателя. Без всяких компаундов. Всё ОК.
Пост N: 347
Зарегистрирован: 20.10.08
Откуда: Россия, Горно-Алтайск
Рейтинг:
0
Отправлено: 06.08.10 11:11. Заголовок: А какой номинал рези..
А какой номинал резистора на датчике? Длина сигнальных проводов? Как вариант - попробуйте собрать схемку другого, не вашего термометра, используя при этом "глючные" датчики, прицепите к авто, каков будет результат. Может дело в вашей программе?
Пост N: 5
Зарегистрирован: 16.03.10
Откуда: г.Псков
Рейтинг:
0
Отправлено: 06.08.10 13:20. Заголовок: Rimsky пишет: При п..
Rimsky пишет:
цитата:
При пересчете всех байт SCRATCHPAD - CRC совпадает?
Все совпадает, датчик как бы работает, по крайней мере он так думает, только темпиратуру измеряет не правильно (именно измеряет) Rimsky пишет:
цитата:
А какой номинал резистора на датчике? Длина сигнальных проводов? Как вариант - попробуйте собрать схемку другого, не вашего термометра, используя при этом "глючные" датчики, прицепите к авто, каков будет результат. Может дело в вашей программе?
Программа из самоучителя KEA6, схема тоже, только по трех проводной линии (с соответствующим изменением в программе), резистор 4,7Ком Пробовал другую программу из тогоже самоучителя, да и схемы у меня собрано 2 - результат тот же, испорченные датчики потом в любой программе глючат. Сегодня попробую поставить, не вклеивая в корпус, кстати с ds18s20 и ds18b20 тоже самое! Как-то это не логично, дома работает, а после установки, сначала работает, а потом нет.
Пост N: 6
Зарегистрирован: 16.03.10
Откуда: г.Псков
Рейтинг:
0
Отправлено: 06.08.10 13:44. Заголовок: Кроме помпы, и ремня..
Кроме помпы, и ремня привода, нет ничего, я все таки склоняюсь к механическому воздействию, хотя пробовал сжимать датчик в тисках, показания уходят, но не сильно +-0,5. Причем датчик после установки переходит в устойчивое состояние, если например -71, то меняется в приделах -73, -67, если рукой взять.
Пост N: 8
Зарегистрирован: 16.03.10
Откуда: г.Псков
Рейтинг:
0
Отправлено: 11.08.10 22:00. Заголовок: Спасибо всем за помо..
Спасибо всем за помощь. Проблема решилась установкой сопротивления 200 ом по питанию. Испорченные датчики восстановлению не подлежат, но могут исправно работать по 2-х проводной шине. По массе в течении времени проскакивала помеха очень маленькой амплитуды, что и выводило датчики из строя. Причина в КМОП технологии датчиков. Из-за этой помехи в нутри датчика самопроизвольно, открывались p-n-p-n, переходы, что приводило к закорачиванию + питания на массу, если вовремя обнаружить, то достаточно просто снять напряжение с датчика на 10 сек, и датчик прийдет в норму, при длительном нахождении датчика в состоянии замыкания p-n переход перегорает и датчик больше не может работать по 3-х проводной линии, в некоторых случаях, вообще выходит из строя.
Пост N: 2141
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
5
Отправлено: 11.08.10 22:22. Заголовок: Юрий, на мой взгл..
Юрий, на мой взгляд, эта инфа очень интересна. Не могли бы Вы, по этому поводу, написать статью в "Обмен..."? Это доброе дело. Люди спасибо скажут. А впрочем, Вам решать. В любом случае, спасибо за предостережение.
Юрий, на мой взгляд, эта инфа очень интересна. Не могли бы Вы, по этому поводу, написать статью в "Обмен..."?
Это не мешало бы, а то я честно говоря нихрена не понял, сплошные нестыковки, двигатель не запускал (откуда помехи?), данные датчик не косячит при подсчете CRC совпадает (что-то по паразитному питанию пробило, и почему на работу 1Wire не влияет, а только на вычисление температуры?, а почему по 3 проводкам работает без сбоев и все правильно высчитывает?)
(что-то по паразитному питанию пробило, и почему на работу 1Wire не влияет, а только на вычисление температуры?, а почему по 3 проводкам работает без сбоев и все правильно высчитывает?)
На оборот. По 3-х проводной шине не работает, т.к. транзистор при пробое замыкается на массу, а по 2-х проводной нормально работает, потому что питается по другой шине. Статью напишу, попробую там расписать подробней.
Пост N: 1232
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 26.08.10 16:14. Заголовок: Yura пишет: Причина..
Yura пишет:
цитата:
Причина в КМОП технологии датчиков.
Интересно, а откуда такая информация (впечатление такое, что проводилось глубокое лабораторное исследование). Дело в том, что я также устанавливал данный датчик на двигатель (только программа своя, а резистор по питанию установлен был сразу), причём в штатное место, а оно находится почти вплотную с запальной свечой. При запуске двигателя (многоискровой режим) помехи такие, что МК постоянно в ресете. В рабочем режиме избежать помех удалось только "правильной" прокладкой кабеля. Но датчик работает до сих пор, и не "вылетал" ни разу.
Все даты в формате GMT
3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет