Я использую PIC18F4680, и у меня возникают проблемы при работе с внешним тактовым источником 40 МГц или кристаллом 10 МГц в режиме HSPLL. Использование кристалла с частотой 10 МГц в режиме HS кажется вполне приемлемым, а кристалл с частотой 5 МГц в режиме HSPLL также работает нормально.
Происходит следующее: PIC запускается, работает в течение нескольких секунд, а затем на некоторое время выключается и запускается снова. Общий период цикла составляет около 5 секунд, из которых работа PIC прекращает работать в начале второй секунды.
Я также заметил, что иногда, когда я добавляю достаточно большой разряженный конденсатор к шине питания макета, PIC будет работать нормально. Интересно, что это происходит только в том случае, если я добавляю конденсатор, когда ПИК уже работает. Если я подключу макет к конденсатору или поставлю конденсатор, который не был полностью разряжен, проблема останется.
Я читал на некоторых сайтах, что проблемы, подобные моей, могут возникать из-за повышенного энергопотребления PIC на более высокой частоте и более низком рабочем напряжении. В этих случаях, если на источнике питания есть небольшие падения напряжения, они с большей вероятностью достигнут самого низкого рабочего напряжения PIC на этой частоте, поэтому для решения этой проблемы целесообразно иметь дополнительные конденсаторы на макете. Так как при полной нагрузке на 40 МГц, вся схема использует около 64 мА, моя первая мысль была поставить некоторые конденсаторы танталовые надеющихся , что они будут достаточно большими и имеют достаточно низкий ESR , чтобы решить эту проблему. Один не помог, а второй тоже не помог. Поэтому я добавил 100 μ Fалюминиевый конденсатор, и это тоже не помогло. Потом добавили алюминиевый конденсатор никакого эффекта. В конце я добавил алюминиевый электролитический конденсатор емкостью 1 мФ, а затем в первый раз схема работала нормально, пока не выключился и не включил питание. Следует также отметить, что для целей тестирования я использую Vcc 5,5 В, что является максимальным номинальным напряжением для этого микроконтроллера. Это должно оставить мне место до 4,2 В, что является самым низким рабочим напряжением на 40 МГц.
Далее, я читал , что иногда плавающие выходы могут вызвать сбои, поэтому я ставлю некоторые ниспадающего резисторов на все неиспользованные контакты и что не помогли. После того, что я прочитал , что иногда могут возникнуть проблемы , если входы генератора плывут, поэтому я попытался их подключения к GND с помощью некоторых 10 М Ом резисторы и это не помогло.
Из-за длины провода, идущего от выхода генератора к входу генератора на PIC, я ожидал проблем с ним, но я не ожидал проблем с кристаллом 10 МГц, который очень близко к выводам генератора на PIC. Также с кристаллом, я бы ожидал проблем и в режиме HS, если проблема была в искажении сигнала генератора из-за макета, но в режиме HS PIC работает нормально.
Обычно я использую конденсаторы 33 пФ для кристаллов, но я тоже пробовал с 15 пФ и не смог обнаружить никаких изменений.
Следует также отметить, что на этом PIC имеется монитор часов повышенной безопасности и переключение внутреннего / внешнего генератора. Я попытался включить их обоих, надеясь, что они хотя бы подтвердят, что проблема связана с осциллятором, но они не помогают с проблемой. Там нет разницы, они включены или выключены.
Я также отключил в целях тестирования сторожевой таймер, сброс из-за отключения и сброс из-за переполнения стека. Я думаю, что я отключил все источники сброса для этого чипа. Также программа находится в бесконечном цикле, поэтому она не заканчивается.
У PCF8583 нет проблем, и он продолжает работать правильно, даже когда PIC сам перезагружается, но, с другой стороны, минимальное напряжение намного ниже.
К сожалению, у меня нет осциллографа, но я провел некоторые тесты со звуковой картой (частота дискретизации 96 кГц), и я заметил, что при включенном RTC на линии электропередачи появляется шум с частотой 25 Гц. Программа, которую я использую, сообщает о пике около 300 мВ, но я не знаю, насколько ей можно доверять, и я не знаю, достаточно ли этого, чтобы вызвать какие-либо проблемы для PIC. Когда все выключено, шум составляет около 100 мВ от пика до пика, так что должно быть хорошо.
Если это поможет, вот изображение самого макета: (щелкните правой кнопкой мыши -> просмотреть изображение в полном размере)
Так кто-нибудь знает, что здесь происходит?
В конце концов, я мог бы просто запустить PIC на 20 МГц, но если мне понадобится больше вычислительной мощности, я бы хотел иметь возможность работать на 40 МГц.
ОБНОВИТЬ
Я установил другой регулятор на самом макете, и шум, улавливаемый звуковой картой, теперь намного ниже (около 50 мВ от пика до пика), но это не повлияло на основную проблему.
источник
Ответы:
Это довольно старый совет, и я не знаю, будет ли он уместен для вашего микро, но около 4 лет назад я сделал проект с PIC18F, который столкнулся со странными ложными перезагрузками. После прочтения отчета и повторного пробежки по памяти вот что, похоже, решило его:
У вас
Low Voltage Programming Enable
включен бит конфигурации? ВашPGM
пин-код включенPORTB
? Если это так, вы можете рассмотреть возможность отключения обоихLow Voltage Programming Enable
иPort B A/D Enable
цифровых входов при сбросе. Согласно моему старому отчету, то, что происходило, состояло в том, что мы оставалисьPORTB
плавающими, когда они были аналоговыми входами, и активировалиPGM
вывод. Оглядываясь назад, я не знаю, был ли этот диагноз правильным, но мы закончили тем, что успешно завершили этот проект, так что, возможно, стоит попробовать.источник
С такой установкой для нас будет почти невозможно сказать точно, что идет не так. Однако то, что мы можем сказать, это то, что неправильно. Есть много вещей не так, или, по крайней мере, не так хорошо, как это может быть холодно. Любая из этих вещей может быть реальным источником вашей проблемы, но она также может потребовать сочетания проблем, которые при сложении равны той проблеме, которую вы видите.
Единственный реальный способ отладки - это исправить все, что, как вы знаете, неправильно, независимо от того, пистолет это или нет. Со временем проблема будет решена так или иначе.
Когда подобный MCU работает неправильно, вам почти всегда приходится фокусироваться на основах: Power, Clock и Reset. С помощью макета все три подозрительны!
Подозреваемый № 1 для меня - это тактовая частота 40 МГц. 40 МГц довольно быстро, чтобы работать по проводу, плавающему в воздухе. Кроме того, очень быстро начинать работу с макета, где «система распределения сигналов» на самом деле не рассчитана на высокие скорости. Если бы это была печатная плата, я бы сказал вам, чтобы убедиться, что ваш импеданс трассировки постоянен, и правильно завершить ваши сигналы. К сожалению, вы не можете сделать это на макете. Лучшее, что я могу вам сказать, это сделать ваши провода как можно короче, а потом сделать их еще короче! Используйте o-scope на тактовом сигнале, измеренном непосредственно на выводе PIC, с выводом GND датчика также непосредственно на ближайшем выводе GND на PIC. Это многое расскажет вам о ваших часах.
(Попробуйте одолжить o-scope, если можете. Без него будет сложно отлаживать.)
Подозреваемый № 2 - сила. Питание также представляет собой огромную проблему с макетами, так как индуктивность и сопротивление провода относительно высоки. Здесь снова держите провода короткими. Также отмечу, что у вас нет развязывающих колпачков на генераторе 40 МГц. Для OSC я бы пошел с 0,1 мкФ и что-то большее (от 4,7 мкФ до 100 мкФ) параллельно. Ваш PIC может также использовать что-то большее параллельно с крышкой 0,1 мкФ. Обычно большие колпачки не требуются, но с макетом нет ничего нормального.
Подозреваемый № 3 сброшен. Вы не дали нам никакой информации о сигнале сброса, и я бы сказал, что он самый низкий из того, что я подозреваю, но вы все равно должны это проверить. Поместите на него область видимости и посмотрите, что происходит. Вы можете просто использовать вольтметр. Если напряжение на выводе сброса близко к пороговому уровню, вам необходимо это исправить.
Теперь давайте рассмотрим то, что вы пробовали:
Вы провели много экспериментов с надеванием колпачков на линии электропередачи, но мало или смутили результаты. Это один из тех случаев, когда вам просто нужно надеть некоторые колпачки и не беспокоиться о том, делают ли они что-то позитивное или нет. Может случиться так, что ваша сила шумит, но это только одна из причин, вызывающих проблему. Добавьте большие крышки параллельно с крышками 0,1 мкФ на PIC. Добавьте пробки к генератору 40 МГц. Убедитесь, что провода максимально короткие. Затем перейдите к следующему.
Дополнительные ограничения по мощности - одна из тех вещей, которая вряд ли вызовет проблемы. Вот почему вы можете просто надеть некоторые и не беспокоиться о них слишком сильно. Особенно с 10-100 мкФ.
Позже, когда все заработает, вы можете убрать эти заглушки по одному и посмотреть, вернется ли проблема. Если он не возвращается, то заглавные буквы не были проблемой. Но сейчас вам нужно устранить это как потенциальную проблему, но добавив заглавные буквы.
Хотя плавающие контакты могут быть проблемой, они редко бывают достаточно большой проблемой, чтобы вызвать сбой MCU. Это стоит исправить, так как это вызывает другие проблемы, но вряд ли проблема здесь. Примечание: простой способ остановить неиспользуемый вывод - установить их в качестве выходных! Высокий или низкий, не имеет значения. Но если PIC ведет эти булавки, то они не могут плавать.
источник
Вы не упомянули пин-код PGM (иногда называемый LVP). Это должно быть связано с низким или LVP отключен в байтах conifig.
Вы уверены, что этот PIC может принимать 40 МГц напрямую? Некоторые могут достигать только 40 МГц через внутреннюю систему ФАПЧ. Я не проверял данные, но ты должен. Даже если так, я бы не ожидал, что 40 МГц на макете будут вести себя хорошо. Я действительно думаю, что вы сможете запустить PIC с кристаллом 10 МГц и встроенным 4-кратным ФАПЧ, хотя, если вы будете осторожны с макетом и поместите заглушки в нужное место.
Этот вопрос возникает регулярно. Вместо того, чтобы повторять все типичные проблемы, см. Https://electronics.stackexchange.com/a/29620/4512 .
источник
Я должен согласиться с Дэвидом. Есть очень много длинных проводов, и 40 МГц на макете довольно оптимистично. Я не могу поверить, что ваше время действительно стоит так мало, что вы не можете позволить себе сделать небольшую прототипную печатную плату . Эти вещи стоят всего около 30 фунтов стерлингов от PCB Train . Я уверен, что рядом с вами найдется кто-нибудь, кто сможет предложить подобное.
Почему бы не сделать это. Разработайте печатную плату с PIC, осциллятором и регулятором в качестве компонентов SMD, а затем с целой загрузкой полосок платы для перфорирования. Таким образом, вы все еще можете делать свои прототипы, но будьте уверены, что PIC счастлив.
источник
если у вас есть генератор внешней переменной F, рассмотрите возможность его использования для проверки макета / чипа на наличие проблем. и найдите внешнюю F, которая вызывает отказ. Помните, что удлиненные кабели заземления действуют как антенна для перекрестных помех.
источник
зонд, похоже, вам нужен логический зонд, DVD или область видимости ... http://search.digikey.com/us/en/products/DP%2052/BKDP52-ND/227492
Наденьте крышку на тактовую микросхему V + / gnd и рассмотрите витую пару на 40 МГц, если далеко. Pic xtal имеет вход и выход. Проверьте инвертированный выходной уровень постоянного тока = v / 2? .. Пик прогревается? га ..
Я предлагаю 10 МГц Xtal PLL режим @ 40 МГц, чтобы избежать проблем с макетом.
«Режим HSPLL использует генератор режима HS для частот до 10 МГц. Затем ФАПЧ умножает выходную частоту генератора на 4, чтобы получить внутреннюю тактовую частоту до 40 МГц. ФАПЧ доступна только для кварцевого генератора, когда FOSC3: Биты конфигурации FOSC0 запрограммированы для режима HSPLL (= 0110). "
источник