Два кристалла и два микроконтроллера PIC18F на одной печатной плате

Я планирую иметь два микроконтроллера PIC18F с кристаллом 20 МГц и конденсаторами 22 пФ на одной плате. Итак, на одной плате будет два микроконтроллера PIC18F, два кристалла 20 МГц (по одному на каждый PIC18F) и конденсаторы на 22 пФ (по два на каждый PIC18F). Оба микроконтроллера будут размещены относительно близко друг к другу. На плате также будет модуль беспроводной связи RF с антенной трассировки PCB.

Могу ли я иметь такую ​​​​настройку на той же плате? Будут ли два кристалла 20 МГц на одной плате создавать помехи друг другу? Любая проблема помех в тактировании каждого PIC18F? Создаст ли это какие-либо проблемы при тестировании ЭМС? Есть ли что-то, что я должен учитывать в такой настройке и макете?

Есть ли причина, по которой вы не хотите запускать оба с одного и того же осциллятора?

Ответы (1)

Использование внешнего модуля кварцевого генератора в подобном корпусе имеет свои преимущества, и микроконтроллеры PIC18F спроектированы таким образом, чтобы принимать такие схемы, управляя одной стороной своих выводов кварцевого генератора.

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

Запуск их на совершенно отдельных кварцевых осцилляторах означает, что вы вообще ничего не знаете о том, как ведут себя их выводы относительно друг друга; только то, что они будут примерно использовать одинаковое время. Но если они разделены, то вы даже не уверены, что они имеют одинаковую скорость, и они почти наверняка будут дрейфовать относительно друг друга. Будет некоторая энергия частоты биений. Независимо от того, имеет ли это значение для испытаний на электромагнитную совместимость, я не могу помочь.

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

Устройства PIC18F, обслуживающие память, могут управляться через любой из входов синхронизации. Я говорю это, потому что у меня есть внутренняя записка Microchip, которую я получил несколько десятилетий назад, где они обсуждают детали примерно на 5 страницах тщательно напечатанного текста. В общем, Microchip пытается спроектировать свой инвертор класса А так, чтобы он работал «на горячую». Это делается для того, чтобы избежать послепродажных звонков от идиотов , которые не знают, как спроектировать маломощную компоновку класса А. Для них лучше перегрузить инвертор и жить с избыточным рассеянием, чем питать его для хорошо продуманной схемы, которую, как они знают, получат слишком немногие из их конечных пользователей, а затем получать всевозможные звонки и гневные вопли. и кричать о том, насколько плохи их чипы. Так что имеет смысл пересилить его и жить с этим.

Но их MCU, конечно же, подключен к XOUT (выход их инвертора класса A). Оказывается, если вы управляете XOUT вместо XIN, то инвертор класса A не имеет входного сигнала (вы можете сделать несколько вещей на XIN, чтобы помочь здесь), и он достигнет точки покоя с низким энергопотреблением. и вообще НЕ будет колебаться, а также не будет сильно нагружать ваш внешний генератор. (Поскольку этот инвертор класса A может иногда составлять почти половину общего рассеяния микроконтроллера, его отключение может быть большой победой.) С другой стороны, если вместо этого вы управляете XIN, то класс- A выполнит свою работу, сжигая уйму энергии, и направит XOUT и все связанные внутренние устройства к MCU (и вы заплатите за это [обычно значительный] штраф за мощность).

Поэтому моя рекомендация, помня о том, что вы также заботитесь об электромагнитной совместимости, заключается в том, чтобы вы рассмотрели и протестировали идею использования внешнего генератора, привязанного к контактам XOUT ваших микроконтроллеров. Возможно, используйте делитель с относительно высоким (не слишком высоким) импедансом на входе XIN или просто попробуйте оставить его плавающим. Затем проверьте энергопотребление и убедитесь, что два устройства PIC18F по-прежнему работают нормально. Теперь измените вещи. Управляйте XIN двух устройств и проверяйте работу, а также энергопотребление. Если у вас есть способ посмотреть на испускаемое излучение, сделайте это также для обоих случаев. Затем, наконец, сделайте все вышеперечисленное, но теперь с вашими первыми мыслями об использовании двух разных внешних кристаллов и связанных с ними конденсаторов и посмотрите.

Другими словами, используйте свое воображение и тестируйте. Посмотрите, что работает лучше всего для вас. Я не думаю, что кто-либо из нас может дать вам «яркий ответ». Но настроить и протестировать эти идеи не очень сложно. И поскольку вы беспокоитесь об EMC, это говорит мне о том, что у вас есть время для проекта и инструменты, необходимые для того, чтобы сделать это должным образом, прежде чем приступать к окончательному проекту.

Это не ракетостроение, и это не требует много работы. Я говорю это, потому что нет никакого оправдания тому, чтобы не проводить это тестирование. Вы просто вставляете его в график планирования и выполняете его. Результат этого тестирования затем тривиально подается на редактирование схемы (которое в любом случае может продолжаться параллельно, поскольку затраты на редактирование, основанное на результатах, невелики [при условии, что вы не задерживаете тестирование настолько долго, что схема пошла на компоновку.]) Серьезно, просто сделайте это. Вы получите не только ответ по вашему делу в кратчайшие сроки, но и количественный ответ с цифрами, что сделает решение хорошо документированным и простым. Проекты часто включают в себя гораздо более сложные и гораздо менее простые для решения проблемы. Это не проблема.

Таковы мои мысли с вершины, на данный момент.


Вы добавили следующие пункты:

  1. «Отсутствует связь между двумя PIC на плате». Но затем вы также добавили: «Основываясь на активности беспроводной сети, первая PIC управляет несколькими транзисторами, а вторая PIC будет опрашивать состояние этих контактов примерно каждые 100 мс». Учитывая долгое время, которое вы упомянули для опроса, я принимаю это во внимание и согласен с тем, что может не иметь значения, каким путем вы пойдете сюда. За исключением, возможно, рассуждений EMC.
  2. «Основная причина, по которой я рассматриваю даже второй PIC, заключается в том, чтобы использовать больше контактов ввода-вывода и разделить накладные расходы на программное обеспечение». Это две разные проблемы. Существует множество вариантов для семейства PIC18F, и если вы уже используете самые большие детали и вам нужно больше ввода-вывода, я не могу придраться к идее использования двух.
  3. Однако вы говорите, что используете PIC18F46K20, и поэтому единственная реальная причина для перехода к двум частям о вашем последнем пункте; тот, что касается накладных расходов на программное обеспечение. Я сильно подозреваю, что это больше связано с наличием небольшого набора инструментов разработки программного обеспечения в ваших наборах навыков программиста, чем с реальной необходимостью .. Скорее всего, в этом случае нужно нанять кого-то, у кого больше навыков для применения. Я редко встречал случай (только один раз за 45 лет), когда этот аргумент был бы правильным задним числом 20/20. Почти во всех случаях при правильном проектировании и применении правильных инструментов можно выполнить работу без помощи двоих. Это как разница между способностями двух разных плотников; тот, кто знает только несколько инструментов и должен решать каждую проблему с их помощью, и другой, кто знает еще сотни инструментов и может разработать отличные подходы к решению той же проблемы более эффективно и с меньшими затратами благодаря более широкому и глубокому набору навыков.
  4. Да, я понимаю, что на данном этапе игры вносятся изменения в программное обеспечение. Вы не можете пойти в большую часть, якобы, по этим причинам. Нет, я не верю в аргумент. Был там. Но я оставлю это здесь и просто скажу, что не принимаю этого пункта от вас.
  5. Я получаю требования для поддержки 9600 бит/с (не бод, так как это термин с другим значением). Это просто вопрос доступных делителей в MCU и допустимых спецификаций ошибок для связи 9600 бит/с. Легко заниматься.
  6. Я вовсе не рассматриваю идею внешнего RC-генератора. Вместо этого есть кварцевые модули (обычно с 4 выводами). Это дешевые (но часто с чрезмерным энергопотреблением) устройства, или TXCO с температурной стабильностью (и чрезмерным энергопотреблением), или еще что-то вроде старого маломощного генератора Harris HA7210. IC (в настоящее время, вероятно, устарела). Чтобы добавить еще больше, все еще есть некоторые микросхемы генератора с расширенным спектром, доступные для тех, кто ищет «быстрое решение» своих проблем с ЭМС. Итак, здесь есть несколько подходов. Опять же, творческий подход и воображение применяются.

В конце концов, я думаю, что вы лаете не на то дерево. Я думаю, вам нужны лучшие программисты встроенного программного обеспечения. Не ремонт Руба Голдберга в аппаратном обеспечении и два набора программного обеспечения, которые нужно поддерживать. Но это только я.

Спасибо за ваш ответ .. несколько моментов для рассмотрения: работа обоих микроконтроллеров не зависит друг от друга. Нет связи между двумя PIC на плате. Важно иметь стабильные часы, так как связь UART задействована между одним из PIC и радиомодулем. Поэтому я подумал об использовании внешнего кристалла, поскольку он был бы более точным, чем осциллятор. В зависимости от активности беспроводной сети первая PIC управляет несколькими транзисторами, а вторая PIC будет опрашивать состояние этих контактов примерно каждые 100 мс.
Основная причина, по которой я рассматриваю даже второй PIC, заключается в том, чтобы использовать больше контактов ввода-вывода и разделить накладные расходы на программное обеспечение.
Если я использую генератор, как вы предложили, будет ли это внешний генератор RC или внутренний генератор 8/16 МГц? Не могли бы вы дать мне общее представление о том, как будет выглядеть система (может быть эскиз или план) с генератором и как использовать один и тот же генератор для соединения между обоими PIC?
Требуется скорость UART 9600 бод.
Также обратите внимание, что у этого проекта очень плотный график, и я сомневаюсь, что у меня будет возможность попробовать и протестировать множество различных вариантов. Я должен буду попробовать один из лучших знаний и добраться до макета платы после тестирования как можно скорее.
Я использую чип PIC18F46K20. Как мне подключить внешний генератор на этом чипе, чтобы он также делил его со вторым PIC, согласно вашему предложению, если я правильно понимаю? Схема такой установки была бы очень полезна, показывающая подключение генератора к совместному использованию между двумя PIC. Поскольку программное обеспечение первого PIC уже было подготовлено, менять его на другую серию PIC, чтобы получить больше контактов ввода-вывода, было бы нежелательно. Поэтому я планирую использовать второй PIC, чтобы разделить программное обеспечение и получить больше контактов ввода-вывода. Но я не уверен, как синхронизировать эти два PIC на одной плате...
Хм. Возможно, это объясняет, почему в более новых версиях AVR отказались от опций «маломощного» генератора.
@ IgnacioVazquez-Abrams На собрании Microchip, которое у меня было, частью его было расширенное обсуждение инверторов часов. Я сидел, слушал и учился. Меня беспокоило энергопотребление, так как я рассматривал кулер TE. Я также узнал, что они твердо убеждены в том, что слишком многие их потребители деталей плохо обучены, и поэтому им приходится переусердствовать с инверторами. Тогда инвертор сам по себе при максимальной частоте составлял 50% от общей мощности MCU. Меня совсем не удивит, что настройка инвертора на более низкую мощность в конечном итоге будет урезана как слишком большая проблема.
@user101095 user101095 Добавлены комментарии для оценки ваших баллов.
спасибо за ваши комментарии, придурок.. Я понимаю, что правильным подходом было бы изменить PIC и программное обеспечение, чтобы адаптироваться к новой части с большим количеством операций ввода-вывода, и это, безусловно, выполнимо, если позволяет время.. но, как я уже упоминал, я этого не делаю. У меня нет времени в этом проекте, чтобы изменить и протестировать слишком много новых идей. Как вы упомянули в своем пункте 1, учитывая, что время опроса достаточно велико, и наличие двух кристаллов не будет проблемой (кроме EMC, которую мне придется подождать, чтобы проверить снаружи), я бы попробовал это в первую очередь ..
@user101095 user101095 Звучит как исполнительное решение для меня! Хороший. С наилучшими пожеланиями!