Forum: Mikrocontroller und Digitale Elektronik PIC16f84a Quarz;Takt funktioniert nicht?


von Andreas Prager (Gast)


Angehängte Dateien:

Lesenswert?

Hallo erst mal.....
Hab ein riesen Problem mit meinem PIC.
Die Ausgabe normaler Zustände funktionieren alle.(also setze bit 1 von 
portb oder so).

Aber z.B. ein Blinklicht funktioniert nicht.
Auch ein Lauflicht nicht.
Daher denke ich es hat etwas mit der Taktversorgung zu tun.Warum auch 
immer.....
Die Led geht an......und bleibt an.....soll aber blinken!
Beim Lauflicht das selbe 1.led geht an...der rest nicht!

Die beiden Programme sind richtig geschrieben.Auf einer anderen
Testplatine funktionierten sie auch. Aber auf meiner nicht^^


Hier mal der Quellcode:
VON DEM BLINK-programm
(ich schreibs mal ohne Include....sondern mache Zuweisungen.)(wie gesagt 
es funktioniert egtl.)

;***********************************************
;Blink led
;27.12.08
;Andreas Prager
;***********************************************
;Grund-zw

  list  p=16f84
  radix  hex
;register-zw
  status  equ  03
  portb  equ  06
  trisb  equ  86
  d    equ  20
  e    equ  21
  f    equ  22
;Bit-zw
  rp0    equ  05
;***********************************************

    CLRF  portb
    bsf  status,rp0
    bcf  trisb,0
    bcf  status,rp0

start:          bsf  portb,0
    Call  up
    bcf  portb,0
    Call  up
    goto  start

;Pause:(ca.16sekunden....ziemlich lang..aber egal)
up:    movlw  d'255'
    movwf  f
vw:    movwf  e
neu:  movwf  d
again:  decfsz  d
    goto  again
    decfsz  e
    goto  neu
    decfsz  f
    goto  vw
    return
    end




So das isses........
In der schaltung seht ihr meine Quarz beschaltung.....den Rest bitte 
nicht betrachten.

So was noch wichtig wäre:
-Programmiere über Vellemann brenner.
-Betriebsspannung an meiner Testplatine: über 7805 kommen ca. 4,5V
-Quarz 4,000MHz
-Kondensatoren am Quarz: je 22pf



Danke im Vorraus für die Antworten

von Andreas Prager (Gast)


Lesenswert?

Ach ja Zwischen quarz und OSC1 bzw. OSC2 ist jeweils ein Kondensator 
geschalten.(22pF)
Ich seh gerade eben das sie hier nicht mit eingezeichnet sind....sry

von Rainer (Gast)


Lesenswert?

Hallo Andreas,

ist es wirklich ein Quarz oder ein Keramikschwinger mit eingebauten 
Kondensatoren?

Rainer

von Andreas Prager (Gast)


Lesenswert?

Nein ist schon ein richtiger Quarz
--bei Conrad bestellt:
Typenbezeichnung:   QU4,0000MHZHC-49/U
Conrad-nr.:182087 - 62

von Tino N. (tino)


Lesenswert?

Wie hast du die Kondensatoren verschaltet ?
Wenn sie zwischen OSC1 und OSC2 liegen ist das mit Sicherheit verkehrt .
Hast du beim Brennes des PIC auch einen Quarz als Takt angegeben ?

von Andreas Prager (Gast)


Angehängte Dateien:

Lesenswert?

nein die Kondensatoren hängen zwischen: OSC1 und Quarz
                                        OSC2 und Quarz
(siehe Bild......ist nicht meine schaltung...aber die Taktbeschaltung 
ist die selbe)

Beim Brennen setze ich das Kreuz bei: (01) XT Oscillator

(also quarz bis ca.4,000MHz)

von Severino R. (severino)


Lesenswert?

Andreas Prager wrote:
> nein die Kondensatoren hängen zwischen: OSC1 und Quarz
>                                         OSC2 und Quarz
> (siehe Bild......ist nicht meine schaltung...aber die Taktbeschaltung
> ist die selbe)

Im Bild sind die Kondensatoren aber (richtigerweise) zwischen OSC1 und 
GND resp. OSC2 und GND.

Was stimmt jetzt?

Andere Frage: läuft das Programm im Simulator denn korrekt?

von Andreas Prager (Gast)


Lesenswert?

So wie in dem Bild hängen die Kondensatoren....hab mich vll. etwas 
seltsam oben ausgedrückt...sry

Im simulator läuft das programm richtig...und wie gesagt auch auf der 
anderen Testplatine.

von Severino R. (severino)


Lesenswert?

Andreas Prager wrote:

> Im simulator läuft das programm richtig...und wie gesagt auch auf der
> anderen Testplatine.

Sorry, letzteres habe ich übersehen.

Wenn eine Led angeht, dann heisst das doch, dass das Programm startet, 
denn bei einem Reset sind alle I/O-Pins als Eingang konfiguriert, und 
dann könnte keine Led leuchten.

Kannst Du mit einem Oszilloskop sehen, ob der Oszillator sauber läuft?
Andernfalls versuch es doch mal mit einem RC-Oszillator. Das hat den 
weiteren Vorteil, dass Du auf OSC2 den Takt/4 messen kannst, und dies 
ohne den Oszillator zu belasten.

von Andreas Prager (Gast)


Lesenswert?

Naja....das mit dem RC-glied wäre noch ne Idee.....ich probiers heut 
abend mal aus.

Oszi hab ich erst wieder am 5.Januar zur Verfügung stehen...wenn ich auf 
Arbeit muss.

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Kann es sein, dass du nur nicht lange genug wartest? Deine innere 
Warteschleife benötigt bei 4 MHz für einen Durchlauf (bis d=0 ist) 768 
Takte = 768µs. Insgesamt benötigt laut Stopwatch des Simulators deine 
gesamte Warteschleife knapp 50 Sekunden. Das liegt daran, dass der goto 
Befehl 2 Taktzyklen benötigt und der decfsz einen (bzw. 2, wenn er 
skipt). Warte doch einfach mal eine Minute und schau ob es daran liegt.

Schau dir auch mal die Programme von sprut.de an. Dort sind 
Warteschleifen, welche recht genau funktionieren.

Sven

von holger (Gast)


Lesenswert?

>-Betriebsspannung an meiner Testplatine: über 7805 kommen ca. 4,5V

Ziemlich wenig Ausgangsspannung für einen 7805

>-Quarz 4,000MHz
>-Kondensatoren am Quarz: je 22pf

Waren das schon alle Teile?
Was ist mit Blockkondensatoren am 7805 und am uC?
Elko vor dem 7805? Wie sieht das Netzteil aus?

von Andreas Prager (Gast)


Lesenswert?

@sven:
hmm...ich schau mir die Pausen nochmal genau an...vielleicht stimmt da 
wirklich etwas nicht.

@Holger:
Das dachte ich ja auch...das evtl. sogar die Betriebsspannung was damit 
zu tun hat.
Ich hab einen Koppelkondensator für den µC aber am 7805 hab ich weder 
Elko noch Koppelkondensator......
( was macht der Elko? Glätten? stabilisieren?...)

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.