Я использую PIC18F4680, и у меня возникают проблемы с его запуском из внешнего источника тактовой частоты 40 МГц или кристалла 10 МГц в режиме HSPLL. Использование кварцевого резонатора 10 МГц в режиме HS выглядит нормально, и кварцевый резонатор 5 МГц в режиме HSPLL также работает нормально.
Что происходит, так это то, что PIC запускается, работает несколько секунд, а затем выключается на некоторое время и снова запускается. Общий период цикла составляет около 5 секунд, из которых работа ПОС прекращается в начале второй секунды.
Я также заметил, что иногда, когда я добавляю достаточно большой разряженный конденсатор к шине питания макетной платы, PIC будет работать нормально. Интересно, что это происходит только в том случае, если я добавляю конденсатор, когда PIC уже работает. Если я подаю питание на макетную плату с конденсатором или помещаю конденсатор, который не был полностью разряжен, проблема остается.
Я читал на некоторых сайтах, что проблемы, подобные моей, могут возникать из-за повышенного энергопотребления PIC на более высокой частоте и более низком рабочем напряжении. В этих случаях, если на блоке питания происходят короткие перепады напряжения, они, скорее всего, достигнут самого низкого рабочего напряжения PIC на этой частоте, поэтому рекомендуется иметь дополнительные конденсаторы на макетной плате, чтобы решить эту проблему. Поскольку при полной нагрузке на частоте 40 МГц вся схема потребляет около 64 мА, моей первой идеей было добавить танталовые конденсаторы, надеясь, что они будут достаточно большими и будут иметь достаточно низкое ESR, чтобы решить проблему. Один не помог, второй тоже. Поэтому я добавил алюминиевый конденсатор и это тоже не помогло. Затем я добавил алюминиевый конденсатор ни к чему. В конце концов, я добавил алюминиевый электролитический конденсатор на 1 мФ, и тогда впервые схема работала нормально, пока не выключил и не включил питание. Я также должен отметить, что для целей тестирования я использую Vcc 5,5 В, что является самым высоким номинальным напряжением для этого микроконтроллера. Это должно оставить мне место до 4,2 В, что является самым низким рабочим напряжением на частоте 40 МГц.
Затем я прочитал, что иногда плавающие выходные данные могут вызывать сбои, поэтому я добавил несколько подтягивающие резисторы на всех неиспользуемых контактах, и это тоже не помогло. После этого я прочитал, что иногда могут быть проблемы, если входы генератора плавающие, поэтому я попытался подключить их к GND, используя некоторые резисторы и это не помогло.
Из-за длины провода, идущего от выхода генератора к входу генератора на 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
пин. Оглядываясь назад, я не знаю, был ли этот диагноз правильным, но в итоге мы успешно завершили этот проект, так что, возможно, стоит попробовать.
С такой настройкой для нас будет почти невозможно точно сказать, что идет не так. Однако мы можем сказать, что не так. Есть много вещей неправильных, или, по крайней мере, не таких правильных, как хотелось бы. Любая из этих вещей может быть реальным источником вашей проблемы, но также может потребоваться сочетание проблем, которые при суммировании равны проблеме, которую вы видите.
Единственный реальный способ отладить это - исправить все, что, как вы знаете, неправильно, независимо от того, является ли это дымящимся пистолетом или нет. В конце концов проблема будет решена так или иначе.
Когда такой микроконтроллер работает неправильно, вам почти всегда приходится сосредотачиваться на основах: питание, часы и сброс. С макетной платой все три пункта сомнительны!
Подозреваемый № 1 для меня — это тактовая частота 40 МГц. 40 МГц достаточно быстро для передачи по проводу, парящему в воздухе. Еще и быстро запихнуть в макетную плату, где "система распределения сигналов" толком не рассчитана на высокие скорости. Если бы это была печатная плата, я бы посоветовал вам убедиться, что импеданс вашей трассы постоянен, и правильно завершить ваши сигналы. К сожалению, вы не можете сделать это на макетной плате. Лучшее, что я могу вам сказать, это делать провода как можно короче, а затем делать их еще короче! Используйте оскоп на тактовом сигнале, проверяемом непосредственно на контакте PIC, с проводом GND пробника также непосредственно на ближайшем контакте GND на PIC. Это многое скажет вам о ваших часах.
(Постарайтесь одолжить о-скоп, если можете. Без него будет сложно отлаживать вещи.)
Подозреваемый номер 2 — власть. Мощность также представляет собой огромную проблему с макетными платами, поскольку индуктивность и сопротивление провода относительно высоки. Опять же, держите провода короткими. Я также отмечаю, что у вас нет никаких развязывающих колпачков на генераторе 40 МГц. Для OSC я бы использовал 0,1 мкФ и что-то большее (от 4,7 мкФ до 100 мкФ) параллельно. Ваш PIC также может использовать что-то большее параллельно с крышками 0,1 мкФ. Обычно большие колпачки не требуются, но с макетной платой все в порядке.
Подозреваемый №3 сброшен. Вы не дали нам никакой информации о сигнале сброса, и я бы сказал, что это самое низкое из того, что я подозреваю, но вы все равно должны его проверить. Наденьте на него о-скоп и посмотрите, что происходит. Вы можете просто использовать вольтметр. Если напряжение на выводе сброса близко к пороговому уровню, то его необходимо исправить.
Теперь давайте рассмотрим, что вы пробовали:
Вы проделали много экспериментов с размещением колпачков на линиях электропередач, но с небольшими или запутанными результатами. Это один из тех случаев, когда вам просто нужно поставить несколько крышек и не беспокоиться о том, делают ли они что-то положительное или нет. Возможно, ваша мощность шумная, но это только одна из нескольких причин, вызывающих проблему. Добавьте конденсаторы большего размера параллельно с конденсаторами 0,1 мкФ на PIC. Добавьте колпачки к генератору 40 МГц. Убедитесь, что провода как можно короче. Затем переходите к следующему.
Дополнительные ограничения мощности — одна из тех вещей, которые вряд ли вызовут проблемы. Вот почему вы можете просто надеть их и не слишком беспокоиться о них. Особенно с конденсаторами 10-100 мкФ.
Позже, когда все заработает, вы можете снимать эти колпачки по одному и смотреть, вернется ли проблема. Если он не возвращается, значит, проблема была не в крышках. Но пока вам нужно удалить это как потенциальную проблему, но добавив заглавные буквы.
Хотя плавающие контакты могут быть проблемой, они редко бывают достаточно серьезными, чтобы вызвать сбой MCU. Это стоит исправить, так как это вызывает другие проблемы, но вряд ли проблема здесь. Примечание: простой способ предотвратить плавание неиспользуемых выводов — установить их в качестве выходов! Высокий или низкий, не имеет значения. Но если PIC управляет этими булавками, они не могут плавать.
Вы не упомянули контакт PGM (иногда называемый LVP). Это должно быть привязано к низкому уровню или LVP отключено в конфигурационных байтах.
Вы уверены, что этот PIC может принимать 40 МГц напрямую? Некоторые могут достигать только 40 МГц через внутреннюю PLL. Я не проверял таблицу, но вы должны. Даже если это так, я бы не ожидал, что 40 МГц на макетной плате будут вести себя хорошо. Я действительно думаю, что вы сможете запустить PIC с кристаллом 10 МГц и внутренней 4-кратной ФАПЧ, если вы будете осторожны с макетной платой и поместите заглушки байпаса в нужные места.
Подобный вопрос возникает регулярно. Вместо того, чтобы повторять все типичные проблемы, см . https://electronics.stackexchange.com/a/29620/4512 .
Я должен согласиться с Дэвидом. Там так много длинных проводов, а 40МГц на макетной плате вполне оптимистично. Я не могу поверить, что ваше время действительно стоит так мало, что вы не можете позволить себе сделать небольшой прототип печатной платы . Эти вещи стоят всего около 30 фунтов стерлингов от PCB Train . Я уверен, что рядом с вами найдется кто-нибудь, кто может предоставить подобное.
Почему бы не сделать это. Разработайте печатную плату, которая имеет PIC, генератор и регулятор в качестве компонентов SMD, а затем целую загрузку перфополосных плат. Таким образом, вы все еще можете делать свои прототипы, но будьте уверены, что PIC доволен.
если у вас есть генератор внешней переменной F, рассмотрите возможность использования его для проверки макета / чипа на наличие проблем. и найдите внешнюю неисправность, которая вызывает сбой. И помните, что удлиненные заземляющие кабели действуют как антенна для перекрестных помех.
зонд выглядит так, как будто вам нужен логический зонд, dvm или осциллограф... http://search.digikey.com/us/en/products/DP%2052/BKDP52-ND/227492
Наденьте колпачок на тактовый чип V+/gnd и рассмотрите витую пару на 40 МГц, если далеко. Pic xtal имеет вход и выход. Проверьте инвертированный выход DC level = v/2? .. согревается ли Пик? ха..
Я предлагаю режим Xtal PLL 10 МГц при частоте 40 МГц, чтобы избежать проблем с компоновкой.
«Режим HSPLL использует генератор режима HS для частот до 10 МГц. Затем PLL умножает выходную частоту генератора на 4, чтобы получить внутреннюю тактовую частоту до 40 МГц. PLL доступна только для кварцевого генератора, когда Биты конфигурации FOSC3:FOSC0 запрограммированы для режима HSPLL (= 0110).
Ракетный магнит
Стандартный Сандун
АндреяКо
АндреяКо
Леон Хеллер
АндреяКо
Абдулла Кахраман
Абдулла Кахраман
АндреяКо
Абдулла Кахраман
ЗлойEE
АндреяКо
АндреяКо
Абдулла Кахраман
АндреяКо
АндреяКо
Абдулла Кахраман
Крис Лапланте
Леон Хеллер
пользователь121934
АндреяКо