Пост 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 пишет:
цитата:
И то, гарантия под вопросом.
Ну почему, все таки вероятность совпадения становится куда меньше если сравнивать принятый и записанный серийник побайтно... все таки уже не один байт а восемь...
Все даты в формате GMT
3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет