Wie programmiere ich einen PIC12?

8

Ich habe einen PIC12F675, den ich programmieren muss. Ich verwende ein Pickit 2 und die Pickit 2-Software. Angeblich sollte ich es mit dieser Schaltung programmieren können , aber die Pickit 2-Software erkennt den Chip überhaupt nicht.

Schaltkreis

Was läuft falsch?

BEARBEITEN: Ich habe ein Bild meiner Schaltung hinzugefügt . Und hier finden Sie das Datenblatt für den PIC12F675. Fahren Sie mit Seite 4 fort, um die Pinbelegung anzuzeigen.

Steckbrett

EDIT2: Ich habe mir nur die Chips angesehen (dumm, aber ich nahm an, dass die Maus mir das schicken würde, was ich bestellt habe), und ich bemerkte, dass es sich tatsächlich um PIC12C671 handelt. Wie viel Unterschied würde das machen?

Final EDIT: Wow! Vielen Dank an alle, die mir dabei geholfen haben! Ich hatte diese Art von Antwort nicht erwartet. Es war ein kleines dummes Problem, so wie ich es mir vorgestellt hatte. Es war meine Schuld, dass ich nicht alles überprüft habe, als ich das Paket von Mouser erhalten habe.

Willem Ellis
quelle
2
Sind Sie sicher, dass Ihre Schaltung korrekt ist, mit Strom versorgt wird, Entkopplungskondensatoren hat und an Ihren Computer angeschlossen ist?
Ich habe 5 Volt, und es ist an meinen Computer angeschlossen. Es sieht so aus, als hätte ich die Entkopplungskondensatoren übersehen. Würde das einen so großen Einfluss auf die Rennstrecke haben?
Willem Ellis
1
Wahrscheinlich nicht, aber Sie möchten keine Woche für einen Entkopplungskondensator verschwenden, den Sie in einer Minute hinzufügen können.
2
Der 12F675 wird vom PICkit 2 und MPLAB unterstützt.
Leon Heller
3
Vdd am ICSP-Anschluss sollte an + 5V angeschlossen werden.
Leon Heller

Antworten:

9

Ein mögliches Problem besteht darin, dass einige PICs einen Aus- und Wiedereinschalten benötigen, um in den Programmiermodus zu gelangen. Der 12F675 benötigt dies insbesondere, wenn das Konfigurationswort in Ihrer Anwendung den MCLR-Pin als GPIO konfiguriert.

Wenn das pcikit2 Ihren Zielchip mit Strom versorgt, liefert es den Stromzyklus. Mit der unabhängigen + 5V, die Sie liefern, kann dies nicht.


Nachdem Sie die wahrscheinlichsten Probleme behandelt haben, könnten Sie sich für die unwahrscheinlichen entscheiden ... Lachen Sie mich nicht aus, ich greife auf meine eigenen Erfahrungen zurück!

  • Könnten Sie zwei pickit2's angeschlossen haben? (Ja, ich habe dies einmal getan und war verblüfft, dass diejenige, mit der die pickit2-Anwendung ausgewählt wurde, nicht diejenige war, mit der der PIC verbunden war. Ich habe auch einmal eine Stunde verschwendet, als ich zwei Ziel-PIC-Drähte parallel hatte. Das ergibt sehr seltsame Ergebnisse, wenn beide geben ihre Chip-ID an den Programmierer weiter.)
  • Ist der von Ihnen verwendete pickit2 mit dem von Ihnen verwendeten PC verbunden? (Ich mache PIC-Kurse und die Schüler können ziemlich kreativ werden, wenn der Laptop mit dem PIC verbunden ist.)
  • Sind sowohl der pickit2 als auch der Chip die rechte Seite? Das pickit2-Gerät ist von oben gesehen (wo sich die Taste und die LEDs befinden).
  • Ist der Chip wirklich ein 12F675? (Ich habe einmal einen ganzen Tag lang versucht, den A / D-Wandler eines 12F629 zum Laufen zu bringen - für Nicht-PIC-Guru: Das ist der billigere Bruder des 12F675, er ist billiger, weil er keinen A / D-Wandler hat ).
  • Sind die Drähte genau so, wie Sie sie zeigen, nicht verwechselt? Und sind sie nicht zufällig kaputt? Wenn Sie ein lötfreies Steckbrett verwenden: Stellt es immer noch alle Kontakte her?
  • Ist die Firmware in pickit2 eine Version, die zu Ihrer PC-Seite passt? Laden Sie die Firmware möglicherweise erneut, um 100% sicher zu sein.

Überprüfen Sie als Antwort auf Ihre EDIT2: ROFL mein Bullet 4. Der PIC12C671 ist ein völlig anderer Chip, und das C bedeutet, dass es sich um einen EPROM-Chip (einmalig programmierbar) handelt, der von pickit2 nicht unterstützt wird.

Wouter van Ooijen
quelle
Ich habe versucht, es über das PICKit selbst mit Strom zu versorgen, und es funktioniert immer noch nicht.
Willem Ellis
:( Danke für die Hilfe! Wie ich schon sagte, ich nahm an, dass Mouser mir die richtigen Chips geschickt hatte. Meine Schuld, dass ich nicht alles überprüft habe, bevor ich angefangen habe.
Willem Ellis
1
Wie ich meinen Schülern sage: Fühlen Sie sich frei, zum ersten Mal einen Fehler zu machen. Aber nie wieder.
Wouter van Ooijen
4

Der PICkit2-Programmierer sollte für Ihren Teil ohne Header unverändert funktionieren. (Das Debuggen ist eine ganz andere Sache.)

Beachten Sie neben den Empfehlungen zum Entkopplungskondensator Folgendes: Die meisten (alle) PIC-Geräte benötigen einen 10k-Pullup von _MCLR zu VDD. Fügen Sie das hinzu und sehen Sie, was passiert.

PICkit2-Unterstützung

Hier ist ein Verdrahtungsbeispiel aus dem PICkit3-Setup-Poster. (Die Pinbelegung von PICkit2 und PICkit3 ist identisch, sodass die Informationen zu 100% relevant sind.)

ISCP-Diagramm

Sie können sehen, dass die Pins 1 bis 5 des Programmiergeräts mit Ihrer Schaltung verbunden sein müssen. In Ihrem Schaltplan fehlt die VDD-Zielverbindung an Pin 2. Versuchen Sie, diese anzuschließen, und lassen Sie das PICkit2 die Schaltung mit Strom versorgen.

Adam Lawrence
quelle
3
Das Fehlen eines Widerstands an der MCLR verhindert nicht, dass das PICkit das Gerät programmiert. Möglicherweise wird das Programm jedoch nicht mehr ausgeführt.
Leon Heller
Ich habe das Pull-up hinzugefügt und sichergestellt, dass ich das richtige Gerät in MPLAB ausgewählt habe. Immer noch keine Würfel.
Willem Ellis
@LeonHeller Ich habe meine Aussage zu _MCLR auf das PICkit3-Poster gestützt, das das _MCLR-Pullup unter der "richtigen" Art der Verkabelung zeigt.
Adam Lawrence
@ Madmanguruman Ich wünschte, ich hätte es nicht genau so angeschlossen, aber ich habe es anhand des Datenblattes überprüft und alle Verbindungen sind korrekt.
Willem Ellis
2

PICKit2 unterstützt Ihr Gerät ( Quelle ). Dies bedeutet, dass mit Ihrem Setup etwas nicht stimmt. Es gibt einige Dinge, die Sie überprüfen können:

  • Gibt es ein Problem bei der Kommunikation mit PICKit? Nein, wenn dies der Fall wäre, würden Sie eine Fehlermeldung erhalten, dass das ICSP-Tool nicht gefunden werden konnte.
  • Gibt es ein Problem mit der Schaltung mit dem Chip? Möglicherweise . Sie sollten Ihre Schaltung überprüfen und Entkopplungskondensatoren hinzufügen, falls dies noch nicht geschehen ist. Alle VDD- und VSS-Pins sollten angeschlossen sein, auch die des ICSP-Anschlusses. Überprüfen Sie auch Ihr Netzteil: Ist es glatt?
  • Gibt es ein Softwareproblem? Höchstwahrscheinlich würde ich sagen. Haben Sie in MPLAB den richtigen Chip ausgewählt? Können Sie andere Chips mit dem gleichen Setup programmieren?

quelle
Ich habe das alles überprüft. In den Entkopplungskappen und dem MCLR-Pull-up-Widerstand hinzugefügt. Ich verwende die Software PICKit2 v2.61 zum Programmieren des Chips anstelle von MPLAB. Obwohl ich versucht habe, was Sie in MPLAB gesagt haben. Ich erhalte diesen Fehler, wenn ich versuche, eine Verbindung zum Chip herzustellen. Bitte überprüfen Sie, ob ein PIC12F675 korrekt in der Anwendung installiert ist
Willem Ellis
@ WillemEllis Sehr gut. Ich dachte an etwas anderes: Haben Sie alle Vdd- und Vss-Pins des Chips angeschlossen? Überprüfen Sie auch, ob PGC mit PGC und nicht mit PGD verbunden ist - dies hat mir in letzter Zeit einige Probleme bereitet.
@ WillemEllist irgendwelche Fortschritte in diesem Fall?
Es tut mir leid, dass ich so lange gebraucht habe, um mich bei Ihnen zu melden. Unglücklicherweise nicht. Ich sprach mit meinem Professor und er konnte es auch nicht herausfinden. Ich habe dafür gesorgt, dass alles wie in der Schaltung mit PGD und PGC verbunden ist, die zu den richtigen Pins gehen. Immer noch kein Glück.
Willem Ellis
Wenn Sie sicher sind, dass Ihre Verbindungen gut sind, versuchen Sie es mit einem anderen Gerät oder einem anderen PICkit2.
Adam Lawrence