Hallo, ich bin relativ neu in der Mikrocontroller-Programmierung. Zum Einstieg habe ich mir das PICkit 3 und einige PIC16F505 angeschafft. Mein Ziel ist es mit Hilfe der PICs Beleuchtungssteuerungen für eine Modelleisenbahn zu bauen, was bisher auch schon bei komplexeren Blinkfolgen gut funktioniert hat. Jetzt habe ich nur folgendes Problem: Mitten im Programmieren und Testen (und wieder Programmieren usw.) meldet MPLAB X (v1.85): ***************************************************** Connecting to MPLAB PICkit 3... Firmware Suite Version.....01.28.92 Firmware type..............Baseline Target detected The following memory area(s) will be programmed: program memory: start address = 0x0, end address = 0xb configuration memory Programming... program memory Address: 0 Expected Value: cdf Received Value: 0 Failed to program device Das Problem hatte ich vor ein paar Tagen schon einmal, wo es sich mit dem Tauschen des PIC beheben ließ (habe mir vorsichtshalber gleich 5 bestellt). Jetzt tut sich leider gar nichts mehr. Ich programmiere mit einem selbstgebastelten Programmieradapter auf einer Experimetierplatine, was bisher immer gut funktioniert hat und dann plötzlich nicht mehr. Die Stromversorgung kommt direkt aus dem PICkit. Hat jemand vielleicht schon einmal ein ähnliches Problem gehabt (und lösen können) oder eine Idee, was ich tun kann? Ich danke allen, die sich die Zeit genommen haben, meinen Post zu lesen Grüße Karsten
Versuch mal den PICkid3 upzudaten ( wasn Wort) Das OS neu drauf Grüße Jörn
Hallo Jörn, danke für den Tipp! Leider bin ich offensichtlich zu blöd dafür... Trotz längerer Suche habe ich nicht herausgefunden, wie man das Betriebssystem des PICKit (ich gehe ja mal davon aus, dass du nicht Windows meintest). Kann mir jemand bitte in ein paar Sätzen erklären, wie das mit dem Update geht, am liebsten mit einem Link, wo es das neue OS überhaupt gibt? Ich habe es auf der Microchip-Seite leider nicht gefunden. Ich habe es übrigens geschafft, einen der anderen PICs doch zu brennen, aber die "fehlerhaften(?)" wollen nicht. Kann es wirklich sein, dass die Dinger ohne Hardwareveränderung einfach zwischen zwei Programmierungen sterben? Danke für eure Hilfe Grüße Karsten
PICkit 3 ist sehr empfindlich auf jegliche parasitäre Kapazitäten, Interferenzen usw. Bei mir auf jeden Fall. D.h. versuch die Leitungen möglichst kurz zu halten und möglichst nahe am Pic anzubringen. Hatte immer das Problem mit "Failed to program device". Einmal gings und dann doch nicht. Dann stellte ich fest dass es eine Rolle spielt wo ich die Leitungen auf dem Steckboard drauf steckte. Paar Reihen weiter von Pic weg und Verbindung war nicht möglich.
Update wird automatisch über mplab gemacht.
Ein PIC ist sehr robust und geht nicht so einfach kaputt. Es wird am Kabel bzw. der Verbindung liegen. Ich weiß nicht wie dein Aufbau genau ausschaut, aber hier wird beschrieben auf was zu achten ist: http://www.sprut.de/electronic/pic/icsp/icsp.htm#kabel
Ich habe mal ein Bild von meinem Aufbau angehängt und hoffe, das es so halbwegs erkennbar ist. Der blaue Widerstand unten ist ein 10k zwischen Clear und Plus. Ansonsten ist ja nicht viel Beschaltung dran, nur eine LED für einen "Hallo Welt"-Test. Wenn ich eure Antworten richtig verstanden habe, ist mein Anschluss eher suboptimal. Habe ich Sprut richtig verstanden, dass ich zwischen Pin 4 (ICSDAT, grün) und 5 (ICSPCLK, gelb) eine Masseleitung verlegen soll? Ich kann mir die Realisierung gerade nicht richtig vorstellen, da sich die Kabel ziemlich direkt trennen und nur direkt am Stecker und am PIC zusammenkommen. Würde es sonst etwas bringen, die Leitungen mit Alufolie als Schirmung zu umwickeln und diese evtl. auf Masse zu legen? Ansonsten bin ich froh, dass meine PICs anscheinend nicht defekt sind. Auch wenn es mich immer noch iritiert, dass mein Programmieradapter so lange einwandfrei funktioniert hat, dann plötzlich der Fehler kam und sich seitdem nicht mehr zur Mitarbeit zu bewegen lässt. Nochmal kurze Frage zum Update: Kann man das irgendwie erzwingen, dass das Betriebssystem neu geladen wird oder ist das nicht notwendig? Danke für eure Antworten! Karsten
Scheint so, als hätte ich das mit dem Anhängen irgendwie nicht hinbekommen. Vielleicht beim zweiten Versuch...?
Karsten schrieb: > Ansonsten bin ich froh, dass meine PICs anscheinend nicht defekt sind. > Auch wenn es mich immer noch iritiert, dass mein Programmieradapter so > lange einwandfrei funktioniert hat, dann plötzlich der Fehler kam und > sich seitdem nicht mehr zur Mitarbeit zu bewegen lässt. Zeig mal Schema, und Code. Klingt ev auch nach einem anderen Problem mit den Configs Die Firmware kannst du manuell auswählen: Project options->Pickit 3-> Firmware -> Häckchen raus und unten Pfad angeben.
Hier erstmal der Code, was du mit Schema meintest, weiß ich leider nicht: LIST P=PIC16F505 #include<p16F505.inc> __CONFIG _OSC_IntRC_RB4EN & _WDT_OFF & _CP_OFF & _MCLRE_ON org 0 Start: movlw ~(1<<T0CS) option MOVLW 0h TRIS PORTC CLRF PORTC BSF PORTC,0 GOTO $ END Erzeugt beim Bauen keine Fehler. Ist es eigentlich normal, dass er manchmal "waiting for unfinished Jobs" anzeigt und dann nach Abbruch und Neustart ganz normal erstellt? Irgendwann stürzt dann meistens das Programm ab, weil zu viele make32-Prozesse aktiv sind... Ok, das mit der Firmware habe ich jetzt auch gefunden, aber die aktuellste drauf zu haben dürfte ja nicht schaden? Oder eine alte runterladen, draufspielen und dann wieder mit der neuen überschreiben? Falls das Sinn macht, wo gibts diese Firmwares?
Dem Vorschlag mit 0.1uF direkt am PIC schließe ich mich an. Kannst auch noch einen zweiten größeren (1-10uF) parallel dazu setzen. Am einfachsten könntest du einmal die Kabel für Clock und Data stark kürzen und deren Anschlüsse auf dem Steckbrett so dicht wie möglich an den Pin des PICs legen. ggf. auch einfach mal den PIC an eine andere Stelle im Steckbrett platzieren, vielleicht sind die Kontakte nicht mehr ideal. Idealerweise verwendest du ein Flachbandkabel (bspw. ein altes HDD Kabel vom PC), wie eben im Link auch bei Beispielaufbauten abgebildet: http://www.sprut.de/electronic/pic/icsp/icsp877.jpg Dort kannst du dann jedes zweite Kabel mit Masse verbinden, sodass du mit einem 7-8 adrigem Kabel auskommen kannst. Erst kurz am PIC splittest du das Kabel dann auf.
Also bei mir war ICSP noch nie so "zickig". Das, was er bisher als einziges nicht möchte, ist dass man Data und Clock vertauscht. Ich habe einen Logicanalyzer, der mit 2 der abgebildeten Probes kommt: http://dangerousprototypes.com/2010/04/17/logic-sniffer-probes-available-next-week/ Davon nehme ich einen, stecke es mit 2 gegeneinandergelöteten Steckleisten an das PICKIT3 und klemme die anderen Enden an die Pins. Nichts mit Masse zwischen drin, möglichst kurz usw. Hat immer alles geklappt. Karsten schrieb: > Hier erstmal der Code, was du mit Schema meintest, weiß ich leider > nicht: Schema ist Schematic -> Schaltplan. An dem Code sollte es eigentlich nicht liegen. Zumal es ja zuerst ging. Ich könnte mir vorstellen, dass es an der Firmware liegt oder ggf an einer Kontaktunterbrechung (also andere Kabel nehmen und PIC woanders reinstecken). Das täuscht bestimmt nur, aber es sieht so aus, als wäre der PIC 1 Raster zuweit links.
Danke für die Tipps, ich werde mich morgen mal auf Kondensatorensuche machen und auch den PIC neu platzieren. Zum Schaltplan gibt es nicht viel zu sagen, an Pin 10 (Port C,0) liegt die Anode einer LED, die dann über einen Widerstand zurück auf Masse geht. Ansonsten sind nur die Programmierleitungen angeschlossen, die Spannungsversorgung läuft über das PIC Kit. Der PIC sitzt übrigens an der richtigen Position. An einer Quelle für eine neuere/andere Firmware bin ich nach wie vor interessiert. Anscheinend stelle ich mich zu doof an. Gibt es eigentlich einen Weg zweifelsfrei festzustellen, ob der PIC kaputt ist, ohne das Kit zu nutzen?
Also wie gesagt, ich nutze den Stand-Alone-Programmer: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en538340&redirects=pickit3 unten unter "PICkit3 Programmer Application and Scripting Tool v3.10" zu finden. Dort gibt es einmal die Installation des Teils und auch eine Firmware für das PICKIT. Wenn du die Software installiert hast, müsste es da unter dem Menü Tools sowas wie "Download OS" "Download Firmware" oder sowas stehen. Damit kannst du eine neue Firmware aufs PICKIT bringen. Dies, soweit notwendig, macht das Programm aber auch von alleine, wenn man versucht zu flashen. Auch wenn es nicht schadet, die Firmware aktuell zu halten, bezweifle ich, dass es daran liegt. Du hast nicht zufällig noch einen 2. oder einen anderen PIC, mit dem man einfach mal das PICKIT testen kann? Karsten schrieb: > Gibt es eigentlich einen Weg zweifelsfrei festzustellen, ob der PIC > kaputt ist, ohne das Kit zu nutzen? Man kann ein anderes PICKIT3, PICKIT2, ...., Selbstbaubrenner usw benutzen. Dieser Prüft aber nur, ob der Speicher so aussieht, wie er soll. Wenn ein funktionierendes Programm auf dem PIC ist, kann man gucken, ob das funktioniert. Aber das testet eben nur das, was genutzt wird. Wenn ein 8-LED Lauflicht als Programm drauf ist mit internem Oscillator und nichts weiter, weiß man nur dass die 8 AUSGÄNGE und der interne Oscillator funktioniert und dass der Speicherbereich, der genutzt wird, in Ordnung ist. Es kann trotzdem ein anderer Pin den Geist aufgegeben haben, die Pins, wo die LEDs dran hängen, könnten evtl als Ausgang gehen, als Eingang aber nicht mehr (hatte ich schonmal, wohl Eingangsstufe verbrutzelt), der ADC könnte durch kleine Überspannung schaden nehmen, .... Also eine Methode, um ZWEIFELSFREI und ALLES zu testen, ist mir nicht bekannt. Höchstens ein Programm schreiben, dass den kompletten ROM und RAM (und ggf EEPROM), sowie alle Peripherie vollständig benutzt..
Karsten schrieb: > An einer Quelle für eine neuere/andere Firmware bin ich nach wie vor > interessiert. Anscheinend stelle ich mich zu doof an. Mach es wie von Michael beschrieben, dann läuft das schon :-) Grüße Jörn
UUUnd ?? Schon weiter gekommen ?? Grüße Jörn
Hallo, zuerst möchte ich mich dafür entschuldigen, dass ich so lange nichts geschrieben habe. Ich hatte die letzten Wochen wenig Zeit und da es sich nur um ein Hobbyprojekt handelte, konnte ich dieses beliebig aufschieben. Heute hatte ich dann wieder mehr Zeit und konnte mich mit meinem PICKit befassen. Es ist mir fast peinlich, das zu schreiben, aber das Kürzen der Leitungen und ein 100nF Kondensator an der Eingangsspannung haben schon ausgereicht. Ich konnte alle meine PIC 16F505 (andere habe ich nicht) programmieren, auch die, die ich schon als defekt beiseite gelegt hatte. Das Problem ist hiermit also behoben und ich bin eine Erfahrung reicher. Danke euch allen! Karsten
Du kannst zum Programmieren auch den 10k Widerstand rausnehmen. Den brauchst du da nicht. Ich hatte dadurch schon den Fehler (PIC war allerdings schon in der Schaltung) das das PicKit3 den MCLR nicht schnell genug in den Programmiermodus gezogen hat und der Pic vorher schon anfing sein Programm abzuarbeiten. Dadurch kam es zu solchen komischen Fehlern. Ich habe dann den Widerstand auf 20k vergrößert (irgendwo im Netz gefunden) und seit dem läuft alles prima. Torsten
ich kann leider nicht alles durchlesen. ich hatte mit dem ICD3 auch pobleme bei den PIC24 und PIC32, die beim brennen schneller getaktet werden. bei meinen programmierleitungen (ca. 40cm!) war folgendes problem: ich hatte zu jeder leitung parallel eine GND-leitung, die ich beim ICD als auch auf dem demoboard mit GND verbindete. die Lösung lag darin, dass ich diese GND-leitungen nur(!) beim ICD3 anschloss und auf dem demoboard, nicht anschloss (ausser natürlich der "offiziellen" GND-leitung)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.