Страница 4 из 4

Re: Интерфейс 1-Wire

Добавлено: Вт мар 10, 2015 13:09:39
Gudd-Head
Длительность ресета сопоставима со временем записи 1 байта (команды).

Re: Интерфейс 1-Wire

Добавлено: Вт мар 10, 2015 14:02:57
Shyrik27
Gudd-Head писал(а):Длительность ресета сопоставима со временем записи 1 байта (команды).
А как же даташит? там ресет указан жестко.?

Re: Интерфейс 1-Wire

Добавлено: Вт мар 10, 2015 14:12:13
Gudd-Head
Чё?

Re: Интерфейс 1-Wire

Добавлено: Вт мар 10, 2015 14:46:07
Хатуль_мадан
Ну правильно, "там ресет указан жестко" не менее 480мкС и примерно столько же тратится времени на передачу 1 байта (8бит). Не путайте микросекунды с миллисекундами. На предыдущей странице я давал ссылку на график всего пакета общения. На нем вся шкала развертки осциллографа 20мС и в ней умещаются последовательно сброс, команды пропуска кода и чтения памяти, далее 8 принятых байт включая CRC, потом снова сброс и команды на новое преобразование. Оставшееся время около 1 Сек просто ждем и отображаем то, что принято от датчика. Причем, на графике видно, что команды принимаются/передаются не потоком друг за другом, а с паузой на ожидание прерываний, чтобы не мешать одним процессом другому. Прерывания на индикацию происходят каждую миллисекунду.

Re: Интерфейс 1-Wire

Добавлено: Пт янв 22, 2016 16:29:33
alex68md
возникло два вопроса

- любая начатая процедура обмена может длиться сколь угодно долго за счет пауз между отдельными тайм-слотами, но всегда должна быть завершена полностью;

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

- PRESENCE). Этот же импульс устройство всегда выдает в линию, если обнаружит сигнал RESET.
Мк дал ресерт и все 10 устройств затараторили презентом... явно колизия какаято намечается ?

Re: Интерфейс 1-Wire

Добавлено: Пн янв 25, 2016 14:49:53
alex68md
сори тема живая ?

Re: Интерфейс 1-Wire

Добавлено: Вт июл 26, 2016 05:11:26
binary1
Спасибо за прекрасную статью!

Очень доходчиво всё изложено, хоть и абсолютно не затронута самая интереная тема - алгоритм поиска адресов. Кому интересно - смотрите аттач, там прекрасное изложение, правда на англицком.

Остались сомнения по поводу размеров "зоны ввода значения в МК", указанного автором статьи:
Изображение
По даташитам снайперская точность не нужна:
Изображение

Код: Выделить всё

если импульс короче 15мкс => передается логическая 1
если импульс длинее 60мкс => передается логический 0

Re: Re:

Добавлено: Чт май 03, 2018 21:03:06
psw2.ru
Понимаю что некропостер, но однако - хочется поделится напримером программной реализации считывания/печати/обработки порогов температуры нескольких DS18B20 на Pic-18 без программных задержек.
В качестве источника микросекундных задержек используется таймер и высокоприоритетные прерывания.
[uquote="Liv",url="/forum/viewtopic.php?p=425977#p425977"]На ассемблере сейчас никто не пишет. Почти.

Код: Выделить всё

//--------------------- Вычисление контрольной суммы: ------------------------
void Do_Crc8(char b, char *crc)
{
  for(char i = 0; i < 8; b = b >> 1, i++)
    if((b ^ *crc) & 1) *crc = ((*crc ^ 0x18) >> 1) | 0x80;
     else *crc = (*crc >> 1) & ~0x80;
}
[/uquote]
Например вычисление CRC на Асм Пик-18, семь команд мелкопроца на бит, побитный ввод инфы:

Код: Выделить всё

NextBitRead 
;ложных проходов быть не должно при подсчёте контрольной суммы
; call CalcCRC ; Процедура проверена на документации и серийнике датчика и чтении скратчпада - работает
	rrncf	DS1820_CRC,F,BANKED	; Вращаем минуя перенос 
	movf	DS1820_CRC,W,BANKED	;
	bcf		DS1820_CRC,7,BANKED	; чистим старший (место под результат)
	xorwf	W_1_ReadBuf,W,BANKED; Результат XOR входа и старшего бита CRC
; в старшем бите Акк
 	bnn		DoneXor	; Заменил на анализ знакового бита (бит-7)
	movlw	b'10001100'	; ************* То Самое "Представление Полинома"
	xorwf	DS1820_CRC,F,BANKED	; инвертируем старший и серединку
DoneXor
использовано в универсальной заготовке, для примера работало в учебной плате частотника http://vfd.psw2.ru/ там есть исходники, фото/видео работы.
Для припаивания парочки DS18B20 в боевой частотник для измерения темп двигла не хватило терпения делать изоляцию на DS18B20 (на датчике примерно 160 вольт от земли).
Полагаю что на Си частотник на Pic18F4431 с аналогичной точностью и скоростью вычислений фазных значений не будет написан никогда.
Основание - сравнение машинного кода от компилятора Си с самописанным асмом.

Re: Re:

Добавлено: Пт май 11, 2018 14:25:58
Smen
psw2.ru писал(а):используется таймер
Так всегда и делал, начиная с ПИК16 (разумеется без приоритетов) :)