Forum: Mikrocontroller und Digitale Elektronik ICD2-Nachbau von Harald Sattler


von Geri (Gast)


Lesenswert?

Hallo zusammen

Ich habe mir den ICD2, den Harald Sattler auf seiner Webseite
freundlicherweise zur Verfügung stellt nachgebaut. Das Gerät
funktioniert inzwischen auch, obwohl ich noch nicht ganz zufrieden mit
der Performance bin (Probleme habe ich aber auch, MPLAb laufend
abschmiert, - was aber meiner Meinung nach nicht an der Hardware liegt
sondern an MPLAb. Insbesondere das Debugging geht exrem langsam mit
57600 Baud. Nun habe ich mal die Original-ICD2 (Dose) von Microchip
geöffnet und gesehen, dass sich das Original vom Clone nicht stark
unterscheidet. Die Kommunikation über USB funktioniert auch über einen
Chip von Cypress. Ein Unterschied bei den Geräten liegt allerdings
daran, dass das Original in MPLAB direkt über USB kommuniziert und der
Clone den FTDI scheinbar nur als RS232 verwendet - also unter MPLAB
eine COM-Port eigestellt wird.

Nun, habt ihr vielleicht eine Idee, wie man die Performance des
ICD2-Nachbaus steigern kann, damit man beim Debugging nicht einschläft?
Besteht vielleicht auch die Möglichkeit, die Kommunikation direkt über
USB durchzuführen? Dankbar wäre ich auch für Hinweise was man machen
kann, damit ich nicht jedes mal den Rechner neu starten muss, wenn
MPLAB (version 7.10.00.00) den ICD2-Clone nicht findet.

Beste Grüsse und vielen Dank für Eure Hinweise
Geri

von Schoasch (Gast)


Lesenswert?

Jetz soll ja angeblich eine neue Version heruskommen bzw ist schon
heraussen, die die USB-Schnittstelle des PIC18F4550 verwendet. Somit
würde das ganze dann auch schneller gehen... Ich werd mal schauen ob
ich den link noch finden kann.

von Geri (Gast)


Lesenswert?

Hallo Schoasch

Ah, interessante, danke für die Info. Wenn du hier interessante Infos
hast, dann bin ich wirklich sehr daran interessiert.
Hast du aber vielleicht auch eine Idee wie man die aktuelle Verison
vielleicht auf Trab bringt?:)

Das blöde ist, dass mir ein Freund extra ein neues Layout als
SMD-Version mit einfachem Gehäuse-Einbau erstellt hat und trotz Vorlage
von Harald doch noch einiges an Aufwand notwendig war...hm. Ist das
vielleicht nun wertlos...

Beste Grüsse
Geri

von Steffen (Gast)


Lesenswert?

An der Version mit 18F4550 wäre ich ebenfalls interessiert. Aber macht
euch nicht zu große Hoffnungen in Bezug auf die Geschwindigkeit. Der
On-Chip Debugger läuft mit dem Takt des Prozessors, die Daten werden im
Prinzip von einem Programm auf dem PIC von diesem selbst gelesen und
über das ICD2 an den PC gesendet. Je mehr Daten bei jedem Halt des
Prozessors ausgelesen werden müssen, um so langsamer ist das Ganze.
Also alle nicht benötigten Watch-Windows schließen. Das kann die Sache
schon deutlich beschleunigen.

Na ja, wenn dann noch das Nadelöhr Com-Port mit 57600 Baud
dazwischenkommt muss man aber wirklich aufpassen, dass man
zwischenzeitlich nicht einschläft.

von Geri (Gast)


Lesenswert?

Hallo zusammen

Ich bin nun auch etwas schlauer geworden. Der ICD2 mit dem PIC18F4550
nutzt das paralelle PORTD des PIC zum Datenaustausch. Die Kommunikation
über USB läuft dadurch angeblich um eine vielfaches effizienter ab. Die
USB-Version mit dem PIC18F4550 arbeitet zudem nicht mit einem
COM-Driver sonderen rein über USB (in MPLAB erkennt man das weil die
Programmeinstellungen des ICD nun anstatt dem COM-Port USB gewählt
werden kann).

Ich werde demnächst mal so ein Platinenprojekt in Angriff nehmen. Ein
Teil der Schaltung ist ja von der Version von Harald Sattler fertig.
Nun muss nur mehr der USB-Teil angepasst werden.

Ich hoffe, dann endlich mal ein brauchbares Debug-Tool für den PIC in
den Händen zu halten. Mir kommt vor, Leute die andere Mikrocontroller
wie z.B. den AVR einsetzen haben solche Probleme nicht..

Werde dann darüber berichten.

Beste Grüsse

Geri

von Steffen (Gast)


Lesenswert?

Hallo Geri,

du meinst also den Nachbau, wo der 18F4550 den Cypress-Chip emuliert.
Den habe ich auch schon irgendwo mal gesehen.

Hier
http://www.fernando-heitor.de/component/option,com_smf/Itemid,100/topic,2219.0
findest du ein weiteres Layout von einem Clone, allerdings mit einem
FT232R und ein paar mehr Features wie z.B. die automatische Einstellung
von Vpp.

Falls es was nützt, kannst du es gern verwenden.

MfG
Steffen

von Geri (Gast)


Lesenswert?

Hallo Steffen

Vielen Dank für Deine Infos. Ich werde mir die Schaltung mal
anschauen.

Der ICD2 von dem ich spreche, ist ganz etwas Neues:) Genau, den
Cypress-Chip kann man sich ersparen. Ich denke er wird nicht emuliert.
Das Ganze funktiniert so:

MPLAB <===> PIC18F4550 <== paralleles PortD ==>PIC16F877<==>Schaltung

Der PIC18F4550 kommuniziert mit dem PIC16F877 über 8 Leitungen PORT D,
eine RD, WR, eine Busy, und eine CS-Leitung:) Hoffe, das halbwegs
richtig wiedergegeben zu haben.

Ich bin mir ziemlich sicher. Die Firmware für den PIC18F4550 ist keine
RS232 oder FTDI-Emulation. Wenn man den USB-Treiber verwendet, dann
sieht man ihn auch als Microchip USB Treiber:)

Beste Grüsse
Geri

von Geri (Gast)


Lesenswert?

Hallo Steffen

Ich habe mir mal das Projekte, auf das Dein Link zeigt angeschaut.
Tolle Arbeit! Gratulation!  Es sieht alles sehr aufgeräumt und
übersichtlich aus.

Da ich aber kein Eagle installiert habe, konnte ich den Schaltplan
nicht betrachten. Ich nehme aber an, die Kommunikation zwischen FTDI
und PIC16F977 erfolgt wie in Harald seiner Schaltung.

Freundliche Grüsse

Geri

von Schoasch (Gast)


Lesenswert?

Es tut mir leid, aber ich kann die seite gerade nicht finden.

aber ich glaube ich hab den link in folgendem Forum
gefunden:http://www.edaboard.com/viewforum76-0-40.html

Aber schaut euch einmal den user-guide fürs PICKit2 an.. da wird auch
ein PIC18F2550 benutzt... und wenn ich das richtig verstanden habe,
kann man damit auch Programmieren und debuggen.

@Geri... Ich habe auch den ICD2 von Stolz nachgebaut... doch meiner
Funktioniert auch nicht.... Am anfang hab ich auch riesige Probleme
gehabt beim raufspielen des hex-files auf den PIC. Das wollte weder mit
dem Brenner5 noch mit Galep4 funktionieren.

naja ich werd noch etwas weitersuchen und schauen, dass ich den link
dann noch finde.

mfg Schoasch

von Schoasch (Gast)


Lesenswert?

Hier nun mal ein Link, wo der 4550 den Cypress chip emuliert.
http://www.edaboard.com/viewtopic.php?t=161641&highlight=icd


Aber irgendwo sah ich schon eine Version die nur mit dem 4550 auskam

von Schoasch (Gast)


Lesenswert?

Oho... es gibt gute Neuigkeiten... .. Ich hab zwar den Link nich
gefunden... aber Sprut bringt einen neuen Brenner heraus, der USB
unterstützt. Dazu verwendet er einen PIC18F2550.

http://sprut.de/electronic/pic/projekte/brenner8/index.htm

Man kann damit zwar nicht debuggen.. aber programmieren.

von Geri (Gast)


Lesenswert?

Hallo Schosch


Vielen Dank für Deine Infos. Der Vorteil beim ICD2 ist halt, dass man
direkt aus MPLAB heraus brennen und debuggen kann. Wenn die
Geschwindigkeit dann auch noch passen würde, dann wäre ich recht
glücklich.

Die Infos zum Nachbau habe ich auch genau hier
http://www.edaboard.com/viewforum76-0-40.html

gefunden.

Beste Grüss
Geri

Das bespielen des Bootloaders In-Circit beim ICD2 von Lothar Stolz
schlägt glaube ich deshalb fehl, weil die DTR-Leitung des FTDI die
MCLR-Leitung beinflusst

von Schoasch (Gast)


Lesenswert?

Naja... ich benutze nicht die USB-Version... sondern die normale....
aber ich glaub ich weis welchen fehler ich vl habe. Ich hab vl LVP
deaktiviert.. aber das sollte glaube ich aktiviert sein. mal probieren.

von Manuel Kampert (Gast)


Lesenswert?

Hi,

also ich hab den ICD2 mit 4550 mal nachgebaut... War nicht ganz so
einfach wie ich dachte -  habe ihn aber mittlerweile einigermassen
stabil am laufen.

Geschwindigkeit ist bei mir im Vergleich SerialICD2 SigleStep
(PIC18f252) in MPLAB 7.3? ca. 30 Sekunden - USB ca. 1 Sekunde.

Gruß,
  Manuel

von Geri (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Schoasch

Soviel ich mich erinnern kann muss die Konfiguration folgednermassen
aussehen.

Beste Grüsse
Ger

von Geri (Gast)


Lesenswert?

Hallo Manuel

Das hört sich ja sehr gut an. Vielleicht kannst du uns ja dann mal
mitteilen, wo die Tücken im Nachbau liegen.

Beste Grüsse
Geri

von Schoasch (Gast)


Lesenswert?

@Manuel. Könntest du den Schaltplan oder vl ein Link dazu posten?

@Geri. Danke... ich werds mal damit versuchen.

von Geri (Gast)


Lesenswert?

Hallo Schoasch

Hier findest du mehrere Layouts, wenn du zurück blätterst.

http://www.edaboard.com/viewtopic.php?p=628853#628853

Beste Grüsse
Geri

von Schoasch (Gast)


Lesenswert?

ggg Danke... also war ich eh auf der richtigen seite... mich hatten
nur die pages etwas verwirrt :D

von Manuel Kampert (Gast)


Angehängte Dateien:

Lesenswert?

Hier das Schematic...

von Manuel Kampert (Gast)


Angehängte Dateien:

Lesenswert?

... und das Board file. Leider habe ich keine Möglichkeit gefunden
mehrere Dateien gleichzeitig anzuhängen. Ich schicke auch noch mein Hex
File. Zum Board muss man noch sagen das die JP1 jeweils einen Jumper
benötigen um die "OnBoard" target driver zu aktivieren. Das Board hab
ich geroutet zum testen - deswegen muss noch ein Draht von RB7 nach Vdd
und RA5 muss gegen Vss.

Weiterhin hab ich Vpp von einem 19V netzteil. Wäre natürlich auch
möglich gewesen das ganze über einen 34063 schaltregler von den 5V USB
zu erzeugen.

Ich habe versucht das ganze mit nem max232 und zusätzlicher ChargePump
zu erzeugen - leider ohne erfolg.

Wie gesagt die Schaltung und das Hex file hab ich nicht erfunden
sondern nur aus dem Thread vom EDA board zusammengesucht. Weiterhin
würde ich das ganze noch nicht als komplett sehen - zudem fehlen 128
byte vom code der Microchip Hex files. Diese wurden von Mircochip nicht
veröffentlicht.

Mein Hex-File übergeht weiterhin die Überprüfung ob schon ein OS
vorhanden ist (Sie schlug bei mir fehl). Im Edaboard scheint das zu
funktionieren. Egal ich schieb mein Hex file dazu ihr könnt ja dann
weiterschauen.

Vielleicht kann mir hier ja auch noch jemand sagen wie ich eine LED in
mein Board implementiere die den MCLR des 877 anzeigt?! Das hab ich
nicht herausgefunden...

von Manuel Kampert (Gast)


Angehängte Dateien:

Lesenswert?

Und hier mein Hex file. Ich habe den 4550 und 877 jeweils mit einem 20er
Quarz ausgestattet. Der 4550 läuft jedoch durch PLL mit 48/48 MHZ. Ich
habe das gefühl das die Kommunikation zwischen den zwei Käfern noch
nicht optimal ist. Den µC core des 4550 mit 20 MHZ zu fahren hat jedoch
keinen Erfolg gebracht. Hier gibt es also noch was zum forschen.

Was gibt es noch zu sagen - der 877 darf kein LVP haben - muss also mit
HVP geschrieben werden. Den 4550 hab ich dann mit nem LVP gebrannt -
geht.

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.