Hallo, ich arbeite noch immer mit einem dsPIC30F4013. Ich habe irgendwo gelesen, dass mein dsPIC nen internen Quarz hat, der aber recht ungenau ist und deshalb beim Daten übertragen Fehler verursacht. Zum Entwickeln arbeite ich auf deinem Entwicklungsboard, dass einen Schwinguarz mit 7.3728MHZ hat. Also habe ich mir so einen organisiert. Leider kann ich nirgendwo entwas darüber finden wie ich den Schwingquarz mit meinem dsPIC verbinde. Im Datenblatt stehen nur die Maße drin. Kann mir jemand einen Tipp geben, wie ich vorgehen muss, um den Quarz und meinen Mikrocontroller zu vereinen? Gruß Thomas
Steht alles bei Microchip auf der Web-Seite. Lies mal das "DSPIC30 Handbook" (auf der Pic30F4013-Seite). Gruß Anja
Wer erzählt immer noch den Mist, daß die internen Oszillatoren so sehr ungenau sind ? Bei Microchip gibt es auch Abhandlungen darüber, daß man CAN-Kommunikation mit denen machen kann ohne einen signifikanten Fehler zu erzeugen, und die lahme UART-Kommunikation schafft der immer ! Warum also immer diese mistigen Quarze anschließen und auch noch über die benötigten Kondensatoren so viele Threads aufmachen ? Der interne Oszillator ist im Werk abgeglichen und reicht i.d.R. für alles normale. Für hohe Genauigkeit (Quarzuhr) ist ein Quarz besser geeignet.
Bernd Rüter schrieb: > Wer erzählt immer noch den Mist, daß die internen Oszillatoren so sehr > ungenau sind ? > Bei Microchip gibt es auch Abhandlungen darüber, daß man > CAN-Kommunikation mit denen machen kann ohne einen signifikanten Fehler > zu erzeugen, und die lahme UART-Kommunikation schafft der immer ! > > Warum also immer diese mistigen Quarze anschließen und auch noch über > die benötigten Kondensatoren so viele Threads aufmachen ? > > Der interne Oszillator ist im Werk abgeglichen und reicht i.d.R. für > alles normale. Für hohe Genauigkeit (Quarzuhr) ist ein Quarz besser > geeignet. Ich hab gerade im dsPic Datenblatt nachgelesen, der FRC macht im ganzen Temperaturbereich nur +-2%... du hast recht, der ist wirklich genau. Bei einem PIC16 geht das nicht, da sinds +-25% - total unbrauchbar sogar für RS232.
Ohforf Sake schrieb: > Ich hab gerade im dsPic Datenblatt nachgelesen, der FRC macht im ganzen > Temperaturbereich nur +-2%... du hast recht, der ist wirklich genau. > > Bei einem PIC16 geht das nicht, da sinds +-25% - total unbrauchbar sogar > für RS232. Hää ? PIC16F688 +/- 2% VDD zwischen 2,5 und 5,5V und Temperatur von 0 bis 85°C. Wo sind da jetzt die 25% ?
Ich denke mal, das ist vom Entwicklungsalter der 16F abhängig. Die neueren (z.Bsp. 16F88x) haben einen internen Präzissionsoszillator mit 1% Abweichung. Da braucht man dann keinen Quarz mehr (zumindest nicht, wenn man mit 8MHz hin kommt) und hat zwei weitere Pins gewonnen.
ok, hab das jetzt mal mit dem internen getestet. Wenn ich das Programm auf dem Entwicklungsboard laufen lasse, dann geht das problemlos. sobald ich den dsPIC auf mein board stecke. läuft das Programm viel zu schnell ab :( jemand ne Idee? Gruß
Nö.. den internen Oszillator kannst Du nicht beeinflussen, evtl. ist an Deinem Platine etwas falsch ? Entkopplung mit den richtigen Kondensatoren ? Internen Oszi richtig konfiguriert ?
@ Anja: ich hab jetzt zweimal das Datenblatt gewälzt. Ich zweifele langsam an mir. Hab zwar auf Seite 176 gefunden, dass man den Quarz an OSC1 anstöpselt, aber ne Beispielschaltung kann ich nicht finden. @Bernd: Am Board hab ich bis jetzt nur die Ausgänge RB0 bis RB7 belegt (logisch 1/0 Ausgang) und Vdd bzw Vss. An der Verkabelung konnte ich keine Fehler feststellen. Entkoppeln mit Kondensatoren? Ich dachte, dass muss man nur machen, wenn man nen externen Quarz nutzt. hier http://www.google.de/url?sa=t&source=web&ct=res&cd=1&ved=0CBkQFjAA&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F70268A.pdf&rct=j&q=dspic30+internal+oscillator+associated+capacitors&ei=busFTKKnJ475OaHboYgL&usg=AFQjCNFMUAO9s02gZ-giJtv-A4IEY4YCLA hab ich auf Seite 14 gefunden, wie OSC1 und OSC2 beschaltet werden, aber wie bestimme ich die Widerstände und die Kapazitäten? Interner Oszi sollte richtig konfiguriert sein. Ich werd den Code später noch posten. Danke an alle die Helfe! GRuß
> Entkoppeln mit Kondensatoren? Ich dachte, dass muss man nur machen, wenn > man nen externen Quarz nutzt. Wenn Du den internen Oszillator 7.37 MHz benutzt, brauchst Du keinen Quarz und auch keine Kondensatoren an OSC1 und OSC2. Einen Kondensator 100nF zwischen VDD und VSS brauchst Du natürlich trotzdem (bei fast jedem Chip), das hat nichts mit dem Oszillator zu tun.
hier der code für den internen oszillator
1 | #include <p30f4013.h> |
2 | |
3 | /* Configuration Bits */
|
4 | |
5 | _FOSC(CSW_FSCM_OFF & FRC_PLL8); /*internal 7,37MHz*/ |
6 | _FWDT(WDT_OFF); /*Watch dog Timer OFF*/ |
7 | _FBORPOR(PBOR_OFF & MCLR_EN); /*Brown Out OFF, MCLR Enabled*/ |
8 | _FGS(CODE_PROT_OFF); /*Code Protect OFF*/ |
9 | |
10 | //[...]
|
müsste so passen oder? auf dem demoboard läufts einwandfrei
tut jetzt. lag wohl daran, dass ich die Kondesatoren vergessen hatte Jetzt habe ich nur noch ein Problem. Der Mikrocontroller bekommt seine 5V. sobald ich ihn an den Strom hänge läuft das Programm an. Allerdings geht das nicht immer. Manchmal passiert einfach garnix. Wenn ich dann meine Hand über den Mikrocontroller bewege (KEINE BERÜHRUNG) läuft das Programm an. Das ganze scheint willkührlich zu sein. Manchmal gehts, manchmal nicht. Das Programm läuft auch nicht immer ganz durch. Ich habe die ganze Verkabelung gecheckt. Alles fest und richtig verkabelt. Wie kann sowas denn sein? Wenn ichs nicht selber gesehen hätte würde ichs für Zauberrei halten :) hier mail n Video von dem Verhalten. http://www.zshare.net/download/76845194a52eaab6/ Muss vielleicht irgendwo was entkoppelt werden oder so? Die LEDs sind nur zum anzeigen, welche EIngänge der Mikrocontroller gerad ansteuert. wenn sie wenig leuchten is der Controller AUS. wenn sie Hell sind liegen 5 V an. Wenn sie Aus sind 0V. Wenn sie heftig flackern (ist auch im Lautsprecher zu hören) weiß ich nicht was los is. im kleinen Video mal das Normalverhalten des System. Gruß
Problem mit nem Kondensator an Reset gelöst :) Danke an Björn Wieck aus einer Antwort in einem andere Fred. Gruß
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.