Autor: Hans vS (Gast) Datum: 23.01.2013 02:01 -------------------------------------------------------------------------------- Hallo! Jetzt beim Zusammenbau scheint sich in sämtliche mir bekannten Zeichnungen von dem Potoyo Clon fehlerhaftes eingeschlichen zu haben. Schwerwiegend scheint mir bis jetzt aber nur, dass der 4066 Ausgangsschalter mit Vpp als Betriebsspannung laufen soll.Das ginge, wenn es sich um die CMOS Variante CD4066 handeln würde, aber die hat vielleicht einen zu hohen Serienwiderstand. Also geht nur HC. Da VPP von dem 877 und 41010 geregelt wird, nehme ich an, dass VPP auch manchmal auf werte bis 5 Volt heruntergefahren wird, je nach Target-IC. Dann würde die 5V1SerienZ-Diode in manchen Zeichnungen aber nicht mehr erlauben, den 4066 "auf" zu schalten. Der HC 4066 wird ideal mit 9V betrieben. 5V sind auch ganz gut, also mit VDD. Kaputt ist ab 10,5V. Angesteuert wird er von VPP über einen Spannungsteiler aus 1k und 4k7.Wahrscheinlich viel Stromverschwendung, einen so niederohmigen Teiler an dieser Stelle. Aber vielleicht liegt es ja doch daran, dass er schnell schalten muß.Egal, Das USB wird schon genug liefern.Die Schutzdiode kann 20mA schlucken, es müsste also gehen.Um sicher zu gehen wird die Höhe der Eingangsspannung durch die 5V1 Z-Diode parallel!!! zum Eingang begrenzt.Vielleicht besser eine 4,7V Diode oder was mit TL431 auf 4 V. Dem Ein und Ausgangssignal ist es egal, wenn 4066 an 5V hängt,weil das ja Analogschalter sind und die Pegel richtig durchkommen, solange sie vorher richtig waren. Ich hab es aber noch nicht ausprobiert. Dass einige CLONS nach anfänglichem Streiken plötzlich unerklärlich funktioniert haben sollen, liesse sich vielleicht mit erfolgreichem Durchbrennen der Analogschalter erkären.(?) Gruss, HvS ------------------------------------------------------------------------------------------------------------------------------- Autor: Hans vS (Gast) Datum: 26.01.2013 19:23 -------------------------------------------------------------------------------- Betreff Alles über die Einstellung der VPP beim Potoyo-Clon. Erst mal vielen Dank für eure viele Vor-Arbeit, ich habe jetzt einen funktionierenden PIC24-Brenner. Dazu möchte ich einige, teils wichtige, Hinweise geben: Vorbemerkung: Ich beziehe mich bei Bauteilnennungen und Nummerierungen auf den Schaltplan im Eagle Format "potoyo2-rev1 USB ICD potoyo.extra.hu", der einen Brenner mit PIC 18f4550 und 16F877A mit dem Target-Schalter-IC 74HC4066 beschreibt, und der auch bei Google (ev. nur im cache) für Bilder noch zu finden ist (ICD2 suchen) Allerdings ist es dann eine jpg-Abbildung des eagle-Entwurfs. Findbar Verlinkt ist er in diesem Thread scheinbar nicht mehr, aber er scheint mir identisch zu sein mit dem als "ICD2_USB.pdf" verlinkten Schaltplan,in dem Post von "tomkotti" vom 14.11.2007 oder von "IckeMuster" vom 26.02.2011. VFerwendet habe ich die beiden HEX-Files aus dem Thread von "Schöbi" vom 16.07.2008 20Uhr19 der mit "ich habe den roten Clone von Andreas gebaut." beginnt. Die "HEX.rar" enthält beim Entzippen zwei eindeutig identifizierbare Hex-Files. (Sie unterscheiden sich von den mir auf meine Anfrage "sag ich nicht" am 18.1.2013 geposteten.Ich habe nicht ausprobiert, ob die sagichnicht-files funktionieren.) Der Treiber für Windows Hardware Anmeldung findet sich im Installationsordner von Micorchip / MPLAB-IDE-wenn man es schon installiert hat- ICD2 drivers oder so ähnlich. Leicht zu finden. Ich gebe auch Informationen, die der Bequemlichkeit und Eindeutigkeit dienen, obwohl sie jeder selbst herausfinden könnte. INFORMATIONEN: 1. Das Reichelt* IC MCP42010 kann als Ersatz für MCP41010 verwendet werden. Es ist die Dual-Version des 41010.DAs Poti 0 in dem 42010 hat dabei denselben Befehlssatz, wie das (einzige) Poti 0 im 41010.Das Poti2 im 42010 wird dabei einfach nicht angesprochen und nicht verwendet. Allerdings hat das IC 14 Pins, passt also nicht in eine fertige Platine. PIN1-4 sind gleich, Pin 5-7 werden nicht angeschlossen (Poti1).PIN8 ist DPOT2 PIN 9 und 10 sind DPOT1. Die Extrapins 11 und 12(-Reset und -shutdown)kommen an VDD (PIN14, also die 5 Volt) Extrapin 13 (serial out) bleibt offen. 2.Das Reichelt* IC MCP41010 bzw.42010 kann Widerstandswerte zwischen 52 Ohm und 10KOhm einstellen.+/- 20% Fehler sind laut Datenblatt möglich, aber wohl nicht zu erwarten. (und im shutdown vielleicht irgendsoeinen Gigaohm-Wert). Die Referenzspannung der MC34064 liegt bei 1,24 Volt.Demzufolge sind bei unveränderter Schaltung Spannungswerte für die VDDICD2 zwischen "ungefähr" 10,523Volt und 15,0129 Volt einstellbar. In dem VPP-Schalter T2 (BC327) gehen davon vielleicht 0,2 Volt verloren.Somit könnte man damit keine PIC24 mit maximal 9V VPP nicht im HV-Modus brennen.(9V max) Allerdings ging es doch, weil der PIC24FKA101 den ich für den Test verwendet habe wohl eine interne 9V Z-Diode enthält und die Spannungsdifferenz am 100-Ohm Widerstand R43 verheizt wurde.Ich glaube aber nicht dass das beim ICD2 so gedacht war.Das ist wohl sozusagen nur die redundante Betriebssicherheit des PIC24-Chips. 3. Es ist zu klären, ob der 16F877 das digitale Poti nur verwendet, um den Wert einzustellen,oder im Zusammenhange mit der VPP-Spannungsmessung auch zu regeln: Wenn man den 10k Wert R5 um ca 20% verringert,durch parallelschalten von 56 kOhm,(im laufenden Betrieb) dann sinkt die VPPSpannung dadurch deutlich: um ca 1Volt. lässt man den Widerstand aber dran und klickt z.B. auf "connect" dann kann man erstaunt feststellen, dass der 877 diesen Spannungsverlust durch eine andere Einstellung des Potis ausgeglichen hat.ES handelt sich also um eine Regelung. (eigentlich eine doppelte Regelung, denn die schnelle Regelung macht ja der 34064 indem er VPP immer so einstellt, dass an DPOTI1 wieder 1,24 Volt anliegen.) Da es sich um eine Regelung handelt, braucht dem 877 nicht vorgeschrieben zu werden, welche Werte für VPP er einstellen soll, sondern die Schaltung mit dem Poti und R5.R6 und R19 muß nur ermöglichen, alle infragekommenden Spannungswerte einzustellen. Das tut die vorliegende Schaltung meines Erachtens noch nicht.---immer vorausgesetzt, dass die Firmware, von der ich nichts verstehe (also die Hex-Files)in Ordnung ist.--- Ausserdem könnte der Spannungsteiler R1-R2 so eingestellt werden, dass der Wert für die ICD2-VPP,also der Rohwert an C3 bzw. an ebendiesem Spannungsteiler genau den Wert beträgt, den der 877 mißt und den MPLAB dann unter "Propgrammer Settinsg Power" anzeigt. Man könnte also noch die Eigenmessung des Clons eichen. Wenn man 1-Prozent -Widerstände verwendet,lohnt das allerdings kaum.Mehr dazu unter meinem Punkt 5c 4.Es ist zu klären, welche VPP-Werte das MPLAB mit dem ICD2 gerne einstellen können möchte: PIC16 oder 18 dürfen glaub ich maximal 13,25V haben. Plus 0,2V Verlust im Schalttransistor T2 13,45V plus maximal 25mA an 100 Ohm R43 macht 15,95 Volt. Chips die mehr als 13,25 dürfen sind mir nicht bekannt. Leider habe ich darüber keine vollständige Tabelle, aber ich glaube das wärs. Mehr, als 16,0 Volt sind also sinnlos.Das wär die Obergrenze, wobei 15 aber auch gut sind. Was die Untergrenze betrifft, soweit man sich nicht auf R43 verlassen will, was man ev. nicht darf, wenn man im "operating range" bleiben will: bei High voltage programming braucht ein PIC24, der mit 1,8Vbetrieben wird VDDplus1,5 also zufällig mindestens 3,3V als VPP. Er nimmt aber auch maximal 9V.Wenn die Regelung bis auf ca 7V runtergeht, sollte das ein guter Kompromiss sein. -Vorausgesetzt es gibt nicht doch noch PICs die weniger dürfen.--- 5.Demzufolge berechne ich die Widerstände für 7 bis 15.5 Volt. Dabei spielen die +/-20% Poti-Toleranzen beim unteren Spannungswert noch eine größere Rolle, als beim oberen.Ich mache eine worst-case-Rechnung: Unter der Verwendung der E12Reihe ergeben sich z.B.folgende Möglichkeiten: z.B.1: R19=1k2 (R19 darf nicht kleiner)R6=13,3 und R5=10K Einstellbereich mindestens 6,0V bis 14,9V z.B.2:R19=3k9 R5=47k R6 nicht bestücken, also unendlich. 6,1-16V einstellbar. z.B.3:liegt in der Mitte zwischen den Extremen: R6=8k2 R19=2k2 und R5=20,00 kohm gibt 7,0-15,3Volt Mindest-Einstellbereich. Ich entscheide mich für Möglichkeit 3. Ergebnis dieses Tests:erst 7,9V, dann 9,75Volt nach einigen "connects". Mit Device PIC24F08KA101. Ist ICD2 verrückt? Jedenfalls wird der Chip erkannt.--- Zumindest kann sie sich jetzt niedriger einstellen, wenn sie will, ich lasse es also so. 5. VDD-Target Probleme: a) Beunruhigend finde ich, dass MPLAB mir meist die 5 Volt VDD auch auf den Target-Pic aufschaltet, wenn ein PIC24 als Device gewählt ist. Der dürfte doch von Rechts wegen dann schon kaputt sein!(Er überstehts zum Glück) MPLAB kann bei dem POTOYO-CLON die VDD-Target abschalten, tut das aber nicht bei jeder Gelegenheit bei der es müßte. Zum Glück konnte ich den Fehler mit einem zusätzlichen 6k8 Widerstand als PULL-UP.Also zwischen 1RA4 (PIN6 des 877) und VDD (Pin 11).Vermutlich enthält der ICD2 von Natur aus einen Pull-up an dieser Stelle und den Programmierern des ICD2 war es deshalb egal ob sie den PORT RA4 auf H oder auf Tristate schalten und sie haben mal das eine, mal das andere getan. (H bewirkt in diesem Falle VDD = 0V also aus.) b)ein Pic24 kann mit 1,8Volt arbeiten, mit der HCT-Eingangsstufe wird er (gemäß meinen Tests) aber nur erkannt, wenn er mit mindestens 2,5 Volt versorgt wird. Auch daran will ich ev. etwas machen. Man könnte eine (wie 74HC126) mit VDD-Target gepowerte Vorstufe aus einem 74AC14-Trigger-Puffer verwenden. Der verbessert die Pegel und wenn der 74HCT125 nur mit 4,5V gepowert wird,überschneiden sich die In und OUT-Pegel grade noch.Das 74AC-Ding hab ich zufällig in der Bastelkiste und es ist so schnell, dass es keinen Einfluss auf das Timing haben dürfte. Noch einfacher wäre,eine von den parallelgeschaltete HC126-Pufferstufen die ja schon mit VDD-Target betrieben werden aus dem Design herauszulösen,sein Tristate auf dauernd geöffnet schaltenalso an VCC-Pin 14 also an VDD-target, und als Eingangsvorstufe zu verwenden. Dafür wird das FAN-out etwas schlechter. Wenn man dafür einen zusätzlichen HC126-Chip verwendet, könnte man dessen Betriebsspannung vielleicht 0,3Volt über VDD-Target legen,so dass die Pegel sich noch besser überschneiden. Zunächst mal probiere ich nichts davon aus, da mir 2,5 V VDD-Target eigentlich niedrig genug sind. c)Wenn ich einen Chip connecten lasse über ICSP und anschließend unter Programmer/settings/Power nachgucke, wie hoch die VPP-Target angeblich war, dann stehen da 9,75 Volt. Klicke ich aber auf Update, dann sind es plötzlich 10,62 Volt, die bei Wiederholung bleiben.Nach Connect wieder 9,75. Das liegt daran, dass bei "Connect" die USB-5V VDD auf etwa 4,6 Volt einbricht, und dass der 877 in diesem Moment die VPP einstellt.--Und dabei nämlich die VDD als 5-Volt-Referenzspannung verwendet.-- Sowas blödes, wo doch der 877 sicherlich selber eine Referenzspannung an Bord hat.Da ist das Eichen der Spannungsteiler (s.o.) natürlich nicht besonders sinnvoll. Da ich das Programm aber nicht umschreiben kann, bleibt nur, die 5-V-Spannung zu stabilisieren. Mit Aufwärts-Abwärts-Regler auf genau 5V wäre natürlich etwas umständlich. Aber man könnte mit einem Serien Regler mit MOSFET-Stellelement die VDD-Spannung auf 4,6 Volt limitieren (was ja auch für PIC24-Pegel bei 1,8V günstig wäre) und dann erst die zum Messen der Spannungen verwendeten Spannungsteiler entsprechend angleichen, dass die Messwerte wieder stimmen.(endlich) Ich habe die 4,6Volt Maßnahme aber noch nicht auf eventuelle Nebenwirkungen geprüft. 6. Ich weise darauf hin, dass die Ausgangsschalter 74HC4066 meines Erachtens nicht mit VPP betrieben oder gesteuert werden dürfen, weil sie nur 10V Vertragen, VPP aber mehr sein kann (und mit D2 ev. zu niedrig). Ich wiederhole der Vollständigkeit halber damit meinen letzten Post.Ich ersetze D2 durch ein Stück Draht und schalte die augelötete Z-Diode Anode an GND und Katode an Pin 13 des IC5 um die Steuerspannung auf 5V zu begrenzen. Das IC 5 versorge ich mit VDD an PIN 14, nicht VPP, wie in einigen Entwürfen zu sehen. 7. Ich sehe dann keine weiteren Einschränkungen bei der ICD2-Funktionalität des Potoyo Clons. viele Grüße HvS Datum: 29.01.2013 00:44 -------------------------------------------------------------------------------- Nachtrag: Habe festgestellt, dass mein Potoyo kein PIC24-LVP-Programmieren kann. Und beim HV Programmieren stellt er sich die Spannung von 9V ungefähr korrekt ein. Die schaltet er bei "Connect" zunächst auf den PIC24 und wieder ab. Dann geht er wieder zurück auf 11Volt in den Ausgangszustand. Leider schaltet er danach noch einmal einen kurzen Augenblick VPP-Target ein. Und gibt damit 11 V auf den Target -Pic. Der überstehts zwar, aber ich möchte noch was dagegen machen. Re: PIC ICD 2 selbstgebaut Autor: Hans vS (Gast) Datum: 29.01.2013 02:57 -------------------------------------------------------------------------------- Das mit den 11Volt ist ein überschwingender Regelungsmechanismus.Ein Kondensator parallel R1 beweist das.Leider mit Nebenwirkungen. Weiter bin ich noch nicht. Gruß, HvS ------------------------------------------------------------------------------------ Das LOWVoltage -programming funktioniert bei mir doch:im DEBUG-Mode(Jumper) Ich habe eine Schottky-Diode eingebaut, die in anderen(!) Schaltplänen als "D2, 1N5819" angegeben ist (nicht die Z-Diode D2) und zwischen Kollektor T2 und Kollektor T3 liegt. Diese verhindert leider, dass die Ausgangsschalter auch von der Low Voltage aufgeschaltet werden können.Dann kann LVP natürlich nicht gehen.Ich bin mit dieser Diode von dem für meine Posts zugrundegelegten "USB ICD2 potyo.extra.hu" -Schaltplan abgewichen, ohne darüber nachzudenken.Es handelt sich bei dieser Diode wohl um ein Residuum aus einem älteren Entwurf. Ausser dass die Schaltung sich bei falscher Firmware (ist zum Glück richtig) durch Kurzschluss der ISP_VDD über den Ausgangstransistor von IC3F selbst zerstören könnte, fällt mir zu der Diode nichts ein, und das verhindert sie auch nicht. Es sei denn, sie wirkt als Schmelzsicherung.Sie verhindert nur LVProgramming durch ISP VPP=VDD im PROG Mode. Gegen die Selbstzerstörungsgefahr empfehle ich den 100 Ohm Widerstand aufzusplitten in einen 100 Ohm Widerstand im Push Zweig und einen im Pull-Zweig. den PUll -Zweig (40mA max) würde ich verstärken, indem ich die unbenutzten IC3a und b parallel schalte zu dem MCLR- Null-Volt-IC3f Man kann diese Diode durch ein Stück Draht ersetzen. Der OUTput-Schalter 4066 hat meiner Ansicht nach den noblen Zweck, dass man im programming mode den ICSP-Stecker in der TArget-Schaltung belassen kann, während man zwischen verschiedenen Programmvarianten wechselt und mal die eine, mal die andere reinbrennt und wieder laufenlässt. Im Programming mode läuft aber auch ohne diese Diode noch kein LVP, weil im LVP-Protokoll steht, dass nach einem kurzen H-puls auf der MCLR-Leitung diese wieder low gefahren wird, und während Low(!) einige initiierungs-Daten durch den 4066 übertragen werden müssen! Wie aber, wenn er bei Low sofort abgeschaltet ist? Auch wenn das nur einige Microsekunden dauert? Das Einschalten durch MCLR=H muß hinsichtlich des Ausgangsschalters eben einfach einig hundert Millisekunden vorhalten. Den Ausgangsschalter in Stellung Program von VPP anzusteuern ist eigentlich bei LVP sowieso sinnlos, weil das zwar nach dem Programmieren das Target abtrennt, aber wenn ich das Target laufen lassen will, dann klicke ich auf "Target Run" und was passiert: MCLR wird auf H gesetzt. Und, oh Schlamassel, mein Ausgangsschalter geht wieder auf. Genau das einzige, was er soll, kann er also nicht: Das unbeeinträchtigte Laufen des TArget ermöglichen. Und in der 5V fürIC5-Version,kann das Debug-Ende des Jumpers gleich an VDD man spart die Z-Diode D2 also ganz.Allerdings käme sie beim HV-Programmieren wieder ins Spiel, denn HV könnte von MCLr= H (Also Target run) dadurch unterschieden werden, dass es mindestens 5 Volt mehr sind. Ich erkenne, dass sie mehr Sinn hatte, als ich dachte, aber jetzt muß sie weg bzw. als parallele Schutzdiode dienen. Wie erkenn ich denn nun, wann das Ding Datenaustausch macht, oder nichts tut? Der einzige Unterschied zwischen Programmieren und nicht programmieren ist, dass beim Programmieren,Auslesen usw. unablässig Clock läuft. Also muß der Tristate von Clock für die Steuerung des Ausgangsschalters herhalten. Oder, wenn man der Firmware nicht traut, ein gleichgerichtetes Clock-Out-Signal. Allerdings fast ohne Verzögerung. "Unablässig" stimmt leider auch nicht, der Programmer darf Pausen machen. (Aber dann ist auch kein Data). CLock-input in den Programmer gibt es beim Programmieren gar nicht. überhaupt nicht.Wahrscheinlich ist das beim Debuggen anders. ---Ich hab es einfach mal ausprobiert: Es geht: Ich habe dazu die Tristate Leitung für Clock (877-PIN 4) an die 4 zusammenhängenden Steueranschlüsse von IC5 74HC4066 angeschlossen(PINS5und6 und 12 und 13 von IC5). Getestet habe ich mit 18F1220 und 24F08KA101 beide werden im HV-Modus erkannt der Pic24 auch im LV-Modus, den P18 ja nicht hat.(?) Der PIc 18lässt sich beschreiben, das Programm wird verifiziert.für den P24 hatte ich noch kein Programm.Aber löschen hat er ohne Beanstandung durchgeführt. In allen drei Fällen führt TARGET-RUN anklicken in MPLAB zum sofortigen Sperren des 4066. Ohne das ist der Zustand am Ende der Datenaustauschvorgänge je nach dem verschieden, aber darauf kommt es dann ja noch nicht an. Ich habe den 4k7 Widerstand am Steuereingang des 4066 entfernt, nur die ZD und den 1K gelassen. Den hänge ich jetzt an den mittleren Pin vom Jumper. An den Debug Pin kommt VDD an den Prog Pin kommt Pin4 des 877.--Allerdings könnten böse Programmierer, die die Firmware umschreiben,die Sache zunichte machen. Was den Regelkreis für VPP betrifft habe ich noch nicht weitergeforscht. Übrigens denke ich, wenn "Target Run" funktionieren soll,dann dürfen die Widerstände von VPP-Target nach Masse nicht allzu niederohmig sein, weil doch der Run nur dann zustande kommt, wenn auf dem Target-Board der Pull Up am Masterclear