Интерфейс 1-Wire
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Интерфейс 1-Wire
Длительность ресета сопоставима со временем записи 1 байта (команды).
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Интерфейс 1-Wire
А как же даташит? там ресет указан жестко.?Gudd-Head писал(а):Длительность ресета сопоставима со временем записи 1 байта (команды).
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Интерфейс 1-Wire
Чё?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Хатуль_мадан
- Электрический кот
- Сообщения: 1004
- Зарегистрирован: Ср мар 03, 2010 11:48:00
- Откуда: Уфа
Re: Интерфейс 1-Wire
Ну правильно, "там ресет указан жестко" не менее 480мкС и примерно столько же тратится времени на передачу 1 байта (8бит). Не путайте микросекунды с миллисекундами. На предыдущей странице я давал ссылку на график всего пакета общения. На нем вся шкала развертки осциллографа 20мС и в ней умещаются последовательно сброс, команды пропуска кода и чтения памяти, далее 8 принятых байт включая CRC, потом снова сброс и команды на новое преобразование. Оставшееся время около 1 Сек просто ждем и отображаем то, что принято от датчика. Причем, на графике видно, что команды принимаются/передаются не потоком друг за другом, а с паузой на ожидание прерываний, чтобы не мешать одним процессом другому. Прерывания на индикацию происходят каждую миллисекунду.
Re: Интерфейс 1-Wire
возникло два вопроса
- любая начатая процедура обмена может длиться сколь угодно долго за счет пауз между отдельными тайм-слотами, но всегда должна быть завершена полностью;
как мы узнаем это завершилась передча или устройство отвалилось от сети ?
- PRESENCE). Этот же импульс устройство всегда выдает в линию, если обнаружит сигнал RESET.
Мк дал ресерт и все 10 устройств затараторили презентом... явно колизия какаято намечается ?
- любая начатая процедура обмена может длиться сколь угодно долго за счет пауз между отдельными тайм-слотами, но всегда должна быть завершена полностью;
как мы узнаем это завершилась передча или устройство отвалилось от сети ?
- PRESENCE). Этот же импульс устройство всегда выдает в линию, если обнаружит сигнал RESET.
Мк дал ресерт и все 10 устройств затараторили презентом... явно колизия какаято намечается ?
Re: Интерфейс 1-Wire
сори тема живая ?
Re: Интерфейс 1-Wire
Спасибо за прекрасную статью!
Очень доходчиво всё изложено, хоть и абсолютно не затронута самая интереная тема - алгоритм поиска адресов. Кому интересно - смотрите аттач, там прекрасное изложение, правда на англицком.
Остались сомнения по поводу размеров "зоны ввода значения в МК", указанного автором статьи:
По даташитам снайперская точность не нужна:
Очень доходчиво всё изложено, хоть и абсолютно не затронута самая интереная тема - алгоритм поиска адресов. Кому интересно - смотрите аттач, там прекрасное изложение, правда на англицком.
Остались сомнения по поводу размеров "зоны ввода значения в МК", указанного автором статьи:
По даташитам снайперская точность не нужна:
Код: Выделить всё
если импульс короче 15мкс => передается логическая 1
если импульс длинее 60мкс => передается логический 0- Вложения
-
- write.gif
- (12.19 КБ) 988 скачиваний
Re: Re:
Понимаю что некропостер, но однако - хочется поделится напримером программной реализации считывания/печати/обработки порогов температуры нескольких DS18B20 на Pic-18 без программных задержек.
В качестве источника микросекундных задержек используется таймер и высокоприоритетные прерывания.
[uquote="Liv",url="/forum/viewtopic.php?p=425977#p425977"]На ассемблере сейчас никто не пишет. Почти.
[/uquote]
Например вычисление CRC на Асм Пик-18, семь команд мелкопроца на бит, побитный ввод инфы:
использовано в универсальной заготовке, для примера работало в учебной плате частотника http://vfd.psw2.ru/ там есть исходники, фото/видео работы.
Для припаивания парочки DS18B20 в боевой частотник для измерения темп двигла не хватило терпения делать изоляцию на DS18B20 (на датчике примерно 160 вольт от земли).
Полагаю что на Си частотник на Pic18F4431 с аналогичной точностью и скоростью вычислений фазных значений не будет написан никогда.
Основание - сравнение машинного кода от компилятора Си с самописанным асмом.
В качестве источника микросекундных задержек используется таймер и высокоприоритетные прерывания.
[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;
}
Например вычисление 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:
Так всегда и делал, начиная с ПИК16 (разумеется без приоритетов)psw2.ru писал(а):используется таймер
