Forum: Mikrocontroller und Digitale Elektronik wie Schwingquarz an dsPIC30F4013


von Thomas (Gast)


Lesenswert?

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

von Anja (Gast)


Lesenswert?

Steht alles bei Microchip auf der Web-Seite.
Lies mal das "DSPIC30 Handbook" (auf der Pic30F4013-Seite).

Gruß Anja

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

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.

von Ohforf S. (ohforf)


Lesenswert?

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.

von Bernd Rüter (Gast)


Lesenswert?

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% ?

von stepp64 (Gast)


Lesenswert?

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.

von Thomas (Gast)


Lesenswert?

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ß

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Nö..
den internen Oszillator kannst Du nicht beeinflussen, evtl. ist an 
Deinem Platine etwas falsch ?
Entkopplung mit den richtigen Kondensatoren ?
Internen Oszi richtig konfiguriert ?

von Thomas (Gast)


Lesenswert?

@ 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ß

von sss_t (Gast)


Lesenswert?

> 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.

von Thomas (Gast)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

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ß

von Thomas (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.