PIC16F84 heftige Probleme, kein Oscillator schwingt an MPLAB, MPSIM.etc.bin Neuling!

OP (Firma: Mahee.AG) #810695
Lesenswert?

Hallo an alle Nutzer,

ich hoffe dass mir hier jemand weiterhelfen kann, ich habe nämlich ein
erhebliches Problem.

Ich bin vollkommener Neuling auf dem Gebiet der Microcontroller, nun
habe ich den ICD2 und schon etwas mit Ihm, MPLAB und MPSIM rumgespielt.
Ich habe ein eigenes Projekt entworfen und ein Programm geschrieben. Es
war möglich das Programm in ein .ASM und ein .HEX file zu konvertieren.
Ich kann den Controller (PIC16F84) auch programmieren und alles. Das
Proghramm läuft in der Simulation MPSIM. Allerdings ist es halt ein
Anfängerprogramm und somit nicht besonders elegant geschrieben, aber es
läuft.

Wenn ich den PIC aber nun programmiere und in die Schaltung stecke,
schwingt der Oszillator (4Mhz Quarz´) nicht an. Auch ein RC Glied
schwingt nicht an. Habe mit der Konfiguration auch schon alles versucht,
also als RC Glied, als Xt, HS, LP und alles! Mit einem Oszilloskop
konnte ich feststellen, dass alle diese Glieder keine Frequenz liefern.


Ich bitte hiermit flehentlich um eine Auskunft wenn mir jemand helfen
kann!


BITTE BITTE BITTE BITTE BITTE BITTE BITTE BITTE BITTE BITTE BITTE BITTE



MfG: Manjavi
OP (Firma: Mahee.AG) #810730
Lesenswert?

Also mit dem Oszilloskop habe ich das ganze schonmal etwas untersucht, 
ich messe dort lediglich 5V und keine Frequenz! Mit dem Oszi kann ich 
umgehen... und mein Chef hat da auch nix gefunden (Techniker). Aber 
danke erstmal, ich werde es fröhlich weiter versuchen! Wenn Ihr sonst 
noch Ideen habt...immer her damit! ;-)
Gast #810815
Lesenswert?

Ich habe für einen 4 MHz Quarz an 16F PIC's Kondensatoren von
15 pF bis 22 pF  verwendet. Lief immer ohne Probleme.
Wenn die Kondensatoren zu groß sind, kann es sein, dass der Oszillator
nicht anschwingt.

MfG
OP (Firma: Mahee.AG) #810846
Lesenswert?

auch bei so kleinen werten? ich habe nun nochmal ein neues kleines 
Programm geschrieben welches nur alle LEDs des PORTB blinken lässt, das 
Programm funktioniert, auch inner Schaltung, allerdings schwingt nicht 
der Quarz, sondern es blinkt in ungleicher Zeitfolge ohne besc haltung 
an den OSC Pins. Und das macht es mit der Konfiguration HS, LP, RC, und 
XT.... ist das normal?
#810991
Lesenswert?

Noch zwei weitere Probleme.

1) Wenn du nach dem Einschalten nicht immer per Hand den Resetschalter 
betätigen willst, dann brauchst Du parallel zum Schalter einen 
Kondensator. Aus der minimalen Resetdauer (siehe Datenblatt) und dem 
Pull-up Widerstand kannst du über die Zeitkonstante Tau den Kondensator 
berechnen.

Tau = R*C (für Zeit zum Aufladen eines Kondensators setzt man ca. 3...5 
* Tau)

2) Der PIC16F84 hatte noch kein internes Brown out. Er erkennt also ein 
langsames absinken der Spannung nicht, und löst dann auch keinen 
automatischen Reset aus. Mit Hilfe eines Komparators mit digitalen 
Ausgang und vorgeschalteten Spannungsteiler, könntest Du eine 
Resetschaltung realisieren.

Sollte der Quarz nicht anschwingen, kann es am Quarz selber liegen. Ein 
ähnliches Problem hatte ich auch schon. Dann passen eventuell die 
Kennwerte des quarzes nicht. Ich habe damals den ursprünglichen Quarz 
gegen einen Quarz von Epson tauschen müssen. Schau mal im PDF "Mid-Range 
MCU Familie" auf Seite 2-7 dort werden Quarze empfohlen.
#810998
Lesenswert?

Ich kann die PDF-Datei "Mid-Range MCU Familie" nicht hochladen. 
Anscheined ist die Datei zu groß. Mein PDF hat die Nummer DS31002A und 
ist aus dem Jahr 1997. Die Quarz Empfehlungen waren dort im Abschnitt 
"2.3.2 Component Selection". Das aktuelle PDF kannst Du Dir auf der 
Seite von Microchip herunterladen. www.microchip.com

Tschau Sven!
OP (Firma: Mahee.AG) #811444
Lesenswert?

Mike wrote:
> Hast Du die Oszillator Selection Bits FOSC0 und FOSC1 richtig gesetzt?

Wo kann ich diese Bits denn setzen? Oder wie mache ich das? Doch nicht 
in der .inc oder? Soll ich die bei der Initialisierung im ASM file 
setzen?


SCHONMAL HERZLICHEN DANK AN ALLE, DIE SICH SOLCHE MÜHE GEBEN MIR ZU 
HELFEN!!!!
#811475
Lesenswert?

René Manjavi wrote:
> Mike wrote:
>> Hast Du die Oszillator Selection Bits FOSC0 und FOSC1 richtig gesetzt?
>
> Wo kann ich diese Bits denn setzen? Oder wie mache ich das? Doch nicht
> in der .inc oder? Soll ich die bei der Initialisierung im ASM file
> setzen?

in Assembler in der Zeile:
  __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
                                                    ^^^^^^^
Alternativ _HS_OSC

Diese Symbole sind in der Datei P16F84.INC definiert und beeinflussen 
eben die FOSC1:FOSC0 Bits.
Daraus wird ein entsprechender Eintrag in der Hexdatei erzeugt, welche 
der Programmer dann nutzt, um die Bits korrekt zu programmieren.

Alternativ kannst Du die Bits im Programmer bzw. in MPLAB einstellen 
(Configure -> Configuration bits). Aber im Sourcecode ist es besser, da 
es nicht vergessen werden kann.
(die AVR-Fans können sicher ein Lied davon singen...)

P.S.: Hast Du wirklich einen PIC16F84, nicht einen '84A? Weil der '84A 
den alten '84 schon seit langem abgelöst hat. Hat aber auf Dein Problem 
wohl keinen Einfluss.
OP (Firma: Mahee.AG) #811486
Lesenswert?

Genauso wie Du es geschrieben hast sieht meine Konfigurationszeile auch 
aus.... aber tut sich dennoch nix....

Vielleicht kann ich auch mal versuchen die FOSC0, FOSC1 Bits direkt zu 
setzen!


Ich habe momentan einen 16F84 drin, habe es mit dem 84A auch schon 
getestet, habe alle 5 Stück günstig in einem Set erhalten, deshalb habe 
ich den neuen und auch den alten Typen. Ich denke zum Einstieg soll das 
wohl reichen! Auch wenn er veraltet ist....



DANKE Dir aber schonmal für Deine Mühe!
OP (Firma: Mahee.AG) #811487
Lesenswert?

Auch ganz dollen Dank an Sven Wohlbier!!!!!

An die Stützkondensatoren werde ich bei der neuen Schaltung denken, 
bringe sie vorerst auf meinem Steckbrett mit unter!


Der RESET stimmt! Das ist logisch, habe ich vorher auch nicht dran 
gedacht, werde die neue Platine auch damit ausstatten!


DANKE DANKE DANKE!
OP (Firma: Mahee.AG) #811550
Lesenswert?

Ich habe hier mal grad das Programm hochgeladen, wenn das wen 
interessiert. Wundert Euch nicht über die Kommentare, ich habe die Datei 
von Microchip ins Deutsche übersetzt um erstmal zu verstehen was da 
alles so passiert   ;-) Ist mein erstes Programm, habe es in ein 
Beispielprogramm von Microchip geschrieben!


Hoffe, Ihr findet meinen Fehler....    ;-)
Angehängte Dateien:
#811608
Lesenswert?

René Manjavi wrote:

> Hoffe, Ihr findet meinen Fehler....    ;-)

Welchen Fehler? Ist das ein Quiz im Stil: Finde die zehn Unterschiede?
Und was bekommt der Gewinner?

Im Ernst: Läuft jetzt Dein Oszillator? Läuft das Programm? Lässt es sich 
korrekt assemblieren? Wenn nicht, wie lautet die Fehlermeldung?
Was sollte das Programm tun, und was tut es statt dessen?
OP (Firma: Mahee.AG) #811623
Lesenswert?

Also, das Programm läuft, es läuft im PIC, es läuft in der Simulation, 
es gibt weder Error noch Fehlermeldungen, noch Warnings im MPLAB. Mein 
einziges Problem ist, dass das Programm im PIC nur sehr ungenau läuft, 
die Zeit passt nicht im geringsten (das Programm lässt alle 8 LEDs am 
PortB des PICs blinken). Außerdem läuft der PIC nur wenn weder 
Oszillator, noch RC-Glied angeschlossen sind und ich den OSC1 Pin mit 
einem Draht berühre der mit meinem Körper (Hand) verbunden ist, 
ansonsten stockt das Programm sehr häufig und überschlägt sich indem es 
in unkontrollierten Abständen blinkt!

Am Oszillator messe ich eine Frequenz von exakt 100Hz



P.S.: Der Gewinner erhält ein  fettes Danke und RESPECT


     ^^^^^^^^^
   (  o     o  )
    (   /_\   )
     (   =   )
      ( --- )
       /   \
Gast #811700
Lesenswert?

Das Problem, dass der PIC stockend das Programm abarbeitet, kann auch
an einer nicht oder falsch angeschlossenen MCLR-Leitung liegen. Dann
resettet er andauernd. Die MCLR Leitung muss durch 10K mit VDD
verbunden sein.

Probier mal einen Resonator (MURATA CST x.xx) aus, der braucht keine
Kondensatoren, damit muss es also funktionieren.

Vergiss ausserdem den normalen 100nf Bypass-Kondensator nicht.

Hier findest du weitere Infos:
http://www.sprut.de/electronic/pic/osc/index.htm

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren