Elec
10.11.2009, 09:49 |
Automation von ICSP Programmern PICKit 2, MPLAB ICD3, usw. (Computertechnik) |
Überschrift:
Automation von ICSP Programmern: Microchip PICkit 2 Starter Kit, Microchip MPLAB ICD2, Microchip MPLAB ICD3, Softlog ICP2, Softlog UPG-DLL, Contitec GALEP-5
Hallo zusammen,
ich bin auf der Suche nach der optimalen Lösung verschiedene PICs (speziell PIC16F690, PIC16F886) in der Schaltung zu brennen.
Es soll einerseits sicher und zuverlässig sein, andernseits nicht lange dauern.
Weiterhin muss ich den Programmer über eine Softwareschnittstelle ansprechen können.
Dabei stellen sich mir 2 Problemfelder: Hardware und Software.
Zunächst zur Hardware.
Ich habe ein paar Geräte, die in die engere Auswahl kommen: (Ich habe nicht alle Features aufgeführt, um die Übsicht zu wahren).
1) Microchip PICkit 2 Starter Kit (Reichelt: DV 164120)
Reiner ICSP-Programmer mit Experimentierplatine
mit "Windows® programming interface"
mit PIC und Lernbeispielen
Kosten: ca. 45 EUR
2) Microchip MPLAB ICD2 (Reichelt: DV 164005)
ICSP-Programmer und -Debugger
nicht für Neuentwicklungen empfohlen
Kosten: ca. 160 EUR
3) Microchip MPLAB ICD3 (Reichelt: DV 164035)
ICSP-Programmer und -Debugger
mit MPLAB IDE Plug-In
Kosten: ca. 200 EUR
4a) Softlog ICP2 (beziehbar über TIGAL Österreich)
für Produktionslinien konzipierter ICSP-Programmer
mit MPLAB IDE Plug-In
Kosten: 314 EUR + MwSt = ca. 370 EUR
4b) Softlog UPG-DLL (beziehbar über TIGAL Österreich)
Software-DLL
ermöglicht den Programmer über die Kommandozeile zu steuern
Kosten: 189 EUR + MwSt = ca. 220 EUR
5) Contitec GALEP-5 (Reichelt: GALEP V)
sehr schneller Programmer
eigentlich nur für ICs gedacht
Mit Software (Batch-fähig)
Kosten: ca. 500 EUR
Gemeinsamkeiten:
Per USB-Anschluss werden sie mit dem PC verbunden, um eine hohe Geschwindigkeit zu erreichen.
Und nun zur Software.
Die PIC-Anwendung schon fertig und das MPLAB brauche ich nicht. Ich möchte sie auf verschiedene Platinen mit unterschiedlicher Hardware testen.
Das ganze ist ein recht großer Aufwand.
Ich habe schon eine VB.NET-Software geschrieben, die bestimmte Tests an den Platinen ausführt.
Ich möchte gern vorher das Brennen automatisiert ablaufen lassen. Dazu brauch ich eine Programmierschnittstelle, mit der ich den Programmer ansprechen kann.
Bitte nicht mit dem Stand-Alone-Betrieb verwechseln, da ich hier dann wieder jedes mal eingreifen muss.
Und da benötige ich eure Hilfe.
Die Microchip-Produkte (1-3: Microchip PICkit 2 Starter Kit, Microchip MPLAB ICD2, Microchip MPLAB ICD3) scheinen mir nur in Verbindung mit dem MPLAB zu funktionieren.
Ein externer Zugriff scheint nicht möglich.
Allerdings habe ich für das PICkit 2 unter http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1960 eine Anwendung gefunden (PICkit 2 PC Application Source Code v2.61), die ich evtl. bei mir einbinden könnte.
Die Lösung von Softlog (Programmer und DLL) bzw. Contitec scheinen mir geeignet zu sein. Jedoch sind die Kosten recht hoch und es handelt sich um Drittanbieter, wenn auch Zertifizierte.
Daher meine Fragen:
- Kann man die Microchip-Produkte mit den mitgelieferten Treibern von außen ansteuern ?
- Ist die "PICkit 2 PC Application Source Code v2.61" geeignet ?
- Kennt sich jemand mit den Softwareschnittstellen von Softlog ICP2, Softlog UPG-DLL oder Contitec GALEP-5 aus ?
- Wie sieht es mit der Qualität der Dokumentation aus?
- Was würdet ihr mir empfehlen ?
Danke und Grüße,
Elec |
hws

59425 Unna, 10.11.2009, 11:13
@ Elec
|
Automation von ICSP Programmern PICKit 2, MPLAB ICD3, usw. |
Ich kenn eigentlich nur 2 Lösungen:
Entweder aus der Entwicklungsumgebung raus den PIC einzeln und per Hand programmieren. Die Zielschaltung muss natürlich die passenden Anschlüsse haben. Die komfortable Entwicklungsumgebung mit angeschlossenem Programmierteil gibts kostenlos zum Runterladen von Microchip. Sowohl PicStarterkit als auch IDC2 hab ich selbst.
Oder ein Stand-Alone Prommer in den die nackten PIC's gesteckt werden. Der Prommer erkennt automatisch einen neu eingelegten und voll kontaktierten Chip - und Programmiert den. Wird in der Produktion für diverse µC's, Flash, Prom's, Gals ... usw verwendet und hat einiges gekostet.
In deiner Anwendung muss doch eh ein Kabel vom Prommer auf die Zielschaltung gesteckz werden. Und da stört die Zeit, einen "program" Button anzuklicken oder ein Desktop Icon eines Kommandozeilen Programmes.
Zur USB Anbindung: Die Geschwindigkeit des Programmierens wird nicht von der USB-Geschwindigkeit abhängen, sondern von der Zeit, die der Prommer braucht, den internen Flash-Speicher zu beschreiben.
hws |
geralds

Wien, AT, 10.11.2009, 11:41
@ Elec
|
Automation von ICSP Programmern PICKit 2, MPLAB ICD3, usw. |
---
Hi Elec,
Neben em Vorschlag von hws, könnte ich mir noch Elnec vorstellen:
www.elnec.com
Beeprog+ ist aktuell, Beeprog 2 kommt gerade.
http://www.elnec.com/products/device-programmers/beeprog2/
Das ist ein Stand-Alone Pgmer mit ICSP.
Damit kannst auf "Dasy-Chain" einstellen.
Ich arbeite damit (habe eine noch einen älteren PGmer) ohne Probleme.
Die Software ist frei downloadbar, und wirklich toll.
Mit dem Programmer ICD3 von M-Chip müßte das auch gehen.
Eine automatisierung von mehreren verschiedene Chips hatte ich zwar noch nicht benötigt.
Es müßte auf alle Fälle in diese Richtung eingestellt werden.
Grüße
Gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |
Elec
11.11.2009, 14:05
@ geralds
|
Automation von ICSP Programmern PICKit 2, MPLAB ICD3, usw. |
Hallo,
danke an Euch für die schnellen Antworten.
Ich möchte eigentlich bloß Fehler bzw. Fehlbedienungen vermeiden.
Man soll einmal den Hardwaretyp auswählen (daraus bestimme ich dann den PIC) und der Rest soll von alleine ablaufen. Bislang muss nur 1 PIC je Hardware programmiert werden.
Grober Ablauf:
- Hex-File aus Verzeichnis laden
- zum Programmer übertragen und programmieren
- Reset
- Hardwaretest
- Auswertung
Ich verstehe die Einwände, ein weiteres Programm zu bedienen sei nicht viel Aufwand. Ich stimme dem zu und werde es so machen, wenn sich keine einfache Lösung finden lässt.
Ich hätte noch 2 Alternativen, die aber nicht professionell sind:
Alternative 1:
Ich könnte eine Software (mitgelieferte Programme oder MPLAB) öffnen und die Maus steuern. Ich kann Tastatureingabe simulieren und Mausposition setzen sowie Klicks auslösen. Das habe ich schon mal gemacht. Allerdings dürfen dann keine Eingaben gemacht werden, da ich sonst aus dem Rhytmus komme.
Man könnte dann sogar unterschiedliche Programmer benutzen.
Allerdings steigt damit auch die Fehleranfälligkeit.
Alternative 2:
Ich nutze die Tasten des Programmers (damit auch ein stückweit den Stand-Alone-Betrieb). Ich würde das Gehäuse öffnen und die Taster zusätzlich nach außen hin verdrahten. Außen würde ich Relais anschließen, die ich wiederrum steuern kann.
Ich weis noch nicht, was ich tun werde.
Zu BeeProg+:
Danke für den Hinweis. Ich schaue ihn mir mal genauer an.
Es wird auch eine Software mitgeliefert.
Es findet sich auch ein Bericht in der Zeitschrift Elektor (Ausgabe 462, Juni 2009) über ihn.
Allerdings ist der auch nicht gerade ein Schnäppchen.
Kosten: 859 EUR + MwSt = ca. 1020 EUR
Noch kurz zum Thema Geschwindigkeit:
Das mit dem USB-Anschluss erwähnte ich nur, da es auch LPT-/COM-Anschlüsse gibt. Hierbei würde die Übertragungsdauer vom Hex-File zusätzlich ins Gewicht fallen.
Die eigentliche Programmierzeit hängt dann vom Programmer ab.
Danke und Grüße,
Elec |
geralds

Wien, AT, 11.11.2009, 14:17
@ Elec
|
Automation von ICSP Programmern PICKit 2, MPLAB ICD3, usw. |
---
hi,
Die einzig automatisierte Möglichkeit sehe ich mit dem Elnec.
Da kannst in der Software Parameter entsprechend setzen.
Auch geht ein Gang-Programming.
Da kannst auch Serien-Nummern fürs Klebe-Etikette generieren.
Mit MPLAB hast eben den Umstand, dass du vorher alles "zurecht legen" musst.
Dann gehts im Semi-Auto auch. Eben, so wie sagtest, wennst nur einen Stein-Typ hast.
Bei Ändern, musst eben wieder anpassend umstellen.
Irgend eine "Produktionsroutine" wirst auch hier bekommen.
Ist eben Workaround. Koff-Hoff 
Vorschlagend:
Wennst nicht allzuviel machen musst, dann würde ich mir den passenden Adapter, und oder was auch immer basteln, und mit dem ICD 3 durchspielen.
Für Kleinserien kommst so gut durch.
Grüße
Gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |
Elec
23.11.2009, 09:00
@ geralds
|
Automation von ICSP Programmern PICKit 2, MPLAB ICD3, usw. |
Hallo,
ich habe erst mal das Microchip PICkit 2 Starter Kit bestellt.
Im Lieferumfang ist:
- PICKit2-Brenner
- Experimentierplatine mit PIC16F690, 4 LEDs, 1 Poti
- USB Kabel
- CD mit Treiber, Beispielprogrammen, Anwendungen
- CD mit MPLAB
Die 12 MPLAB-Lernbeispiele gefallen mir.
Die Brennsoftware (PICkit 2 PC Application v2.50) ist sehr gut. Als Funktionalitäten werden geboten:
- PIC-Typ auswählen
- HEX-File laden
- PIC auslesen, brennen, verifizieren, löschen
- Blank check
- Code Protect, Data Protect einstellen
- Programm Memory und EEPROM darstellen
- ...
Einfach Gerät anstecken, Treiber installieren und mit der Software einfach mal die Lernbeispiele brennen. Das funktioniert auf Anhieb. Lob an Microchip.
Das die Brennsoftware auch als Visual Studio Projekt mitgeliefert wird gefällt mir sehr gut.
Ich kann dann dieses Projekt mit meinem Projekt in einer Projektmappe ("Soultion" unterbringen.
Mit wirklich nur ein bisschen Programmieraufwand liese sich theoretisch die Automation herstellen.
Ich programmieren in den Code eines Buttons auf meiner Oberfläche einfach ein paar Zeilen, die das Betätigen der anderen Buttons auslöst ("Button.PerformClick" . Entsprechend warte ich dann auf die Meldungen in einem Textfenster.
So könnte das gehen.
Einziger Knackpunk momentan: Die Software ist in C geschrieben und meine Anwendung in VB.NET.
Soweit, so gut.
Mal sehen, ob ich es bis zum Ende auf diese Weise lösen kann. |
Elec
01.12.2009, 08:11
@ Elec
|
Automation von ICSP Programmern PICKit 2, MPLAB ICD3, usw. |
Hallo,
ich habe mich ein bisschen mit der Software befasst. Nach etwas Recherche habe ich herausgefunden wie man unter Visual Studio 2005 eine Projektmappe mit mehreren Projekten unterschiedlicher Programmiersprachen anlegt.
Um untereinander auf die einzelnen Projekte zugreifen zu können, muss man jeweils nur Verweise einfügen und die "Modifieres"-Eigenschaft entsprechenden Steuerelemente auf "Public" setzen.
Das Interessant ist, das die Programmiersprache keine Rolle mehr spielt, denn alles läuft über Framework-Komponenten. Denn jedes Steuerelement unter C hat die gleichen Eigenschaften wie unter VB.NET. Quasi: Alles identisch.
Das habe ich gemacht. Nun kann ich in meinem VB-Programm die Buttons ansteuern ("Write", "Verify", ...) und das Meldungsfenster auslesen.
Mit dem mitgelieferten PIC16F690 und der Experimentierplatine läuft das wunderbar. Jetzt muss ich nur noch den Programmer mit meiner Platine verbinden. Dann wäre ich fertig.
Bis zur nächsten Herausforderung.
Danke an das Forum
 |