Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Сб мар 03, 2012 07:05:28
Отбой
Дело было в датчике. При отрицательной температуре он врал...показывал минус все дельше и зависал потом, при -80 где то. Потом, после датчика, прошивку сменил что бы отрицательную температуру считать правильно (до этого не знаб как было, не проверял
...сделал сам расчет и все работает.
Сб мар 03, 2012 09:40:37
вообще-то датчик рассчитан на работу до -55, а вы про -80 говорите
нифигасе у вас температурки
Сб мар 03, 2012 09:42:30
3DRaven писал(а):Отбой
Дело было в датчике. При отрицательной температуре он врал...показывал минус все дельше и зависал потом, при -80 где то. Потом, после датчика, прошивку сменил что бы отрицательную температуру считать правильно (до этого не знаб как было, не проверял
...сделал сам расчет и все работает.
Грешить на датчик - тоже сомнительно, т.к. скорее всего он или работает или не работает вообще. Кажется вы до конца так и не разобрались в чем проблема была (тем более работал\неработал зависело от того где плата с контроллером находилась, насколько я помню).
Сб мар 03, 2012 12:47:11
Ну вот как раз в датчике дело может быть, у меня чтото похожее было с одним конкретным датчиком, в то время как другие тутже подключенные работали нормально, потом он благополучно сдох вообще.
задержки установленны рабочие хоть и не точные, я у себя менял их довольно широко и все работало
вот сейчас специально переключил частоту с 8-ми на 4 МГц а оно работает! Я не чего не утверждаю но грешить только на тактовый генератор не думаю не стоит.
Сб мар 03, 2012 15:21:11
Я попробовал после этого несколько датчиков, работают. Про косяки с отрицательной температурой я видел сообщения...там была проблема, что он все время выдавал все единички в данных о температуре. Так что думаю все же дело в нем. В любом случае работает отлично и минус и плюс. Так что для меня вопрос решен...осцилла у меня нету, и рашать далее что то я не могу. Про плату я возможно перемудрил...я что только не попробовал
В общем, разобрался.
Вт мар 06, 2012 22:18:05
Я сейчас сморожу глупость, но о достойнейшие умы, ответьте на вопрос: с какого места отсчитывать Tspon, который не должен превышать 10 мкс?
Для тех кому лень искать и смотреть даташит, сообщаю, что Tspon - время подачи strong pullup после выдачи команды 0x44 Convert_T. Вот интересует в каком месте эта команда кончается.
Ср мар 07, 2012 07:36:50
uldemir писал(а):Я сейчас сморожу глупость, но о достойнейшие умы, ответьте на вопрос: с какого места отсчитывать Tspon, который не должен превышать 10 мкс?
Для тех кому лень искать и смотреть даташит, сообщаю, что Tspon - время подачи strong pullup после выдачи команды 0x44 Convert_T. Вот интересует в каком месте эта команда кончается.
при паразитном питании Strong Pullup должен подаваться не менее чем на все время преобразования, т.е. для 12-битного режима не менее 750 мс (лучше чуть больше).
Ср мар 07, 2012 08:13:19
Ой, это-то я знаю. Проблема в том, что с какого момента надо это делать? когда считается, что команда подана? Ладно, наверное так и есть, что при последнем переходе от 0 к 1.
Ср мар 07, 2012 23:30:16
Вернее - когда принятая команда дешифрируется и выполнится. Тогда примерно через 10мкс будет запущено преобразование температуры, вот не менее чем через 10мкс после выдачи команды преобразования необходимо включить подтяжку.
Сб апр 07, 2012 02:34:36
Подскажите плз реализацию вычисления контрольной суммы для AVR на асме.....
Сб апр 07, 2012 08:52:48
Сдвигаете регистр контрольной суммы вправо, с выпавшим младшим битом и входным битом производите исключающее ИЛИ. Далее копируете получившийся бит во временный обнулённый регистр вместо старшего (7-го), 3-го и 2-го бита, производите исключающее или между регистром контрольной суммы и временным регистром. Повторить это для каждого входного бита.
Похожий алгоритм на АСМе можете глянуть у меня:
http://radiokot.ru/circuit/digital/game/03/ только там я мучал закольцованный регистр без внешнего сигнала, но идея такая же.
Сб апр 07, 2012 11:05:35
Спасибо..... Чертежик с прокруткой байта и ксорами я видел, но все ни как не мог сообразить, как это на деле работает. После вашего ясного описания, въехал наконец.....
Раньше тоже видел, еще такую реализацию:
- crc.jpg
- (40.37 KiB) Скачиваний: 972
Но не соображал как ее для АВР перевернуть, ну теперь думаю проблем не будет.....
Спасибо.
Сб апр 07, 2012 20:10:25
shads писал(а):не соображал как ее для АВР перевернуть
ну дык надо было поискать по форуму - исходники 1-wire-crc на асме для AVR тут не раз выкладывались
Сб апр 07, 2012 21:47:40
http://radiokot.ru/search/?query=1-wire-crc&x=8&y=6?????????????
как ни пробовал переставлять......
Кстати... решил сделать не байтовую реализацию, а битовую. После приема\передачи каждого бита будет вызываться ф-я...
У меня прием\передача реализованы в одной подпрограмме в прерывании, вот после каждого бита и буду накручивать CRC, только в начале приема\передачи обнулить надо будет и все...
Вс апр 08, 2012 07:32:46
Плохо ищите, но
вот то, что я вспомнил, в этой статье есть пример с табличным расчетом, а в комментариях найдете и математический расчет.
еще была тема
http://www.radiokot.ru/forum/viewtopic.php?f=25&t=11525которую почему-то забросили
Вс апр 08, 2012 08:14:31
Да это уже пройденый этап, все что обсуждается в ваших ссылках.
Просто я до сих пор использовал простой вариант с одним устройством на линии, ну и соответственно, ни адрес его не передавал, ни CRC не считал в данных. А тут понадобилось подключить 4 датчика
http://asis-kbr.ru/forum/viewtopic.php?f=9&t=117, ну и соотв встал вопрос о полноценном обмене. Загвоздка была только в CRC (пишу на асме), а все примеры что находил на С (кстати в вашей первой ссылке CRC с табличным вариантом - тоже не подходит - слишком прожорлив до памяти). Вот тут уважаемый
Gudd-Head мне и помог делом. Все уже решил.....
Вс апр 08, 2012 10:14:06
Не знаю, где вы искали, но когда мне надо было, год назад, я все нашел и сделал, например вот
это и тоже на асме.
Я у себя подключал и 8 датчиков без проблем, и процедуры обмена в самом простом варианте сократил до 270 (точно не помню) байт кода вместе с поиском адреса, а crc надо считать, что с одним, что с несколькими датчиками.
P.S. Кстати для написания процедуры поиска очень помог именно сишный апноут хотя я си не очень то знаю.
Вс апр 08, 2012 13:00:02
BVS писал(а):crc надо считать, что с одним, что с несколькими датчиками
Да это понятно, у меня просто серьезных целей не было, поэтому без CRC, а так конечно согласен.
BVS писал(а):P.S. Кстати для написания процедуры поиска очень помог именно сишный апноут хотя я си не очень то знаю.
Вообще не пойму зачем этот поиск нужен???
Вот например у меня 4 датчика, гораздо проще их пронумеровать, по очереди подключить по одному и инициализировать... чем потом разбираться како же датчик под каким номером и где он стоит.....
Вс апр 08, 2012 13:20:32
shads писал(а):Вообще не пойму зачем этот поиск нужен???
Там не чего сложного нет, если разобраться, и не чего ни куда переключать не надо, все висит на одном проводе, как и задумано.
Вс апр 08, 2012 14:54:58
BVS писал(а):shads писал(а):Вообще не пойму зачем этот поиск нужен???
Там не чего сложного нет, если разобраться, и не чего ни куда переключать не надо, все висит на одном проводе, как и задумано.
Я наверное неправильно мысль выразил.
Я не против применения алгоритма поиска устройств. И не сомневаюсь что в нем нет ничего сложного. Также я не говорил что датчики я собираюсь подключать на разные линии.
Я имел ввиду, что легче както пронумеровать визуально датчики и по одному их прописать в устройство (ф-я чтения адреса одного устройства на линии) а потом уже включить в одну линию все вместе, вместо того чтобы вместе сразу их подключить, найти с помощью ф-ции поиска а потом разбираться где из них который?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.