Forum: Mikrocontroller und Digitale Elektronik PicKit3 Failed to program device


von Benny (Gast)


Lesenswert?

Hallo zusammen,

ich habe mir eine eigene Platine gebastelt (mit einem PIC32MX795F512L 
von MikroE). Zum Programmieren möchte ich einen PicKit3 nutzen. PicKit3 
ist nur bei mir angekommen, Platine ist fertig doch leider funktioniert 
es nicht so wie gewünscht.

Das Übertragen des Programms schläft fehl. Die Ausgabe vom PicKit3 ist 
wie folgt:
1
Connecting to MPLAB PICkit 3...
2
3
Currently loaded firmware on PICkit 3
4
Firmware Suite Version.....01.38.10
5
Firmware type..............PIC32MX
6
7
Target voltage detected
8
Target device PIC32MX795F512L found.
9
Device ID Revision = 54300053
10
11
The following memory area(s) will be programmed:
12
program memory: start address = 0x0, end address = 0x5f7ff
13
boot config memory
14
configuration memory
15
16
Device Erased...
17
18
Programming...
19
boot config memory
20
Address: ffffffff Expected Value: 0 Received Value: 0
21
Failed to program device

Meine Verbindungen zum Prozessor:
 MCLR mit einem 10k Ohm Widerstand auf VCC
 PGEC2 auf RB6
 PGED2 auf RB7
An PGEC und PGED sind keine Verbraucher, Widerstände, Kondensatoren oder 
sonstiges.

Das Board wird von einer externen Stromquelle versorgt (Spannung wird 
vom PicKit ja auch erkannt).
(So nebenbei: Werden die Device-Informationen auch per PGEC und PGED 
geladen?)

Programm funktioniert mit einem PIC32 ETH StarterKit einwandfrei.

Hat jemand eine Idee an was das liegen könnte? Ich bin dankbar für jeden 
Vorschlag.

von Malli (Gast)


Lesenswert?

Benny schrieb:
> Das Board wird von einer externen Stromquelle versorgt (Spannung wird
> vom PicKit ja auch erkannt).

Ist das PICKit auch dementsprechend eingestellt? Bin mir gerade nicht 
sicher ob die Meldung 'Target voltage detected' immer kommt oder nur, 
wenn auf externe Versorgung eingestellt ist.

von Malli (Gast)


Lesenswert?

...Andernfalls versuch auch mal die Versorgung durch das PICKit (dann 
natürlich alles externe abschalten, trennen).

von Malli (Gast)


Lesenswert?

Und eine weitere mögliche Problemquelle sind zu lange Leitungen (Data 
und Clk). (Sorry für den dreifachen Post).

von Benny (Gast)


Lesenswert?

Malli schrieb:
> ...Andernfalls versuch auch mal die Versorgung durch das PICKit
> (dann
> natürlich alles externe abschalten, trennen).
Hat leider nichts gebracht.

Malli schrieb:
> Und eine weitere mögliche Problemquelle sind zu lange Leitungen
> (Data
> und Clk). (Sorry für den dreifachen Post).
Was heist zu lang? Sind 5cm zu lang? Das ganze ist mit Fädeldraht 
gelöst.

Hast du villeicht noch eine andere Idee?

von Malli (Gast)


Lesenswert?

Ist im Code evtl. LVP eingeschaltet?

von Benny (Gast)


Lesenswert?

Malli schrieb:
> Ist im Code evtl. LVP eingeschaltet?

Möglich. Weißt du gerade wie man den deaktiviert?

von Benny (Gast)


Lesenswert?

Malli schrieb:
> Ist im Code evtl. LVP eingeschaltet?

Meinst du das hier?
https://microchip.wikidot.com/pickit3:low-voltage-programming

Denn diese Einstellung gibt es bei mir nicht. Ich kann nur "Erase All 
before Programming" aktiveren. Die anderen Option erscheinen bei mir 
nicht.

von Malli (Gast)


Lesenswert?

Das wird über die Config-Bits eingestellt.

So oder so ähnlich sollte es aussehen:
1
#pragma config LVP = OFF            // Single-Supply ICSP disabled

von Benny (Gast)


Lesenswert?

1
error: unknown configuration setting: 'LVP'
Leider nicht möglich. Ich glaube diese configuration-bit gibt es beim 
PIC32 nicht mehr. (Bin mir aber nicht sicher.)

Noch andere Vorschläge?
(Danke vielmals übrigens für deine Hilfe!)

von Malli (Gast)


Lesenswert?

Was soll das eigentlich heißen?
> Ich habe mir eine eigene Platine gebastelt (mit einem PIC32MX795F512L
von MikroE
Wie sieht denn der Schaltplan aus?

von Benny (Gast)


Lesenswert?

Auf meiner Platine ist die Prozessor-Platine von MikroE verbaut 
(Datenblatt: 
http://www.produktinfo.conrad.com/datenblaetter/1200000-1299999/001221447-an-01-en-BOARD_EASYPIC_V7_PIC32M__MIKROE_1206_MKE.pdf)

Verbindungen von PicKit zu Prozessor-Board:
VPP/MCLR = 91 MCLR#
VDD Target = VCC
VSS (ground) = VSS / GND
ICSPDATA (PGD) = 8 RB7 PGD2
ICSPCLK (PGC) = 7 RB6 PGC2
LVP = NC

von Peter C. (peter_c49)


Lesenswert?

>Das Board wird von einer externen Stromquelle versorgt (Spannung wird
vom PicKit ja auch erkannt).

3.3 Volt? Und sicher das die Spannungsquelle ~100mA liefert?

von Benny (Gast)


Lesenswert?

Speisung per USB-Spanunng. 3,3Volt durch Spannungsregler (Microchip 
TC1262). Strom somit maximal 500mA.

von Peter C. (peter_c49)


Lesenswert?

gut. spannung 3.3V sollte dann passen.
wenn du einen Oszi hast, schau dir dir VCC,PGD, PDC und Reset an, 
sollten saubere signale sein beim lesen/schreiben.
Soweit sieht es nach zu langen leitungen bzw Versorgungsproblem aus.
nimm die mplab_ipe, stell den processor typ ein und mache folgendes:
- device empty test
- device erase
- device empty test
wenn bis hier alles tut, weiter mit:
- device read
. lade ein hex file und schreib es.
wenn es nur beim schreiben bzw erase probleme gibt ist es meist die 
Versorgung oder zu lange leitungen.
Auch Vcore (1.8V an Vcap) messen, dass board hat ja einen 10uF drauf, 
trotzdem kontrollieren.

PS: Am reset, hast du hoffentlich keinen serienwiderstand dran, auch 
keinen kondensator nach GND.

von Benny (Gast)


Lesenswert?

Peter C. schrieb:
> wenn du einen Oszi hast, schau dir dir VCC,PGD, PDC und Reset an,
> sollten saubere signale sein beim lesen/schreiben.
Leider habe ich gerade kein Oszi zur Hand. Vielleicht kann ich mir eines 
besorgen.

Peter C. schrieb:
> - device empty test
1
2015-07-12T20:44:14+0200- Blank checking...
2
3
Blank Checking...
4
Blank check complete, device is not blank.
5
2015-07-12T20:44:19+0200- Blank check failed

Peter C. schrieb:
> - device erase
1
2015-07-12T20:44:50+0200- Erasing...
2
3
Erasing...
4
Failed to erase the device
5
2015-07-12T20:44:54+0200- Erase device failed

Peter C. schrieb:
> - device empty test
1
2015-07-12T20:45:00+0200- Blank checking...
2
3
Blank Checking...
4
Blank check complete, device is not blank.
5
2015-07-12T20:45:05+0200- Blank check failed

Was beudeutet es wenn schon der Blank-Check fehlschlägt. Trotzdem noch 
durch zu lange Leitungen? (Zwischenfrage: Sind 3 bis 5 cm zu lang für 
PGD, PGC und MCLR?)

Peter C. schrieb:
> Auch Vcore (1.8V an Vcap) messen, dass board hat ja einen 10uF drauf,
> trotzdem kontrollieren.
Ich habe 1,8 Volt gemessen. Sollte also soweit passen.

von Peter C. (peter_c49)


Lesenswert?

3-5cm sind kurz,ok. ich hab meist 10-15cm, probleme gabs nur bei 
längeren.
ev zeigst du die verdrahtung?
oder mach die brutalschnell kabelung, löte deine vorhandenen drähtlein 
weg vom processorsockel, löte mclr,pgd und pdc direkt oben an die 
sockelpins.
damit hättest du schon mal den drahtverhau unter deiner platine 
ausgeschlossen.
und, einmal den pickit3 vom usb ziehen, wieder rein, hab ich leider auch 
schon erlebt das ein poweroff/on vom pickit und dem board das problem 
nicht nachvollziehbar verschwinden lies.

von Benny (Gast)


Lesenswert?

Peter C. schrieb:
> einmal den pickit3 vom usb ziehen, wieder rein, hab ich leider auch
> schon erlebt das ein poweroff/on vom pickit und dem board das problem
> nicht nachvollziehbar verschwinden lies.
Diese Erfahrung habe ich auch schon gemacht und von daher auch schon ein 
paar mal getestet.

Verdrahtung werde ich prüfen und u. U. auch mal nach einem Oszi schauen, 
nicht dass doch noch irgendetwas ist.

von Malli (Gast)


Lesenswert?

Ich hatte mal gelesen, dass ein 100pF zwischen PGC und GND helfen soll, 
siehe: http://www.microchip.com/forums/FindPost/638891

von Benny (Gast)


Lesenswert?

Malli schrieb:
> Ich hatte mal gelesen, dass ein 100pF zwischen PGC und GND helfen
> soll,
> siehe: http://www.microchip.com/forums/FindPost/638891
Doch laut Handbuch sollte man doch genau das nicht tun.

von Benny (Gast)


Lesenswert?

Ich habe übrigens vorher mal das mit dem 100pF Kondensator getestet. 
Leider ohne Erfolg. (Ich habe auch noch andere Werte ausprobiert: 22pF, 
47pF, 68pF, 100pF)

von Malli (Gast)


Lesenswert?

Aber das der Controller noch heile ist, ist sicher?

von Malli (Gast)


Lesenswert?

Hast Du versehentlich mal den Programmer2Go-Button auf dem PICKit3 
gedrückt während der PIC32 angeschlossen war?

von Benny (Gast)


Lesenswert?

Malli schrieb:
> Aber das der Controller noch heile ist, ist sicher?
Ja. Ich habe heute den PicKit an mein PIC32 Ethernet Starter Kit 
angeschlossen und es hat einwandfrei funktioniert.

Malli schrieb:
> Hast Du versehentlich mal den Programmer2Go-Button auf dem PICKit3
> gedrückt während der PIC32 angeschlossen war?
Nicht dass ich wüsste. Wie gesagt mit meinem Starter Kit hats 
funktioniert.

Ich bin gerade echt etwas ratlos und hoffe dass irgendjemand noch eine 
Idee hat.

von Malli (Gast)


Lesenswert?

Benny schrieb:
> Ja. Ich habe heute den PicKit an mein PIC32 Ethernet Starter Kit
> angeschlossen und es hat einwandfrei funktioniert

Ja aber das ist doch nicht ein und das selbe IC oder doch? Das beweist 
also nur, dass das PICKit heile ist aber nicht auch das IC.

von Benny (Gast)


Lesenswert?

Malli schrieb:
> Benny schrieb:
>> Ja. Ich habe heute den PicKit an mein PIC32 Ethernet Starter Kit
>> angeschlossen und es hat einwandfrei funktioniert
>
> Ja aber das ist doch nicht ein und das selbe IC oder doch? Das beweist
> also nur, dass das PICKit heile ist aber nicht auch das IC.
Das weiß ich. Ich werde es morgen mit dem anderen IC probieren (ich habe 
nämlich 2 gekauft).

von Benny (Gast)


Lesenswert?

Wir kommen dem Problem näher. Mein IC (inkl. meiner Beschaltung) 
funktioniert.
Was ich gemacht habe ist folgendes: Ich habe an meinem PicKit eine 
Stifleiste gesteckt und an die einzelnen Anschlüsse Messleitungen 
angeschlossen, die ich wiederrum direkt an mein Prozessor hingehängt 
habe. Meine selber gebaute Schaltung war dabei komplett in Betrieb 
(sprich mein Spannungsregler, usw.). Das Programm konnte erfolgreich 
übertragen werden und das Programm läuft auch.
Nun habe ich mir überlegt an was es liegen kann, dass es nicht 
funktioniert wenn ich meinen PicKit an meine Stifleiste auf der Platine 
stecke. Was mir aufgefallen ist dass sich die Fädeldrähte von PGD und 
PGC überlappen und sich auch PGC und PGD mit VCC und GND überlappen. 
Kann das ein Grund für diesen Fehler sein? (Die Pins von der 
PicKit-Stiftleist zum Prozessor habe ich bereits durchgeprüft: kleine 
als 0,2 Ohm Widerstand).

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
Noch kein Account? Hier anmelden.