Например TDA7294

Форум РадиоКот • Просмотр темы - ds18b20 + LCD NOKIA 3510 и Ассемблер
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 25, 2024 16:56:27

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


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



Начать новую тему Ответить на тему  [ Сообщений: 79 ]    , , 3,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Сб окт 24, 2015 11:53:14 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 1
uwrtey писал(а):
Точно! Я не обратил внимания.

Что то я не глянул - использует ли либа прерывания....
А я и не подумал их "глобально разрешить" :)

Вот тут полно проектов на датчике 18b20 http://radioded.ru/component/search/?se ... Itemid=101
почитаю, может подгляжу чего интересного.
Тут интересное http://forum.easyelectronics.ru/viewtopic.php?p=7030

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

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Сб окт 24, 2015 13:46:42 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Да, я уже глянул. Прерывания не нужны.

Не пойму только что делаю не так.
Видимо мк не считывает данные с 1-wire.
Посмотрел примеры - сделал точно так-же.
И нифига... ( И времени особо нет... Чёртова суматоха )

Возможно дело в частоте - разбираюсь

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Сб окт 24, 2015 19:06:13 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Ошибку нашёл!
Я подтягивающий резистор забыл припаять!
Ну не дурак ли ? ;)
Всем Спасибо - пробую дальше!

_________________
не зная броду не лезь к вольтмоду


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Вс окт 25, 2015 21:49:44 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
А я столкнулся с проблемой - у меня датчик не хочет измерять отрицательные температуры.
Я прикладываю к датчику замороженные продукты из морозилки.
Температура опускается всего до 5 градусов.
Вижу как датчик сам топит лед.
1-wire это конечно круто, но вот то, что процессор датчика, во время измерения температуры разогревается и этим вносит коррективы в работу датчика - это очень плохо.
Измерения нельзя производить слишком часто.
Я измеряю один раз в секунду! И все равно.....

Сейчас попробую задержку больше по времени.... Но это уже не то - не оперативно... ( Плююсь )

_________________
не зная броду не лезь к вольтмоду


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Вс окт 25, 2015 22:13:41 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 904
Откуда: ВО
Рейтинг сообщения: 1
т.е мы не знаем температуру льда?
А куда спешить при измерении температуры трупа?


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Вт окт 27, 2015 06:43:29 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 1
uwrtey писал(а):
А я столкнулся с проблемой - у меня датчик не хочет измерять отрицательные температуры.
Я прикладываю к датчику замороженные продукты из морозилки.
Температура опускается всего до 5 градусов.
Вижу как датчик сам топит лед.
1-wire это конечно круто, но вот то, что процессор датчика, во время измерения температуры разогревается и этим вносит коррективы в работу датчика - это очень плохо.
Измерения нельзя производить слишком часто.
Я измеряю один раз в секунду! И все равно.....

Сейчас попробую задержку больше по времени.... Но это уже не то - не оперативно... ( Плююсь )

Учитывая, что конверсия идёт 0,75сек, то по времени вы только иделаете,что меряете Т. Если настройки не поменяли. Врядли датчик нагреется за микросекунды ощутимо. Мож ошибка в преобразовании данных? Выведите оба байта в УАРТ .

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Чт окт 29, 2015 02:58:38 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
тут http://tec.org.ru/publ/stati_po_ehlektr ... 0/8-1-0-14 написано 750 наносекунд.

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Чт окт 29, 2015 09:06:48 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 904
Откуда: ВО
Рейтинг сообщения: 1
А в DS заглянуть слабо?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Сб окт 31, 2015 21:43:37 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Точно!
Изображение
****************************************
Назрел другой вопрос:
Что то не пойму как прочитать ID датчика.
После команды 0x33 ( READ ROM [33h] ) датчик начнет вещать свой ID.
А куда его запишет эта либа ? ( либу прикрепил )
Например, данные о температуре она записывает в первые два байта массива buffer_1w.
Массив расчитан на 8 байт данных + 1 байт CRC.
ROM соджержит 64 бита данных ( 8 байт ). Неужели в этот же массив запишет - в первые 8 бит ?????
Или как ?

В примерах не рассмотрена команда READ ROM [33h]

**************************************************************
Добавлено:
Цитата:
Неужели в этот же массив запишет - в первые 8 бит ?????

Точно! Так и есть! почитал... http://chipenable.ru/index.php/programm ... 20-chast-3
Но мне не понятно вот что:
Массив переменных состоит из девяти байт ОЗУ.
Данные хранятся в первых восьми байтах.
В последнем ( в девятом ) байте хранится принятый CRC (циклический избыточный код).
Микроконтроллер сам рассчитывает CRC, исходя из первых восьми байт и сравнивает его с принятым CRC.
В случае равенства посылка считается верной!

А тут получается, что ROM состоит из
1 байт FAMILY CODE
6 байт SERIAL NUMBER
1 байт CRC
Всего 8 байт. ( а ячеек в ОЗУ у нас девять )
и получается что CRC записывается не в свою ячейку ОЗУ
Как будет происходить расчет и сравнение CRC ?????????

С проверкой CRC я так и не разобрался. ( Работает и так, но это наверное не правильно - может привести к ошибке !? )
Но программу, тем не менее, написал с распознаванием уникального кода датчиков в режиме обучения МК и записью их в ЕЕПРОМ МК.

единственный недостаток - это то что значение температуры выводится в 16ти ричном виде

С меня видео. :) https://youtu.be/D_lB3gh7mNQ


Вложения:
DS1820либа.txt [7.73 KiB]
Скачиваний: 131

_________________
не зная броду не лезь к вольтмоду
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Пн ноя 02, 2015 00:01:22 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Не могу тока сообразить как из 16-ти ричной в 10 т ричну. систему перевести данные о температуре :dont_know:

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Пн ноя 02, 2015 00:44:24 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 209
Зарегистрирован: Ср май 01, 2013 13:53:56
Сообщений: 2168
Откуда: с пальмы в Рио-Инженейро
Рейтинг сообщения: 0
третья строка - массив - 8 байт, принятых от дачика + 1 байт CRC
четвертая строка: 189 + 1 * 256 = 445; иными словами переменная integer, хранимая в пространстве массива (общие адреса)
пятая строка: Т= 445 / 16, или сдвиг вправо
===
crc считался чугунным оператором бейсика (других методов не ведаю)

Изображение


Вложения:
Сохраненное изображение 2015-11-2_3-40-41.718.png [3.43 KiB]
Скачиваний: 886

_________________
электропримат паяю даже лёжа...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Вт ноя 03, 2015 08:04:57 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Вопрос немного в другом. Как используя данную библиотеку на дисплей выводить на экран значение температуры в десятеричном виде?
Спойлер0=0
символ на экране = значение присвоенное регистру R16
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
a=10
b=11
c=12
d=13
e=14
f=15

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Вт ноя 03, 2015 10:49:21 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 1
Проверяете и запоминаете знак результата -> Умножаете на 100 (для индикации с ценой деления 0,01; для цены деления 0,1 умножаете на 10; для цены деления 1 не умножаете) и делите сдвигом на 16 -> Округляете прибавлением флага C -> На выходе результат*100. Например XH:XL=0x01BD (445d) -> т.к. при умножении на 100 рез-т может не поместиться в XH:XL предварительно расширяем до 3 регистров -> R0:XH:XL. На выходе 445*100/16=2781,25. Т.к. первая цифра после запятой меньше 0,5 флаг C будет равен 0 и в результате округления получите 2781. Далее идет процедура BCD преобразования, конвертация в коды символов, добавление знака.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Вт ноя 03, 2015 14:24:02 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Спасибо AKL!!!
Цитата:
Проверяете и запоминаете знак результата -> Умножаете на 100 (для индикации с ценой деления 0,01; для цены деления 0,1 умножаете на 10; для цены деления 1 не умножаете) и делите сдвигом на 16 -> Округляете прибавлением флага C -> На выходе результат*100. Например XH:XL=0x01BD (445d) -> т.к. при умножении на 100 рез-т может не поместиться в XH:XL предварительно расширяем до 3 регистров -> R0:XH:XL. На выходе 445*100/16=2781,25. Т.к. первая цифра после запятой меньше 0,5 флаг C будет равен 0 и в результате округления получите 2781.
Это все лишнее. :) Я сделал проще. Полученные с датчика данные я поделил на 16. ( Доли градуса мне не нужны ).

Цитата:
Далее идет процедура BCD преобразования, конвертация в коды символов, добавление знака.
А вот про BCD - это Вы верно подсказали.

Хочется поподробнее...
Пойду почитаю - http://www.evileg.ru/baza-znanij/mikrok ... tmega.html
или тут http://we.easyelectronics.ru/AVR/matema ... v-avr.html

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Вт ноя 03, 2015 14:40:49 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 1
В последней ссылке есть парочка моих. :oops:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Вт ноя 03, 2015 22:57:25 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Спасибо большое AKL!
Взял готовую подпрограмму и не задумываясь как она работает применил. http://www.evileg.ru/baza-znanij/mikrok ... tmega.html

Спойлер
Код:

;*******************************************************************************
; Преобразование из HEX в BCD
;*******************************************************************************

   ldi XL, 0x1C    ; данные с датчика температуры ( уже поделенные на 16 )
   ldi XH, 0x00

   mov R16, XL   ; копируем только младший байт

rcall HEX_to_BCD   ; преобразуем данные из регистра R16

rcall printhex ; печатаем на экран, то что в регистре R16


; подпрограмма преобразования
HEX_to_BCD:

   clr r17            ; Очищаем регистр help

HEX_to_BCD_l:

   subi r16,10         ; temp = temp — 10
   brcs HEX_to_BCD_2      ; Прервать, если перенос установлен
   inc r17            ; Инкрементируем r17   
   rjmp HEX_to_BCD_l      ; Проходим по циклу проверки заново

HEX_to_BCD_2:

   subi r16,-10         ; компенсируем отрицательное значение в r16
   swap r17         ; Меняем тетрады местами
   or r16,r17         ; Объединяем полученные значения в Упакованный BCD

   ret

Правда есть единственный недостаток
Максимальная температура измерения теперь 99 градусов целься
В дальнейшем эта подпрограмма не сгодится так как работать буду с температурами превышающими 99 градусов :tea:

вот данные с двух датчиков ( врут эти датчики видимо - реальная температура 27,5 градусов по Цельсию )
Ложные данные как следствие разогрева собственного процессора??? :dont_know:
Нужно сделать вычисление реже... ( раз в две - три секунды ??? ) ?
Изображение

:sleep:

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Ср ноя 04, 2015 02:59:24 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 1
uwrtey писал(а):
Максимальная температура измерения теперь 99 градусов
Просто нарастить по аналогии.
Спойлер
Код:
;**********************
; Преобразование из HEX в BCD
;**********************
GO_HEX_BCD:
   LDI   XL,LOW(124)
   mov R16, XL   ;

; подпрограмма преобразования
HEX_to_BCD:

   clr r17            ; Очищаем регистр сотен, десятков

HEX_to_BCD_l0:
   subi R16,100   ; temp = temp — 100
   brcs OUT_10      ; Прервать, если перенос установлен
   inc r17            ; прибавляем сотни в r17   
   rjmp HEX_to_BCD_l0      ; Проходим по циклу проверки заново
OUT_10:
   SUBI   R16,-100   ; восстановитб значение десятков и единиц
   SWAP   r17         ; сотни в старшую тетраду
B1:
   subi r16,10         ; temp = temp — 10
   brcs HEX_to_BCD_OUT      ; Прервать, если перенос установлен
   inc r17            ; Инкрементируем r17   
   rjmp B1      ; Проходим по циклу проверки заново

HEX_to_BCD_OUT:
   SUBI   R16,-10
; R17 сотни десятки
; R16       единицы
   ret

09:20
uwrtey писал(а):
Ложные данные как следствие разогрева собственного процессора???
Нужно сделать вычисление реже... ( раз в две - три секунды ??? ) ?
Можно ещё ограничить разрядность до 9 бит, тем самым уменьшить время преобразования в 8 раз.


Последний раз редактировалось akl Ср ноя 04, 2015 07:21:44, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Ср ноя 04, 2015 03:59:16 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
:beer: Спасибо большущее AKL !

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Ср ноя 04, 2015 12:09:27 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Пт июл 17, 2009 07:34:07
Сообщений: 2300
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Хочу на экране видеть не только значения температуры, но и часы ( желательно с календарем )
Как бы все это организовать? Да еще что бы процессор меги этим не занимать?
Подумал сначала, что можно другую мегу этим озадачить, но наверняка есть и другие - готовые решения.
А то часы на меге уплывут от настоящего времени скорее всего очень быстро..
Какие есть спец микросборки для данного решения ?
Вариант с 1-wire был бы очень круто
Видел есть решения с шиной I2C - DS1307 - http://we.easyelectronics.ru/Arduino/ar ... hield.html
вот например - http://www.ebay.com/itm/Arduino-I2C-RTC ... xyY3ZRraQc

Нашел несколько вариантов
1) http://www.ebay.com/itm/DS1302-Modulo-O ... xycD9TT1E6
2) http://www.ebay.com/itm/1-X-Arduino-I2C ... SwdsFUNO~K
вижу что отличие в количестве контактов.
Разбираюсь в чем принципиальная разница. :dont_know:
Похоже, что к модулю по второй ссылке можно подключать 1-wire датчики. Например наш DS18B20.
вот тут видно http://www.ebay.com/itm/Arduino-I2C-RTC ... xy3NBSdv-i.
Хм... интересно...
на борту есть ATMEL332 - похоже это внешний EEPROM

Что за контакты
DS и SQ ???
DC - видимо контакт для подключеня 1-wire ?
SQ - под вопросом.

_________________
не зная броду не лезь к вольтмоду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 + LCD NOKIA 3510 и Ассемблер
СообщениеДобавлено: Чт ноя 05, 2015 09:31:45 
Грызет канифоль

Зарегистрирован: Вт окт 08, 2013 07:38:59
Сообщений: 254
Откуда: СПб
Рейтинг сообщения: 1
DS1307 - древняя и дорогая.
Последний раз остановился на PCF8523 от NXP.


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

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


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

Сейчас этот форум просматривают: Paktok и гости: 18


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

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


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