PIC продолжает сбрасывать: я вижу побочные эффекты от использования макета?

11

Я использую PIC18F4680, и у меня возникают проблемы при работе с внешним тактовым источником 40 МГц или кристаллом 10 МГц в режиме HSPLL. Использование кристалла с частотой 10 МГц в режиме HS кажется вполне приемлемым, а кристалл с частотой 5 МГц в режиме HSPLL также работает нормально.

Происходит следующее: PIC запускается, работает в течение нескольких секунд, а затем на некоторое время выключается и запускается снова. Общий период цикла составляет около 5 секунд, из которых работа PIC прекращает работать в начале второй секунды.

Я также заметил, что иногда, когда я добавляю достаточно большой разряженный конденсатор к шине питания макета, PIC будет работать нормально. Интересно, что это происходит только в том случае, если я добавляю конденсатор, когда ПИК уже работает. Если я подключу макет к конденсатору или поставлю конденсатор, который не был полностью разряжен, проблема останется.

Я читал на некоторых сайтах, что проблемы, подобные моей, могут возникать из-за повышенного энергопотребления PIC на более высокой частоте и более низком рабочем напряжении. В этих случаях, если на источнике питания есть небольшие падения напряжения, они с большей вероятностью достигнут самого низкого рабочего напряжения PIC на этой частоте, поэтому для решения этой проблемы целесообразно иметь дополнительные конденсаторы на макете. Так как при полной нагрузке на 40 МГц, вся схема использует около 64 мА, моя первая мысль была поставить некоторые конденсаторы танталовые надеющихся , что они будут достаточно большими и имеют достаточно низкий ESR , чтобы решить эту проблему. Один не помог, а второй тоже не помог. Поэтому я добавил 100 μ F10 μF100 μFалюминиевый конденсатор, и это тоже не помогло. Потом добавили алюминиевый конденсатор никакого эффекта. В конце я добавил алюминиевый электролитический конденсатор емкостью 1 мФ, а затем в первый раз схема работала нормально, пока не выключился и не включил питание. Следует также отметить, что для целей тестирования я использую Vcc 5,5 В, что является максимальным номинальным напряжением для этого микроконтроллера. Это должно оставить мне место до 4,2 В, что является самым низким рабочим напряжением на 40 МГц.470 μF

Далее, я читал , что иногда плавающие выходы могут вызвать сбои, поэтому я ставлю некоторые ниспадающего резисторов на все неиспользованные контакты и что не помогли. После того, что я прочитал , что иногда могут возникнуть проблемы , если входы генератора плывут, поэтому я попытался их подключения к GND с помощью некоторых 10 М Ом резисторы и это не помогло.10 kΩ10 MΩ

Из-за длины провода, идущего от выхода генератора к входу генератора на PIC, я ожидал проблем с ним, но я не ожидал проблем с кристаллом 10 МГц, который очень близко к выводам генератора на PIC. Также с кристаллом, я бы ожидал проблем и в режиме HS, если проблема была в искажении сигнала генератора из-за макета, но в режиме HS PIC работает нормально.

Обычно я использую конденсаторы 33 пФ для кристаллов, но я тоже пробовал с 15 пФ и не смог обнаружить никаких изменений.

Следует также отметить, что на этом PIC имеется монитор часов повышенной безопасности и переключение внутреннего / внешнего генератора. Я попытался включить их обоих, надеясь, что они хотя бы подтвердят, что проблема связана с осциллятором, но они не помогают с проблемой. Там нет разницы, они включены или выключены.

Я также отключил в целях тестирования сторожевой таймер, сброс из-за отключения и сброс из-за переполнения стека. Я думаю, что я отключил все источники сброса для этого чипа. Также программа находится в бесконечном цикле, поэтому она не заканчивается.

У PCF8583 нет проблем, и он продолжает работать правильно, даже когда PIC сам перезагружается, но, с другой стороны, минимальное напряжение намного ниже.

К сожалению, у меня нет осциллографа, но я провел некоторые тесты со звуковой картой (частота дискретизации 96 кГц), и я заметил, что при включенном RTC на линии электропередачи появляется шум с частотой 25 Гц. Программа, которую я использую, сообщает о пике около 300 мВ, но я не знаю, насколько ей можно доверять, и я не знаю, достаточно ли этого, чтобы вызвать какие-либо проблемы для PIC. Когда все выключено, шум составляет около 100 мВ от пика до пика, так что должно быть хорошо.

Если это поможет, вот изображение самого макета: (щелкните правой кнопкой мыши -> просмотреть изображение в полном размере) введите описание изображения здесь

Так кто-нибудь знает, что здесь происходит?

В конце концов, я мог бы просто запустить PIC на 20 МГц, но если мне понадобится больше вычислительной мощности, я бы хотел иметь возможность работать на 40 МГц.

ОБНОВИТЬ

Я установил другой регулятор на самом макете, и шум, улавливаемый звуковой картой, теперь намного ниже (около 50 мВ от пика до пика), но это не повлияло на основную проблему.

AndrejaKo
источник
1
Хм, я собирался предложить WDT и отключение, но вы их отключили. Знаете ли вы, что есть некоторые ошибки с отключением для этого ПОС? Я никогда не пытался запустить PIC так быстро на доске для хлеба. Мы постоянно используем 18F4580 с генератором 10 МГц и HSPLL. Они отлично работают.
Ракетный магнит
2
Забудьте макет (я никогда не использую их) и используйте правильную печатную плату, это сэкономит много времени.
Леон Хеллер
3
@ Леон Хеллер. Это может сэкономить много времени, но на данный момент печатная плата стоит дороже моего времени, тем более что у меня даже нет списка всех основных компонентов, которые я буду использовать.
AndrejaKo
1
@AndrejKo Это звучит как одна из тех проблем, которая заставляет меня хотеть свернуться в клубок и плакать. Вы уверены, что ваше время стоит так мало? Я бы просто сделал печатную плату - это обычно так весело!
AngryEE
1
@AndrejaKo: Если вы не против подождать неделю или около того, у меня был большой успех с этим групповым заказом на печатные платы: dorkbotpdx.org/wiki/pcb_order . Если вы не хотите делать свой собственный, то есть
Крис Лапланте

Ответы:

12

Это довольно старый совет, и я не знаю, будет ли он уместен для вашего микро, но около 4 лет назад я сделал проект с PIC18F, который столкнулся со странными ложными перезагрузками. После прочтения отчета и повторного пробежки по памяти вот что, похоже, решило его:

У вас Low Voltage Programming Enableвключен бит конфигурации? Ваш PGMпин-код включен PORTB? Если это так, вы можете рассмотреть возможность отключения обоих Low Voltage Programming Enableи Port B A/D Enableцифровых входов при сбросе. Согласно моему старому отчету, то, что происходило, состояло в том, что мы оставались PORTBплавающими, когда они были аналоговыми входами, и активировали PGMвывод. Оглядываясь назад, я не знаю, был ли этот диагноз правильным, но мы закончили тем, что успешно завершили этот проект, так что, возможно, стоит попробовать.

Джон Л
источник
Интересный! Всего несколько минут назад я заметил, что подключение программиста повлияло на проблему, и теперь этот ответ. Я отключил порт BA / D и LVP, и пока он работает нормально. Это может быть какое-то странное взаимодействие на выводе PGM.
AndrejaKo
@AndrejaKo, это звучит очень знакомо из того, что я испытал. Я надеюсь, что он останется стабильным ... Придирчивое оборудование может быть крайне разочаровывающим, когда вы пытаетесь что-то сделать: S
Джон L
1
Ну, это работает нормально в течение 21 минуты и 30 секунд. Я надеюсь, что так и останется. Я просто оставлю его работать на ночь и посмотрим, будет ли он сброшен.
AndrejaKo
Большой! Я рад, что это решило проблему.
Абдулла Кахраман
1
Сделал мой день, брат, я потратил целый день, пытаясь понять, почему на земле мой PIC 16F887 сбрасывался каждые несколько мсек. Низкое напряжение в проге схемы было установлено, и плавающий вывод PGM обнаруживал шум, запускающий сброс. +1 представитель для вас
Джанлука Геттини
7

С такой установкой для нас будет почти невозможно сказать точно, что идет не так. Однако то, что мы можем сказать, это то, что неправильно. Есть много вещей не так, или, по крайней мере, не так хорошо, как это может быть холодно. Любая из этих вещей может быть реальным источником вашей проблемы, но она также может потребовать сочетания проблем, которые при сложении равны той проблеме, которую вы видите.

Единственный реальный способ отладки - это исправить все, что, как вы знаете, неправильно, независимо от того, пистолет это или нет. Со временем проблема будет решена так или иначе.

Когда подобный 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 ведет эти булавки, то они не могут плавать.


источник
2
Хороший ответ Все эти длинные неопрятные провода только заставили меня думать, что попытка заставить это работать на грязном макете не стоила времени и страданий.
Ракетный магнит
Хороший список! Я сообщу о результатах, когда буду проходить через это.
AndrejaKo
4

Вы не упомянули пин-код PGM (иногда называемый LVP). Это должно быть связано с низким или LVP отключен в байтах conifig.

Вы уверены, что этот PIC может принимать 40 МГц напрямую? Некоторые могут достигать только 40 МГц через внутреннюю систему ФАПЧ. Я не проверял данные, но ты должен. Даже если так, я бы не ожидал, что 40 МГц на макете будут вести себя хорошо. Я действительно думаю, что вы сможете запустить PIC с кристаллом 10 МГц и встроенным 4-кратным ФАПЧ, хотя, если вы будете осторожны с макетом и поместите заглушки в нужное место.

Этот вопрос возникает регулярно. Вместо того, чтобы повторять все типичные проблемы, см. Https://electronics.stackexchange.com/a/29620/4512 .

Олин Латроп
источник
Похоже, у нас здесь два правильных ответа :)
Абдулла Кахраман
2

Я должен согласиться с Дэвидом. Есть очень много длинных проводов, и 40 МГц на макете довольно оптимистично. Я не могу поверить, что ваше время действительно стоит так мало, что вы не можете позволить себе сделать небольшую прототипную печатную плату . Эти вещи стоят всего около 30 фунтов стерлингов от PCB Train . Я уверен, что рядом с вами найдется кто-нибудь, кто сможет предложить подобное.

Почему бы не сделать это. Разработайте печатную плату с PIC, осциллятором и регулятором в качестве компонентов SMD, а затем с целой загрузкой полосок платы для перфорирования. Таким образом, вы все еще можете делать свои прототипы, но будьте уверены, что PIC счастлив.

ПК прототип перфорированная доска

Rocketmagnet
источник
2
Ах, я люблю Altium 3D! Кстати, 30 фунтов могут быть высокими для студента :) Лучше использовать доску для серфинга или, что лучше, самодельную печатную плату.
Абдулла Кахраман
1
Если удастся сделать самодельную печатную плату, я обязательно попробую с этой идеей.
AndrejaKo
2
@AndrejaKo - Круто. Тогда поставьте нам галочку :) - Или даже просто поставьте два ряда полосок для булавок, чтобы вы могли вставить их в макет.
Ракетный магнит
1

если у вас есть генератор внешней переменной F, рассмотрите возможность его использования для проверки макета / чипа на наличие проблем. и найдите внешнюю F, которая вызывает отказ. Помните, что удлиненные кабели заземления действуют как антенна для перекрестных помех.

Тони Стюарт Sunnyskyguy EE75
источник
0

зонд, похоже, вам нужен логический зонд, 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). "

Тони Стюарт Sunnyskyguy EE75
источник
Я действительно пытался использовать HSPLL и кристалл 10 МГц, но в режиме HSPLL он показывает те же результаты, что и генератор. Работает нормально в режиме HS.
AndrejaKo
Также ПОС не нагревается во время использования, насколько я вижу.
AndrejaKo