Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 30.04.2010, 07:02  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Реализация 1-Wire на ассемблере

Предлагаю свой вариант реализации опроса DS18s20 с помощью Atmega8.
Сделано на ассемблере в AVR Studio. Кварц 14.745 . Для синхронизации
1-Wire использую Timer2, если использовать другой кварц используемые
значения надо пересчитывать. задействованы две ножки PIND,3 (кнопка)
и PINC,4(шина 1-Wire). PINC,4 подтянута к питанию резистором 5к1 и
подключена к DS18s20. Если PIND,3 занулить и подать питание на схему,
то в EEPROM начиная с адрес 0x0000 можно увидеть адрес DS18s20
(7 байтов) плюс байт CRC. Записав эти 8 байтов в адрес 0x0010, подав
логическую 1 на PIND,3, после в EEPROM начиная с адреса 0x0070 можно
увидеть содержимое Scratchpad-а (8 байтов+1 байт CRC и ASCII десятки
и единицы температуры)
Есть некоторая диагностика: в ячейке памяти ONE_WIRE_STAT код завершения
операции на шине 1Wire успешно 0xf0
0xe1 - превышено время ожидания импульса присутствия
0xe2 - импульс присутствия пришел слишком рано
0xe3 - импульс присутствия длиннее требуемого
0xe4 - импульс присутствия короче требуемого
0xe5 - при чтении нуля слишком долго удерживалась в нуле шина
0xe6 - не совпала CRC
На столе работают 4 датчика их адреса в EEPROM 0x0010, 0x0020, 0x0030, 0x0040 ,
буду измерять температуру в 4 точках помещения.
Знак температуры не анализирую. Есть косяк, при включении выдается
85, так как у меня такого быть не может, то значение 85(десятичное)
игнорируется.

fuse CKSEL0,CKSEL1,CKSEL2,CKSEL3,SUT1,BODEN
BOOTRST,CKOPT,WDTON,RSTDISBL
Вложения:
Тип файла: rar JQ015_1wire_Termometr.rar (25.7 Кб, 238 просмотров)
Реклама:

Последний раз редактировалось zelvans; 30.04.2010 в 09:28.
zelvans вне форума  
Эти 3 пользователя(ей) сказали Спасибо zelvans за это сообщение:
Sergey_Vl (17.08.2012), SHIM1 (30.04.2010), usb-com (17.05.2010)
Непрочитано 30.04.2010, 10:09  
SHIM1
Временная регистрация
 
Аватар для SHIM1
 
Регистрация: 19.04.2010
Сообщений: 92
Сказал спасибо: 30
Сказали Спасибо 83 раз(а) в 37 сообщении(ях)
SHIM1 на пути к лучшему
По умолчанию Re: Реализация 1-Wire на ассемблере

Сообщение от zelvans Посмотреть сообщение
Есть косяк, при включении выдается
85, так как у меня такого быть не может, то значение 85(десятичное)
игнорируется.
Нет, это не косяк, это норма. Цитата из даташита, стр.4: "The power-on reset value of the temperature register is +85°C." Кстати, по этому "косяку" удобно проверять правильность преобразования данных датчика в десятичный код.
SHIM1 вне форума  
Непрочитано 30.04.2010, 11:59  
ilya_sh
Прописка
 
Регистрация: 09.10.2007
Сообщений: 235
Сказал спасибо: 27
Сказали Спасибо 24 раз(а) в 24 сообщении(ях)
ilya_sh на пути к лучшему
По умолчанию Re: Реализация 1-Wire на ассемблере

Сообщение от SHIM1 Посмотреть сообщение
Нет, это не косяк, это норма. Цитата из даташита, стр.4: "The power-on reset value of the temperature register is +85°C." Кстати, по этому "косяку" удобно проверять правильность преобразования данных датчика в десятичный код.
Добавлю: это происходит по причине первого считывания данных до первого преобразования.
ilya_sh вне форума  
Непрочитано 30.04.2010, 13:20  
SHIM1
Временная регистрация
 
Аватар для SHIM1
 
Регистрация: 19.04.2010
Сообщений: 92
Сказал спасибо: 30
Сказали Спасибо 83 раз(а) в 37 сообщении(ях)
SHIM1 на пути к лучшему
По умолчанию Re: Реализация 1-Wire на ассемблере

Сообщение от ilya_sh Посмотреть сообщение
Добавлю: это происходит по причине первого считывания данных до первого преобразования.
Однозначно !
SHIM1 вне форума  
Непрочитано 30.04.2010, 14:06  
SHIM1
Временная регистрация
 
Аватар для SHIM1
 
Регистрация: 19.04.2010
Сообщений: 92
Сказал спасибо: 30
Сказали Спасибо 83 раз(а) в 37 сообщении(ях)
SHIM1 на пути к лучшему
По умолчанию Re: Реализация 1-Wire на ассемблере

zelvans,
Понравилось преобразование hex в dec . Взял на вооружение!
SHIM1 вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация modbus на atmega128 neizilber Микроконтроллеры, АЦП, память и т.д 4 20.03.2010 23:40
Реализация цикла на Verilog toxxinus Микроконтроллеры, АЦП, память и т.д 3 16.01.2010 03:14
реализация информации от энкодера gusvik Микроконтроллеры, АЦП, память и т.д 10 15.01.2010 02:48
Реализация пульта ДУ к компу vicvtor Автоматика и аппаратура связи 2 11.11.2009 20:37
Реализация USB-хоста на at90usb1287. Как? svad0 Микроконтроллеры, АЦП, память и т.д 12 30.10.2009 10:32


Часовой пояс GMT +4, время: 03:12.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot