Ich verwende einen Pic18F45K40, um einen ST7590-Powerline-Netzwerkchip zu steuern, der ein 8-MHz-Taktsignal benötigt, um zu funktionieren. Ich habe das Datenblatt gelesen und es sieht so aus, als ob ein 16-MHz-Signal vom 64-MHz-Mikrochip erzeugt werden kann.
Ich habe das Referenztakt-Ausgangsmodul wie folgt eingerichtet:
#pragma config CLKOUTEN = ON
Und
#define oCLK_INIT() CLKRCLKbits.CLK=1; \
CLKRCONbits.EN=0; \
CLKRCONbits.DC=2; \
CLKRCONbits.DIV=3; \
SCANTRIGbits.TSEL=1;
//OSCCON1bits.NOSC=6;
#define oCLK_EN_ON() CLKRCONbits.EN=1;
und verwendete PPS, um RB4 durch Einstellung zu fixieren
RB4PPS=0b10100; /* B4=CLKR 8MHz */ \
Ich bekomme zwar ein 8-MHz-Signal heraus, aber es sieht so aus:
Dies ist eher sinusförmig als quadratisch und könnte der Grund sein, warum ich nicht über UART mit dem ST7590-Chip sprechen kann. Kann jemand erklären, was passiert?
EDIT: Ergebnis der Änderung der Anstiegsgeschwindigkeit.
Zwei Möglichkeiten - Streukapazität oder Anstiegsgeschwindigkeitssteuerung.
Wenn Sie an Steckbrettern arbeiten, würde ich denken, dass es sich um eine unerwünschte Kapazität zwischen den Stiftleisten handelt, aber aufgrund des Gehäuses des STmicro-Geräts glaube ich, dass Sie mit richtigen Leiterplatten arbeiten.
Das führt zu der anderen Möglichkeit - der PIC begrenzt die Anstiegsgeschwindigkeiten auf dem Port. Dies geschieht, um die EMV durch schnelles Schalten zu reduzieren, sodass die Anstiegsgeschwindigkeiten der Transistoren verlangsamt werden, um einen schönen Gradienten zu erzeugen. Funktioniert hervorragend unter 1 MHz, aber bei 8 MHz müssen Sie vorsichtig sein.
Siehe Seite 244 für Anweisungen zum Löschen der SLRCONx-Register, um die Begrenzung der Anstiegsgeschwindigkeit zu verhindern oder zu verringern.
15.2.5 Slew Rate Control
The SLRCONx register controls the slew rate option for each port pin. Slew rate for each port pin can be
controlled independently. When an SLRCONx bit is set, the corresponding port pin drive is slew rate
limited. When an SLRCONx bit is cleared, The corresponding port pin drive slews at the maximum rate
possible.
Ein ideales Rechtecksignal existiert nicht. Sie haben immer eine bestimmte Anstiegs- und Abfallzeit in Ihrem Signal. Je höher Ihre Frequenz ist, desto größer wird die relative Anstiegs- und Abfallzeit im Vergleich zu Ihrer gesamten Ein- bzw. Ausschaltzeit. Worunter Sie leiden, sind einerseits die parasitären Eigenschaften Ihres Pfades und die interne Beschaltung des Pins inklusive ESD-Schutz und Kapazität gegen Masse.
Ein externer Oszillator erzeugt auch kein sauberes Rechtecksignal, sondern eines, das wie Ihr Scope-Druck aussieht, aber das ist kein Problem, da Sie normalerweise eine Flankenerkennungsfunktion an Ihren Clock-Eingängen haben.
MIL-SPEZ
Andreas Morton
Gareth T.
Rolle