|
В устройстве используется микросхема часов DS12887A. При питании устройства от линейного источника питания всё хорошо. Но при питании от импульсного источника почти всегда при включении и выключении теряются данные в USER RAM DS12887A. Как показали эксперименты, виноват вывод RCLR (ножка 21), который отсутствовал у DS12887 и появился у микросхемы с буквой "A". Насколько я понял из datasheet, этот вывод нужно оставлять висящим в воздухе. Но при этом система становится очень чувствительной к помехам, которые вызывают очистку памяти. Подтяжка RCLR резистором куда-либо приводит к очистке памяти при каждом включении. А вот емкость 1 нФ, установленная с RCLR на +5V или на GND, проблему устраняет. Не знаю, можно ли так делать, поэтому пока я отказался от использования USER RAM и необходимые данные храню в регистрах будильника. Такое не пройдет, если данных станет больше. И вообще, непонятна схемотехника вывода RCLR микросхемы. Сброс памяти работает при отсутствии внешнего питания, в то же время на этом выводе нулевой потенциал. Как микросхема может "видеть" замыкание его на землю? Что делать с этим выводом? В datasheet на DS12885 написано про RCLR: "This pin is internally pulled up. Do not use an external pull-up resistor on this pin." Странно, но этот pull-up виден только при включенном внешнем питании, а вывод функционирует при выключенном... Понятно, что первопричина - высокий уровень помех. Но как-то не совсем логично, что самым "узким" местом системы является висящий в воздухе вывод очистки памяти.
E-mail: info@telesys.ru