Hallo Leute. Habe eine Frage zu den POSCMOD bits beim pic32. Da gibst ja die Möglickeit den auf external oder XT oder HS einstellen. Was hat das zu bedeuten (XT und HS). Bzw. wie sind sie nach dem Kauf (AUslieferzustand) eingestellt. Wenn sie auf external stehen bedeutet das dann, dass ich den Chip nicht Programmieren kann solange kein Oszillator dranhängt?? Danke M.H.
Besser gefragt: Das folgende stellt ihn auf (externen osziallator / 2)*20 /1 ein also bei 8 Mhz ==> SYSCLK = 80MHz Pereferie Clock: SYSCLK / 8 => 10MHz RICHTIG?????? Was ist FNOSC. Habs im Datenblatt nicht gefunden.... #pragma config FNOSC = PRIPLL #pragma config FPLLIDIV = DIV_2 #pragma config FPLLMUL = MUL_20 #pragma config FPLLODIV = DIV_1 #pragma config FPBDIV = DIV_8 #pragma config FWDTEN = OFF #pragma config WDTPS = PS1 #pragma config FCKSM = CSDCMD #pragma config OSCIOFNC = OFF #pragma config POSCMOD = XT #pragma config IESO = OFF #pragma config FSOSCEN = OFF #pragma config CP = OFF #pragma config BWP = OFF #pragma config PWP = OFF #pragma config ICESEL = ICS_PGx2 #pragma config DEBUG = OFF
mit der zaubertastenkombination [stgr]+[F] und "FNOSC" wurde mir das hier angezeigt: bit 2-0 FNOSC<2:0>: Oscillator Selection bits 000 = Fast RC Oscillator (FRC) 001 = Fast RC Oscillator with divide-by-N with PLL module (FRCDIV+PLL) 010 = Primary Oscillator (XT, HS, EC) (1) 011 = Primary Oscillator with PLL module (XT+PLL, HS+PLL, EC+PLL) 100 = Secondary Oscillator (SOSC) 101 = Low-Power RC Oscillator (LPRC) 110 = FRCDIV16 Fast RC Oscillator with fixed divide-by-16 postscaler 111 = Fast RC Oscillator with divide-by-N (FRCDIV) Note 1: Do not disable POSC (POSCMD = 00) when using this oscillator source ich nehme an, dass das schlüsselwort "PRIPLL" "011" entspricht
müsstest das nicht du uns angeben?!? ...da du keinen spezifischen PIC32 genannt hast, habe ich einfach irgendein datenblatt eines PIC32 geöffnet.
> Wenn sie auf external stehen bedeutet das dann, dass ich den Chip > nicht Programmieren kann solange kein Oszillator dranhängt?? Das ist bei PICs kein Problem, die brauchen den Oszillator nicht zum programmieren. Einfach nur den Programmer dranhängen, "verfusen" gibt es nicht.
Ok. Hab das vekackt. Bei mir ist es auch drin... Was ist der Unterschied zwischen den Promary Clock Modes EC XT und HS?? Ist dringend, sthet nämlich nicht im DB
meinen leichten wink mit dem pfahl hast du wohl nicht verstanden, dann werde ich halt mit demselben zuschlagen: wie stellst du dir vor, dass wir dir helfen können, wenn du nicht einmal sagst, welchen PIC du verwendest, geschweige denn auf welches DB deine aussagen sich beziehen?! ps: in meinem DB steht's unter "Primary Oscillator (POSC)" pps: es steht wahrscheinlich gleich ein wenig weiter unten an der stelle, wo du "FNOSC<2:0>" gefunden hast -> also ein bischen scrollen ;-)
Master Snowman schrieb: > in meinem DB steht's unter "Primary Oscillator (POSC) Eben nicht. Welches DB ist egal, da es in jedem vom pic32 gleich ist. Es steht nur drin external clock high frequency und low frequency. Den OSCO Pin kann man nur im External Clockmode aktivieren. Deshalb denke ich, das das die einstellung für quarz ist und XT für high freq, oder?
OK, dann machen wir's halt ganz kindisch: wenn du mir sagst, welchen PIC du verwendest, sag ich dir aus welchem DB ich das obige bild habe. einverstanden?
>Ok. Hab das vekackt. Bei mir ist es auch drin... Was ist der Unterschied >zwischen den Promary Clock Modes EC XT und HS?? EC External Clock XT Quarz < 4MHz HS Quarz > 4MHz >Ist dringend, sthet nämlich nicht im DB Naja.
Bei den Modi: XT Quarz < 4MHz HS Quarz > 4MHz kann man den OSCO Pin nicht anschalten, was aber für ein quarz unabdingbar ist! Siehe hier: OSCIOFNC: CLKO Enable Configuration bit 1 = CLKO output disabled 0 = CLKO output signal active on the OSCO pin; Primary Oscillator must be disabled or configured for the External Clock mode (EC) for the CLKO to be active (POSCMOD<1:0> = 11 or 00) Mann kann ihn nur einschalten wenn er aus ist (sinnlos) oder wenn er auf external clock eingestellt ist!
Aber in meinem DB steht das nicht ( kannste selbst schauen). will nur wissen wofür die Drei Arten bei meinem PIC sind.
Das kann ich einstellen: POSCMOD<1:0>: Primary Oscillator Configuration bits 11 = Primary Oscillator disabled 10 = HS Oscillator mode selected 01 = XT Oscillator mode selected 00 = External Clock mode selected
@H.M.: in deinem DB steht aber gleich zu beginn, dass man "PIC32 Family Reference Manual" nachschlagen soll und unter kapitel 6 weitere infos findet... dort findest du es auch ;-) http://ww1.microchip.com/downloads/en/DeviceDoc/61132B.pdf
Ich glaub ich habs geschnallt: OSCI und OSCO sind für Quarz (Ist klar dass dann der PIN nicht CLKO sein kann, da er ja für den schwingkreis benötigt wird. Und somit nur benutzt werden kann wenn man CLKI verwendet und dadurch das Taktsiganl einspeisst. Also muss ich ihn für ein 8MHz quarz auf XT setzen? vielen Dank für die Antworten!
M. H. schrieb: > Also muss ich ihn für ein 8MHz quarz auf XT setzen? Nö In einer der vielen Antworten hier stand, daß bei >4MHz der HS-Modus verwendet werden muß. Lesen!!!
Sorry! Hab ich verwechselt. Bleiben die Einstellungen der Register nach dem ausschalten erhalten?
Nein. Ich schnall das nur nicht. Wenn ich das Kompiliere und brenne, schreibt der die Bits in den Controller. Bein nächsten Start müssen diese ja da sein um den Betrieb zu gewährleisten. Ist das nun so, dass sie erhalten bleiben?
M. H. schrieb: > Nein. Ich schnall das nur nicht. Wenn ich das Kompiliere und brenne, > schreibt der die Bits in den Controller. Bein nächsten Start müssen > diese ja da sein um den Betrieb zu gewährleisten. Ist das nun so, dass > sie erhalten bleiben? Lies "PIC32MX Family Reference Manual" Section 32 "Configuration"! "A PIC32MX family device includes several nonvolatile (programmable) Configuration Words that define the device’s behavior. Device Configuration features may vary according to PIC32MX family variants; however, the following configuration features are common: • System Clock Oscillator mode and Phase-Locked Loop (PLL) • Secondary oscillator (SOSC) enable/disable • Watchdog Timer (WDT) enable/disable and postscaler • Boot Flash and Program Flash write-protect regions • User ID • Debug mode The PIC32MX Configuration Words are located in Boot Flash memory and are programmed when the PIC32MX Boot Flash region is programmed." "In PIC32MX family devices, the Configuration Words select various device Configurations. These Configuration Words are implemented as volatile memory registers and are automatically loaded from the nonvolatile programmed Configuration data mapped in the last four Words (32-bit x 4 Words) of Boot Flash memory, DEVCFG0-DEVCFG3. These are the four locations an external programming device programs with the appropriate Configuration data (see Table 32-2). On Power-on Reset (POR) or any Reset, the Configuration Words are copied from Boot Flash memory to their corresponding Configuration registers. A Configuration bit can only be programmed = 0, (an erased state = 1)." Steht doch alles da. fchk
Also mal ganz erlich, du weist nicht was XT, RC, oder sonnstwas bedeuten, und hast einen PIC32 welcher für dich als Anfänger (was du sein musst, sonnst würdest du das nicht fragen) um einiges zu groß ist. Mach ein einfaches Tutorial durch, um einfach mal etwas zu verstehen, wie so ein PIC aufgebaut ist, welche Daten in welchen Speichern abgelegt werden, was für Register da sind und welche Funktion diese haben. Und, was "Register überhaupt sind" ! Ich denke das wäre super wichtig. Aber bitte nicht mit einem PIC32 !!! Nehme einen PIC 18F... oder was vergleichbaren.... Du lernst auch erst das laufen und dann das rennen! Zu deiner Frage, ja, diese Einstellungen bleiben dann gespeicher... Wäre ja sonnst irgendwie ein bisschen doof, oder nicht ? LG Tim
Tim schrieb: > Zu deiner Frage, ja, diese Einstellungen bleiben dann gespeicher... Wäre > ja sonnst irgendwie ein bisschen doof, oder nicht ? Manche aber nicht. Z.b. Die genaue Einstellung des PLLs, das steht ja normalerweise am Anfang des Programms, genauso wie die Einstellung, welche Ports Input und Output sind. Zumindest bei den PIC18. Auch wenn das die Frage vielleicht beantwortet, lege ich dir auch ans Herz, erstmal mit was kleinem, wie PIC18 anzufangen. Denn auch da gibt es sowas wie Portdefinitionen, Module (z.B. USB, CAN, SPI), Ethernet, ADCs usw. Dort wäre dir auch das XL, HS, PLL "über den Weg gelaufen".
Michael Skropski--> "Manche aber nicht." Achso, wenn es um Dinge wie TRIS und LAT Register geht, ja das ist mir bewusst ;) Ich dachte die Frage von M.H. bezog sich auf die _CONFIG - Dinge, wie WDT LVP oder eben auch den OSCI. M.H. --> "Ich programmiere seit weit über 5 Jahren µCs!!!!!" Meinst du 5 Tage oder 5 Stunden? LG Tim
Tim schrieb: > Ich dachte die Frage von M.H. bezog sich auf die _CONFIG - Dinge, wie > WDT LVP oder eben auch den OSCI. Ich weiß nich ob es das tut. Aber die Config-Bits sind eine Sache, die Konfiguration oder Initialisierung eine Andere. Also z.B. das OSCCON-Register wird nicht gespeichert. Da steht ja auch noch etwas drin. M. H. schrieb: > Ich programmiere seit weit über 5 Jahren µCs!!!!! Ich will nicht unterstellen, das du lügst, aber ganz glauben kann ich das nicht. Denn wenn es so ist, musst du a) schonmal Datenblätter durchforstet haben und b) läuft kein µC ohne Takt, ob intern oder extern. Und Bezeichnungen wie "OSCI"/"OSCO" oder "CLKIN" sind nicht selten bzw. selbsterklärend.
Michael, da gebe ich dir völlig Recht ;) Es gibt immer irgendwo einen Schlawiner ;) Was nun unseren M.H. angeht, und seine 5 Jahre Erfahrung, da bin ich auch etwas am zweifeln. Ich will es dir ja echt nicht schlecht machen, aber es ist halt schwer zu glauben, wenn du so etwas nach 5 Jahren frägst. Das hat nichts expliziet mit PIC zu tun. Das Register evt. schon, aber das Datenblätter lesen, und das Google benutzen nicht ! LG Tim
Ich hab jetzt noch nichts wirklich mit AVRs gemacht, aber ich denke da ist es auch so, dass man eine Config hat, die logischerweise genauso dauerhaft gespeichert wird, wie das Programm, aber der Rest, EEPROM ausgenommen, flüchtig ist. Abgesehen davon weiß ich nicht, wofür man den dicksten PIC32 braucht, den man aber nur mit 8MHz takten will. Ich hoffe, das war nur ein Beispiel mit den 8MHz^^ Ansonsten kannst du ja mal erzählen, was dir so als Projekt für den PIC32 vorschwebt. Und selbst wenn du schon viel mit AVRs gemacht hast, nützt dir das offensichtlich nicht so viel für PIC32er. Also nimm am besten nen PIC18, tob dich ein bisschen daran aus, um den PICs und Microchip ein bisschen näher zu kommen und dann versuchs iwann nochmal mit den PIC32. Wenns dir um mehr Power oder die 32bit geht, is vlt ein AVR32 besser geeignet, da du ja schon mit Atmegas gemacht hast.
hab jetzt nicht alles gelesen ;) aber glaub wurde noch nicht beantwortet rc ist internes rc glied... ec ist externe clock xt und hs sind fast identisch... unterscheiden sich nur siehe hier: The XT, XTPLL, HS, and HSPLL modes are external crystal or resonator controller oscillator modes. The XT and HS modes are functionally very similar. The primary difference is the gain of the internal inverter of the oscillator circuit (see Figure 6.3.1.1.1). The XT mode is a medium power, medium frequency mode and has medium inverter gain. HS mode is higher power and provides the highest oscillator frequencies and has the highest inverter gain. OSC2 provides crystal/resonator feedback in both XT and HS Oscillator modes and hence is not available for use as a input or output in these modes. The XTPLL and HSPLL modes have a Phase-Locked Loop (PLL) with a user-selectable input divider and multiplier, and an output divider, to provide a wide range of output frequencies. The oscillator circuit will consume more current when the PLL is enabled. ich benutze immer hs... die einstellung ist defaultmaessig so wie du sie unter "configure->configure bits" ueberschreiben tust du sie dann via #pragma config usw.. welche configs es gibt findest du unter help
>Abgesehen davon weiß ich nicht, wofür man den dicksten PIC32 braucht,
den man aber nur mit 8MHz takten will.
das ist normal ... der pic32 hat ja ein ppl welcher dann auf 80 im
endeffekt laeuft.
*flood" sorry die menüangaben bezogen sich auf mplab8.x ... ich hoffe das benutzt du auch... ;) mplabx habe ich wieder geknickt und arbeite weiter auf mplab 8.63.
egon schrieb: > das ist normal ... der pic32 hat ja ein ppl welcher dann auf 80 im > endeffekt laeuft. Oh gott, hast recht. Ich hab grad iwie an was anderes gedacht ;) Dennoch würde mich die geplante Anwendung interessieren.
Michael Skropski schrieb: > Dennoch > würde mich die geplante Anwendung interessieren. Vermutlich was sicherheitstechnisch Relevantes :) Btw. ich wurde in letzter Zeit oftmals genötigt mich mit einem gewissen Arduino zu beschäftigen. Ich kann nachvollziehen, dass jemand der Atmel Datenblätter versteht, nicht zwingend die von Microchip versteht. Mir gings umgekehrt genau so! Ich arbeite seit mehr als 5 Jahren mit PICs aller Sorten und ich kann aus einem Atmel-Datenblatt genau nichts herauslesen... Allein wie da die PWM Erzeugung funktioniert, schräg...
Hallo Leute. Hab nochmal ne Frage: Mit #pragma config kann ich ja auch unter anderem den Vorteiler der Perepherie Clock einstellen. Habe ein Projekt gesehen, in dem das so gemacht wurde. Beim Initialisieren wurde dann jedoch die Funktion SYSTEMConfigPerformance(SYSCLK); aufgerufen. Soweit ich weiss setzt diese die waitstates etc aber auch den Vorteiler der Perepherieclock. Könnte es dann nicht sein, dass die Funktion, den mit #pragma config gesetzten Wert, umkonfiguriert??
Wenn man die Perepherie nicht verstanden hatt, kan mann auch die Klock nicht versteen.
m.h. das stimmt... das pragma config wird durch SYSTEMConfigPerformance ueberschrieben. wenn du einen anderen wert fuer pb brauchst kannst du den nachtraeglich wieder mit: OSCSetPBDIV(pb_OSC_PB_DIV_1); setzen. warum versteh ich auch nicht ganz. trotzdem sollte man SYSTEMConfigPerformance aufrufen um eben die waitstates zu setzen. wobei die funktion die waitstates sehr defensiv setzt da kann man noch bisschen mehr tunen. funktioniert zumindest bei raumtemperatur ;) wenn man z.b. FPLLMUL = MUL_15, FPLLIDIV = DIV_1 und dem SYSTEMConfigPerformance 80mhz gibt funktioniert alles noch einwandfrei. in dem fall laeuft der pic mit 120 mhz mit waitstates fuer 80mhz. pb ist auch 120mhz. hab hier eine platine die laeuft schon ewig in der config... gut aber natuerlich keine garantie ;) mehr als 120 mhz ist irgendwie nicht drin auch mit anderen waistates nicht...
M. H. schrieb: > Hallo Leute. Hab nochmal ne Frage: > > Mit #pragma config kann ich ja auch unter anderem den Vorteiler der > Perepherie Clock einstellen. > > Habe ein Projekt gesehen, in dem das so gemacht wurde. Beim > Initialisieren wurde dann jedoch die Funktion > SYSTEMConfigPerformance(SYSCLK); aufgerufen. > > Soweit ich weiss setzt diese die waitstates etc aber auch den Vorteiler > der Perepherieclock. Könnte es dann nicht sein, dass die Funktion, den > mit #pragma config gesetzten Wert, umkonfiguriert?? Die Pragmas sind für die Config-Words im Flash. Wenn Du das Reference Manual gelesen hättest, wüsstest Du, dass diese nach einem Reset vor dem Start des Prozessors in die entsprechenden Register kopiert werden. Die Register können später wieder geändert werden. Manchmal lässt man z.B. den Prozessor mit dem internen Takt starten und schaltet erst später auf den externen Quarz um. So ein Quarzoszillator braucht nämlich eine ganze Zeit, bis er stabil läuft, während der interne RC-Oszillator praktisch sofort da ist. So kann man also die Startzeit verkürzen. fchk
> Wenn Du das Reference Manual gelesen hättest...
oder eben wenigstens(!) ein tutorial gelesen hätte ...dann wären
ähnliche, zukünftige fragen auch schon geklärt.
>Wenn Du das Reference Manual gelesen hättest... na ich denke das er einfach in das falsche datenblatt gesehen hat... z.b. PIC32MX 5XX 6XX 7XX Family Data Sheet.pdf ist doch recht uebersichtlich und geht nicht so ins detail. schau dort mal nach "OSCILLATOR CONFIGURATION" der informationsgehalt ist nicht berauschend... man muss halt wissen das es noch ein grosses gibt wo alles drin steht... wenn man das am anfang nicht merkt wundert man sich ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.