Зарегистрирован: Пт мар 11, 2011 08:51:55 Сообщений: 294
Рейтинг сообщения:0
Отбой Дело было в датчике. При отрицательной температуре он врал...показывал минус все дельше и зависал потом, при -80 где то. Потом, после датчика, прошивку сменил что бы отрицательную температуру считать правильно (до этого не знаб как было, не проверял ...сделал сам расчет и все работает.
Отбой Дело было в датчике. При отрицательной температуре он врал...показывал минус все дельше и зависал потом, при -80 где то. Потом, после датчика, прошивку сменил что бы отрицательную температуру считать правильно (до этого не знаб как было, не проверял ...сделал сам расчет и все работает.
Грешить на датчик - тоже сомнительно, т.к. скорее всего он или работает или не работает вообще. Кажется вы до конца так и не разобрались в чем проблема была (тем более работал\неработал зависело от того где плата с контроллером находилась, насколько я помню).
Ну вот как раз в датчике дело может быть, у меня чтото похожее было с одним конкретным датчиком, в то время как другие тутже подключенные работали нормально, потом он благополучно сдох вообще. задержки установленны рабочие хоть и не точные, я у себя менял их довольно широко и все работало вот сейчас специально переключил частоту с 8-ми на 4 МГц а оно работает! Я не чего не утверждаю но грешить только на тактовый генератор не думаю не стоит.
Зарегистрирован: Пт мар 11, 2011 08:51:55 Сообщений: 294
Рейтинг сообщения:0
Я попробовал после этого несколько датчиков, работают. Про косяки с отрицательной температурой я видел сообщения...там была проблема, что он все время выдавал все единички в данных о температуре. Так что думаю все же дело в нем. В любом случае работает отлично и минус и плюс. Так что для меня вопрос решен...осцилла у меня нету, и рашать далее что то я не могу. Про плату я возможно перемудрил...я что только не попробовал В общем, разобрался.
Я сейчас сморожу глупость, но о достойнейшие умы, ответьте на вопрос: с какого места отсчитывать Tspon, который не должен превышать 10 мкс? Для тех кому лень искать и смотреть даташит, сообщаю, что Tspon - время подачи strong pullup после выдачи команды 0x44 Convert_T. Вот интересует в каком месте эта команда кончается.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Карма: 1
Рейтинг сообщений: 5
Зарегистрирован: Ср май 11, 2011 21:37:45 Сообщений: 1995 Откуда: Цветочный город
Рейтинг сообщения:0
uldemir писал(а):
Я сейчас сморожу глупость, но о достойнейшие умы, ответьте на вопрос: с какого места отсчитывать Tspon, который не должен превышать 10 мкс? Для тех кому лень искать и смотреть даташит, сообщаю, что Tspon - время подачи strong pullup после выдачи команды 0x44 Convert_T. Вот интересует в каком месте эта команда кончается.
при паразитном питании Strong Pullup должен подаваться не менее чем на все время преобразования, т.е. для 12-битного режима не менее 750 мс (лучше чуть больше).
_________________ битва с дураками проиграна, победители торжествуют. слава победителям!
Ой, это-то я знаю. Проблема в том, что с какого момента надо это делать? когда считается, что команда подана? Ладно, наверное так и есть, что при последнем переходе от 0 к 1.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Вернее - когда принятая команда дешифрируется и выполнится. Тогда примерно через 10мкс будет запущено преобразование температуры, вот не менее чем через 10мкс после выдачи команды преобразования необходимо включить подтяжку.
_________________ Не умеешь - не берись, но не взявшись не научишься...
Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 19781 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
Сдвигаете регистр контрольной суммы вправо, с выпавшим младшим битом и входным битом производите исключающее ИЛИ. Далее копируете получившийся бит во временный обнулённый регистр вместо старшего (7-го), 3-го и 2-го бита, производите исключающее или между регистром контрольной суммы и временным регистром. Повторить это для каждого входного бита. Похожий алгоритм на АСМе можете глянуть у меня: http://radiokot.ru/circuit/digital/game/03/ только там я мучал закольцованный регистр без внешнего сигнала, но идея такая же.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Спасибо..... Чертежик с прокруткой байта и ксорами я видел, но все ни как не мог сообразить, как это на деле работает. После вашего ясного описания, въехал наконец.....
Кстати... решил сделать не байтовую реализацию, а битовую. После приема\передачи каждого бита будет вызываться ф-я... У меня прием\передача реализованы в одной подпрограмме в прерывании, вот после каждого бита и буду накручивать CRC, только в начале приема\передачи обнулить надо будет и все...
Да это уже пройденый этап, все что обсуждается в ваших ссылках. Просто я до сих пор использовал простой вариант с одним устройством на линии, ну и соответственно, ни адрес его не передавал, ни CRC не считал в данных. А тут понадобилось подключить 4 датчика http://asis-kbr.ru/forum/viewtopic.php?f=9&t=117, ну и соотв встал вопрос о полноценном обмене. Загвоздка была только в CRC (пишу на асме), а все примеры что находил на С (кстати в вашей первой ссылке CRC с табличным вариантом - тоже не подходит - слишком прожорлив до памяти). Вот тут уважаемый Gudd-Head мне и помог делом. Все уже решил.....
Не знаю, где вы искали, но когда мне надо было, год назад, я все нашел и сделал, например вот это и тоже на асме. Я у себя подключал и 8 датчиков без проблем, и процедуры обмена в самом простом варианте сократил до 270 (точно не помню) байт кода вместе с поиском адреса, а crc надо считать, что с одним, что с несколькими датчиками.
P.S. Кстати для написания процедуры поиска очень помог именно сишный апноут хотя я си не очень то знаю.
crc надо считать, что с одним, что с несколькими датчиками
Да это понятно, у меня просто серьезных целей не было, поэтому без CRC, а так конечно согласен.
BVS писал(а):
P.S. Кстати для написания процедуры поиска очень помог именно сишный апноут хотя я си не очень то знаю.
Вообще не пойму зачем этот поиск нужен??? Вот например у меня 4 датчика, гораздо проще их пронумеровать, по очереди подключить по одному и инициализировать... чем потом разбираться како же датчик под каким номером и где он стоит.....
Там не чего сложного нет, если разобраться, и не чего ни куда переключать не надо, все висит на одном проводе, как и задумано.
Я наверное неправильно мысль выразил. Я не против применения алгоритма поиска устройств. И не сомневаюсь что в нем нет ничего сложного. Также я не говорил что датчики я собираюсь подключать на разные линии.
Я имел ввиду, что легче както пронумеровать визуально датчики и по одному их прописать в устройство (ф-я чтения адреса одного устройства на линии) а потом уже включить в одну линию все вместе, вместо того чтобы вместе сразу их подключить, найти с помощью ф-ции поиска а потом разбираться где из них который?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения