-
- Проблема как бы решилась, хотя вопросы все равно остались. Оказалось что АЦП для правильной работы нужно физически выключать питание PICа после перепрограммирования ... AlexBi(472 знак., 18.03.2008 11:08)
- Оказалось, что мешает разрешенный JTAG, выключил его в фузах и все заработало. - AlexBi(19.03.2008 15:17)
- Патамушта ты поленился ручками проинициализировать регистры ADxPCFGy (x=0/1, y=L/H) - нулями в те позиции, которым соответствуют твои аналоговые входы. PICkit2/ICD2 конфигурируют их под себя, отсюда и бардак - MBedder(18.03.2008 15:07)
- Нее, регистры я инициализировал правильно. Кстати, подача 0 на вывод сброса не исправляет ситуацию (если бы забыл, то помогло бы). Нужно именно убрать питание. - AlexBi(18.03.2008 15:56)
- Именно при вышеописанной ситуации никакой сброс не поможет, а если ADxPCFGy были явно проинициализированы в коде - прекрасно поможет. Проверяй код, или дай весь его сюда, не забыв про кнопки "С" или "asm" - MBedder(18.03.2008 16:03)
- Сброс как раз должен помочь, т.к. при любом сбросе ADxPCFG обнуляется (переводит все в аналоговый режим). Код почти как у микрочипа + мой вывод на индикатор. AlexBi(489 знак., 18.03.2008 17:33)
- Код сейчас не смотрел, НО единожды сам наступив на грабли, и неоднократно видя, как эти грабли собирают другие - ВСЕ используемые регистры ВСЕГДА надо инициализировать вручную, во избежание малопонятных и трудноуловимых глюков - AVF(18.03.2008 20:54)
- Инициализировал все регистры АЦП, не помогло. - AlexBi(19.03.2008 11:57)
- а вот это уже, простите, полный бред. - Gamma SPb(19.03.2008 00:34)
- в чем полный бред - в том что управляющие регистры после сброса могут содержать не совсем то? было, такое у меня, видел у других. если используете например ацп ничего сложного проинициализировать все регистры ацп, AVF(88 знак., 19.03.2008 05:51)
- у нормальных контроллеров состояние периферийных регистров после сброса указывается в документации. При этом эти состояния могут отличаться для разных видов сброса (WDT, BOR, внешний сброс, программный и т.п.) Если состояние неопределено - это тоже Gamma SPb(85 знак., 19.03.2008 10:18)
- pic16f877 лет 5 назад, то ли uart, то ли ацп, то ли CCP уже не помню, в определенных условиях при сбросе - помеха по земле, регистр не соответствовал начальным условиям, вылечилось ручной инициализацией - AVF(19.03.2008 12:13)
- а говоришь "видел у других"... еще примеры будут? - Gamma SPb(19.03.2008 17:00)
- в общем хорошо подумал и посмотрел свои проекты - действительно лишнее сказал :) не стоит переинициализировать SFR :) то были единичные случаи в особо поганых условиях - AVF(21.03.2008 20:59)
- угу, кто-то из коллег, на тех же процах в примерно тех же условиях - мы тогда у большой энергетики тусовались :) - AVF(19.03.2008 18:05)
- а говоришь "видел у других"... еще примеры будут? - Gamma SPb(19.03.2008 17:00)
- pic16f877 лет 5 назад, то ли uart, то ли ацп, то ли CCP уже не помню, в определенных условиях при сбросе - помеха по земле, регистр не соответствовал начальным условиям, вылечилось ручной инициализацией - AVF(19.03.2008 12:13)
- по теме сабжа, последовательность инициализации регистров отличается от рекомендованной в даташите, может в этом проблема? - AVF(19.03.2008 07:19)
- у нормальных контроллеров состояние периферийных регистров после сброса указывается в документации. При этом эти состояния могут отличаться для разных видов сброса (WDT, BOR, внешний сброс, программный и т.п.) Если состояние неопределено - это тоже Gamma SPb(85 знак., 19.03.2008 10:18)
- в чем полный бред - в том что управляющие регистры после сброса могут содержать не совсем то? было, такое у меня, видел у других. если используете например ацп ничего сложного проинициализировать все регистры ацп, AVF(88 знак., 19.03.2008 05:51)
- Код сейчас не смотрел, НО единожды сам наступив на грабли, и неоднократно видя, как эти грабли собирают другие - ВСЕ используемые регистры ВСЕГДА надо инициализировать вручную, во избежание малопонятных и трудноуловимых глюков - AVF(18.03.2008 20:54)
- Сброс как раз должен помочь, т.к. при любом сбросе ADxPCFG обнуляется (переводит все в аналоговый режим). Код почти как у микрочипа + мой вывод на индикатор. AlexBi(489 знак., 18.03.2008 17:33)
- Именно при вышеописанной ситуации никакой сброс не поможет, а если ADxPCFGy были явно проинициализированы в коде - прекрасно поможет. Проверяй код, или дай весь его сюда, не забыв про кнопки "С" или "asm" - MBedder(18.03.2008 16:03)
- Нее, регистры я инициализировал правильно. Кстати, подача 0 на вывод сброса не исправляет ситуацию (если бы забыл, то помогло бы). Нужно именно убрать питание. - AlexBi(18.03.2008 15:56)
- Проблема как бы решилась, хотя вопросы все равно остались. Оказалось что АЦП для правильной работы нужно физически выключать питание PICа после перепрограммирования ... AlexBi(472 знак., 18.03.2008 11:08)