Например TDA7294

Форум РадиоКот • Просмотр темы - Всё по DS18(B/S)20.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 21:37:17

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1164 ]     ... , , , 34, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт сен 26, 2014 08:48:14 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18809
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Не проще ли просто взять DS1821? Её даже с компа можно запрограммировать.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пт сен 26, 2014 19:05:54 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 30, 2014 21:41:24
Сообщений: 170
Откуда: Украина
Рейтинг сообщения: 0
Gudd-Head писал(а):
Не проще ли просто взять DS1821?
Спасибо, но этих датчиков у нас нет. Да и железка собрана уже...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 12:48:14 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вс сен 06, 2009 20:17:20
Сообщений: 20
Рейтинг сообщения: 0
Вычитал из даташита по ds18b20 что после отправки команды 0x44 (Конвертирование температуры) датчик должен линию опустить в ноль пока датчик выполняет температурное преобразование , а по окончании поднять линию в 1.Так вот прикол состоит в том что он линию в 0 не опускает после 0x44 .При этом в программе я сделал так чтобы по 1 на линии шло считывание байтов температуры и самое интересное оно идет хотя как из даташита время конверсии при 9битном разрешении 93,75 мс .А у меня получается вообще без этой задержки.Или это время конверсии подругому рассчитывается?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 13:12:42 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18809
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Freerider писал(а):
после отправки команды 0x44 (Конвертирование температуры) датчик должен линию опустить в ноль пока датчик выполняет температурное преобразование

Покажите где вы такой бред вычитали.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 13:15:03 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 1368
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7217
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Не правильно прочитали. Просто должен отвечать "0" на каждый посланный слот чтения. Т.е. посылаешь 00100010 и потом делаешь чтение (без сброса!) и должны возвращаться 0, пока идёт преобразование. Как только появилась "1" - преобразование закончено и можно делать сброс, чтобы заслать команду чтения скратчпада.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 13:21:29 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18809
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
uldemir писал(а):
Т.е. посылаешь 00100010

А мне казалось, просто дёргаешь линию — и если датчик не дёрнул в ответ, то преобразование закончилось.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 13:32:47 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вс сен 06, 2009 20:17:20
Сообщений: 20
Рейтинг сообщения: 0
Gudd-Head писал(а):
Freerider писал(а):
после отправки команды 0x44 (Конвертирование температуры) датчик должен линию опустить в ноль пока датчик выполняет температурное преобразование

Покажите где вы такой бред вычитали.

Сей бред тут http://open.e-voron.dp.ua/wp-content/up ... 20-rus.pdf.
Просто по программе я делаю проверку после команды 0x44
sbic PORB,0
CLR Counter_Comand;
RET
Тут у меня либо программка выполняет основную задержку либо если датчик отконвертировал и выдал 1 на линию то я сбрасываю счетчик команд и у меня программка снова делает инициал датчика и чтения температуры его. Просто програмка у меня на основой задержке не зациклается на линии почему то датчик сразу выдает 1


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 13:41:02 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 1368
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7217
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Gudd-Head писал(а):
uldemir писал(а):
Т.е. посылаешь 00100010

А мне казалось, просто дёргаешь линию — и если датчик не дёрнул в ответ, то преобразование закончилось.

не надо доёбываться до слов. Посылаешь 00100010 - это команда 0х44 - конвертирование температуры. Если "просто" дёргать шину - вообще нифига не будет. Это работает только сразу после команды конвертирования. Иначе, как бы другие устройства на шине могли бы работать?

Freerider писал(а):
Сей бред тут http://open.e-voron.dp.ua/wp-content/up ... 20-rus.pdf.
Кстати, в даташите так и написано:
Цитата:
после посылки команды Convert T мастер может посылать временные интервалы считывания и DS18B20 ответят, выдавая 0 во время преобразования температуры,

т.е. надо посылать "временные интервалы считывания", а не проверять состояние линии.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 13:44:55 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18809
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
uldemir писал(а):
Посылаешь 00100010 - это команда 0х44 - конвертирование температуры.

Ну, значит мы друг друга недопоняли.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 13:58:28 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вс сен 06, 2009 20:17:20
Сообщений: 20
Рейтинг сообщения: 0
Тогда вопрос про "временные интервалы считывания" сколько они по времени должны быть


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 14:01:47 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18809
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
http://open.e-voron.dp.ua/wp-content/up ... 20-rus.pdf
Стр. 15 рис. 14

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 14:14:43 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 1368
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7217
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Freerider писал(а):
Тогда вопрос про "временные интервалы считывания" сколько они по времени должны быть

трудности перевода... Вы же читаете температуру? ну вот так же и надо посылать команды чтения. Я их называю слот чтения (который ничем не отличается от слота записи лог.1).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 15:21:54 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 105
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
Freerider писал(а):
Тогда вопрос про "временные интервалы считывания" сколько они по времени должны быть

Я делал так:
раз в секунду по таймеру читаю данные температуры предыдущего замера, и тут же посылаю команду на следующее преобразование, выхожу из обработчика до следующего прерывания.

И все... одно отвлечение в секунду и переменная температуры всегда актуальна....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 16:10:31 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вс сен 06, 2009 20:17:20
Сообщений: 20
Рейтинг сообщения: 0
Да действительно надо было делать тайм слот для чтения состояния датчика.Теперь промежуток между командой 0x44 и новой инициал где то 78 мс (стоит 9 битное разрешение) хотя должно быть 93.75 мс.Все это проверяю в логическом анализаторе dx pro


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 16:12:28 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вс сен 06, 2009 20:17:20
Сообщений: 20
Рейтинг сообщения: 0
shads писал(а):
Freerider писал(а):
Тогда вопрос про "временные интервалы считывания" сколько они по времени должны быть

Я делал так:
раз в секунду по таймеру читаю данные температуры предыдущего замера, и тут же посылаю команду на следующее преобразование, выхожу из обработчика до следующего прерывания.

И все... одно отвлечение в секунду и переменная температуры всегда актуальна....

Да просто хотелось не тупить с задержкой а опрашивать датчик чтоб как только так сразу его считывать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт сен 30, 2014 17:07:40 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 105
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
Freerider писал(а):
как только так сразу его считывать
А смысл какой? Для скоростных применений этот датчик не подходит... а для визуального отображения температуры - нет смысла чаще одного раза в сек менять показания... да и программа меньше становится, если в прерывании по таймеру просто поднять флаг, а в основном цикле опрашивать этот флаг и инитить обмен...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт ноя 25, 2014 14:08:20 
Родился

Зарегистрирован: Вт ноя 25, 2014 13:47:16
Сообщений: 5
Рейтинг сообщения: 0
Господа! Помогите, чем сможете.
Ситуация.
Пытаюсь читать DS18B20 (так на нем написано).
Не читается.
Собрал программу:

Код:
#define ONEWIRE_PORT PORTC
#define ONEWIRE_DDR DDRC
#define ONEWIRE_PIN PINC
#define ONEWIRE_PIN_NUM 0 //нога PC1 N22

inline void onewire_low() {// Устанавливает низкий уровень на шине 1-wire
   ONEWIRE_DDR |= (1<<ONEWIRE_PIN_NUM);
}

inline void onewire_high() {// "Отпускает" шину 1-wire
   ONEWIRE_DDR &= ~(1<<ONEWIRE_PIN_NUM);
}

inline uint8_t onewire_level() {// Читает значение уровня на шине 1-wire
   return ONEWIRE_PIN & (1<<ONEWIRE_PIN_NUM);
}

// Определения и функции ниже нужны только если требуется "сильный" подтягивающий резистор
#define ONEWIRE_STRONG_DDR DDRC
#define ONEWIRE_STRONG_PORT PORTC
#define ONEWIRE_STRONG_PIN_NUM 1 //нога PC1 N23

void onewire_strong_enable() {// включение "сильной" подтяжки
  ONEWIRE_STRONG_PORT |= (1<<ONEWIRE_STRONG_PIN_NUM);// Для исключения низкого уровня на шине, сначала изменяется регистр значения
  ONEWIRE_STRONG_DDR |= (1<<ONEWIRE_STRONG_PIN_NUM);// затем - регистр направления
}


void onewire_strong_disable() {// отключение "сильной" подтяжки
  ONEWIRE_STRONG_DDR &= ~(1<<ONEWIRE_STRONG_PIN_NUM);// Для исключения низкого уровня на шине, сначала изменяется регистр направления
  ONEWIRE_STRONG_PORT &= ~(1<<ONEWIRE_STRONG_PIN_NUM);// затем - регистр значения
}

// Выдаёт импульс сброса (reset), ожидает ответный импульс присутствия.
// Если импульс присутствия получен, дожидается его завершения и возвращает 1, иначе возвращает 0
uint8_t onewire_reset(){
   onewire_low(); //проваливает уровень
   _delay_us(640); // Пауза 480..960 мкс
   onewire_high(); // поднимает в единицу
   _delay_us(2); // Время необходимое подтягивающему резистору, чтобы вернуть высокий уровень на шине
   for (uint8_t c = 80; c; c--) {// Ждём не менее 60 мс до появления импульса присутствия;
      if (!onewire_level()) {
         // Если обнаружен импульс присутствия, ждём его окончания
         while (!onewire_level()) { } // Ждём конца сигнала присутствия
         return 1;
      }
      _delay_us(1);
   }//   for (uint8_t c = 80; c; c--) {// Ждём не менее 60 мс до появления импульса присутствия;
   return 0;
}

int main(void){
   while(1)
   {
        _delay_us(4000);   
        onewire_reset();
        };
}



Оговорюсь - Это куски. В остальной части она чего-то пишет (корректно) в LCD.
В результате я хотел получить периодический сигнал, который был-бы импульсом сброса и вызывал-бы ответ датчика. Посмотрел по осциллографу, напряжение просаживается на 640мкСек, а ответа нет.
Вопрос - Я чего-то делаю неправильно, или датчик кривой.
Если я чего пропустил в описании важного, извиняйте, спрашивайте.
ЗЫ. Пробовал другой датчик, такой-же результат тот-же.
С уважением Николай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт ноя 25, 2014 19:25:21 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
Судя по приведённому коду вы пропустили очень много важного, например посылку команд и чтение данных в т.ч.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср ноя 26, 2014 09:03:23 
Родился

Зарегистрирован: Вт ноя 25, 2014 13:47:16
Сообщений: 5
Рейтинг сообщения: 0
Про данные речи пока не идет. Я хочу, чтобы датчик ответил импульсом присутствия. Я что то понял не правильно и датчик, в ответ, не должен просадить сигнал до нуля?
С уважением, Николай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср ноя 26, 2014 09:12:56 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18809
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Должен. В ответ на Reset датчик должен послать Presense.
Зачем такая простыня кода чтобы дёрнуть ногой, а потом считать значение, я не понимаю.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1164 ]     ... , , , 34, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y