Например TDA7294

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





Текущее время: Чт апр 18, 2024 07:04:41

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


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



Начать новую тему Ответить на тему  [ Сообщений: 1164 ]     ... , , , 51, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 08, 2017 01:38:08 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Глянул хелп на CV, в 1-Wire библиотеке есть функция
Цитата:
unsigned char w1_crc8(void *p, unsigned char n)
Она расчитывает контрольную сумму.
Можете её заюзать.


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

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Идея в том, что и скратчпад (9 байтов), и id датчика (8 байтов) устроены так, что последний байт должен быть равен контрольной сумме предыдущих. Также это равносильно тому, что контрольная сумма всех байтов равна нулю.

Сейчас я для расчёта использую встроенную в avr-libc функцию, раньше использовал самописную. Может, пригодится.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 08, 2017 20:19:51 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Приветствую!
прошу помочь выпросить у сей девайса хоть какие-нибудь данные. наблюдаю за шиной с помощью осциллографа, импульс присутствия имеется, байт кода команды так же вырисовывается.но в ответ тишина :(
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>

#define LOW DDRA=1<<1;
#define HIGT DDRA&=~(1<<1)

void init()
{
LOW;
_delay_us(485);
HIGT;
_delay_us(485);
}

int write_bit(int bit)
{

if(bit==1)
{ LOW;
_delay_us(2);
HIGT;
_delay_us(75);
}
else
{
LOW;
_delay_us(75);
HIGT;
_delay_us(2);
}
}


int write_byt(int DATA)
{
for (int RZD=0;RZD<=7;RZD++)
{
write_bit(1&(DATA>>RZD));
}
}

int main (void)
{
//while(1)
//{
int kom=0x33; //команда чтения ROM
init();
write_byt(kom);

LOW;
_delay_us(2);
HIGT;
//}


}


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

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

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

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ROMan2947 писал(а):
if(bit==1)
{ LOW;
_delay_us(2);
HIGT;
_delay_us(75);
}
else
{
LOW;
_delay_us(75);
HIGT;
_delay_us(2);
}
внимательно изучите протокол обмена, а именно, тайм-слоты записи 1 и 0, а так же тайм-слоты чтения 1 и 0.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 08, 2017 20:38:06 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
ARV писал(а):
ROMan2947 писал(а):
if(bit==1)
{ LOW;
_delay_us(2);
HIGT;
_delay_us(75);
}
else
{
LOW;
_delay_us(75);
HIGT;
_delay_us(2);
}
внимательно изучите протокол обмена, а именно, тайм-слоты записи 1 и 0, а так же тайм-слоты чтения 1 и 0.


так-то я знаю, что проблема в тайм-слотах,задолбался втыкать в эти графики, от этого и пришел сюды. по счет чтения это отдельная тема! с записью что не так?


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 08, 2017 21:41:33 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ROMan2947 писал(а):
задолбался втыкать в эти графики
а без этого никак
ROMan2947 писал(а):
с записью что не так?
вот, например, старенькая моя статеечка, не самый лучший образец, но для начала пойдет. смотрим на картинку
Изображениеи пробуем сопоставить с вашим кодом.

откуда вы взяли 75 мкс задержки при записи или чтении? приведите все задержки к нужным значениям, и все заработает. а не хотите - берите готовую библиотеку 1-wire и тупо пользуйтесь чужими наработками.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 08, 2017 21:57:06 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
ARV писал(а):
ROMan2947 писал(а):
задолбался втыкать в эти графики
а без этого никак
ROMan2947 писал(а):
с записью что не так?
вот, например, старенькая моя статеечка, не самый лучший образец, но для начала пойдет. смотрим на картинку
Изображениеи пробуем сопоставить с вашим кодом.

откуда вы взяли 75 мкс задержки при записи или чтении? приведите все задержки к нужным значениям, и все заработает. а не хотите - берите готовую библиотеку 1-wire и тупо пользуйтесь чужими наработками.


эту картинку уже до дыр насмотрел))) и статейку читал.
парюсь я не над тем,чтоб разового попользоваться, а цель все досконально изучить и самому с нуля все написать....чужими наработками пользоваться неэффективно для обучения!

75 мкс это мой выбор в заданном интервале. даже на картинке написано что тайм-слот записи "0" от 60 мкс до 120 мкс вот мои 75 и находятся в заданном диапазоне или я не так чет понимаю?

вот с интернета еще нарыл
Write 1. Master переводит шину в состояние лог. 0 на время от 1 до 15 мкс. Затем master отпускает шину на оставшееся время слота.
Write 0. Этот сигнал показан на рис. 2. Master переводит шину в состояние лог. 0 на время как минимум 60 мкс, но не дольше 120 мкс.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 08, 2017 22:49:07 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ROMan2947 писал(а):
но в ответ тишина
Дак он сам и не будет отвечать. Нужно FF-ки ему посылать, после передачи команды. Протокол почитайте внимательнее.
Код:
init();
 write_byt(0x33);
 for(i=0;i<8;i++){  // Читаем 8 бат данных
   write_byt(0xFF);
 }


С тайм-слотами, на первый взгляд, всё в порядке.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пн янв 09, 2017 09:08:57 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Аlex писал(а):
ROMan2947 писал(а):
но в ответ тишина
Дак он сам и не будет отвечать. Нужно FF-ки ему посылать, после передачи команды. Протокол почитайте внимательнее.
Код:
init();
 write_byt(0x33);
 for(i=0;i<8;i++){  // Читаем 8 бат данных
   write_byt(0xFF);
 }


С тайм-слотами, на первый взгляд, всё в порядке.


спасибо за направление, попробую сейчас :wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пн янв 09, 2017 20:33:20 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Аlex писал(а):
ROMan2947 писал(а):
но в ответ тишина
Дак он сам и не будет отвечать. Нужно FF-ки ему посылать, после передачи команды. Протокол почитайте внимательнее.
Код:
init();
 write_byt(0x33);
 for(i=0;i<8;i++){  // Читаем 8 бат данных
   write_byt(0xFF);
 }


С тайм-слотами, на первый взгляд, всё в порядке.


ответ от датчика получен) спасибо большое!!! :lol:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 18:10:07 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Здравствуйте!!

1) датчик высылает один и то же код температуры при разрешении 9 бит и 12 бит. в чем существенный смысл разрешения,кто подскажет?
2) 5 старших битов старшего байта температуры они в любых случаях одинаковые? то есть разработчики по идее выделили на знак температуры 5 битов?


Последний раз редактировалось ROMan2947 Ср янв 11, 2017 18:57:35, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 18:19:54 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
1. Может конфигурацию неправильно задаете.
Как выставляете 9-битный режим? Последовательность команд какая?
Смысл в том, что при приемлемом разрешении в 0.5*С на конвертацию затрачивается почти на порядок меньше времени, чем в случае 12-битного режима.

2. Имеете в виду старшие 5 бит старшего байта температуры? Они всегда определяют знак температуры.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 18:29:19 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Zhuk72 писал(а):
Может конфигурацию неправильно задаете.
Как выставляете 9-битный режим? Последовательность команд какая?


инициализация;
write_byt(0xCC);пропуск ROM\
write_byt(0x1F); четвертый байт пишу 0x1F
write_byt(0x48); копирую

Добавлено after 1 minute 57 seconds:
Zhuk72 писал(а):
1. Может конфигурацию неправильно задаете.
Как выставляете 9-битный режим? Последовательность команд какая?
Смысл в том, что при приемлемом разрешении в 0.5*С на конвертацию затрачивается почти на порядок меньше времени, чем в случае 12-битного режима.

2. Имеете в виду старшие 5 бит старшего байта температуры? Они всегда определяют знак температуры.


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


Последний раз редактировалось ROMan2947 Ср янв 11, 2017 18:56:25, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 18:37:11 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
1. У меня такая последовательность:
Код:
    send_ds(0xCC); // Skip ROM
    send_ds(0x4E); // Write Scratchpad
    send_ds(0x00); // TH alarm
    send_ds(0x00); // TL alarm
    send_ds(0x1F); // Config.
    init_ds();
    send_ds(0xCC); // Skip ROM
    send_ds(0x48); // Copy Scratchpad
    delay_ms(10);  // Time required for writing to EEPROM.


2. Да, так уж разработчик захотел.
Все равно биты эти пустые, ну так пусть все и будут знаковыми.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 18:48:27 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
[quote="Zhuk72"]1. У меня такая последовательность:
Код:
    send_ds(0xCC); // Skip ROM
    send_ds(0x4E); // Write Scratchpad
    send_ds(0x00); // TH alarm
    send_ds(0x00); // TL alarm
    send_ds(0x1F); // Config.
    init_ds();
    send_ds(0xCC); // Skip ROM
    send_ds(0x48); // Copy Scratchpad
    delay_ms(10);  // Time required for writing to EEPROM.



по поводу пишется или нет, сомнений нет. так как данные всех байтов ROM я вывел на порт к которым подключил светодиоды, т. е. визуально вижу какой код записан в каждом байте. сравнил коды при разных режимах разрешения они оказались идентичными,вот мне и стало не понятно... он должен быть разным или нет?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 19:13:57 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
ROMan2947 писал(а):
инициализация;
write_byt(0xCC);пропуск ROM\
write_byt(0x1F); четвертый байт пишу 0x1F
write_byt(0x48); копирую

Что вы выводите и как можете контролировать процессы ВНУТРИ датчика я не представляю.
Я же не для красоты выложил свои команды. То, что вы делаете (в цитате выше) - неправильно.
Посмотрите ДШ, там есть диаграмма, по которой и надо прошагать. Ну и читать описание работы внимательнее.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 20:12:24 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Zhuk72 писал(а):
ROMan2947 писал(а):
инициализация;
write_byt(0xCC);пропуск ROM\
write_byt(0x1F); четвертый байт пишу 0x1F
write_byt(0x48); копирую

Что вы выводите и как можете контролировать процессы ВНУТРИ датчика я не представляю.



я считываю регистр конфигурации и вывожу код на порт МК и с помощью лампочек смотрю, что там хранится. при 9 битном режиме мне выводит 00011111, а при 12 01111111, что тут не понятного!?

Добавлено after 5 minutes 35 seconds:
Zhuk72 писал(а):
ROMan2947 писал(а):
инициализация;
write_byt(0xCC);пропуск ROM\
write_byt(0x1F); четвертый байт пишу 0x1F
write_byt(0x48); копирую

Что вы выводите и как можете контролировать процессы ВНУТРИ датчика я не представляю.
Я же не для красоты выложил свои команды. То, что вы делаете (в цитате выше) - неправильно.
Посмотрите ДШ, там есть диаграмма, по которой и надо прошагать. Ну и читать описание работы внимательнее.


по счет команд и кто как командует датчиком это отдельная тема...главный вопрос остается в стороне... при одной и той же температуре меняется ли двоичный код температуры в зависимости от разрешения?


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

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
ROMan2947 писал(а):
я считываю регистр конфигурации и вывожу код на порт МК и с помощью лампочек смотрю, что там хранится. при 9 битном режиме мне выводит 00011111, а при 12 01111111, что тут не понятного!?

Непонятно было первое описание процесса.

ROMan2947 писал(а):
...главный вопрос остается в стороне... при одной и той же температуре меняется ли двоичный код температуры в зависимости от разрешения?

Измеряйте, выводите сырые данные при разных режимах и сравнивайте.
Можете и в Протеусе проверить, он эти датчики нормально симулирует.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 20:41:50 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Zhuk72 писал(а):
ROMan2947 писал(а):
я считываю регистр конфигурации и вывожу код на порт МК и с помощью лампочек смотрю, что там хранится. при 9 битном режиме мне выводит 00011111, а при 12 01111111, что тут не понятного!?

Непонятно было первое описание процесса.

ROMan2947 писал(а):
...главный вопрос остается в стороне... при одной и той же температуре меняется ли двоичный код температуры в зависимости от разрешения?

Измеряйте, выводите сырые данные при разных режимах и сравнивайте.
Можете и в Протеусе проверить, он эти датчики нормально симулирует.


придется экспериментировать....ну тем интереснее)
спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 21:01:03 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Я уже проверил в Протеусе при шаге датчика 0.0625*С.
При 9-битной конфигурации младшие 3 бита всегда в нуле.
Выход изменяется (начиная с бита 3), когда прирост достигает 0.5*С, т.е. через каждые 8 шагов.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


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

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


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

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


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

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


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