Forum: Mikrocontroller und Digitale Elektronik Problem bei der Taktversorgung von zwei PICs


von Eggert E. (eehmke)


Lesenswert?

Hi! Ich bin relativ neu in der Microcontrollerwelt, habe aber schon ein 
paar Entwürfe zum laufen gebracht. Ich arbeite mit PIC16F627A. Mein 
Problem ist, dass ich zwei µC auf einer Platine habe. Der erste hat 
einen Quarz und wird mit 4MHz im Mode XC getaktet. Ich versuche, den 
zweiten µC extern zu takten, indem ich CLKOUT vom ersten mit CLKIN vom 
zweiten verbinde. Das klappt nicht, µC2 tut gar nichts, während µC1 
arbeitet. Ist das ein ganz falscher Ansatz, oder habe ich was übersehen? 
Ich kann natürlich dem zweiten µC auch noch einen Quarz spendieren...
Eggert

von Christian R. (supachris)


Lesenswert?

Ja das ist der falsche Ansatz. Man kann im Normalfall nicht einfach an 
den Oszillator einen 2. Eingang anschließen.
Beim PIC gibts doch bestimmt auch ein Pin, das man als Taktausgang 
schalten kann, und das dann den Takt gepuffet ausgibt?
Ansonsten einen Quarz-Oszillator nehmen, da kannst du dann 10 PICs 
parallel anschließen.

von Eggert E. (eehmke)


Lesenswert?

Ich dachte, der Taktausgang IST CLKOUT... verwirrt. Da ich die Schaltung 
nicht mehr stark ändern möchte, ist ein zweiter Quarz eine Alternative? 
Die beiden müssen nicht absolut synchron laufen.
Eggert

von Falk B. (falk)


Lesenswert?

@ Eggert Ehmke (eehmke)

>Ich dachte, der Taktausgang IST CLKOUT... verwirrt.

Poste mal einen Link auf das Datenblatt.

> Da ich die Schaltung
>nicht mehr stark ändern möchte, ist ein zweiter Quarz eine Alternative?

Immer.

>Die beiden müssen nicht absolut synchron laufen.

Was solls denn werden?

MFG
Falk

von Eggert E. (eehmke)


Lesenswert?

Falk Brunner wrote:
> @ Eggert Ehmke (eehmke)
>
>>Ich dachte, der Taktausgang IST CLKOUT... verwirrt.
>
> Poste mal einen Link auf das Datenblatt.
http://ww1.microchip.com/downloads/en/DeviceDoc/40300C.pdf

Hab noch mal nachgelesen. Im XT Mode ist OSC2 wohl nicht als CLKOUT 
geschaltet.

>> Da ich die Schaltung
>>nicht mehr stark ändern möchte, ist ein zweiter Quarz eine Alternative?
>
> Immer.

>>Die beiden müssen nicht absolut synchron laufen.
>
> Was solls denn werden?
Na ja, die unvollständige Projektbeschreibung ist hier:
http://www.habitant.de/hardware/skyinout
Wenn du genauer wissen willst, wozu das gut ist, folge dem Skylaunch 
Link.

Werd mal einen Quarz dranlöten.
Eggert

von Falk B. (falk)


Lesenswert?

@ Eggert Ehmke (eehmke)

>http://ww1.microchip.com/downloads/en/DeviceDoc/40300C.pdf

>Hab noch mal nachgelesen. Im XT Mode ist OSC2 wohl nicht als CLKOUT
>geschaltet.

So wie im Schaltplan sollte es laufen (wenn gleich der Schaltplan Sülze 
ist . . .)

>Wenn du genauer wissen willst, wozu das gut ist, folge dem Skylaunch
>Link.

???
Welcher "Experte" hat den das Ding entworfen? ZWEI PICs für quasi nix? 
Die müssen sich tödlich langweilen. Naja.

MFG
Falk

von Eggert E. (eehmke)


Lesenswert?

Falk Brunner wrote:
> Welcher "Experte" hat den das Ding entworfen? ZWEI PICs für quasi nix?
> Die müssen sich tödlich langweilen. Naja.
Danke, sehr aufbauend, dein Kommentar. Wenn du Verbesserungsvorschläge 
hast, gerne. Sonst: Tschüss
Eggert

von Eggert E. (eehmke)


Lesenswert?

Ok, es klappt. Mit zwei Quarzen läuft es wie geplant.
Eggert

von Peter D. (peda)


Lesenswert?

Eggert Ehmke wrote:

> Danke, sehr aufbauend, dein Kommentar. Wenn du Verbesserungsvorschläge
> hast, gerne. Sonst: Tschüss

Naja, es ist schon sehr schwer zu verstehen, warum Du da 2 MCs benutzt.

Wenn Du das mal erläutern würdest, wäre es nett.

Ich kenne jetzt diesen MC nicht, aber ich glaube nicht, daß er nur 
wenige 100 Byte Flash hat, daß nicht die gesamte Aufgabe in einen MC 
passen würde.

In der Regel haben ja MCs doch mindestens 1kByte Flash und das sollte 
für diese Aufgabe dicke ausreichen.


Peter

von Falk B. (falk)


Lesenswert?

@ Eggert Ehmke (eehmke)

>Danke, sehr aufbauend, dein Kommentar. Wenn du Verbesserungsvorschläge
>hast, gerne. Sonst: Tschüss

Locker bleiben.
Wie Peter schon sagte, der PIC hat genug Speicher UND Rechenleistung, 
umd die Aufgabe zu bewältigen (1K Worte Flash (14 Bit), 224 Byte RAM, 
128 Byte EEPROM). Was muss er tun? AFAIK nur

Zeichen per UART mit 9K6 empfangen
Zeichen per UART mit 2k4 an Display senden

Zuerst sollte man prüfen, ob das Display oder der Funkempfänger auf eine 
andere Baudrate eingestellt werden können, das vereinfacht die Sache 
schonmal wesentlich. Der Rest ist dann weiss Gott Peanuts.

Und selbst wenn die Baudraten verschieden sind, ist es kein Problem.

- UART auf 9600 Baud konfigurieren
- warte auf Daten vom Funkempfänger
- UART auf 2400 Baud konfigurieren
- Sende Daten zum Display
- Starte oben neu

Wird ne schnuckelige Einchiplösung.

MFG
Falk

von Eggert E. (eehmke)


Lesenswert?

Ok, hab mich ja beruhigt. Ich hatte in meinem ersten Posting deutlich 
gemacht, dass ich kein Experte bin. Dies ist mein erstes ernsthaftes 
PIC-Projekt, und es funzt jetzt.
Die beide Baudraten sind verschieden, und nicht konfigurierbar. Die 
Daten werden nicht einfach durchgeschleust, sondern müssen in einem 
anderen Format ausgegeben werden. Der Timer für das Tonsignal soll 
möglichst sauber laufen, damit der Ton gleichmäßig klingt. Ich habe 
diese Lösung gewählt, weil sie einfach für mich besser überschaubar ist. 
Ich will keinen Schönheitspreis gewinnen, sondern das Gerät halbwegs 
zuverlässig zum Laufen bringen. Dass es sich optimieren lässt, ist klar. 
Die Idee mit dem umprogrammieren des UART hatte ich auch schon, war mir 
zu komplex. Wenn Bedarf besteht und ich mehrere Geräte baue, werd ich 
die Erfahrungen und eure Tipps nutzen und das Design verbessern.
Eggert

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.