Moin Moin Forum, ich habe auf Basis von Platinen und Schaltplänen von SPRUT eine Platine gebaut, auf der 3 PIC 18F46K22 ihren Dienst tun sollen. Es geht dabei um ein Projekt, bei dem LEDs, in grafischen Mustern aufgebaut, blinken sollen. Eigentlich ein simples Projekt. Alle drei PICs haben eigene Spannungsversorgungen und werden jeweils über einen 8Mhz Quartz getaktet. Als Funktionstest für die Platine sollen die PICs jeweils an PIN RA0 einmal alle 2 Sekunden für 1 Sekunde aufleuchten. Bei eingeschalteter Spannung fangen alle drei PICs brav an zu blinken - aber nach ca. 10 Minuten kann man beobachten, dass die PICs nicht mehr im Takt sind - die Blinkfrequenz der drei PICs ist dann nicht mehr parallel. Nun frage ich mich, ob dies "normal" ist. Eigentlich sollte doch eine mittels Quarz vorgegebene Taktfrequenz stabiler sein. Oder irre ich mich? Jeder Quarz hat seine keramischen Kondensatoren als Ansteuerung - die Spannungsversorgung ist konstant 5V und die Programme aller PICs sind (bisher zum Testen) völlig identisch... Ich freue mich auf Rückmeldungen. Beste Grüße und einen schönen Wochenstart Treg
Gert S. schrieb: > Nun frage ich mich, ob dies "normal" ist. Daß man nach 10 Minuten schon eine merkliche Abweichung im Sekundenbereich hat, ist sicher nicht normal. Kann es sein, daß Deine PICs evtl. durch eine falsche Konfiguration gar nicht vom Quarz, sondern vom internen Oszillator getaktet werden? Wenn der PIC eine Überwachung des Oszis hat (nehme ich an): vielleicht schwingen die Quarze nicht und er schaltet auf internen Oszi um. Das müsste dann an irgenwelchen Statusbits zu sehen sein. Kannst Du die Quarzschwingungen per Oszilloskop messen? Was mir beim Betrachten des Bildes auffällt: Wo sind die Abblock-Kondensatoren der PICs? Wenn die langen Drähte, die von den Kondis an den Quarzen zum Rand der Platine gehen, die Masseleitungen sein sollen: das ist zu lang. Verbinde die Masse am Oszillator direkt mit der Masse am PIC.
:
Bearbeitet durch User
Gert S. schrieb: > Bei eingeschalteter Spannung fangen alle drei PICs brav an zu blinken - > aber nach ca. 10 Minuten kann man beobachten, dass die PICs nicht mehr > im Takt sind - die Blinkfrequenz der drei PICs ist dann nicht mehr > parallel. Auch wenn die Abweichung innerhalb von 10min ein bisschen extrem scheint, ganz (Langzeit)synchron kann das nie werden. Wäre es nicht einfacher überall den internen Takt zu nehmen und ein zusätzliches Sync-Signal hinzuzunehmen, mit dem ein Master alle anderen synchronisieren kann?
Hallo Thomas, danke für Deine schnelle rückmeldung. Ich habe Dir den Schaltplan beigefügt, der gleichzeitig auch der Bauplan für die Platine ist. In der Tat ist auf der einen Seite die Spannungsversorgung aufgebaut und über die "langen Drähte" kommt Masse und +5V zu dem PIC. Allerdings geht die Masse sehr direkt zum PIC und der Quartz ist unmittelbar am PIC. Daran sollte es nicht liegen, oder? Aber was meinst Du mit den "Abblock-Kondensatoren"? den Begriff habe ich bei SPRUT nicht (bewußt) gelesen?. Deine Idee hinsichtlich interner Oszillator Takt vs. externem Takt werde ich einmal nachvollziehen und werde mich mit dem MIKROELEKTRONIK Board und dem Programm im Detail beschäftigen... Über eine Rückmeldung zu Masse und Abblock-Kondi freute ich mich sehr. Danke Gert
Gert S. schrieb: > Aber was meinst Du mit den > "Abblock-Kondensatoren"? Je ein 100nF keramischer Kondensatore an jedem(!) der Versorgungsspannungs-Pins, zwischen VDD und VSS, und zwar sehr direkt (max. wenige Millimeter Leitung dazwischen!) Gilt für praktisch alle digitalen Schaltkreise. Google mal...
Volker S. schrieb: > Wäre es nicht einfacher überall den internen Takt zu nehmen und ein > zusätzliches Sync-Signal hinzuzunehmen, mit dem ein Master alle anderen > synchronisieren kann? Ich würd bei einem den internen Takt nehmen und Clockout aktivieren. Dieser ist dann Clockin für die beiden anderen. Mit Prescaler und PLL bringt man dann, wenn nötig, alle auf den gleichen CPUtakt. Dann noch alle Resets verbinden, damit sie gleich loslaufen. MfG Klaus
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.