Например TDA7294

Форум РадиоКот • Просмотр темы - Не отдаёт температуру DS1821
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 23:26:39

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


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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Не отдаёт температуру DS1821
СообщениеДобавлено: Пн мар 25, 2019 05:48:25 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 715
Откуда: Омск
Рейтинг сообщения: 0
Всем привет!

Попросили тут разобраться со старой железкой у которой в качестве температурного датчика использовался DS1821 (тот который термостат ещё) в режиме 1-Wire сенсора.
Исходников железки не сохранилось, а датчики сгорают, ломаются, теряются. И вот человек купил новые, а они не работают.
Сел я посмотреть что с ними не так и не могу понять. Неужто паленые какие-то?

Что имею:
1. STM32F103 проц
2. DS1821 из старых запасов, рабочая, 2 шт.
3. DS1821 из новой закупки (много)

Написал примитивную прогу для опроса регистров DS1821 и вывода результатов в UART.
Так вот старые отлично читаются и температуру кажут. А новые не очень. Вроде как на 1Wire Reset отвечает Presence ом. Но дальше сплошной FF FF FF.

Немного практики:
Спойлер
Код:
uint8_t ow_buf[9];

#define OW_0     0x00
#define OW_1     0xff
#define OW_R_1   0xff
/* USER CODE END PFP */

/* USER CODE BEGIN 0 */
void OW_toBits(uint8_t ow_byte, uint8_t *ow_bits) {
   uint8_t i;
   for (i = 0; i < 8; i++) {
      if (ow_byte & 0x01) {
         *ow_bits = OW_1;
      } else {
         *ow_bits = OW_0;
      }
      ow_bits++;
      ow_byte = ow_byte >> 1;
   }
}

uint8_t OW_toByte(uint8_t *ow_bits) {
   uint8_t ow_byte, i;
   ow_byte = 0;
   for (i = 0; i < 8; i++) {
      ow_byte = ow_byte >> 1;
      if (*ow_bits == OW_R_1) {
         ow_byte |= 0x80;
      }
      ow_bits++;
   }

   return ow_byte;
}
void OW_SetRegister(uint8_t reg)
{
   uint8_t ow_buf[8];
   MX_USART3_UART_Init(115200);
   OW_toBits(reg,ow_buf);
   HAL_UART_Transmit(&huart3, ow_buf, 8, 1);
}

uint8_t OW_ReadRegister(uint8_t reg)
{
   uint8_t ow_buf[8];
   OW_SetRegister(reg);
   memset(ow_buf, 0xFF, 8);
   HAL_UART_Receive_DMA(&huart3, ow_buf, 8);
   HAL_UART_Transmit(&huart3, ow_buf, 8, 2);
   return OW_toByte(ow_buf);
}

void OW_WriteRegister(uint8_t reg, uint8_t value)
{
   uint8_t ow_buf[8];
   OW_SetRegister(reg);
   OW_toBits(value, ow_buf);
   HAL_UART_Transmit(&huart3, ow_buf, 8, 2);
}
//OneWire Reset
uint8_t OW_Reset(void)
{
   uint8_t data = 0xF0;
   MX_USART3_UART_Init(9600);
   HAL_UART_Transmit(&huart3, &data, 1, 2);
   if (HAL_UART_Receive(&huart3, &data, 1, 2)==HAL_OK)
      return data;
   return 0xF0;
}


Логика работы из кучи обмусоливаний с форумов, т.е. Сначала ресет шины, потом команда. Например Чтение статуса:
Код:
OW_Reset();
reg = OW_ReadRegister(0xAC);

или чтение температуры:
Код:
OW_Reset();
uint8_t reg = OW_ReadRegister(0xAA);


Это всё работает со старыми датчиками, а с новыми ни в какую. ЧЯДНТ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не отдаёт температуру DS1821
СообщениеДобавлено: Пн мар 25, 2019 06:44:13 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
а ты уверенн чт новые это точно 1821 могли подсунуть перемаркированые какоенить гавно вродн 18s20 или еше хужее-нонейм китайский
если старые работают а новы нет =значит....

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не отдаёт температуру DS1821
СообщениеДобавлено: Пн мар 25, 2019 06:58:40 
Друг Кота

Карма: 68
Рейтинг сообщений: 1408
Зарегистрирован: Сб янв 29, 2011 00:28:48
Сообщений: 7774
Рейтинг сообщения: 5
Это не проверяли ? (даташит)
СпойлерRETURNING TO 1-WIRE MODE FROM THERMOSTAT MODE
The operating mode of the DS1821 is determined at power-up, depending upon the setting of the T/ R bit.
If the T/ R bit is set to a 1, the DS1821 will power up in thermostat mode. In this mode, the device cannot
be written to or read from over the DQ line. However, it is possible to return to the 1-Wire “read” mode
temporarily, in cases where thermostat limits may need to be changed after insertion and use in a system.
To return to the 1-Wire “read” mode, the VDD pin of the DS1821 is brought to 0V while the DQ line is
held high. The DQ line must then be clocked low 16 times. After this is accomplished, the VDD line may
be brought high again, and the DS1821 will then be in 1-Wire “read” mode.
To toggle between modes, VDD is brought low while DQ is held high and then clocked 16 times. When
VDD is brought high again, the part will then be in thermostat mode again. This technique may be used to
toggle between the two operating modes of the DS1821 as often as required.
When both VDD and DQ are low for more than approximately 10 seconds, the part is powered down.
When powered up again, the part will begin operating in the mode set by T/R* bit (1=thermostat mode,
0=“read” mode).


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Не отдаёт температуру DS1821
СообщениеДобавлено: Пн мар 25, 2019 07:06:04 
Ум, честь и совесть. И скромность.
Аватар пользователя

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


Вложения:
0.png [16.97 KiB]
Скачиваний: 575

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

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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Не отдаёт температуру DS1821
СообщениеДобавлено: Пн мар 25, 2019 08:07:33 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14063
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Там гда стоял 1821 в режиме датчика температуры легче поставить 18В20.
Сложнее, если устройство работало как автономный заранее запрограммированный термостат.
Хоша... любая 8-6 лапая МК + DS18B20/Ds18S20 = аналогии с тем 1821, да еще и с возможностью "перепрошивки уставок на ходу".
8)


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Не отдаёт температуру DS1821
СообщениеДобавлено: Пн мар 25, 2019 08:21:13 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
страно что ВЭСМА востребованый 1821 сняли...походу мешал малому китайскому бизнесу производства термостатоф...
като попадал на нем прибор там рещено интересно было прибор работал ка термостат ХУ при отключеной индикаци в холодиле в момент установки он переводился в режим термометра и записи регистроф уставки потом обратно
периодически схема включает индикацию температуры по запросу(кнопки клавы) или по времени-раз в 5мин
наверно можно и почаше опрос датчика делать с выводом на дисплей

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не отдаёт температуру DS1821
СообщениеДобавлено: Вт апр 02, 2019 08:35:27 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 715
Откуда: Омск
Рейтинг сообщения: 0
Это не проверяли ? (даташит)

Должен ли он в режиме термостата отвечать на Reset?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не отдаёт температуру DS1821
СообщениеДобавлено: Вт апр 02, 2019 09:02:25 
Друг Кота

Карма: 68
Рейтинг сообщений: 1408
Зарегистрирован: Сб янв 29, 2011 00:28:48
Сообщений: 7774
Рейтинг сообщения: 0
Не должен....Команды же только для однопроводного режима...
А что, даташит даже гуглом не перевести ? ...)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не отдаёт температуру DS1821
СообщениеДобавлено: Вт апр 02, 2019 09:04:40 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 715
Откуда: Омск
Рейтинг сообщения: 0
Не должен....Команды же только для однопроводного режима...
А что, даташит даже гуглом не перевести ? ...)))

Это был тонкий подвод к тому, что упоминать это было бесполезно, ибо на ресет они отвечают. О чём я написал в самом начале.
Ну так вот на ресет они отвечают.


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

Часовой пояс: 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