|
Написал прогу для опроса 8 DS18S20, посаженных на порт А ATmega16. Припаял 5 штук, четыре показывают нормальную температуру, а с пятого читаются одни единички. Датчик нормальный, поменял местами с первым - все равно с пятой позиции читаются одни единички. Если касаться рукой ноги DQ пятого датчика, то иногда начинает выдавать температуру.
Стал копаться, в результате экспериментов установил, что если время Е увеличить до 12 мкс, то начинает читать единички со всех датчиков, кроме первого, а если уменьшить до 5 мкс, то начинает читать со всех датчиков нормальную температуру.
Отсюда, собственно, вопрос: почему начинаются глюки при увеличении времени Е (т.е. при позднем Master Sample) и почему по доке его нельзя делать больше 12 мкс, хотя считывание информации с DS длится дольше. И почему при уменьшении времени Е все заработало? Подозреваю, что при подключении датчиков через длинный кабель начнутся новые проблемы.
E-mail: info@telesys.ru