Зарегистрирован: Пт мар 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 Сообщений: 19745 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: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 датчика, гораздо проще их пронумеровать, по очереди подключить по одному и инициализировать... чем потом разбираться како же датчик под каким номером и где он стоит.....
Там не чего сложного нет, если разобраться, и не чего ни куда переключать не надо, все висит на одном проводе, как и задумано.
Я наверное неправильно мысль выразил. Я не против применения алгоритма поиска устройств. И не сомневаюсь что в нем нет ничего сложного. Также я не говорил что датчики я собираюсь подключать на разные линии.
Я имел ввиду, что легче както пронумеровать визуально датчики и по одному их прописать в устройство (ф-я чтения адреса одного устройства на линии) а потом уже включить в одну линию все вместе, вместо того чтобы вместе сразу их подключить, найти с помощью ф-ции поиска а потом разбираться где из них который?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения