Телескопы покупают здесь


A A A A Автор Тема: Контроллер КФ.  (Прочитано 105450 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #160 : 13 Дек 2007 [00:28:15] »
Потихоньку написал первую рабочую прошивку под комбайн колесо+фокусер.
Прошивка заняла 11кб, простор для творчества остается достаточно большой.

Колесом крутит, фокусирует.
Работает компенсация люфта, при смене фильтров автоматом делается поправка фокуса под каждый фильтр, термокомпенсация работает в фоновом режиме и не мешает остальным процессам.

Проверял пока в автономке, без компа. Набор команд фокусера написан, но еще не проверен (со стороны компа софт еще не написан).

С компенсацией температуры есть тонкие моменты.

1. Мой стандартный реечный фокусер при реверсе фокуса и компенсации люфта сдвигает картинку пикселей на 20.
Температура может чуть чуть плавать то вверх то вниз (случайные ошибки градусника, ) выбирать каждый раз люфт - значит портить кадр.
Пока я сделал такой вариант - компенсация по ходу движения идет непрерывно, а против хода (когда надо выбирать люфт) - компенсация срабатывает только если надо сдвинуть минимум на пол-величины люфта (то есть требуется достаточно заметный сдвиг).

Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #161 : 13 Дек 2007 [00:30:40] »
Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.
Вань, есть мысль, подарить тебе крейфорд. Завтра узнаю, есть ли они в Москве.
/ссылка запрещена правилами форума/

Оффлайн martalex

  • *****
  • Сообщений: 906
  • Благодарностей: 0
    • Сообщения от martalex
Re: Контроллер КФ.
« Ответ #162 : 13 Дек 2007 [00:52:24] »
Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.
Вань, есть мысль, подарить тебе крейфорд. Завтра узнаю, есть ли они в Москве.

хорошая мысль ;)

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #163 : 13 Дек 2007 [01:01:33] »
Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.
Вань, есть мысль, подарить тебе крейфорд. Завтра узнаю, есть ли они в Москве.

Придется пополам с Александром его распилить. ;) А то нечестно будет - без его основы, я свою работу никогда-бы не сделал.

Потом, 1 пиксель = примерно 6 микрон, крейфорд выдерживает такую точность при проезде вперед и возвращении в ту же точку?
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #164 : 13 Дек 2007 [01:06:47] »
Потом, 1 пиксель = примерно 6 микрон, крейфорд выдерживает такую точность при проезде вперед и возвращении в ту же точку?
Выдержит, если затянуть как следует, и еще... нужно сделать известное движение - "назад-вперед". ;)
/ссылка запрещена правилами форума/

Оффлайн В Питере темно

  • **
  • Сообщений: 96
  • Благодарностей: 0
    • Сообщения от В Питере темно
Re: Контроллер КФ.
« Ответ #165 : 13 Дек 2007 [08:19:12] »
Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.
Вань, есть мысль, подарить тебе крейфорд. Завтра узнаю, есть ли они в Москве.
На такое дело и я скинусь  :)
Олег Чекалин

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 682
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер КФ.
« Ответ #166 : 13 Дек 2007 [10:32:57] »
Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.
Вань, есть мысль, подарить тебе крейфорд. Завтра узнаю, есть ли они в Москве.

Придется пополам с Александром его распилить. ;) А то нечестно будет - без его основы, я свою работу никогда-бы не сделал.

Потом, 1 пиксель = примерно 6 микрон, крейфорд выдерживает такую точность при проезде вперед и возвращении в ту же точку?

   У меня как раз и есть крейфорд, второй вроде не нужен, не претендую.  :)
   Что же касается поперечного дрейфа при перекладках, то точно на твой вопрос ответить не могу, только частично. Поскольку снимаю я только планеты, то такая погрешность меня мало волнует, регистакс выпрямит. Измерений не проводил, могу описать только ощущения. Во первых при моей конфигурации съемки разрешение составляет 0.2” на пиксел. Картинка при съемке и фокусировке при таком разрешении дышит, причем весьма солидно, учитывая, что низкочастотная турбуленция на балконе редко бывает меньше 2 угловых секунд. Однако иногда случается. В этом случае, при съемках Луны видны кратеры размером примерно 2 км на каждом кадре. Кратеры такого размера дышат. Но выглядит такая картинка так – кратер то пропадает, то появляется, практически без поперечного смещения. Так вот на такой картинке поперечного смещения вроде не видно и при фокусировке . Думаю, заметил бы учитывая, что кратер такого размера составляет примерно 6 пикселей. Кстати необходимое разрешение для дипов примерно 3 секунды, поэтому и точность в общем большая не требуется, т.е. какая-то перекладка быть может.
 Я думаю не надо сильно усложнять программу без нужды – первая съемка покажет нужен ли режим отключения термокомпенсации при съемке. У крейфорда нет люфта, кстати меня поразило значения люфта при котором ты проверял контроллер электрофокусера, у меня люфт установлен на 9 шагов по 6 микрон каждый, причем это люфт редуктора двигателя.
  Немножко о термокомпенсации. Думаю процент ее применения будет незначительным, поскольку точность фокусировки будет определяться даже не столько методом установки термодатчика, сколько тем насколько температурный дрейф, будет соответствовать, тому самому закону регулирования, который закладывается в микропрограммы. По моим немногочисленным опытам выяснилось, что для поддержания фокуса нужна отличная термостабилизация трубы. В условиях например моих – балкон на юг, это условие выполнялось только в случае если днем было здорово пасмурно и перепад температур день- ночь был незначительным. Однако термодатчик полезен. Так например я при съемках всегда слежу за температурой телескопа и в случае, если температура ушла на градус, или даже меньше перефокусируюсь.  Никогда не буду снимать при сильных температурных градиентах. Т.Е. можно включить телескоп и иногда подходя к столу смотреть, как сильно изменилась температура, если на 2 градуса за 20 минут смысла снимать нет.   О термодатчике. Намудрили там не мало, помню отладка шла долго, особенное отношение было к участку 0-(-1) градус. Метод отладки был простой датчик в  холодильник и наблюдение за температурой.  По наблюдениям, но не по описанию, могу сказать, что после большого температурного удара датчик в тот момент времени, когда  температурный градиент становиться близким к нулю датчик начинает мерить температуру по следующему алгоритму – от некоторой точки он начинает делать большие скачки в измерениях, постепенно уменьшая их. Например – пусть датчик остыл до температуры –10 градусов в морозильнике и именно такая температура там и есть. В этом случае мы увидим несколько измерений примерно таких  -10.5, -9.5 ; -10.4, -9.6; -10.3, -9.7 ….. –10 . В реальных условиях такого не наблюдается, температура плывет себе потихоньку на 0.06 градуса на шаг, вот в пределах это величины могут наблюдаться колебания в показаниях. Насколько я понимаю, сейчас при отладке ты греешь датчик пальцем.  ;)

    Об алгоритме термокомпенсации  - при написании микропрограммы рассматривалось несколько алгоритмов. Существующий был выбран за то, что он не дает накопления ошибки при расчете следующего положения фокусера, промоделируй свою ситуацию с учетом этого.  При моем методе термокомпенсации нельзя просто менять положение фокусера командой извне, надо менять базовую температуру другой командой, т.е. менять ту температуру во флаш, при которой осуществлялся переход в режим автомат.

   Плата. На конфе это шаблон или условный рисунок? Надо учитывать, то, что принтер, утюг и термопара тестера это не цех по производству печатных плат, т.е. проводники и контактные площадки должны быть максимально большими, а вот зазоры как раз могут быть маленькими. У меня так – площадки микросхем 60х80 мил, проводники 20 мил, зазоры 10 мил – как раз один проводник между ножками микросхем, контакные площадки под детали не менее 70х70 мил.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #167 : 13 Дек 2007 [16:13:00] »
lazyBSD, martalex, В Питере темно
Спасибо вам ребята, огромное!


Цитата
Об алгоритме термокомпенсации  - при написании микропрограммы рассматривалось несколько алгоритмов. Существующий был выбран за то, что он не дает накопления ошибки при расчете следующего положения фокусера, промоделируй свою ситуацию с учетом этого. При моем методе термокомпенсации нельзя просто менять положение фокусера командой извне, надо менять базовую температуру другой командой, т.е. менять ту температуру во флаш, при которой осуществлялся переход в режим автомат.

Да, я предусматривал это, накопления ошибки не должно быть. То есть, при возвращении температуры к исходной, поправка тоже станет нулевой.
У меня хранится и опорная температура и текущая поправка в шагах (отмеряется от 0), а когда новая поправка (в шагах) изменилась - разница посылается на фокусер. Поэтому сама позиция фокусера свободна и может меняться (кнопками, командой, сменой фильтра...).


Цитата
   Плата. На конфе это шаблон или условный рисунок? Надо учитывать, то, что принтер, утюг и термопара тестера это не цех по производству печатных плат, т.е. проводники и контактные площадки должны быть максимально большими, а вот зазоры как раз могут быть маленькими. У меня так – площадки микросхем 60х80 мил, проводники 20 мил, зазоры 10 мил – как раз один проводник между ножками микросхем, контакные площадки под детали не менее 70х70 мил.

С платой у меня другая фигня получилась - немного передержал утюг (или слишком сильно жал), и часть дорожек слилась друг с другом, пришлось иголкой акуратно исправлять перед травлением.

У меня немного неравномерно дорожки лежали, сейчас повозился, вручную распределив их поравномернее.
Выкладываю 2 варианта картинок, готовых для печати, 600dpi.
(с заливкой свободных участков (хлорное железо экономить), и без).
« Последнее редактирование: 13 Дек 2007 [16:20:26] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #168 : 14 Дек 2007 [12:49:51] »
О термодатчике. Намудрили там не мало, помню отладка шла долго, особенное отношение было к участку 0-(-1) градус. Метод отладки был простой датчик в  холодильник и наблюдение за температурой.

Угу, вчера начал проверять и пару часов потратил на это тонкое место. Как раз сейчас на улице -3, а на балконе около 0..-1. :)
Зато нашел простое и красивое решение:
   int16_t tt = ( ( t1<<8 ) | t2 );  // собираю int из 2-х байт
   temperature = (float)tt * (100.f / 256.f); // перевожу в сотые градуса

Подключил 2 градусника (ds1621), один из них, для проверки, через 20 метров телефонного 6-жильного кабеля. Для этого пришлось притянуть посильнее сигнальные провода к +5 (уменьшил сопротивления до 2КОм между "+5" и сигнальными проводами до термометров).

Сделал вывод обоих градусников на экран, и выбор по какому из них делать термокомпенсацию (на экране после этой температуры показывается символ "а" вместо "с").

Количество пустого места на экране становится все меньше. :)

Больше температур наверно не вывести, зато через ком порт можно будест считать любой из 8 термометров. (можно один повесить в воздухе следить за колебаниями, другой на железо трубы - для термокомпенсации это наверно лучшее место, третий на зеркало - следить за его остыванием и включать, если надо, вентилятор.. ;) )

Приаттачил текущую прошивку и картинку с экрана (термокомпенсация работает по нижнему термометру)
« Последнее редактирование: 14 Дек 2007 [12:53:19] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #169 : 14 Дек 2007 [16:45:43] »
Больше температур наверно не вывести
Можно выводить циклически, скажем, раз в секунду-полторы, номер датчика и температуру в верхней строчке, а точность до сотых, "c"&"a", IMHO, не нужны. Получается примерно так: N:+__._ - 7 символов.
А правый низ останется на что-то еще. ;)
« Последнее редактирование: 14 Дек 2007 [16:47:24] от lazyBSD »
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #170 : 19 Дек 2007 [03:35:53] »
Сделал немало изменений в прошивке, написал вполне работающую програмку управления нашим "комбайном". :)

В аттаче прошивка, её исходники, програмка управления через ком-порт.

Поизучал, что выдают нам термометры DS1621. Результаты оказались не очень - изредка вылетает ошибка на 1-2 градуса, а при заметном изменении температуры число начинает скакать (см. график в углу)...
В результате внутри прошивки я сделал осреднение. На графиках виден результат после осреднения и до. Величина осреднения - редактируется в настройках.
« Последнее редактирование: 19 Дек 2007 [03:46:03] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #171 : 19 Дек 2007 [13:03:52] »
Добавил автоматическое создание файла для прошивки eeprom (.eep) при компиляции.

Спасибо, добавлю в исходники.

Присылай заодно и код работы с датчиками DS1820, тоже добавлю и оживлю переключалку в настройках.

Коробка аккуратная получилась. :)

Кстати, я пока для отладки добавил в программе ведение лога.
в C:\term_log.csv каждую секунду пишется метка времени, позиция фокусера и все температуры. По этом файлу потом удобно экселевские графики строить и анализировать.

А может и оставлю это как опцию - интересно же как температура за ночь менялась. :)
« Последнее редактирование: 19 Дек 2007 [15:07:31] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #172 : 19 Дек 2007 [17:10:55] »
Что-то я подумал-подумал, и прикупил в чип-дипе недорогой экранчик размером 20x2 (WH2002A-YYH-CT).
На нем 4 температуры можно уместить. :) Или одну температуру на вольтметр заменить...


 12345678901234567890
|--------------------|
|0 +00000+20@00+20.00|
|________+20.00+20.00|
|--------------------|
 12345678901234567890

 1234567890123456
|----------------|
|F+00000  +20.00a|
|0________+20.00c|
|----------------|
 1234567890123456

« Последнее редактирование: 19 Дек 2007 [17:14:25] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #173 : 19 Дек 2007 [17:30:59] »
Что-то я подумал-подумал, и прикупил в чип-дипе недорогой экранчик размером 20x2 (WH2002A-YYH-CT).
Я тоже думал на эту тему, но в направлении 16x4...
/ссылка запрещена правилами форума/

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 682
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер КФ.
« Ответ #174 : 19 Дек 2007 [17:42:40] »
Поизучал, что выдают нам термометры DS1621. Результаты оказались не очень - изредка вылетает ошибка на 1-2 градуса, а при заметном изменении температуры число начинает скакать (см. график в углу)...
В результате внутри прошивки я сделал осреднение. На графиках виден результат после осреднения и до. Величина осреднения - редактируется в настройках.

   Температура скакать не должна и дело здесь скорее не в термодатчиках, а в считывании информации из них. Дело в том, что интрефейс I2C был разработан для связи микросхем в бытовых аудиоустройствах. По памяти длина линии связи примерно 2 метра. Поэтому надо либо смотреть какой ты применил кабель для подключения датчиков, либо заниматься изучением временной диаграммы шины I2C, точнее ее микропрограммной реализации. Я подключал к контроллеру два датчика, точнее у меня такой термометр в комнате сына висит и показывает две температуры – в комнате и на улице. При подключении 8 – ми датчиков возможны перекосы на шине из-за большей емкости на линиях данных. Возможны также наводки на кабель с датчиками. Усреднять ошибочные данные вряд ли имеет смысл.


Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #175 : 19 Дек 2007 [18:33:31] »
либо заниматься изучением временной диаграммы шины I2C, точнее ее микропрограммной реализации
Скорее всего, именно это и нужно смотреть. Очень смущает функция pause1:

//---------------Функция задержки времени--------------- =6
void pause1(void)                                                               
{                                                                               
        static unsigned char p;                                                 
        for (p=30; p > 0; p--);  // было 100, можно и 10                     
        return;                                                                 
}

Александр, для какой частоты процессора и какого режима оптимизации компилятора написана эта функция?


Еще одно место странное в функции readTemperature:

        temperature_start_ds1631(termometer);                                   
//      delay_0dot1sec(1);                                                     
        int tempr = temperature_read(termometer);

???
« Последнее редактирование: 19 Дек 2007 [18:42:17] от lazyBSD »
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #176 : 19 Дек 2007 [22:42:30] »
   Температура скакать не должна

Я думаю, что описываю примерно то же, на что указывал и Александр:
Цитата
По наблюдениям, но не по описанию, могу сказать, что после большого температурного удара датчик в тот момент времени, когда  температурный градиент становиться близким к нулю датчик начинает мерить температуру по следующему алгоритму – от некоторой точки он начинает делать большие скачки в измерениях, постепенно уменьшая их. Например – пусть датчик остыл до температуры –10 градусов в морозильнике и именно такая температура там и есть. В этом случае мы увидим несколько измерений примерно таких  -10.5, -9.5 ; -10.4, -9.6; -10.3, -9.7 ….. –10 . В реальных условиях такого не наблюдается, температура плывет себе потихоньку на 0.06 градуса на шаг, вот в пределах это величины могут наблюдаться колебания в показаниях.

На графике в углу можешь заметить  - когда пошел градиент температуры, шум резко увеличился. При медленных изменениях шума почти нету.


Ошибки по шине видны совсем по другому - даныые просто перестают читаться. Да и по форме сигналов на осцилографе это хорошо видно.
Цитата
void pause1(void)                                                               
{                                                                               
        static unsigned char p;                                                 
        for (p=30; p > 0; p--);  // было 100, можно и 10                     
        return;                                                                 
}
Комментарии тут мои. В этой функции я игрался задержкой? изначально там стояло 100.
При прямом подключении (10см провод) задержку оказалось можно уменьшить до 10 (буферные сопротивления = 30кОм).
Через провод 20метров шина нормально заработала при задержке =30 (и буферах =2кОм).
Графики я делал при прямом подключении, тут проблем с шиной точно не было.

Дело скорее всего в алгоритме оцифровки в самом датчике (методом последовательных приближений). В момент переоцифровки он и дает выбросы (если температура заметно изменилась).

Цитата
Еще одно место странное в функции readTemperature:

        temperature_start_ds1631(termometer);                                   
//      delay_0dot1sec(1);                                                     
        int tempr = temperature_read(termometer);

Тут я просто выкинул промежуточную задержку, и не увидел никаких ухудшений результата.
« Последнее редактирование: 20 Дек 2007 [01:04:32] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 682
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер КФ.
« Ответ #177 : 20 Дек 2007 [11:01:14] »
Рассказываю по порядку.
    Во первых я никогда не видел таких больших скачков температуры после температурного удара. Меньше градуса были, но для этого надо было охладить датчик градусов на 40, т.е. от комнатной до морозильника холодильника.
    Далее, не вникая в то, что я когда-то написал и что вы переписали, поясню каким образом происходит измерение температуры. Возможно тогда и вопросы про задержки пропадут сами собой. Датчик запрограммирован в режим при котором измерение температуры происходит после подачи команды. Т.Е. сам по себе он ничего не мерит, стоит. После получения этой команды датчик измеряет температуру, причем занимает этот процесс достаточно большое время – несколько сотен миллисекунд. В соответствии с этим обстоятельством и была подобрана задержка обеспечивающая чтение готовых данных, т.е. после измерения, а не в момент этого измерения или в какой либо другой. Подробностей я не помню, это к даташиту на термодатчик.  Значение задержки находиться в диапазоне от 0.5 до 1 сек. Причем для DS1631 она больше чем для DS1621, поскольку надо сформировать большее значение битов, поэтому значение задержки надо брать именно для DS1631.
   Насчет интерфейса и задержек. Фронты импульсов будут зависеть от емкости кабеля, а кабель этот будет выбран сборщиком самым произвольным образом. Причем использование телефонной лапши, или аудиокабелей будет значительно более вероятным чем  CQR security от Great Britain,  большая задержка на чтение никак практически не повлияет на быстродействие, поскольку эта величина мала по сравнению с самим измерением температуры термодатчиком. Да и скорость этому устройству от процессора практически не нужна.
   Время между измерениями было выбрано достаточно большим - 60 сек, для того чтобы не подогревать термодатчик, током его выходов.
   Частота внутреннего генератора 4 мгц.


« Последнее редактирование: 20 Дек 2007 [11:03:18] от Александр Л. »

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 060
  • Благодарностей: 765
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #178 : 20 Дек 2007 [12:36:55] »
Значение задержки находиться в диапазоне от 0.5 до 1 сек. Причем для DS1631 она больше чем для DS1621, поскольку надо сформировать большее значение битов, поэтому значение задержки надо брать именно для DS1631.

Угу, глянул описание - 750мс требуется на оцифровку 12бит.
Я по очереди опрашиваю датчики и кнопки, задержки тут будут сильно мешать...

Как я понял, у датчика есть бит готовности результата - попробую его использовать.
« Последнее редактирование: 20 Дек 2007 [12:43:50] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 682
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер КФ.
« Ответ #179 : 20 Дек 2007 [13:09:21] »
    Иван, в данном конкретном случае анализ бита готовности приведет только к снижению общего быстродействия. Поскольку прерывания невозможны, то лучше всего выполнить гарантированно большую задержку и затем считывать данные. Задержку можно выполнить не отдельным куском кода, а например кол-вом циклов фоновой работы. Т.Е. дал команду temperature_start затем отсчитал например 50-100 циклов опроса клавиатуры, затем температуру прочитал.

« Последнее редактирование: 20 Дек 2007 [13:11:02] от Александр Л. »