hi
also ich hab nen pic16f84a den ich via icd2 programmiert habe... beim
ersten mal war alles tip top, keine fehlermeldung nix. aber als ich dann
das neue programm programmieren wollte kam die fehlermeldung:
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make
sure that the target device is connected and properly powered. Select
"OK" to continue, or "CANCEL" to abort
ich habe die leitungen überprüft sowie die spannungen und diese sind
alle ok.. habe auch probiert zu löschen und blank read machen... jedoch
nix klappt mehr :(
Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to target
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 Ready
Erasing Target Device...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make
sure that the target device is connected and properly powered. Select
"OK" to continue, or "CANCEL" to abort the operation
...Erase Succeeded
MPLAB ICD 2 Ready
Blank Checking...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make
sure that the target device is connected and properly powered. Select
"OK" to continue, or "CANCEL" to abort the operation
...Program Memory
ICD0161: Verify failed (MemType = Program, Address = 0x1, Expected Val =
0x3FFF, Val Read = 0x0)
...Device not blank
MPLAB ICD 2 Ready
Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to target
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 Ready
Programming Target...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make
sure that the target device is connected and properly powered. Select
"OK" to continue, or "CANCEL" to abort the operation
...Validating configuration fields
...Erasing Part
...Programming Program Memory (0x0 - 0xAF)
Verifying...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make
sure that the target device is connected and properly powered. Select
"OK" to continue, or "CANCEL" to abort the operation
...Program Memory
ICD0161: Verify failed (MemType = Program, Address = 0x0, Expected Val =
0x1683, Val Read = 0x3FFF)
ICD0275: Programming failed.
MPLAB ICD 2 Ready
Erasing Target Device...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make
sure that the target device is connected and properly powered. Select
"OK" to continue, or "CANCEL" to abort the operation
...Erase Succeeded
MPLAB ICD 2 Ready
hatte jemand schon das selbe prob?
Programmierst Du den PIC in der Schaltung oder ausserhalb?
Stimmen die Einstellungen betr. Power (ICD2 oder Schaltung; ist der ICD2
mit einem Netzteil versorgt)?
Falls der PIC einen LVP-Pin hat, versuch mal den auf low zu legen.
Vielleicht einen zweiten PIC versuchen.
Wenn sonst nichts hilft: Ev. ICD2 resetten, oder gar alles (PC etc.) neu
starten.
Viel Glück
Severino
programmiere in der schaltung... spannungen sind alle ok, verbindung
auch! ich meine ich habe ja nix geändert hardware technisch nachdem der
erste program erfolgreich war!!! habe jetzt auch das komplette system
(pc, icd, target) neu gestartet jedoch bekomme ich immer wieder diese
warnung
Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to target
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 Ready
Programming Target...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make
sure that the target device is connected and properly powered. Select
"OK" to continue, or "CANCEL" to abort the operation
...Validating configuration fields
...Erasing Part
...Programming Program Memory (0x0 - 0xAF)
Verifying...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make
sure that the target device is connected and properly powered. Select
"OK" to continue, or "CANCEL" to abort the operation
...Program Memory
ICD0161: Verify failed (MemType = Program, Address = 0x0, Expected Val =
0x1683, Val Read = 0x3FFF)
ICD0275: Programming failed.
MPLAB ICD 2 Ready
WIESO FUNKTIONIERTE ES BEIM ERSTEN MAL UND JETZT KOMMT IMMER DIESE
SCH****... sorry langsam hab ich keine geduld mehr!!!!
m.E. hat der 16F84A kein LVP.
Wie sieht denn die Beschaltung des Reset-Pin im Target-Board aus?
Falls der Pullup-R zu niederohmig, oder der Kondensator zu gross
ist, könnten die Vpp-Flanken zu flach sein und der
Pic schaltet nicht in den Programmiermodus.
Gruss
Digger
H. W. wrote:
> m.E. hat der 16F84A kein LVP.> Wie sieht denn die Beschaltung des Reset-Pin im Target-Board aus?> Falls der Pullup-R zu niederohmig, oder der Kondensator zu gross> ist, könnten die Vpp-Flanken zu flach sein und der> Pic schaltet nicht in den Programmiermodus.>> Gruss> Digger
Trotzdem bleibt die Frage, weshalb es das erste Mal geklappt hat.
@adrianb:
Nicht aufgeben! Am Schluss klappt es dann doch.
Hast Du einen zweiten PIC, den Du einfach einsetzen kannst (Fassung?).
Hast Du eine andere Schaltung (z.B. ein PICDEM Board von Microchip oder
so), an der Du das korrekte Funktionieren des ICD2 prüfen kannst (man
weiss ja nie...)
Oder versuch mal auf einem Steckbrett einen PIC direkt mit dem ICD2 zu
verbinden (VDD, VSS, PGD, PGC, VPP).
Unwahrscheinlich, aber nicht unmöglich wären Potentialprobleme:
Ist der GND der Schaltung geerdet? An derselben Steckdose wie der PC mit
dem ICD2?
Ich hatte mal ein ähnliches Problem, das verschwand, wenn ich den PC
(Notebook) vom Netz trennte.
Severino
>Trotzdem bleibt die Frage, weshalb es das erste Mal geklappt hat.
Vielleicht, weil CLK und DATA RB6/7 noch nicht initialisiert
und damit Eingänge sind.
Könnte auch an der externen Beschaltung von CLK und DATA liegen.
Zitat Programming specification: "The program/verify mode is entered by
holding pins RB6 and RB7 low while raising MCLR pin from VIL to VIHH
(high voltage)."
Gruss
Digger
>> Vielleicht, weil CLK und DATA RB6/7 noch nicht initialisiert> und damit Eingänge sind.>
Die sind bei jedem Reset ohnehin Eingänge. Und die Initialisierung durch
das Anwenderprogramm geht bei einem Reset ohnehin verloren.
Severino
FRAGENSTELLER wrote:
> kenn mich ja nicht so aus bei 'pics', aber hast du dir vielleicht mit> deinem programmcode ein ei gelegt von wegen schreib-leseschutz?
Ist ja nett, dass Du helfen willst, aber da Du dich gemäss Deiner
eigenen Aussage nicht so gut auskennst mit PICs, bitte verwirre adrianb
nicht noch mehr...
Ein Leseschutz für das Programm-Memory existiert zwar, der kann aber
beim löschen des PICs ebenfalls gelöscht werden.
Severino
Hallo, ich habe das selbe Problem wie Du aber bei mir hat es kein
einziges mal funktioniert. ´Vielleicht könnt ihr mir ja helfen. Wenn ich
den PIC ausserhalb der Schaltung, sprich also im Sockel der
Programmierboards programmiere, sind die Pins für den Anschluss des
Oszillators unbelegt, kann man den denn dann Programmieren? Eigentlich
benötigt der doch auch einen Takt zu programmiert werden oder nicht?
Bin total neu auf dem Gebiet und bitte um Hilfe!
Vielleicht kann mir ja wer weiterhelfen! Dankeschön!
>Programmierboards programmiere, sind die Pins für den Anschluss des>Oszillators unbelegt, kann man den denn dann Programmieren? Eigentlich>benötigt der doch auch einen Takt zu programmiert werden oder nicht?
Im Gegensatz zu AVRs brauchen PICs zum programmieren
keinen Takt an den OSC Pins.
>Im Gegensatz zu AVRs brauchen PICs zum programmieren>keinen Takt an den OSC Pins.
Bevor einer meckert ;) Das war schlecht ausgedrückt.
Beim programmieren brauchen PICs keinen Systemtakt
wie Int-RC, Quarz, externer Takt. Kommt alles
über die Programmierpins.
hallo
es gibt kein zugriff auf den pic.
Wie ich verstanden habe muß das erste programm noch im pic sein??
Funktioniert das programm. im pic.
Dies habe ich auch schon bei mehreren pics gehabt.
Warten auf die lösung des problems
MfG
Ich benutze das PICkit 2 als Programmer und da sieht es so aus:
Wenn in der Konfiguration (erste Zeile im Programm) _MCLRE_OFF gesetzt
ist, kann MPLAB den PIC beim nächsten Mal nicht mehr programmieren. Es
geht aber mit der Brennsoftware, das beim PICkit noch mit dabei war.
Damit kann ich den Chip löschen und ihn dann wieder vom MPLAB aus
brennen (natürlich nicht ohne das Programm mit _MCLRE_ON neu kompiliert
zu haben). Mir unverständlich, warum dessen Funktionalität (u.a. auch
VDD und /MCLR separat schalten, die Spannung von 2,5 bis 5V manuell
regeln, etc) nicht ins MPLAB integriert wurde. Bis ich das gemerkt hab,
dachte ich, mehrere PICs zerstört zu haben..
Wenn das ICD 2 eine eigene Software hat, würd ichs damit mal probieren.
@ juppi
>Warten auf die lösung des problems
Poste doch mal eine von deinen Schaltungen.
Probleme entstehen oft wenn die nicht ISP gerecht
ausgelegt sind. Ansonsten ist ein falsches Configurationword
oft die Wurzel allen Übels.
Die INTOSC&MCLR-Falle
Wichtig für Benutzer der Brenner0, AN589-Brenner und Q&D-Brenner:
Wenn ein Brenner auf einen PIC zugreifen will, dann schaltet er
normalerweise seine 5V-Betriebsspannung ein, legt MCLR auf Vss (um
einen Reset auszulösen) und legt dann MCLR schlagartig auf Vpp (+12V),
so daß der PIC nach dem Reset nicht dazu kommt, auch nur einen einzigen
Befehl abzuarbeiten. Damit ist der PIC im Programmiermodus, und durch
den Reset steht der interne Programcounter des PIC auf der Adresse 0x00.
Dort kann man dann anfangen zu brennen.
Wenn bei einem PIC aber beim vorigen Brennen der interne Oszillator
aktiviert wurde und MCLR zu einem I/O-Pin gemacht wurde, dann ignoriert
der PIC das Vss-Signal an MCLR und beginnt mit der Abarbeitung seines
Programms, sobald die Betriebsspannung Vdd angelegt wird.. Beim dann
folgenden Anlegen von Vpp an MCLR stoppt der PIC seine Arbeit, aber der
Programcounter steht nicht mehr auf 0x00, und das anschließende Brennen
eines neuen Programms erfolgt auf zufälligen Adressen des
Programmspeichers.
Solche PICs lassen sich nur problemlos brennen, wenn zuerst Vpp (12V)
und danach Vdd (5V) angeschaltet wird. Das ist nicht mit allen Brennern
möglich. Die Brenner 1, 2, 3 und 5 können das mit der Software PBrenner
ab V3.4. (Ältere Versionen nur mit einigen Typen)
PIC18Fxxx/xxxx
Das gleiche Problem gilt im Prinzip auch für die PIC18F-Typen mit
internem Oszillatorblock (nanoWatt). Auch hier läßt sich MCLR per Config
zum Input-Port RE3 machen und gleichzeitig INTOSC oder INTOSCIO als
Taktquelle einstellen. In den Datenblättern fand ich keine Lösung,
insbesondere wird die Einschaltreihenfolge VDD->Vpp explizit verlangt.
Der Hersteller warnt davor, LVP (low voltage programming) zu erlauben,
wenn MCLR zum I/O-Pin gemacht wird. Dann wäre es beim nächsten
Programmieren nämlich nötig, das PGM-Pin (RB5 o.ä.) auf low zu legen, um
den Programmiermode zu erreichen. Die meisten Programmiergeräte tun das
aber nicht, da ihre Entwickler (auch ich) LVP für nicht notwendig
erachten.
@holger (Gast)
K/P8048 von Velleman
das teil geht arbeite damit?!
programm lieg's nicht.
@Analog (Gast)
bei meinen erledigten pics ist der pic nicht mehr vohanden,
aber das alte programm läuft.
MfG
okay, alles klar, habe das problem gefunden. habe in der
programmierumgebung den oszillator auf LP stehen gehabt, mit RC gehts!
Aber jetzt sagt mir das MPLAB, dass das Programmieren erfolgreich war,
aber der PIC tut nix. Noch dazu entstehen 1000 errors wenn ich das
projekt builde, auch wenn ich das programm builde. dabei ist dies ein
beispielprogramm von www.sprut.de (ich wills programmieren ja erst
lernen nur dazu muss der ICD2 laufen)
tralalalalala......
Aber danke für die anderen Tips!
Hallo, kann mir mal jemand von euch ein kleines beispielprogramm (am
besten eine blinkende LED oder ein Lauflicht) für einen PIC16F84a
zusenden? Es wäre super wenn mir jemand ein komplettes Projekt senden
könnte, denn meine Linker Skript Datei ist wohl nicht die korrekte
(16f84i.lkr)
Oder einfach nur die Linker script datei. ich freue mich über alles,
denn ich wills zum laufen bekommen und lernen können......
DANKESCHÖN im Voraus!
alles klar, es läuft! macht euch wegen mir bitte keine weitere mühe!
Aber Danke für alles, das ist ein echt tolles Forum!
Ihr seid super!
MfG.: Kampmeier