Zwei Kristalle und zwei PIC18F-Mikrocontroller auf derselben Leiterplatte

Ich plane, zwei PIC18F-Mikrocontroller mit 20-MHz-Quarz und 22-pF-Kondensatoren auf derselben Platine zu haben. Es werden also zwei PIC18F-Mikrocontroller, zwei 20-MHz-Quarze (einer für jeden PIC18F) und 22-pF-Kondensatoren (zwei für jeden PIC18F) auf derselben Platine vorhanden sein. Beide Mikrocontroller werden relativ nahe beieinander platziert. Es wird auch ein HF-Wireless-Kommunikationsmodul mit PCB-Trace-Antenne auf der Platine geben.

Kann ich diese Art von Setup auf demselben Board haben? Würden sich zwei 20-MHz-Quarze auf derselben Platine gegenseitig stören? Gibt es Probleme mit Interferenzen bei der Taktung jedes PIC18F? Würde dies bei EMV-Tests zu Problemen führen? Gibt es irgendetwas, das ich bei dieser Art von Setup und Layout beachten sollte?

Gibt es einen Grund, warum Sie nicht beide mit demselben Oszillator betreiben möchten?

Antworten (1)

In einem solchen Fall bietet die Verwendung eines externen Kristalloszillatormoduls Vorteile, und PIC18F-MCUs sind so konzipiert, dass sie solche Anordnungen akzeptieren, indem sie eine Seite ihrer Kristalloszillator-Pins ansteuern.

Wenn beide PIC18F-Bausteine ​​vom selben Quelltakt angesteuert werden, gibt es geringfügige Unterschiede in der Verzerrung zwischen Änderungen in ihren Ausgängen und der Verarbeitung ihrer Eingänge. Aber sie werden nah beieinander liegen und es wird genügend verbleibenden Spielraum zwischen ihnen geben, um möglicherweise an anderer Stelle für Sie nützlich zu sein.

Wenn Sie sie auf völlig separaten Quarzoszillatoren betreiben, wissen Sie überhaupt nichts darüber, wie sich ihre Stifte relativ zueinander verhalten. nur dass sie ungefähr ein ähnliches Timing verwenden werden. Aber wenn sie getrennt sind, dann sind Sie sich nicht einmal sicher, ob sie genau die gleiche Rate haben, und sie werden mit ziemlicher Sicherheit relativ zueinander driften. Es wird etwas Schwebungsfrequenzenergie geben. Ob es für EMV-Tests wichtig ist oder nicht, kann ich nicht helfen.

Die Verwendung eines externen Oszillators führt möglicherweise zu längeren Strahlungsleitungen. Und das kann für Sie eine Überlegung sein. Aber Sie können wahrscheinlich Dinge so arrangieren, dass sie ähnliche Leiterbahnlängen haben. Es kann also nicht viel schlimmer sein.

Die speicherdienenden PIC18F-Bausteine ​​können über einen der Takteingänge angesteuert werden. Ich sage das, weil ich im Besitz eines internen Microchip-Memos bin, das ich vor einigen Jahrzehnten erhalten habe, in dem sie die Details auf etwa 5 Seiten eng getippten Textes besprechen. Im Allgemeinen versucht Microchip, seine Klasse-A-Wechselrichter so zu konstruieren, dass sie „heiß“ laufen. Dies dient dazu, After-Sales-Anrufe von Idioten zu vermeiden , die nicht wissen, wie man eine Class-A-Anordnung mit geringerer Leistung entwirft. Es ist besser für sie, den Wechselrichter zu überlasten und mit der übermäßigen Verlustleistung zu leben, als ihn für ein gut ausgearbeitetes Layout zu betreiben, von dem sie wissen, dass es viel zu wenige ihrer Endbenutzer erreichen werden, und dann alle Arten von Anrufen und wütenden Schreien zu erhalten und darüber schreien, wie schlecht ihre Chips sind. Es macht also nur Sinn, es zu überwältigen und damit zu leben.

Aber ihre MCU ist natürlich mit dem XOUT (dem Ausgang ihres Klasse-A-Wechselrichters) verkettet. Es stellt sich heraus, dass der Klasse-A-Wechselrichter kein Eingangssignal hat, wenn Sie XOUT anstelle von XIN ansteuern (Sie können hier ein paar Dinge bei XIN tun, um zu helfen) und einen Ruhebetriebspunkt mit niedriger Leistung erreichen und wird überhaupt NICHT oszillieren und wird auch Ihren externen Oszillator nicht stark belasten. (Da dieser Klasse-A-Wechselrichter zeitweise fast die Hälfte der Gesamtverlustleistung einer MCU ausmachen kann, kann das Abschalten ein großer Gewinn sein.) Wenn Sie andererseits stattdessen XIN fahren, dann ist die Klasse- A erledigt seine Arbeit, verbrennt Unmengen an Strom und treibt den XOUT und alle verketteten Interna zur MCU (und Sie zahlen dafür eine [normalerweise erhebliche] Stromstrafe.)

Daher empfehle ich, unter Berücksichtigung dessen, dass Sie sich auch für EMV interessieren, die Idee, einen externen Oszillator zu verwenden, der mit den XOUT-Pins Ihrer MCUs verbunden ist, in Betracht zu ziehen und zu testen. Verwenden Sie möglicherweise einen relativ hohen (nicht zu hohen) Impedanzteiler am XIN-Eingang, oder versuchen Sie es einfach und lassen Sie ihn schwebend. Überprüfen Sie dann den Stromverbrauch und stellen Sie sicher, dass die beiden PIC18F-Geräte noch einwandfrei funktionieren. Jetzt ändern Sie die Dinge. Fahren Sie die XIN der beiden Geräte und überprüfen Sie den Betrieb sowie den Stromverbrauch. Wenn Sie eine Möglichkeit haben, die emittierte Strahlung zu betrachten, tun Sie dies auch für beide Fälle. Machen Sie dann endlich alle oben genannten Schritte, aber jetzt mit Ihren ersten Gedanken zur Verwendung von zwei verschiedenen externen Kristallen und zugehörigen Kondensatoren und sehen Sie.

Mit anderen Worten, nutzen Sie Ihre Vorstellungskraft und testen Sie. Sehen Sie, was für Sie am besten funktioniert. Ich glaube nicht, dass einer von uns Ihnen hier eine klare Antwort geben kann. Aber es ist nicht sehr schwer, Dinge einzurichten und diese Ideen zu testen. Und da Sie sich Sorgen um EMV machen, sagt mir dies, dass Sie die Projektzeit und die Tools haben, die erforderlich sind, um dies ordnungsgemäß durchzuführen, bevor Sie sich auf ein endgültiges Design festlegen.

Das ist keine Raketenwissenschaft und erfordert nicht viel Arbeit. Ich sage das, weil es wirklich keine Entschuldigung dafür gibt, diese Tests nicht durchzuführen. Sie fügen es einfach in den Planungszeitplan ein und führen es aus. Die Ausgabe dieses Tests speist dann trivialerweise die schematische Bearbeitung (die auf jeden Fall parallel ablaufen kann, da die Kosten einer auf den Ergebnissen basierenden Bearbeitungsänderung gering sind [solange Sie das Testen nicht so lange hinauszögern, dass die Schaltplan ging zum Layout.]) Im Ernst, mach es einfach. Sie haben nicht nur in kurzer Zeit eine Antwort auf Ihren Fall, sondern auch eine quantitative mit Zahlen, die die Entscheidung gut dokumentiert und einfach machen. Projekte umfassen oft viel, viel schwierigere und weit weniger einfach zu lösende Probleme. Dieser ist ein Kinderspiel.

Das sind vorerst meine Gedanken von oben.


Sie haben die folgenden Punkte hinzugefügt:

  1. "Es gibt keine Kommunikation zwischen zwei PICs auf der Platine." Aber dann haben Sie auch hinzugefügt: "Basierend auf der drahtlosen Aktivität steuert der erste PIC einige Transistoren an und der zweite PIC würde den Status dieser Pins etwa alle 100 ms abfragen." Angesichts der langen Zeit, die Sie für die Umfragen erwähnt haben, nehme ich diesen Punkt und stimme zu, dass es möglicherweise keine Rolle spielt, welchen Weg Sie hier einschlagen. Außer möglicherweise aus EMV-Gründen.
  2. „Der Hauptgrund für mich, auch nur einen zweiten PIC in Betracht zu ziehen, ist die Nutzung von mehr IO-Pins und die Aufteilung des Software-Overheads.“ Das sind zwei verschiedene Probleme. Es gibt eine Vielzahl von Optionen für die PIC18F-Familie, und wenn Sie bereits die größten Teile verwenden und mehr I/O benötigen, kann ich die Idee, zwei zu verwenden, nicht bemängeln.
  3. Sie sagen jedoch, dass Sie den PIC18F46K20 verwenden, und dies ist Ihr einziger wirklicher Grund, zu Ihrem letzten Punkt in zwei Teilen zu gehen. der bezüglich des Software-Overheads. Ich würde stark vermuten, dass es hier eher darum geht, einen kleineren Satz von Software-Design-Tools in Ihren Programmierfähigkeiten zu besitzen, als wirklich um eine Notwendigkeit. In diesem Fall müssen Sie wahrscheinlich jemanden einstellen, der über mehr Fähigkeiten verfügt, die er anwenden kann. Ich habe selten einen Fall getroffen (nur einmal in 45 Jahren), in dem dieses Argument im Nachhinein 20/20 richtig wäre. In fast allen Fällen ist es mit dem richtigen Design und den richtigen Werkzeugen möglich, die Arbeit ohne zwei zu erledigen. Es ist wie der Unterschied zwischen den Fähigkeiten zweier verschiedener Zimmerleute; Einer, der nur wenige Tools kennt und jedes Problem damit lösen muss, und ein anderer, der Hunderte weitere Tools kennt und aufgrund seiner breiteren und tieferen Fähigkeiten hervorragende Ansätze entwickeln kann, um dasselbe Problem effizienter und kostengünstiger zu lösen.
  4. Ja, ich verstehe, worauf es in diesem Stadium Ihres Spiels um Softwareänderungen ankommt. Sie können aus diesen Gründen angeblich nicht zu einem größeren Teil gehen. Nein, ich kaufe das Argument nicht. War dort. Aber ich lasse es hier und sage nur, dass ich den Punkt von Ihnen nicht akzeptiere.
  5. Ich erhalte die Anforderungen zur Unterstützung von 9600 bps (nicht Baud, da dies ein Begriff mit einer anderen Bedeutung ist). Das ist nur eine Frage der verfügbaren Divisoren in der MCU und der zulässigen Fehlerspezifikationen für die 9600-bps-Kommunikation. Einfach zu erarbeiten.
  6. Ich denke überhaupt nicht über die Idee eines externen RC-Oszillators nach. Stattdessen gibt es Quarzmodule (normalerweise mit 4 Pins). Diese sind als billige (aber oft übermäßiger Stromverbrauch) Geräte oder als TXCOs mit Temperaturstabilität (und übermäßigem Stromverbrauch) oder als etwas wie der alte Harris HA7210 Low-Power-Oszillator erhältlich IC (jetzt wahrscheinlich veraltet.) Um noch mehr hinzuzufügen, gibt es immer noch einige Spread-Spectrum-Oszillator-Chips für diejenigen, die nach einer "schnellen Lösung" für ihre EMV-Probleme suchen. Hier gibt es also mehrere Ansätze. Auch hier sind Kreativität und Vorstellungskraft gefragt.

Am Ende denke ich, dass Sie den falschen Baum bellen. Ich denke, Sie brauchen bessere Programmierer für eingebettete Software. Kein Rube Goldberg-Fix in Hardware und zwei zu wartenden Softwaresätzen. Aber das bin nur ich.

Vielen Dank für Ihre Antwort. Einige Punkte, die Sie beachten sollten: Der Betrieb beider Mikrocontroller ist unabhängig voneinander. Es findet keine Kommunikation zwischen zwei PICs auf der Platine statt. Es ist wichtig, eine stabile Uhr zu haben, da die UART-Kommunikation zwischen einem der PIC- und Radio-Module beteiligt ist. Also überlegte ich, einen externen Quarz zu verwenden, da er genauer wäre als ein Oszillator. Basierend auf der drahtlosen Aktivität treibt der erste PIC einige Transistoren an und der zweite PIC würde den Status dieser Pins etwa alle 100 ms abfragen.
Der Hauptgrund für mich, sogar einen zweiten PIC in Betracht zu ziehen, ist die Verwendung von mehr IO-Pins und die Aufteilung des Software-Overheads.
Wenn ich den von Ihnen vorgeschlagenen Oszillator verwende, wäre er wie ein externer RC-Oszillator oder ein interner 8/16-MHz-Oszillator? Können Sie mir bitte einen Überblick darüber geben, wie das System mit einer Art Oszillator aussehen würde (kann eine Skizze oder ein Umriss sein) und wie man denselben Oszillator verwendet, um beide PIC zu verbinden?
UART Baud von 9600 ist erforderlich.
Bitte beachten Sie auch, dass dieses Projekt einen sehr engen Zeitplan hat und ich bezweifle, dass ich Gelegenheit haben werde, viele verschiedene Optionen auszuprobieren und zu testen. Ich werde es nach bestem Wissen und Gewissen versuchen müssen und nach dem Testen so schnell wie möglich zum Platinenlayout kommen.
Ich verwende den PIC18F46K20-Chip. Wie würde ich einen externen Oszillator an diesen Chip anschließen, um ihn gemäß Ihrem Vorschlag auch mit dem zweiten PIC zu teilen, wenn ich es richtig verstehe? Ein Überblick über ein solches Setup wäre sehr hilfreich, der die Oszillatorverbindung zeigt, die zwischen zwei PICs geteilt werden soll. Da die Software des ersten PIC bereits vorbereitet war, wäre ein Wechsel auf eine andere PIC-Serie, um mehr IO-Pins zu erhalten, nicht wünschenswert. Also plane ich, einen zweiten PIC zu verwenden, um Software zu teilen und mehr IO-Pins zu erhalten. Aber ich bin mir nicht sicher, wie ich diese beiden PICs auf derselben Platine takten soll ...
Hm. Vielleicht erklärt das, warum neuere Revisionen von AVRs die "Low-Power"-Oszillatoroptionen fallen gelassen haben.
@IgnacioVazquez-Abrams In einem Microchip-Meeting, das ich hatte, war ein Teil davon eine ausführliche Diskussion über Taktinverter. Ich saß da ​​und hörte zu und lernte. Ich war besorgt über den Stromverbrauch, da ich einen TE-Kühlerstapel in Betracht zog. Ich habe auch erfahren, dass sie das starke Gefühl haben, dass zu viele ihrer Verbraucher der Teile nicht gut ausgebildet sind und daher die Wechselrichter übertreiben müssen. Der Wechselrichter allein machte dann bei maximaler Frequenz 50 % der Gesamtleistung für die MCU aus. Es würde mich überhaupt nicht überraschen, dass die Bereitstellung niedrigerer Leistungseinstellungen für den Wechselrichter schließlich als zu mühsam abgeschnitten werden würde.
@ user101095 Kommentare hinzugefügt, um Ihre Punkte anzusprechen.
Vielen Dank für Ihre Kommentare, Jonk. Ich verstehe, dass der richtige Ansatz darin besteht, den PIC und die Software zu ändern, um sie an einen neuen Teil mit mehr IO anzupassen, und es kann sicherlich machbar sein, wenn es die Zeit erlaubt. Ich habe bei diesem Projekt keine Zeit, um zu viele neue Ideen zu ändern und zu testen draußen getestet werden), würde ich das zuerst versuchen.
@ user101095 Klingt für mich nach einer Entscheidung der Geschäftsführung! Gut. Besten Wünsche!