|
|
  |
ATmega16 + DS18B20. Код на ассемблере не работает. |
|
|
|
Dec 8 2008, 10:30
|

Местный
  
Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317

|
Цитата(ARV @ Dec 8 2008, 12:04)  просмотрел 1-wire память, часы, АЦП, термометры - вроде все поддерживают паразитное питание... что я пропустил? ds1821 (если память не изменяет) Цитата(ARV @ Dec 8 2008, 12:04)  кстати, я в смятении - изложенные аргументы я принял, но меня странно удивила информация, которую я вычитал из документа, описывающего DS2490... там написано, что интервал чтения мастера не должен превышать 22 мкс  а как же быть с 15 мкс, определенными "по-умолчанию"? Надо будет глянуть...
|
|
|
|
|
Dec 8 2008, 11:04
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(ARV @ Dec 8 2008, 12:04)  просмотрел 1-wire память, часы, АЦП, термометры - вроде все поддерживают паразитное питание... что я пропустил? Хорошо, сформулирую иначе: если у ванварного девайса есть нога Vcc, он не будет генерить Presence при подаче питания. Не готов сейчас просматривать даташиты на все девайсы в микробанках (MicroCAN  ), но, имхо, и там найдутся предатели. Цитата кстати, я в смятении - изложенные аргументы я принял, но меня странно удивила информация, которую я вычитал из документа, описывающего DS2490... там написано, что интервал чтения мастера не должен превышать 22 мкс  а как же быть с 15 мкс, определенными "по-умолчанию"? Вы не обратили внимания, что это написано применительно к Flexible mode DS2940 (возможность подстроиться под характеристики шины). Ограничение в 22 мкс вызвано сомнениями в способности ванварного слейва с паразитным питанием дотянуть 0 на шине до требуемой длительности и не упасть самому без сил (по-видимому, актуально при минимальных длительностях 1 на шине между тайм-слотами; мне до такого безобразия доходить не удавалось). Стандартные тайминги (чуть ниже Fig.6) tLOW1 = 8 us, tDSO = 6 us. Заметьте, еще чуть ниже: *Power-up defaults for Flexible speed: tLOW1=12µs, tDSO=7µs, что вполне объяснимо, учитывая логику работы ванварной шины. Я, пожалуй, приведу полностью абзац, в котором содержится удивившее Вас предложение, т.к. он достаточно аргументировано опровергает Вашу теорию о пользе 1-мкс импульса: Цитата If the network is large or heavily loaded, flexible speed should be selected and the Write-1 low time (tLOW1) should be extended to more than 8 µs to allow the 1-Wire bus to completely discharge. Since a large or heavily loaded network needs more time to recharge, it is also recommended to delay sampling the bus for reading. A higher Data Sample Offset value (tDSO) will increase the voltage margin and also provide extra energy to the slave devices when generating a long series of Write-0 time slots. However, the total of tLOW1 + tDSO should not exceed 22 µs. Otherwise the slave device responding may have stopped pulling the bus low when transmitting a logic 0. Цитата(ARV @ Dec 8 2008, 13:38)  1821 вообще недоделок какой-то... он принципиально не стандартный, если сравнивать с остальными 1-wire... даже адреса не имеет... DS1821 имеет функциональность только термостата и термометра, но с ванварной шиной. Если со склерозом все в порядке, есть еще DS1621 с такой же функциональностью, но под SPI.
|
|
|
|
|
Dec 8 2008, 11:16
|

Местный
  
Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317

|
Цитата(ARV @ Dec 8 2008, 13:38)  1821 вообще недоделок какой-то... он принципиально не стандартный, если сравнивать с остальными 1-wire... даже адреса не имеет... Да, правильно заметил xemul, это именно темостат. А работать в качестве датчика - это его дополнительная, совершенно ненужная преблуда.
|
|
|
|
|
Dec 8 2008, 11:34
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(Aesthete Animus @ Dec 8 2008, 14:16)  Да, правильно заметил xemul, это именно темостат. А работать в качестве датчика - это его дополнительная, совершенно ненужная преблуда. да я в курсе  первый раз его заюзал лет 7 назад. вопрос пока именно о нормальных 1-wire девайсах
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Dec 8 2008, 11:44
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(ARV @ Dec 8 2008, 14:14)  что касается "подстройки под линию" - вы меня критиковали на счет подстройки софта ради шнурка - а тут даже в микросхемке предусмотрена подстройка... имхо, это таки две большие разницы - рихтовать сорцы для МК (где задержки программеры обычно делают nop'ами и delay_us() - hardcoded, таксказать  ), и выбрать в лист-боксе на хостовом компе желаемое время tLOW1. Цитата и тем не менее, как следует понимать ситуацию с 22 мкс - если линия нагруженная. как это вяжется с декларируемыми везде и всюду 15 мкс? Ышо раз: 15 мкс - рекомендованное для Standard Mode, 22 мкс - верхнедопустимое для Flexible Mode. Или попробуйте учесть задержку фазы на длинной линии, и все срастется. Или понимайте это как косвенное подтверждение неприспособленности ванвари к развесистости и возможности работы с длинными пакетами без ожесточенных плясок с бубнами. Цитата наконец, можете указать на документ, где написано, что при наличии ноги VCC девайс не генерирует PRESENCE при подаче питания? если iButton и 1-Wire есть суть одно и то же (по крайней мере отдельного описания "стандарта" для 1-Wire я не нашел), то в стандарте такого упоминания нет. 1-Wire - шина, iButton - конструктив ванварных девайсов. По-моему, это слегка разные категории. Посмотрите appibstd.pdf у производителя - там все расписано, и ванварь с ибутоном соприкасаются, но не смешиваются. На документ не укажу, т.к. это, как писал классик, "ума холёдьний наблюдений, и сэрдца горестний замэт". Если Вам в даташитах на ванварные девайсы с внешним не-паразитным питанием удастся найти упоминание о Presence при подаче питания, занесу их в исключения.
|
|
|
|
|
Dec 8 2008, 12:06
|

Местный
  
Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317

|
Цитата(ARV @ Dec 8 2008, 14:14)  и тем не менее, как следует понимать ситуацию с 22 мкс - если линия нагруженная. как это вяжется с декларируемыми везде и всюду 15 мкс? Ну где везде и всюду? http://pdfserv.maxim-ic.com/en/an/AN126.pdfA - минимум 5, рекомендовано 6, максимум 15 E - минимум 5, рекомендовано 9, максимум 12 Тогда получаем для MasterSample (A+E): минимум 10, рекоммендовано 15, максимум 27 22мкс вполне укладываются в этот интервал Цитата(_Pasha @ Dec 8 2008, 14:49)  Берем датаshit ставим средние времена и оно работает. Неее... я лучше возьму датаsheet
|
|
|
|
|
Dec 9 2008, 15:31
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 21-03-07
Пользователь №: 26 369

|
Извиняюсь, я может не все заметил в бурных прениях но попытаюсь попасть в струю: Может все таки попробовать написать подобный код, Но скажем на Си? тем более что библиотчека уже выложена выше в постах и попробовать сравнить результаты того что выдает датчик на асме и на Си? И кстати не работает-т.е мы не получаем ничего или не получаем то что надо? ведь это разные вещи
|
|
|
|
|
Dec 9 2008, 18:10
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(ARV @ Dec 8 2008, 16:42)  вот так берешь один даташит, второй третий - всюду читаешь о 15 мкс А фронты? Имхо, большая часть непоняток именно из-за этого. Цитата(sonycman @ Dec 8 2008, 19:17)  Как автоматически определить, какой датчик что измеряет? Или просто, перед подключением, считывать и заносить адрес каждого датчика в таблицу соответствия? А что, есть другие варианты?  Цитата(Nekromant @ Dec 9 2008, 19:31)  тем более что библиотчека уже выложена выше в постах Она выложена в "бессмертной" теме исходники программ и библиотек. Про работу не скажу ничего: есть свое, во многих вариантах. Но оно урезано до минимально необходимого
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|