Hallo Leute, ich muss für ein Projekt 15 PICs parallel bzw. hintereinander programmieren (ICD3). Diese befinden sich auf einem Nutzen und weil ich das Programmierkabel nicht immer umstecken will suche ich eine Lösung wie ich das vermeiden kann. Drehschalter wäre eine sehr einfache Lösung, jedoch gibt es die meisten max mit 12 pins was für die 15 zu wenig ist. Daher meine Frage: hat schon irgend jemand Multiplexer verwendet um zwischen den einzelnen µCs umzuschalten oder gibt es eine andere Lösung an die ich noch nicht gedacht habe? Gruß suckiden
15 Stück, das ist doch gar nichts. Du wirst länger brauchen um da eine Schaltung für zu bauen, als wenn du das Kabel umsteckst. Wenn die nur einmal programmiert werden sollen, dann steck immer um.
theoretisch geht es, Vpp schalten, in der Praxis nicht wenn ICSP DAT und CLK Pegel ausgeben (oder du must die halt stilllegen). z.B. mit DIL Schalter, brauchst du aber 3 per IC ansonsten must du halt sehen ob es auch mit einem Schalter geht (austesten).
Was für PICs sind das? Ab PIC24 ist es sehr einfach, weil da der ganze High Voltage Krempel wegfällt. Die Umschaltung in den Programmiermodus geschieht hier durch das Reintakten eines Codewortes in !MCLR, und das läuft alles komplett bei 3.3V/5V ab. Bei den 8-Bittern ist das naturgemäß etwas komplexer. fchk
Udo schrieb: > 15 Stück, das ist doch gar nichts. > Du wirst länger brauchen um da eine > Schaltung für zu bauen, als wenn du > das Kabel umsteckst. Wenn die nur > einmal programmiert werden sollen, > dann steck immer um. Du hast keine Ahnung. Takao K. schrieb: > theoretisch geht es, Vpp schalten, in der Praxis nicht wenn ICSP DAT und > CLK Pegel ausgeben (oder du must die halt stilllegen). > > z.B. mit DIL Schalter, brauchst du aber 3 per IC ansonsten must du halt > sehen ob es auch mit einem Schalter geht (austesten). Du liegst genauso um 100% daneben Es ist vom Hersteller vorgesehen, dass PICs in Serie geschaltet geflasht werden können. Man lese dazu die div. AppNotes die es von Microchip dazu gibt. Lass dich nicht von Leute vollschwätzen die keine Ahnung haben!
Üblicherweise wird der uC auf der Platine / dem Nutzen über Federkontaktstifte im ICT programmiert. http://www.fixtest.de/produkte/federkontakte/ Gruss
@Peter: Hast du auch mehr zu bieten, außer dass wir keine Ahung haben und es irgendeine Appnote von Microchip geben soll?
Nico schrieb: > @Peter: > Hast du auch mehr zu bieten, außer dass wir keine Ahung haben und es > irgendeine Appnote von Microchip geben soll? Zustimmung. Das würde mich auch interessieren. Zu den anderen Vorschlägen: Die Umschaltung mit Mäuseklavier ist einigermaßen sinnlos. Da geht umstecken wahrscheinlich deutlich schneller, und ist weniger fehleranfällig.
Peter schrieb: > Udo schrieb: >> 15 Stück, das ist doch gar nichts. >> Du wirst länger brauchen um da eine >> Schaltung für zu bauen, als wenn du >> das Kabel umsteckst. Wenn die nur >> einmal programmiert werden sollen, >> dann steck immer um. > > Du hast keine Ahnung. > > Takao K. schrieb: >> theoretisch geht es, Vpp schalten, in der Praxis nicht wenn ICSP DAT und >> CLK Pegel ausgeben (oder du must die halt stilllegen). >> >> z.B. mit DIL Schalter, brauchst du aber 3 per IC ansonsten must du halt >> sehen ob es auch mit einem Schalter geht (austesten). > > Du liegst genauso um 100% daneben > > Das ich es schon gemacht habe zaehlt wohl nicht. > > Es ist vom Hersteller vorgesehen, dass PICs in Serie geschaltet geflasht > werden können. Man lese dazu die div. AppNotes die es von Microchip dazu > gibt. Lass dich nicht von Leute vollschwätzen die keine Ahnung haben! Aha, in Serie schalten, zeig doch mal die Appnote. Geht auch ganz besonders gut wenn schon ein Programm drauf ist welches die pins als IO verwendet.
Stefan N. schrieb: > Diese befinden sich auf einem Nutzen und weil ich > das Programmierkabel nicht immer umstecken will suche ich eine Lösung > wie ich das vermeiden kann. Was nützt dir ein Drehschalter, wenn du trotzdem 15 Kabel anschliessen musst? Dann kannst du genauso schnell nacheinander umstecken. Eine vernünftige Lösung, wenn es sich tatsächlich um grössere Stückzahlen handelt, ist ein Nagelbett-Adapter für den Gesamt-Nutzen und ein Relais für jeden Prozessor, oder eine Kaskadierung der Programmieranschlüsse, wenn das vom Hersteller so vorgesehen ist (JTAG z.B. ist im Prinzip kaskadierbar, aber das gilt für den Test und nicht unbedingt für die Programmierung). Dann bleibt aber noch das Problem, dass die Leitungen dafür durch alle Teilplatinen durchlaufen müssen und erst später getrennt werden können. Am besten kombiniert man das in einem Adapter für Test und Programmierung. Immer vorausgesetzt es handelt sich wirklich um Stückzahlen und nicht um Grössenwahn. Georg
Falls es eine Platine ist, pads machen, und pogo pins aufpressen. Oder extra Platine um das IC vor dem einloeten zu programmieren (auch einfach nur aufpressen). Drehschalter waere schon sehr ungewoehnlich. Die appnote wuerde ich schon gern mal sehen wie PICs in Serie programmiert werden sollen? Da ich die ICSP normalerweile nicht opfern moechte, muss ich alle 3 pins schalten, nicht nur Vpp. Wenn ein PIC Versorgungsspannung bekommt, sind alle ports auf tristate. Egal ob ein Programm im Flash ist oder nicht. Konfigurationswort ist ja noch nicht programmiert, geht der Oszillator auch noch nicht.
Dann nimm halt einen Bootloader für UART. Wenn du zu wenige Pins hast dann nimm die PGx Pins und lass ein Soft UART drauf laufen. Wenn es dir ums initiale Programmieren geht - man kann bei Microchipdirekt mit custom hex oder Bootloader vorprogrammiert bestellen.
Pics parallel programmieren geht problemlos, man braucht nur OC treiber. Macht jedoch nur bei pic Sinn welche den internen flash lesen können. Der Grund ist dass es nicht möglich ist den code zurückzulesen bzw calib reg zu sichern wie auch interne Seriennummer. Deshalb macht man die chksum sowie serial Huber speziellem bootloader welchen man dann wenn alles OK ist, umbiegt. In Serie Prog, da gibt es effektiv AN und dank Lvp geht dies effektiv sehr gut.
Hallo, einige PICs haben JTAG. Falls bei deinem das so ist, könnte man eine Chain verwenden und mit einem Programmer alle oder mehrere gleichzeitig programmieren. Dazu muss man aber auch mehrere Platinen auf dem Nutzen verbinden - kann ich mir gerade schlecht vorstellen. Ob 15 geht bin ich mir außerdem nicht sicher (Fanout). Dann könnte man die PICs vor dem Einlöten programieren. Soweit ich weiß, bietet Microchip einen solchen Service an, oder man nutzt ZIF-Sockel dazu. Ich würde das so machen, dass nur ein Bootloader programmiert ist und die finale Firmware über UART oder wasauchimmer dazukommt. Eigentlich kenne ich das aber so, dass das Programmieren beim Test der Schaltung gemacht wird, üblicherweise am ICT. In dem Fall kontaktiert man mit Nadeln die Debug-Testpunkte auf der Platine, im Testadapter sollte der ICD2 sitzen. Oder man nimmt das PICkit3 (nur Kleinstserie), das kann ohne PC programmieren (Programmer otg).
soo, hätte nicht gedacht, dass sich so viele an diesem Thema beteiligen. Erst einmal ein paar zusätzliche Informationen: 1. Der verwendete Pic ist ein PIC12F683, soweit ich das gesehen habe besitzt der µC keine JTAG Schnittstelle 2. Der Nutzen soll auf einem Testadapter programmiert und getestet werden, bei der Kontaktierung werden Federkontaktstifte verwendet, hab ich wohl vergessen zu erwähnen. 3. Die Stückzahlen sind soweit ich weiß nicht die Massen, jedoch bin ich schon sehr oft vor dieser Problematik gestanden und möchte auch aus persönlichem Interesse eine Lösung dafür finden. 4. Es sind nicht insgesamt 15 Stk. sondern immer 15 Stk. pro Nutzen. Meine Fragen: Warum eignet sich ein Relais mehr als ein Multiplexer, besserer Übergangswiderstand? 5 @ chris: was genau meinst du mit OC treiber? und könntest du mir die parallele und serielle Methode vielleicht noch einmal genauer beschreiben? Gruß
> 4. Es sind nicht insgesamt 15 Stk. sondern immer 15 Stk. pro Nutzen.
Den 12F683 kannst Du nicht parallel programmieren. Da würde ich
Pogo-Pins nehmen. Der übliche 5-pol Programmier-Adapter geht aber doch
genauso schnell.
Es gibt z.B. von Softlog oder CCS Programmer für 8Bit Pics, welche mehrere Pics auf einmal Flashen können. Habe ich aber noch nie verwendet und keine Erfahrung damit.
> Es gibt z.B. von Softlog oder CCS Programmer für 8Bit Pics, welche > mehrere Pics auf einmal Flashen können. Die haben halt mehrere Programmer in 1 Gehäuse. Die musst Du aber auch alle anschliessen.
Peter schrieb: > Es ist vom Hersteller vorgesehen, dass PICs in Serie geschaltet geflasht > werden können. Zeig mal die App Note, vor allem wie das dann verifiziert wird. Stefan N. schrieb: > Der verwendete Pic ist ein PIC12F683, Spendier ihnen doch eine Art Bootloader mit dem sich die Dinger gegenseitig programmieren.
Stefan N. schrieb: > Warum eignet sich ein Relais mehr als ein Multiplexer, besserer > Übergangswiderstand? Bei einem Relais musst du dir keine Gedanken machen über Potentiale, Aus- und Ein-Widerstände, Logikpegel, Ströme usw. Ich verstehe nicht, warum hier jeder so gegen Relais ist, nichts kommt dem idealen Schalter näher. Ich baue Testadapter für Halbleiterfabriken mit zig bis hundert Relais, das ist absolut professionell und keineswegs rückständig. Das einzige Problem sind die Schaltzeiten, aber das spielt bei der vorliegenden Anwendung keine Rolle (ganz bestimmt ist ein Relais schneller als ein handbetätigter Drehschalter). Georg
12F ist nicht so schwierig zu programmieren, einfach mal das PDF anschauen, und z.B. mit einem 16F PIC einen Flash Writer aufbauen. Und z.B. seriell von einem Master PIC via USB das hexfile laden. Kompliziert sind PIC Programmer nur weil diese so viele unterschiedliche PICs unterstuetzen. Vpp laesst sich dann recht einfach mit Transistoren zuschalten, und mit einen Joulethief erzeugen (brauchts nur 1mA). Wenn ich es richtig verstehe, sollen immer 15 PICs gleichzeitig programmiert werden, also mit 15 Fassungen. Wenn TE dafuer konkrete Hilfe braucht, ich habe das schon ausprobiert, MCLR sauber auf tristate (freigeben), auf GND oder auf Vpp. Mit 2 Transistoren. Mit LED, die ist dann entweder aus, an (Versorgungsspannung), funzelt nur ein ganz kleines bisschen (auf tristate), oder leuchtet hell (Vpp). Brauche jedoch keinen eigenen PIC programmer, also eingemottet. Vpp wird mit einem kleinem PCB erzeugt, habe ich auch noch blanke PCBs herumliegen.
:
Bearbeitet durch User
Einfach 15 vorprogrammierte PICKIT3 bei den man den Taster durch ein Relaiskontakt ersetzt um alle gleichzeitig zu starten.
Danke für die Vorschläge, ich bin mir gerade selber nicht mehr sicher welche Leitungen ich standardmäßig an alle PICs anlegen kann und welche sequentiell dazu geschaltet werden. Alle Prints haben einen eigenen Spannungsregler bestückt, also kann ich mir Vdd vom ICD schon einmal sparen oder? Die GND Leitungen zwischen PIC und ICD nehme ich an müssen schon miteinander verbunden sein. PGC kann solange der Pin nicht als Ausgang/Eingang verwendet wird auch an allen PICs anliegen. PGD sollte immer nur an den zu programmierenden PIC anliegen. Vpp/MCLR müsste eigentlich auch egal sein dann werden eben alle PICs zwischenzeitlich immer wieder resetet. @Takao K. kannst du mir deine vorgeschlagene Methode bitte noch einmal genauer erklären, gerne auch per PN. @Jürgen D. "15 vorprogrammierte PICKIT3" klingt nicht sehr billig und bei einer Softwareänderug muss jeder neu programmiert werden. Gruß
Stefan N. schrieb: > ich bin mir gerade selber nicht mehr sicher welche Leitungen ich > standardmäßig an alle PICs anlegen kann und welche sequentiell dazu > geschaltet werden Durch die Mclr Leitung wird erkannt ob der Pic programmiert wird (bei der "Hochvolt Technik). Möglich wäre mittels zweier Rändelradschaltern mit dezimaler Ausgabe http://www.digikey.de/product-detail/de/301109000/CKN5013-ND/253329 die MCLR Leitung zu multiplexen und die andern Leitungen parallel zu halten (notfalls über z.B. 47-100 Ohm Widerstände entkoppeln). Die anderen Pics können mit einem pulldown Widerstand im reset gehalten werden. Der PicKit kann programmer to go. Da musst du dann nur noch den Rändelradschalter einen weiter drehen und wieder auf den roten Knopf drücken.
Wenn es schnell gehen muss nimm entweder 15 pickit2 lite mit opv sowie i2c oder ein 16f877 bzw equivalent. Ansonsten Bau dir eine MUX carte. Achtung beim current Relais ist eines eingezeichnet, es braucht aber zwei damit man unterbrechungsfrei schalten kann. Die sind auch recht praktisch wenn man proprietäre Programmer muxen muss. Ansonsten was musst du zusatzlich testen/messen? OC ist open collector. CLK kann nur output sein und für alle gleich, wie auch mclr gnd und vcc. EV könntest du auch einen nutzen nehmen, diesen für die pogo Pins verwenden und die mcu programmieren dann die target mcu. Dafür braucht es normalerweise nur minimale modificationen. EV mehr über PN.
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.