25.04.2014, 10:16
|
|
Прописка
Регистрация: 13.10.2009
Сообщений: 116
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
Желательно посмотреть весь код программы, и еще если вы используете прерывание во время опроса термодатчика то их нужно отключить так как линия 1-weri очень плохо работает с ними.
Последний раз редактировалось aliste; 25.04.2014 в 10:35.
|
|
|
|
25.04.2014, 17:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
Сообщение от alvadep
|
Просто отложилось в памяти
|
Что-то память подвела. Проверил на 12ф675, аналоговые входы не влияют. Наверно было что-то еще, но это еще со временем стерлось из памяти.
Теперь о главном. Кусок кода ТС будет работать не корректно. Нет проверки окончания слота (отпускания линии). Получается, что следующий слот может начаться не дождавшись окончания предыдущего. Максимальная длительность слота 120 мкс, а у ТС начало следующего слота через 72 мкс. Опять же bsf PORTA и сразу переключение пина на выход, а там еще может быть 0, опять "сквозняк". Проверил десяток своих датчиков, от начала слота до отпускания линии примерно 80 мкс.
На всяк случай выкладываю описание датчика (рус) с примерами кода для пыка.
|
|
|
|
25.04.2014, 21:22
|
|
Прописка
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
Здравствуйте господа
Задержку делай подпрограммой, каждый шаг посчитан, размести в начале файла, из расчета 4 МГц частоты процессора,
;-------------------------------------
WAIT_uS:MACRO TIME ; ожидание в в микросекундах
; значение должно быть кратно 5uS
MOVLW (TIME/5)-1
MOVWF TMP0;
CALL WAIT5U
ENDM
WAIT5U:
NOP
CLRWDT
DECFSZ TMP0,f
GOTO WAIT5U
RETLW 0
;--------------------------------------
Надо задержку в любом месте например 60 мкс пишешь
WAIT_uS .60
Надо 5 пишешь WAIT_uS .5
и т.д. и тп.
Подтягивающий резистор 472 ома не слишком мал для 1W? вроде как 5 к ом должно быть.
Во вложенном файле подрограмма для общения по 1W.
попробуй ей воспользоваться. Она кстати из апнота.
__________________
Лужу, паяю, ЭВМ починяю.....
|
|
|
|
25.04.2014, 21:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
472 это 4к7. Минимальный гарантированный ток, который выдерживает ключ ДСки 4 мА. Т.е. DS18B20 допускает уменьшение подтягивающего резистора до 1к2. Это целесообразно делать на длинных линиях.
|
|
|
|
25.04.2014, 23:03
|
|
Заблокирован
Регистрация: 12.09.2009
Сообщений: 420
Сказал спасибо: 148
Сказали Спасибо 166 раз(а) в 118 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
Сообщение от rusyvochka
|
Само - собой: и компараторы, и опорное.
Аналоговым (65) осцилографом смотрел - уровни нормальные. Пробовал через ТТL -› RS232 поймать информацию на СОМ, поигрался скоростью, никакого результата, для анализа. Цифрового с памятью под рукой нет. Скачал рус. даташит на 18В20, сижу, штудирую. Попробую по их рекомендациямвремя подогнать по шине. Раньше и сейчас опирался на "Компьютерный датчик температуры, на основе 18В20"
http://www.3dnews.ru/171138
Может команды в датчик криво залетают, потому и ответ такой?
Отлаживаю кусками, ориентируясь на индикатор, больше под рукой ничего нет: из программы вгоняю в индикатор, чего получаю. Уровни, только могу сказать, нормальные, по питанию "мух" тоже особо нет. ШОК
|
время преобразования ds-ки выдерживаете?
|
|
|
|
25.04.2014, 23:06
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
Сообщение от gromovi
|
время преобразования ds-ки выдерживаете?
|
Вы бы уж сразу прибавили и ... "в зависимости от разрядности"... Хотя, при грамотном построении проги можно на это и забить... Или проверяем окончание преобразования, или нахально запускаем преобразование и отщёлкиваем гарантированно по максимуму через ~800 и более мс.
__________________
Halex
Последний раз редактировалось Halex07; 25.04.2014 в 23:11.
|
|
|
|
26.04.2014, 00:03
|
|
Заблокирован
Регистрация: 12.09.2009
Сообщений: 420
Сказал спасибо: 148
Сказали Спасибо 166 раз(а) в 118 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
Сообщение от Halex07
|
Вы бы уж сразу прибавили и ... "в зависимости от разрядности"... Хотя, при грамотном построении проги можно на это и забить... Или проверяем окончание преобразования, или нахально запускаем преобразование и отщёлкиваем гарантированно по максимуму через ~800 и более мс.
|
да тут все как обычно. полный код в студию. и схему. на разрядность пока можно "положить"...
|
|
|
|
26.04.2014, 16:02
|
|
Прохожий
Регистрация: 14.02.2007
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
М-даа, программа, конечно, не удобночитаемая. Но так как мы все всегда чему-то учимся, прими советы.
Программу лучше делать блочную, т.е. состоящую из подпрограмм, напр.: посыл импульса обнуления, временная задержка, команда на запись, команда на чтение и т.д.
Найди в Инете и скачай 4 книги Н.И.Заец "Радиолюбительские конструкции на PIC-микроконтроллерах". Там во второй книге есть конструкция "Градусник". Все замечательно разжевано, с комментариями. Советую.
|
|
|
|
26.04.2014, 22:33
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
Сообщение от gromovi
|
на разрядность пока можно "положить"...
|
Да я бы сразу не клал, потому как если он разрядность не менял от заводской, то это заводские 12 бит. Но это актуально именно для серии b! Для остальных получим "двинутые" значения. Солидарен, нужен первоисточник - там надо с собакой порыться... Подозреваю, что некоторые прерывания портят обращение к "одному-wire"...
Сообщение от STrub
|
Найди в Инете и скачай 4 книги Н.И.Заец "Радиолюбительские конструкции на PIC-микроконтроллерах". Там во второй книге есть конструкция "Градусник".
|
... Закончу фразу в стиле себя (любимого) и многих других завсегдатаев Казуса... Вот по "заячьему" коду - это к патологоанатомам. Рыть это страшилище нет ни времени, ни желания.
|
|
|
|
26.04.2014, 23:31
|
|
Гражданин KAZUS.RU
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
|
Re: Снова PIC16F628 + DS18B20: Proteus - да, железо - нет. HELP, Please!
Подровнял тайминги, пик увидел датчик, но частенько не совпадает СРС...
Исходник прилаживается (ПРИКЛАДАЕТСЯ???), Прерывание при переходе сетевого через "0" (В0), и индикация на Т0, "выключение" индикаторов при переполнении - скважность, яркость. От В0 увеличение DIG = счетчик, зажигается индикатор, гасится по "Т0", интервал - 10 мс. При полной яркости "ресет" и отклик пройдут не раз до прерывания от "Т0". Далее по условиям выполняется "Рессет ", засылка команд, пауза на конвертацию, опять "рессет", засылка и считывание. Пробовал "двигать" импульс" гашения индикаторов и запрещать Т0 вообще, результата никакого (в железе) - через раз "Er"or : для себя индикация ошибки СРС. Также опробовано зажигать индикатор и гасить по "В0" - 10мс, точно не мешает. Глюкает скотина. Датчик и пик менялись...
Теперь вопросы по вопросам:
- если порт можно оставлять на "выход" (к стати работает в железе, но не нравится Протеусу по уровням), какая разница, когда пик выставит "1" и когда менять "ТРИС" ? Сразу в порт "1", которая не появится, пока "ТРИС" на станет "0". Или я чего то не знаю?
- проводов пока нет: датчик торчит прям в плате: это насчет наводок...
- как отследить окончание занятия шины датчиком, если считывается мастером "1"? С "0" ясно: отпустило - наигрался...
- 18S20, 18B20... В даташит таблица с тайменгами...
- насчет схемы: рисую печать (как мне нравится, чтоб по проще, но с учетом "односторонних пинов Пика), потом схема, а потом уж программа.
Не первая "безделушка" с 18В20, обычно после отладки в Протеусе, с железом проблем (по этой части) не было...
__________________
Смотрящий под ноги - звёзды видит в лужах.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:22.
|
|