Страница 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 (разумеется без приоритетов)
