www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC Controller


Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich bin zum ersten Mal hier und muss eine Kontrollerschaltung
realisieren(PIC16f84A).habe aber ein Problem dass der Quarz(4MHz) nicht
schwingt.Ich habe noch nichts programmiert.Der quarz ist zu dem OSC1 und
OSC über 2 Kondensatoren(22p)angeschlossen.Hoffe dass mir jemand helfen
kann.
Yassine.

Autor: Jens O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

"Ich habe noch nichts programmiert."

Evtl. ist genau das das Problem. Ich bin mir nicht sicher, wie die PICs
ab Werk eingestellt sind, aber bei nem Quarz mit 4 MHz musst du auf XTAL
programmieren. Drüber dann auf HS. 2 Kondensatoren 22p nach Masse klingt
ganz gut. Evtl. kannst du noch an einen der Pins zum PIC (bin nicht mehr
sicher ob OSC1 oder OSC2, is glaub egal...) einen niedrigen Widerstand
rein, z.B. 10 Ohm. Mit der Schaltung schwingt der Quarz bei mir immer
an.

Jens

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke jens für deinen Antwort.
''musst du auf XTAL programmieren.''
Ich dachte dass das nur für die Geschwindigkeit notwendig ist aber
schwingen muss der Quarz nur wenn der Kontroller die 5V bekommt oder??
kann man der Quarz nicht prüfen befor man den Kontroller programmiert?

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dir ist bekannt, dass der PIC auch zum Programmieren 5V benötigt?
Ansonsten mach das mal mit dem Widerstand in Reihe zum Quarz (siehe
Datenblatt) bzw. nimm einfach mal einen anderen wenn zur Hand.

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du auch die Fuses richtig gesetzt? Also das du einen Quarz benutzt
und nicht den Intern(falls Vorhanden) oder eine andere Taktquelle.
Genau aus diesem Grund benutze ich vorerst einmal einen Quarzoszillator
bei meiner Schaltung. Der schwingt immer;-) ist aber leider teurer und
verbraucht mehr strom :-(

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann das mit dem Quarzoszillator mal probieren.kannst mir mal eine
Beispielschaltung rüberschiken?

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kennst du die Seite: www.fernando-heitor.de ?
Schau dir die auch mal vl etwas durch. da findest du unter Tutorial ein
Tutorial mit dem PIC16F84A ;-)

http://www.fernando-heitor.de/pic/tutorials/images...
Hier ist ein direktes Link zur Schaltung die er verwendet. Hier kannst
dir auch noch den Quellcode ansehen. Ich hoffe das bringt dir etwas.

mfg schoasch

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
''Hast du auch die Fuses richtig gesetzt?''
und wie macht man das? meinst du in meinem Programm?
Danke für die Hilfe.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Fues werden mit einem Programmiergerät gesetzt.

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Fuses musst du entweder im Code selbst einmal setzen oder beim
programmieren einstellen. Welchen Compiler benutzt du und vorallem in
welcher Sprache programmierst du?

Ich benutze den CCS-Compiler und da sieht das ganze dann so aus :

#include <18F4220.h>
#use delay(clock=4000000)
#fuses NOWDT,HS

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite mit dem MPLAB 7.00 und PICSTART Plus als Programmiergerät.
Ich weiss nicht wie man das machen kann?kann mir jemand zeigen?

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich programmiere mit cc5 Compiler, aber im assembler ist auch in
Ordnung.ist es sicher dass man ohne fuese zu definieren,der Quarz
überhaupt nicht schwingen kann.kann das nicht ganz verstehen.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Fuses z. B. auf RC-Oszillator stehen, schwingt der Quarz nicht.
Hab das schon bei einem PIC16F877 erlebt.

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, man schaltet den Quarz nicht über die Kondensatoren an den uC,
sondern direkt. Die Kondensatoren werden von den Xin- und Xout-Pins
gegen Masse geschaltet.

Stephan.

Autor: dds5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die "fuses" werden bei Microchip "configuration bits" genannt und
lassen sich unter Menüpunkt Configure, Conguration Bits einstellen.

Dieter

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Hat jemand Ahnung wie ich einen PIC16F84A mit einem PICSTART Plus
brennen kann? Ich arbeite mit dem MPLAB 7.00 und das Programm ist mit
Assembler geschriben.
mfg.

Autor: Chief Brady (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- PICSTART Plus an PC anschliessen (seriell)
- PIC in PICSTART Plus einstecken
- In MPLAP den richtigen COM-Port wählen
- In MPLAP PICSTART Plus als Programmer wählen
...

Wo genau ist dein Problem?

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Du solltest im Menü Configure/Device den Prozessor einstellen.
2. Unter Configure/Configuration Bits kannst Du einige Operationsmodi
einstellen. Diese solltest Du am besten noch im Programm definieren.
3. Programmer über Programmer/Select Programmer/PICSTART Plus
auswählen.
4. Wenn Du das Programm übersetzt hast und eine Hex-Datei erzeugt
wurde, solltest über Programmer/Program die Binärdaten in den Prozessor
bringen können.

Kleine Frage am Rande: Gibt es einen Grund für den 16F84A?
16F627A und 16F628A sind pinkompatibel, können mehr, kosten weniger und
haben einen eingebauten 4MHz Oszillator.

Autor: Chief Brady (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kleine Frage am Rande: Gibt es einen Grund für den 16F84A?

Nur zwei:
1.  Man hat noch welche liegen...
2.  Man muss in einer Applikation einen ersetzten und
kann/darf/sollte/möchte das Programm nicht angleichen (never touch a
running system).

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
''Gibt es einen Grund für den 16F84A?''
Man hat noch welche liegen.

das Problem war eigentlich dass der Quarz( in der Platine) nicht
schwingt.Ich habe aber noch nix im Controller pogrammiert.und das
versuche ich jetzt.
könnte daran liegen?
Danke.

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Konfiguartionswort des Prozessors kann man Einstellungen machen (auch
als Fuses bezeichnet). Eine dieser Einstellungen legt auch fest, was für
einen Oszillator verwendet wird, d.h. so lange dieses Wort nicht gesetzt
ist, tut sich eigentlich gar nichts.

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
''In MPLAP den richtigen COM-Port wählen''
wie kann ich das?
Ich bekomme die Fehlermeldung:
Couldn't locate build tool.  Check tool locations.

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuchs mal mit "Programmer/Settings" (ganz unten im Menü) und im
Fenster dann unter "Communications".
(Ich habe allerdings noch MPLAB 6.60, hoffe mal, daß das so noch
stimmt...)

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ya danke
aber trozdem tut sich nix.Ich den Fehler nicht verstehen.

Autor: Chief Brady (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Couldn't locate build tool.  Check tool locations.

Das sieht so aus, als wäre nicht der MPLAB-Assembler als
Entwicklungstool gewählt (ich glaube irgendwo im ->Projekt-Menü). Dort
wird angegeben, welche Tool-Suite verwendet werden soll
(MPLAB-Assembler, C-Compiler von HI-Tech, C16-Compiller,...). Hier mußt
du den MPLAB-Assembler wählen. Seht alles im MPLAB-Handbuch.

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ya macht er was.habe aber eine Fehlermeldung:
Message[302] Z:\OULEDR~1\LAUF.ASM 54 : Register in operand not in
bank 0.  Ensure that bank bits are correct.
und der Programauschnitt sieht so aus:

Init
  bsf     STATUS, RP0  ; auf Bank 1 umschalten
  movlw  B'00000000'  ; PortB alle output
  movwf  TRISB
  bcf     STATUS, RP0  ; auf Bank 0 zurückschalten
  clrf  PORTB    ; alle LEDs ausschalten
was könnte da falsch sein?

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kein Fehler, nur eine Warnung, daß TRISB in Bank 1 liegt und man
überprüfen soll, daß vorher wirklich Bank 1 ausgewählt wurde.
Soweit ich das sehen kann, ist der Code an der Stelle aber korrekt.

Autor: Yassine Ouledrahi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der zeigt aber nicht dass er das Programm compiliert.und das PICSTART
Plus ist auch nicht aktiviert.

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird eine Datei namens LAUF.HEX erzeugt? Wenn ja, dann war der
Assemblerdurchlauf auch korrekt.

Ansonsten könnte ich mir nicht vorstellen, was das Problem ist. Es gibt
zwar die Assembler-Direktive BANKSEL, aber die ist offensichtlich nur
dafür gedacht, dem Linker einen Hinweis zu geben.

Falls sich der Prozessor über PICSTART trotz generiertem HEX-File nicht
gleich programmieren läßt, kann es sein, daß Du die HEX-Datei vor dem
Programmieren explizit über "File/Import..." auswählen mußt.

Ich habe allerdings bisher nie mit dem PICSTART gerabeitet, nur mit
ICD2 und PICkit 1.

Autor: Chief Brady (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der zeigt aber nicht dass er das Programm compiliert

Na, wenn du die Warnung "Message[302]" bekommst, hatt er es doch
schon gemacht.

Wenn das Programm ohne Fehler assembliert wurde, musst du den
Programmer enablen und dann kannst du programmieren (brennen). Die
entsprechenden Menüpunkte habe ich leider nicht im Kopf

Autor: Yassine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Ich bekomme bei der Programmierung vom PIC16F84A:

PICSTART Error Log File
14-Jun-2005, 14:56:39

Device Type: PIC16F84A
Address Range 0-3ff


Configuration Bits Errors

Configuration Setting            Expected               Received

Code Protect                     Illegal                Off

hat jemand eine Ahnung?
mfg

Autor: dds5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Fehler tritt offenbar bei der Programmierung der code protect bits
(fuses) auf.
Der Wert unter "Expected" ist der, den die Software in den Controller
schreiben will; "Illegal" ist da schon mal ganz schlecht.
Unter "Received" steht das, was beim Prüfen (verify) gelesen wurde,
hier also "code protect off".
Du solltest mal das Menü "Configure" öffnen und dort "Configuration
Bits" auswählen. Dort "Code Protect" anklicken und aus der Combobox
eine Möglichkeit auswählen.
Beim nächsten Programmierversuch sollte die Fehlermeldung nicht mehr
auftauchen.

Gruß    Dieter

Autor: Markus Veith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frage. Kann man mit den PIC-Kit1 einen 10F202 brennen ? (WIE)

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

du hast den PIC falsch rum eingelegt oder kontaktfehler.

Autor: Markus Veith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan mit dem PIC 12F675 geht es, habe den 10F202 genauso
eingesetz. was muss ich beachten ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.