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.
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.
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?
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.
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!)
>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?
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.
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
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.
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.
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.
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)
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.
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.
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).
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).