www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik PIC ICD 2 selbstgebaut

Autor: Thorsten (Gast)
Datum: 30.12.2004 10:14

Hallo,

dank dieses Forums bin ich auf folgenden Link aufmerksam geworden:
http://www.stolz.de.be/
 Dort ist eine Bauanleitung für einen ICD 2 angegeben. Da ich mich bald
wieder mal mit PICs (PIC18F) befassen werde und mir ein original ICD 2
zu teuer ist, habe ich das Teil mal aufgebaut. Ich wollte hier einfach
mal fragen, ob sich jemand (außer Paul, seine Reichelt Bestellung ist
noch nicht da :)) ebenfalls dieses Teil gebaut hat und welche
Erfahrungen er gesammelt hat. Leider funktioniert meines nicht, der PC
sendet an den ICD 2, von dem kommt aber nichts zurück. Offensichtlich
scheint der Bootloader nicht anzuspringen, vielleicht weil der
verwendete 20 MHz Quarz falsch ist? Ich habe statt des angegebenen
PIC16F876 einen PIC16F877 genommen, daß sollte allerdings kein Problem
sein.

Vielen Dank.

Gruß
Thorsten
Autor: Michael Rubitschka (Gast)
Datum: 30.12.2004 14:08

Hallo

Ich werde mir in den nächsten Tagen auch einen bauen.
Dann kann ich Dir Bericht erstatten.

LG
Michael
Autor: Thorsten (Gast)
Datum: 02.01.2005 18:40

Hallo Leute,

gute Nachrichten: das Teil funktioniert. Ich kann nicht nachvollziehen,
warum es Anfangs nicht ging aber ist auch egal. Also ich hab die
Schaltung aus obigem Link aufgebaut und das File BL010101.hex mit einem
einfachen Programmer in den PIC gebrannt. Wichtig: nur die Fuse WRT
"Flash Program Memory Write Enable" darf gesetzt sein. Dann Spannung
an die Schaltung legen und das Teil an die serielle Schnittstelle
hängen. Nach starten von MPLAB unter "Debugger->Select Tool" einfach
ICD 2 auswählen, unter "Debugger->Settings->Communication" die
richtige Schnittstelle auswählen und nun "Debugger->Download ICD 2
Operting System" wählen. Auf keinen Fall zuerst "Connect" wählen, so
funktioniert es nicht. Nach ein paar Sekunden ist der Upload beendet und
man hat einen vollwertigen In Circuit Debugger 2 :))

Ich habe meine Version noch etwas verändert. Statt des MAX232 habe ich
den ICD an ein FT232-Modul angeschlossen, dieses versorgt den ICD auch
mit +5V. Außerdem erzeuge ich mir mit einem MAX761 (Step-Up-Regler) die
benötigten +12V Programmierspannung. Alles zusammen ist bei mir zur Zeit
noch auf einer Kombination aus Lochrasterplatine, Steckbrett,
PIC16F877-Board und Freiluftverdrahtung aufgebaut. Als Target verwende
ich ein zweites PIC16F877-Board und ich bin echt begeistert davon. Ich
hoffe mal, daß ich nächste Woche meine PIC18Fxxxx bekomme und wenn das
Teil mit diesen Typen auch so perfekt funktioniert, dann werde ich wohl
mal ne Platine machen.

Macht Spaß, mal so eben 180 Euro gespart zu haben. Irgendwie toll, zu
allem gibts irgendwie auch ne billige Variante, die der teuren in
nichts nachsteht. Tja, als nächstes wäre dann ein ICD für die AVRs
fällig, aber das gibts ja auch.

Viel Spaß beim Aufbau!

Gruß
Thorsten
Autor: Wildsau (Gast)
Datum: 26.04.2005 11:35

Hallo Thorsten,

hast Du mittlerweile eine Platine entwickelt?

Hätte auch Interesse.
Autor: Thorsten (Gast)
Datum: 26.04.2005 11:41

Hallo Wildsau,

leider habe ich noch keine Platine, ist immer noch alles auf
Lochraster. Hmm, vielleicht sollte ich langsam mal damit in die Gänge
kommen, es haben schon mehrere Leute Interesse angemeldet :)
Autor: Anton Linebach (Gast)
Datum: 26.04.2005 20:10

falls Schaltplan zu erhalten wäre könnte ich eine Platine mit
Eagle zeichnen

l-hase
Autor: Joachim Storz (Gast)
Datum: 13.05.2005 16:04

Hallo Thorsten/Anton.

Hat von euch schon jemand ne neue Platine gemacht?
Hätte nämlich auch starkes Interesse dran.
Autor: Thorsten (Gast)
Datum: 13.05.2005 16:52

Konnte mich noch nicht aufraffen :) Machs doch auch auf Lochraster...
Autor: Harald Sattler (Gast)
Datum: 18.05.2005 21:42

Hallo Leute!

Schaltbilder und Layouts für den ICD2 nach Lothar´s Design gibt´s
mittlerweile mehrere. Z.B. auch hier:
http://www.harald-sattler.de/html/icd2_usb.htm

Gruß
Harald
_____________
Autor: bernd (Gast)
Datum: 23.05.2005 20:39

Wie funktionnieren die ICD2 Nachbauten mit einem USB-Seriel Adapter?
Klar USB ist zwar schneller als RS232, aber die Responsezeit ist
größer.

Oder kann man auch mit USB-Seriel Adapter ganz normal damit arbeiten?

@Harald:
Planst Du auch noch eine Variante mit FT232?

Grüße,
Bernd
Autor: Thorsten (Gast)
Datum: 23.05.2005 20:52

Ich benutze den Nachbau mit meinem selbstgebauten FT232-Modul,
funktioniert problemlos allerdings nur bis max. COM4. Auch ist die
Geschwindigkeit etwas langsamer als rein RS232, daß macht sich meiner
Meinung nach aber erst beim reinen Debuggen störend bemerkbar.
Autor: Harald Sattler (Gast)
Datum: 23.05.2005 20:54

Hi Bernd,
die vorgestellte Version IST mit dem FT232 aufgebaut.
Ich habe keinen Vergleich, was die Geschwindigkeit angeht, aber man
kann damit arbeiten.
Bedenke, dass der FT232 lediglich ein RS232-USB-Umsetzer ist, die
GEschwindigkeit ist also wohl eher RS232-mäßig.

Gruß
Harald
______________
Autor: bernd (Gast)
Datum: 23.05.2005 21:42

@ Harald:
"Bedenke, dass der FT232 lediglich ein RS232-USB-Umsetzer ist, die
GEschwindigkeit ist also wohl eher RS232-mäßig."

Das Problem bei USB ist, dass die Reaktionszeit (Anforderung<->Antwort)
bei USB immer > 2ms ist. Da ist ein alter COMPort fixer.

Ich war vorhin auf Deiner Seite, aber eine USB-Variante habe ich nicht
gesehen. Hast Du einen direkten Link?

@Thorsten:
"...beim reinen Debuggen störend bemerkbar..."
Ich wollte die ICD2 eigenlich nur wegen dem Debuggen haben. Was meinst
Du mit störend?

Wie lange braucht man den um einen PIC18 mit 128k zu Programmieren?

Grüße,
Bernd
Autor: Thorsten (Gast)
Datum: 23.05.2005 21:51

Mit störend meine ich, daß man das Gefühl hat es könnte ruhig etwas
schneller gehen besonders wenn man viele Register anzeigen möchte. Es
läßt sich aber auf jeden Fall damit arbeiten, zumal das Teil fast nix
kostet.

Eine Geschwindigkeitsangabe kann ich bei Gelegenheit mal machen, hab
das Teil gerade nicht hier. Fakt ist aber, daß es DEUTLICH schneller
mit RS232 geht.
Autor: Harald Sattler (Gast)
Datum: 23.05.2005 22:05

Hi Bernd!

>Ich war vorhin auf Deiner Seite, aber eine USB-Variante habe ich
nicht
>gesehen. Hast Du einen direkten Link?
der Link aus meinem ersten Posting führt direkt auf die ICD-USB-Seite.
Ich schwöre, da ist ein FT232 USB-RS232-Umsetzer drin :-)
Hier nochmal: http://www.harald-sattler.de/html/icd2_usb.htm

Bitte mal das Schaltbild anschauen (durch Click auf das Bild kommt der
Plan in voller Auflösung).
Und alternativ die Fotos... vor allem das untere von der Kupferseite.
Der schwarze Klecks oben in der Mitte ist der Ft232.

Gruß
Harald
Autor: bernd (Gast)
Datum: 23.05.2005 22:37
Dateianhang: Re__Problem_with_Bitbang_mode_on_some_computers.eml (22,8 KB, 525 Downloads)

"Ich schwöre, da ist ein FT232 USB-RS232-Umsetzer drin :-)"
OK, dann hab ich wohl auf den falschen Seiten geguckt.

Ich würde aber noch zwei 47pF Kondensatoren zwischen USB-Connector und
27R Widerständen einbauen.

Siehe auch hier
http://home.arcor.de/bernhard.michelis/Documentation.zip
auf Seite 43 "Schematic"

oder im Attachment.

Grüße,
Bernd
Autor: Harald Sattler (Gast)
Datum: 23.05.2005 23:29

@Bernd
werde ich bei nächster Gelegenheit machen, danke für den Tipp.

(Bei mir läuft´s aber immerhin, auch an USB 2.0-Anschlüssen).

Gruß
Harald
Autor: bernd (Gast)
Datum: 24.05.2005 09:12

@Harald:
Ich habe gerade nochmal über die Schaltung geschaut. Ist es eigentlich
möglich (ich kenne mich nur mit dem D2XX Treiber aus) mehrere FT232 an
einen Rechner anzuschließen und auseinanderzuhalten, wenn man kein
externes EEPROM verwendet?

Ich könnte mir vorstellen, dass viele Leute die FTxxx Chips auch in
ihren Schaltungen einsetzen (so wie ich). Und da sollte es meines
Wissens nach ohne EEPROM zu Konflikten kommen.

Grüße,
Bernd
Autor: Harald Sattler (Gast)
Datum: 24.05.2005 20:39

@Bernd
Mhmm... da kuckst du hier: Seite 4 des Datenblatts des FT232BM
"Multiple Device Support without EEPROM.
When no EEPROM (or a blank or invalid
EEPROM) is attached to the device, the FT232BM
no longer gives a serial number as part of its
USB descriptor. This allows multiple devices to
be simultaneously connected to the same PC.
However, we still highly recommend that EEPROM
is used, as without serial numbers a device can
only be identi&#64257;ed by which hub port in the USB tree
it is connected to which can change if the end user
re-plugs the device into a different port."

Wie das genau geht, liest du aber bitte selbst nach ;-))

...
Habe ich euch eigentlich schon erzählt, dass ich diesen ICD2
ausschließlich anhand des Designs von Lothar Stolz NACHGEBAUT habe und
ansonsten keinerlei Aktivitäten mit den verwendeten Chips und somit
auch kein KnowHow in Sachen USB-Innereien habe? Nein? Mist, habe ich
dann wohl vergessen... steht aber auf meiner Homepage ;-))
Will sagen: ich helfe gerne, wenn ich mich irgendwo auskenne, aber
Datenblätter lesen muss jeder selbst machen. In diesem Sinne... und
nicht sauer sein, gell... :-)

...und wech...
Harald
Autor: bernd (Gast)
Datum: 24.05.2005 21:37

@Harald:

War ja auch nicht so gemein.

Sorry!
Autor: Harald Sattler (Gast)
Datum: 24.05.2005 22:16

@Bernd

Du kennst aber die Bedeutung von Smileys, oder?

Ich bin weder sauer noch eingeschnappt, weil du mich nach dem FT232
gefragt hast.

Und wenn ich das Forum hier so lese, scheint ihr mir auch nicht die
Sorte Jungs zu sein, die lieber andere Googeln lassen.
Da ich das Datenblatt des FT232 sowieso schon gesaugt hatte, habe ich
halt reingeschaut und gefunden was du suchtest. Kein Problem soweit.

Aber ich wollte verhindern, dass der Eindruck aufkommt, ich hätte USB
"drauf" und könnte alle Fragen dazu aus dem Bauch (oder Kopf)
beantworten. Da seid ihr (oder sind Einzelne aus eurem Board) schon
deutlich weiter.
So, ich hoffe, ich konnte das klarstellen.

Was mich noch interessieren würde:
In diesem Thread haben mehrere Poster nach einem Layout gefragt, einer
hat sogar angeboten, bei vorhandenem Schaltbild ein Layout zu machen.
Deshalb hatet ich mich überhaupt erst eingemischt, denn die Arbeit ist
ja schon gemacht.
Baut denn jetzt einer von euch das Dingen nach?

Gruß
Harald
Autor: Thorsten (Gast)
Datum: 25.05.2005 08:34

Also wie gesagt, ic hab das zur Zeit auf ner Lochraster laufen. So wie
ich zeit habe, werde ich mich an das Layout machen. Ich wollte vor
allem auch noch mal drüber nachdenken, wie man das Teil auch für kleine
Target-VCC tauglich machen kann. Manche PICs laufen ja schon ab 2V und
da wären dann Pegelwandler notwendig.
Autor: Steffen (Gast)
Datum: 25.05.2005 09:07

@Harald
Als einfache Lösung reicht die Minnimalvariante nach Lothar Stolz mit
Sicherheit aus. Sie hat aber auch ein paar Nachteile:

- Debuggen nur bei 5V-Target möglich
- feste Programmierspannung (Vpp)
- durch USB leicht verzögerte Datenübertragung

Unter http://icd2clone.narod.ru/ habe ich einen Clone gefunden, der mit
Fets als Level-Shifter arbeitet. Die Variante wollte ich schon länger
mal so ähnlich mit FTDI-Chip aufbauen, bin aber noch nicht dazu
gekommen.

Bei Olimex gibt es übrigens einen ICD2-Clone für umgerechnet rund
60,-€.
Autor: Harald Sattler (Gast)
Datum: 25.05.2005 18:58

@Steffen
ok, das sind Argumente, die (momentan) für mich keine Relevanz haben.
Ich musste nur ein paar moderne 5V-PICs programmieren, was das
Stolz-Teil tut, mein oller ICD1-Clone nicht.

Das hätte ich sicher auch mit dem einen oder anderen Billig-Programmer
fertig bekommen (ich gebe zu, das habe ich sogar versucht, bin aber
jämmerlich gescheitert :-) aber da ich den ICD2 schon immer mal
nachbauen wollte (ich habe das Thema halbherzig seit jetzt über einem
JAhr verfolgt), passte jetzt alles zusammen.

Verstehe ich dich richtig? Der Olimex-CLone ist ein 1:1-Clone, der all
die oben beschriebenen Nachteile nicht hat?
DAnn sind 60€ wohl gerechtfertigt.

Harald
Autor: Steffen (Gast)
Datum: 26.05.2005 08:01

Hallo Harald,

ja der Olimex-Clone ist ein vollwertiger ICD2. Hier gibt es auch die
komplette Originalschaltung
-->http://www.nebadje.org/archive/ICD2_DOC.pdf

Klar, als Programmer ist das Stolz-Teil völlig ausreichend. Der Clone
des ICD1 kann übrigens mit der Software von CCS (www.pic-c.com) auch
alle PICs programmieren. Funktioniert auch mit FTDI-Chip an USB
ausgezeichnet (im Gegensatz zur Original Microchip-Firmware).
Autor: Harald Sattler (Gast)
Datum: 26.05.2005 11:16

Danke für die Tipps, alle zu spät ;-))

Die PDF ist schön gemacht und hat einige Hintergrundinfos
zusammengetragen, die man sich in den Foren sonst mühsam zusammensuchen
muss. Kannte ich noch nicht, trotz intensiver Sucherei.
Autor: Sebastian W. (Gast)
Datum: 12.07.2005 16:35

Hallo

Brauche ich wenn ich einen 16F876A verwende nicht einen anderen
Bootloader?

Wo kriege ich den(Links bitte)?

Sebastian
Autor: Jordan (Gast)
Datum: 12.07.2005 18:32
Dateianhang: ICD661.hex (28,4 KB, 771 Downloads)

Ich hab mir da ding anno neulich auch mit nem 16F876A
aufgebaut. Ich benutze den Bootloader in Anhang.
Autor: Sebastian W. (Gast)
Datum: 13.07.2005 18:27

Noch ne Frage, hat mal jemand den 100%igen ICD Clone nachgebaut?

Wenn ja wie programmiere ich den USB controller? Was für Hardware
brauche ich welche Software,... hab bisher nen 0815 Brenner gehabt und
na ja, wenn schon denn schon, oder?

ist der CY7C64613

Sebastian
Autor: Tim L. (Gast)
Datum: 21.07.2005 13:16

Hallo,

ich hab mir den ICD2 von http://www.stolz.de.be/ nachgebaut.
Leider gibt MPLAB 7.20 folgende Fehlermeldung aus:
Connecting to MPLAB ICD 2
ICD0021: Unable to connect with MPLAB ICD 2
MPLAB ICD 2 Ready

Als Bootloader verwende ich "ICD661.hex"

Wenn ich aus MPLAB heraus verbinden will,hab ich an der Sub D 9 Buchse
an Pin 4 und 7 einen Flankenwechsel von high zu low. An den anderen Pins
passiert nix weiter.
Wo könnte der Fehler sein?
Autor: Sebastian W. (Gast)
Datum: 22.07.2005 23:08

Hallo

Das Projekt http://www.nebadje.org/archive/ICD2_DOC.pdf ist sehr gut
denke ich aber verwndet eben einen USB Controller der schwierig zu
beschaffen ist wie auch andere eher exotische Bauteile.

Kennt jemanden einen anderen 100% igen clone der weniger aufwendig ist
und bei dem ich problemlos alle Komponenten so beschaffen kann?

mfg

Sebastian
Autor: Thorsten (Gast)
Datum: 27.07.2005 13:05

Das Projekt ist interessant, nur wie funktioniert dieser USB-Controller?
Benötigt der keine Firmware oder ist die da schon werkseitig integriert?
Irgendwie werde ich nicht so ganz schlau daraus.

Ich will unbedingt eine echte USB-Lösung bauen. Das mit dem FT232 ist
ja ganz nett, nur bei größeren Programmen dauert der Datentransfer doch
recht lange. Sind halt die gleichen Probleme wie bei den ISP-Teilen für
AVRs, die mit FT232 an RS232 betrieben werden: es werden nur kleine
Datenpakete übertragen.
Autor: tomtom (Gast)
Datum: 05.01.2006 21:51

Hallo ich habe genau das gleiche Problem wie Tim L. Ich habe aber
mittlerweile die MPLAB Version v7.30. Hat jemand eine Ahnung was da
jetzt der unterschied ist, zwischen MPLAB 6 und MPLAB 7. Hat
möglicherweise Microchip, einen Riegel vor die nachbauten geschoben?

mfg
tomtom
Autor: Tim L. (Gast)
Datum: 06.01.2006 08:04

Hallo,

nach rumprobieren habe ich das ICD2 auch mit MPLAB 7.20 zum laufen
gebracht. Es sollte auch mit V7.30 laufen.
Überprüf erstmal die COM Einstellungen in MPLAB und in der
Systemsteurung. Die sollten übereinstimmen. Dann die Verbindung vom
ICD2 zum µC checken. Wichtig ist auch, dass du im Code das
Configuration Bit für Inline Debuging setzt.
Autor: Eugen (Gast)
Datum: 02.02.2006 18:11

an alle Clone besitzer funktioniert denn nun so ein clone genau wie das
priginal und kannn man mit dem denn auch debuggen??? wenn ja dann werde
ich mir auch einen aufbauen. falls aber nicht, dann nehm wirds wohl ein
sprut brenner werden

gruß Eugen
Autor: Tim L. (Gast)
Datum: 02.02.2006 19:02

Also meiner funktioniert jetzt wie gesagt.
Ich finde die Debugging Geschwindigkeit nur etwas langsam und nutze den
Debugger deswegen nur in Ausnahmefällen.
Autor: tomtom (Gast)
Datum: 02.02.2006 19:49

Leider hab ich den USB teil nicht zum laufen gebracht. Ich habe dann den
USB Chip  rausgeworfen und betreibe den ICD2 Clone über RS232, das klapt
sehr gut. Ist nur ein bischen langsam.
Autor: Herbert (Gast)
Datum: 11.02.2006 01:11

Hi zusammen!
Ich habe Haralds Lösung nachgebaut, der ICD2 wird wenn an USB
angesteckt auch noch als USB-RS232-Konverter erkannt, das wars dann
aber auch schon. Einerseits sollte man ja mit dem Poti die
Prog-Spannung einstellen können und andererseits sollte man ja auch
eine Kommunikation zwischen ICD2 und PC herstellen können, ohne ein
Target dran zu haben.
Was muss ich tun, damit ich die Prog-Spannung einstellen kann? Bei mir
kommen bei der Prog-Spg am Stecker nur 0,05V raus...
Leider funzt auch die Kommunikation nicht richtig (Einstellung COM3,
19200Bd, sowohl in der Systemsteuerung als auch im MPLAB) - ich
verwende MPLAB Ver 7.30...

Hat jemand einen Tip für mich? Bitte um Info

Danke
Herbert
Autor: tomtom (Gast)
Datum: 11.02.2006 09:53
Dateianhang: ICD2.JPG (164,5 KB, 1168 Downloads)
preview image for ICD2.JPG

Hallo Herbert,
ähnlich Probleme hatte ich auch. Wie schon oben gesagt habe ich den
USB-Teil rausgeworfen, da dieser keinen geschwindigkeitsvorteil bietet.
Es läuft am ende ja doch alles über rs232. Ich habe also einen MAX232
vorgeschaltet und das läuft einwandfrei.
Man kann aber nur zwischen COM1 und COM2 wählen, alle anderen COM's
werden nicht unterstützt, auch wen diese in MPLAB angezeigt werden. Die
Programmierspannung läst sich direkt am Vpp pin des Target-Steckers
messen, während der Programmierung. Leichter ist es, wenn man in MPLAB,
in den einstellungen (Settings) im Registerblatt "Power" nachschaut.
Hier wird die eingestellte Spannung angezeigt wenn man auf den Button
"Update" klickt. Das funktioniert auch ohne Target, eine
funktionierende Verbindung zum ICD2 muß man aber schon haben.
Eine verbindung zum ICD2-Clone läst sich auch ohne Target herstellen
und die Spannungsmessung fuktioniert auch, aber es wird während des
Connect- vorgangs eine fehlermeldung ausgegeben.
Autor: Michael (Gast)
Datum: 18.02.2006 12:56

Ich möchte mir gerade diesen ICD2 Clone nachbauen:
http://www.nebadje.org/archive/ICD2_DOC.pdf

Hat das schon irgendjemand gemacht? Welche Erfahrungen habt ihr
gemacht?

Leider sind nur die Gerber Files verfügbar? Oder hab ich da auch was
übersehen? Ich finde nämliche leider nicht den Gleichrichter B1 in der
BOM. Es soll ein Gleichrichter im SOP6 Gehäuse sein, keine Ahnung :-(
Wenn es Eagle Files oder so geben würde, könnte man ja einfach schnell
das Package ändern.


Gruß
michael
Autor: Berni (Gast)
Datum: 17.03.2006 22:02

Hallo Leute,

hätte jemand von euch Interesse daran, mit mir den BL010101.hex
bootloader auf einen 18F4550 (und ähnliche) mit USB-Schnittstelle
umzuschreiben? Das hätte den Vorteil, dass die RS232 zwischen FT232 und
dem PIC16F87X wegfallen würde. Wer sich damit auskennt kann sich bei mir
melden. Schalplan und Layout für diese Schaltung wären schon soweit,
dass nur mehr die Ports den Programmierleitungen zugewießen werden
müssen.

mfG
Berni
Autor: Steffen (Gast)
Datum: 17.03.2006 22:19

Das würde dir wohl so gut wie nichts nützen. Der Bootloader ist
eigentlich zweitrangig. Man müsste die komplette Firmware auf den
18F4550 umschreiben und das jedes Mal, wenn Microchip ein neues Update
herausbringt.

Dann kannst Du dir gleich eine eigene Software schreiben. der
Hauptvorteil des ICD2, die Kompatibilität zu MPLAB wäre damit aber
dahin.
Autor: Berni (Gast)
Datum: 18.03.2006 10:36

Das mit der Firmware ist mir bekannt und man müsste im 18F4550 eine
Funktion implementieren, welche selbst am Mikrocontroller jedes Update
von 16F876 auf 18F4550 umcodiert. Das wäre dann noch die zweite
Herausforderung neben dem MPLAB kompatieblen Bootloader. Eine
Kompatibiltät des Programmierers mit MPLAB ist für mich persönlich das
primäre Ziel, denn ich möchte auch den Debug Modus verwenden.
Autor: tomtom (Gast)
Datum: 18.03.2006 16:04

Das hört sich tatsächlich nach einer SEHR GROSSEN herausforderung an.
Ich würde sagen das der aufwand die Firmware automatisch umzucodieren
grösser ist, als eine eigene neue Firmware zu schreiben, da der Hexcode
des 16F876 aus mehreren gründen, überhaupt nicht Kompatibel zu dem des
18F4550 ist. Da wäre schonmal die vollkommen andere Programm- und
Datenspeicherstruktur und die dadurch ander Adressierung. Man müsste
nahezu jeden einzelnen Befehl umwandeln. Selbst wenn man den Original
Sourcecode hätte, gäbe das erhebliche Probleme. Wenn es überhaupt
möglich ist, bleibt die frage ob sich der Aufwand wirklich lohnt.
Autor: Berni (Gast)
Datum: 18.03.2006 16:43

Die Unterschiede in den beiden Architekturen sind mir sehr wohl bekannt
und dass der Aufwand bei weitem größer sein wird, als einfach einen
ICD2 Clone nachzubauen, den es schon gibt.

Eine erste Idee bestand darin, auf dem 18F4550/2550 einen 16F877/876 zu
simulieren, d.h mit allen SFR-Registern des 16F und diese dann in die
zur Laufzeit in einem Timerinterrupt in die richtigen SFR's des 18F
umzuarbeiten. Einzelne Befehle vom 14Bit-Core des 16F auf die
16Bit-Core des 18F während des Booloads umzurechnen dürfte nicht das
Problem sein. Schlimmer könnte es mit der gesamten Funktion aussehen,
da z.B der 18F aufgrund des USB's vorraussichtlich mit einer höheren
Frequenz arbeiten wird als der 16F im ICD2 und das könnte
Timingprobleme beim Programmieren und Debugger mit sich bringen usw.

Falls jemand Ahnung hat, WIE MPLAB mit dem ICD2 kommuniziert (sprich
Protokoll), wäre mir das eine willkommene Hilfe um einen Ansatz für
meinen USB-Bootloader zu finden.

Berni
Autor: Steffen (Gast)
Datum: 18.03.2006 21:23

Wenn man den 18F4550 mit 20MHz betreibern würde, dann wäre es durch aus
denkbar die Software kompatibel zu portieren. So unterschiedlich ist
die Struktur nun auch nicht. Umgekehrt wäre es unmöglich aber so rum
kein Thema.

Aber ich bleibe dabei, was bringt der ganze Aufwand? Bringen würde es
nur etwas, wenn man das Protokoll des USB-Treibers kennen würde. Dann
währe es aber einfacher, einen 16F877 mit dem Original USB-Chip zu
verwenden. Da gibt es nix umzucodieren. einfach zusammenbraten und
fertig. Die Schaltung ist ja kein geheimnis mehr. Für rund 60,-€ gibt
es übrigens einen fertigen, zum Original 100%-ig kompatiblen Clone bei
Olimex.

Die USB-RS232 Variante is eh ne Krücke in Bezug auf Geschwindigkeit,
auch wenn ich selbst eine Variante entworfen und in Betrieb genommen
habe. Zum Debuggen verwende ich ihn eh selten und zum Programmieren ist
er OK.

MfG
Steffen

PS: Ich hatte eigentlich mal vor einen ICD auf Grundlage der FTDI-Chips
ohne eigenen Mikrocontroller zu basteln. Wäre kein Thema gewesen und es
hätten sich auch beachtliche Geschwindigkeiten bei reiner
Softwaresteuerung realisieren lassen aber Microchip rückt ja die
Spezifikationen der ICD-Schnittstelle (außer vom 16F876) nicht raus.
Autor: Ingo (Gast)
Datum: 06.04.2006 21:05

habe folgendes problem
icd1 nachbau, mplap 5.0, pic 16f877 -->funktioniert

mit pic 16f877A funktioniert nur der selbstest also praktisch nix

hilft hier nur ein icd2 oder gibt es noch ander möglichkeiten das
system mit den neueren PICs der A serie zu betreiben?

danke i.g
Autor: Dieter Werner (dds5)
Datum: 06.04.2006 21:42

Ein update auf 'ne neuere Version MPLAB könnte hilfreich sein.
Derzeit ist 7.3irgendwas aktuell, sind aber etwa 30MB download.

Dieter
Autor: Dieter Werner (dds5)
Datum: 06.04.2006 21:55

Sorry, war leider ein Schnellschuss :-(.

Version 7.xx kennt den ICD1 nicht mehr, da braucht man 'nen ICD2 für
.... Grrrr.

Als Krösus mit ICE2000 übersieht man da leicht mal was ;-).
Autor: Derya Yolcubal (Gast)
Datum: 02.05.2006 22:08

Ich benutze MPLAB V 7.31. unter der ICD2 Verzeichniss sind zwei
Dateien:

ICD2_4550_BOOT_0180.BIN
ICD2_4550_OS_0100.BIN

Sind das die Firmware programme für den 18F4550 Chip ?
Hat jemand die Schaltbilder für den ICD2 programmer mit dem 4550 Chip ?
Danke für die Antwort.
Autor: tomtom (Gast)
Datum: 03.05.2006 19:37

Ich möchte bezweifeln dass die Firma, die den ICD2 clone mit dem 18F4550
herstellt, den schaltplan dafür rausrückt ;-). Hier aber schon mal der
link zu dieser Brasilianischen Firma :
http://www.labtools.com.br/index.asp?area=07&i...
Bei dem ICD2 clone ist der 18F4550 aber nur ein preisgünstiger Ersatz
für den CY7C64613, des Originals von Microchip. Als zentrales Bauteil
fungiert weiterhin der 16F877A. Es wäre aber interessant heraus zu
finden wie die das gemacht haben. Das könnte ziemliche
Geschwindigkeitsvorteile bringen, da der 4550, parallel an den 877
angebunden ist und nicht über den emulierten COM-Port. Vielleicht hat
ja mal jemand Langeweile und probiert es aus.
Es gibt auch eine Diskusion, im EDA board zu dem Thema.
Autor: Derya Yolcubal (Gast)
Datum: 03.05.2006 22:03
Dateianhang: icd4550.gif (159,4 KB, 1481 Downloads)
preview image for icd4550.gif

Das folgende schaltbild habe ich in den foren gefunden. Weiss aber nicht
ob es funtioniert. Muss mal ausprobiert werden. Schaut es doch mal an
und sagt einige Kommentare dazu.
Autor: Derya Yolcubal (Gast)
Datum: 03.05.2006 23:58

Hallo nochmal,
Da hat jemand den PMLAB auf linux geschieben. Die adresse:

http://piklab.sourceforge.net/

Es sind auch Quelldateien vohanden. Und das schöne ist das dieses
programm mit IDC2, Pickit1 und Pickit1 arbeitet. Da kann man sehen wie
man mit dem ICD2 komuniziert. Mann muss sich aber in c++ gut auskennen.
Autor: Anton Keller (Gast)
Datum: 17.07.2006 14:26

Hallo!

Hat schon mal jemand den ICD2 Clone von Lothar Stolz im Zusammenspiel
mit piklab ausprobiert?
Funktioniert das genauso wie mit dem originalen von Microchip?
Ich frage nur, weil der Clone ja einen 'virtuellen' COMPort benutzt
(FT232BM).
Autor: PICcer (Gast)
Datum: 30.08.2006 13:19

Hallo,

hier ist der Beitrag aus dem EDA Board:
http://www.edaboard.com/ftopic161641-0-asc-0.html

Darin wird ein ICD2 mit 18F4550 realisiert wurde.
Es gibt in diesem mega langen Beitrag viele verschiedene Designs und
das ganze ist durch die länge des Threads kaum überschaubar.
Nun meine Frage:
Hat schon jemand eine Version des ICD2 mit 18F4550 aufgebaut und kann
was über die Debugging Geschwindigkeit sagen? Es handelt sich ja um
einen vollwertigen USB Debugger und keinem mit FT232 Chip.
Autor: Matthias (Gast)
Datum: 13.09.2006 11:34

Hallo alle zusammen,

ich habe ich eine ICD2 von www.Stolz.be.de nachgebaut und dabei den
Ft232BL mit einen 93LC46 EEPROM aufgebaut. Der Treiber 2154 wurde
korrekt installiert und funktionierte.

Die Kommunikation über den FT232 lief auch (RX/TX gebrückt mit
Hyperterminal), aber MPLAB 7.31 konnte sich nicht verbinden. NAch
einigen schlaflosen Nächten konnte ich das Problem lösen indem ich
einfach den EEPROM mit MProg2.8 erstmalig beschrieben habe. Dabei habe
ich nur die mA-Angabe auf 500 verändert, die ID s aber beibehalten und
schon hat es funktioniert....

Vielleicht hilft das ja jemanden....

Gruß
MAtthias
Autor: Thorsten (Gast)
Datum: 13.09.2006 18:19

Hi!

Nach langer Zeit melde ich mich hier auch mal wieder, denn ich bin
jetzt endlich mal dazu gekommen, eine Platine zu entwickeln. Dabei
dachte ich mir, den FT232BM mit seiner doch sehr umfangreichen
Beschaltung durch den neuen FT232RL zu ersetzen. Doch leider habe ich
mit dem 232RL nur Probleme. Nicht nur bei meinem ICD2 sondern auch noch
bei 2 anderen Projekten. Speziell beim ICD2 ist es so, dass er von MPLAB
nur einmal erkannt wird. Wenn ich MPLAB beende und es später neu starte,
wird der ICD2 nicht erkannt. Es ist erst ein Rechnerneustart
erforderlich. Die neuste MPLAB-Version (v7.40) erkennt den ICD2
überhaupt nicht, ältere Versionen als v7.10 erkennen ihn manchmal, und
dann aber auch nur, wenn der zugehörige COM-Port bis max. COM4 geht.

Alles sehr seltsam und ich würde das Problem so spontan mal auf den
FT232RL und dessen Treiber schieben. Mir ist aufgefallen, dass die
Probleme bei den anderen zwei Projekten genau dann auftreten, wenn ich
den FT232RL mit MProg 2.8a beschreibe. Wenn ich den Baustein quasi
jungfräulich benutze, funktioniert es besser.
Autor: Schoasch (Gast)
Datum: 13.09.2006 18:44

HAst du den ICD auch immer abgemeldet? Ich glaube ich habe einmal von
solchen Problemen gelesen. Und da war es glaube ich der nicht
abgemeldet ICD.
Autor: Thorsten (Gast)
Datum: 13.09.2006 18:48

Sorry, aber wie meldet man ihn ab?
Autor: Thorsten (Gast)
Datum: 14.09.2006 17:38

Habe nochmal rumgesucht und -gelesen. Es wurde berichtet (u. a. auf
forum.microchip.com), dass MPLAB Probleme damit hat, wenn die
COM-Reihenfolge Lücken aufweist, also z. B. COM1, COM2 und COM4. Wenn
man jetzt COM4 einstellt, will MPLAB COM3 öffnen und dies führt
zwangsläufig zu Problemen. Benutzt man dagegen COM2, funktioniert es.
Dies habe ich auch in der Tat beobachtet. Nur klappte es halt immer nur
beim ersten mal.

Ich habe jetzt mal auf meinem Notebook das neuste MPLAB installiert und
in der Systemsteuerung die COM-Reihenfolge lückenlos gestaltet. Und
siehe da, es funktioniert perfekt.

Vielleicht hilft das ja jemandem.
Autor: PLCP (Gast)
Datum: 25.09.2006 17:53

Ich habe festgestellt, dass es sehr oft deshalb nicht ein zweites Mal
geht, weil die IDE beim Wechseln des Debuggers z.B. in d. Simulator
danach von selbst die ICD2 auf USB umstellt. Deshalb immer
Debugger/Settings überprüfen und auf COM stellen und nochmal CONNECT.
Es stimmt auch, dass es nicht geht, wenn die COMs eine Lücke
aufweisen.
Wer z.B. COM1 und COM2 in Hardware hat muss für die virtuelle COM mit
FT232RL COM3 konfigurieren, COM4 geht nicht.
Ausserdem habe ich festgestellt, dass es über V24 immer gleich langsam
geht, egal ob man 19200 oder 57600 wählt, auch mit FT232RL ist das
egal.
Autor: Thorsten (Gast)
Datum: 25.09.2006 18:02

> Ich habe festgestellt, dass es sehr oft deshalb nicht ein
> zweites Mal geht, weil die IDE beim Wechseln des Debuggers
> z.B. in d. Simulator danach von selbst die ICD2 auf USB
> umstellt.

Stimmt, daher sollte man "Autoconnect" deaktivieren!

> Ausserdem habe ich festgestellt, dass es über V24 immer
> gleich langsam geht, egal ob man 19200 oder 57600 wählt,
> auch mit FT232RL ist das egal.

Ist mir auch aufgefallen, betrifft aber nur die VCPs. Normale serielle
Schnittstellen sind bei 57k6 deutlich schneller; zumindest bei mir :)
Autor: Markus_8051 (Gast)
Datum: 28.09.2006 10:45

@Harald: Ich weiß nicht, ob Du hier noch mitliest. Ich habe auch Deine
Schaltung vom ICD2 mit USB-Anschluß nachgebaut. (Allerdings auf eigener
Platine, wo ich das Hühnerfutter wieder in SMD realisiert habe)

@Alle: Da ich den ICD2 sowohl in der Firma als auch zu Hause benutze,
und einige Kollegen von mir ebenso, haben wir ihn hier direkt vier mal
aufgebaut, leider mit unterschiedlichem Erfolg:

Zunächst die Gemeinsamkeiten:
Die ICD2 sind alle mit einem 16F876A bestückt. Zusammen mit dem
modifizierten Bootlader für den A-Typ hat das auch prima geklappt. Wir
arbeiten alle mit MPLab 7.30. Der FTDI hat kein Konfig-EEPROM
angeschlossen.

Folgende Konfigurationen haben wir getestet:
- Windows 2000, FTDI-Treiber ver.2154, ICD2 als COM4 wobei COM3 frei
ist: So läuft es bei mir in der Firma schon seit einem halben Jahr ohne
Probleme.

- WindowsXP, FTDI-Treiber 2154, ICD2 als COM4 wobei COM3 wieder frei
ist: funktioniert nicht !!! Leider habe ich Euren Vorschlag, die
COM-Ports fortlaufend zu nummerieren, erst gerade gelesen. Das werde
ich nachher zu Hause noch testen.

Gruß,
Markus_8051
Autor: Gerhard Burger (geri)
Datum: 28.09.2006 11:00

Hallo zusammen

Diesen ICD2-Nachbau fine ich auch sehr interessant. In diesem Fall wird
der PIC18F4550 eingesetzt.

http://www.wselektronik.at/WS/index.php?option=com...

Ganz unten kann man auch den Schaltplan und Stückliste downloaden

Beste Grüsse

Geri
Autor: Harald Sattler (Gast)
Datum: 28.09.2006 20:45

@Markus
Hi Markus, ja ich lasse mich wecken, wenn einer hier was postet, aber
ihr habt mich längst alle abgehängt ;-)
Sprich, der letzte konstruktive Beitrag meinerseits war das
Bereitstellen des 2154-Treibers auf meiner HP.
Ich habe auch zwischenzeitlich nichts mit dem ICD2 oder PICs gemacht...
keine Zeit :-(

Aber wie gesagt, ich lese mit.
Gruß
Harald
Autor: Thorsten (Gast)
Datum: 28.09.2006 21:27

> Ganz unten kann man auch den Schaltplan und Stückliste
> downloaden

Die Firmware für den PIC18F4550 ist aber nicht erhältlich, oder habe
ich da was übersehen?
Autor: Gerhard Burger (geri)
Datum: 28.09.2006 21:47

Hallo Thorsten

Die Firmware findet man mit ein wenig Suchen im iNet:)

Beste Grüssse

Geri
Autor: Star Keeper (starkeeper)
Datum: 27.10.2006 23:08

Hi,
hat sich da nun mal einer die Mühe gemacht und ein Eagle-Layout zum
ätzen erstellt?
Oder hat sogar jemand die Schaltung fertig und kann was über den speed
beim debuggen sagen? Habe den Nachbau von Harald Sattler gebstalt und
der ist zum Debuggen kaum zu gebrauchen weil er so lahm ist. Ich hätte
da gerne so ein realtime debuggen wie bei Freescale :)

Gruß starkeeper