|
|
Схема эксперимента была проста. Использовались 2 типа PIC: PIC16C65B или PIC16F876 (самые ходовые у нас). Использовался внешний кварц 9,8304МГц с двумя конденсаторами, кажется, по 47пФ, но не помню точно. Ножка Reset через 10к на +5В.
Тестовая программа же делалась вообще примитивного плана: в единственном цикле запрещались прерывания, конфигурировлся один из портов на вывод и дергалась одна ножка. Вся неиспользованная память стерта, что эквивалентно в случае случайной установки программного счетчика на эту область выполнению команды ADDLW 0xFF.
Часто (но не всегда!!!) при очень медленном возрастании питания (в течение примерно 10...20с) с 0 до нормального (5В) PIC мертво вис. Та же картина наблюдалась при снижении питания до 1В а потом его восстановлении до нормального. Причем никакими манипуляцими PIC из этого состояния вывести не удавалось (ни сажанием Reset, ни заземлением свободных ножек).
Если бы причина была в генераторе, то, я думаю, он бы уже запустился при моих издевательствах над процем. Хотя, каюсь, проэкспериментировать с внутренним генератором мне в голову не пришло. Попробую это сделать, но раньше 4 мая не получится.
PS. Когда я услышал про такое поведение PICов в конференции на www.microchip.ru я тоже сначала не поверил. Количество проданных девайсов несколько тысяч, причем практически все они необслуживаемые и многие эксплуатируются уже по несколько лет. Случаев зависания не было, но У ВСЕХ БЫЛ УСТАНОВЛЕН БИТ BOR. Я не придавал этому большого значения, но с пол-года назад пришлось заняться дешевыми приборами с батарейным питаним. Вот тут то и оказалось, что мои знания о поведении PICов, мягко говоря, неполны.
E-mail: info@telesys.ru