Hallo zusammen, ich bin sehr neu beim Programmieren und habe mehrere Probleme :(.. Wie schon oben im Betreff geschrieben ist, muss ich eine Software auf einen anderen uC portieren, die PIC Familie ist. Ich habe einen MPLAB ICD3. Wie muss ich vorgehen, kann mir jemand helfen? Auf ein Steckbrett will ich den uC stecken, soweit ich verstanden habe brauche ich keine Außenbeschaltung. Einfach Versorgungsspannung rein und das Kabel vom ICD3 damit verbinden? aber wie kann ich es verbinden :/ Ich finde leider nichts im Internet. Es wäre sehr lieb, wenn ihr mir auch Seiten empfehlen könntet, wo ich lernen kann. Vielen Dank schonmal.. Gruß
RTFM http://ww1.microchip.com/downloads/en/DeviceDoc/DS-51765C.pdf liegt normalerweise dem ICD3 bei. http://ww1.microchip.com/downloads/en/DeviceDoc/50002081B.pdf Oder das hier zum Vergleich: http://ww1.microchip.com/downloads/en/DeviceDoc/50002010B.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit_3_poster_51792a.pdf >die PIC Familie eine große Familie, geht's etwas genauer ? >soweit ich verstanden habe brauche ich keine Außenbeschaltung fast richtig, also falsch, siehe die Poster PDFs ohne Quarz, 100nF Abblocker an VCC und Pullup an VPP/MCLR ist es eine Garantie zum Misserfolg.
Vielen Dank für die schnelle Antwort friendo! friendo schrieb: > eine große Familie, geht's etwas genauer ? natürlich, es ist der PIC10F202. friendo schrieb: > fast richtig, also falsch, siehe die Poster PDFs hier habe ich leider nicht ganz verstanden :/ wo soll ich gucken? Datenblätter?
friendo schrieb: > ohne Quarz, 100nF Abblocker an VCC und Pullup an VPP/MCLR ist es eine Ich habe gerade gesehen, da steht "do not use greater than 100uF capacitance on Vdd" also ich soll doch nicht benutzen oder meintest du was anders?
100nF ist nicht 100uF
>wo soll ich gucken?
wenn Links anklicken und PDFs laden zu schwer ist, dann lass es lieber
mit den uCs
Pin1= PGD
Pin2= VSS
Pin3= PGC
Pin4= Bleibt frei
Pin5= VCC
Pin6= VPP
Zwischen VCC und VSS 100nf, einen Quarz brauchst du nicht.
>auf einen anderen uC portieren
Du meinst wahrscheinlich kopieren? Portieren wäre das Umschreiben eines
Programms für einen anderen Controller.
uC_anfängerin schrieb: > ich bin sehr neu beim Programmieren Für Anfänger gut geeignet: "spruts PIC-Page", eine deutsche Einführung. Mit jeder Suchmaschine zu finden.
uC_anfängerin schrieb: > Es wäre sehr lieb, wenn ihr mir > auch Seiten empfehlen könntet, wo ich lernen kann. Was lernen? In welcher Sprache willst du was programmieren? Sprache vermutlich Assembler?
:
Bearbeitet durch User
friendo schrieb: > wenn Links anklicken und PDFs laden zu schwer ist, dann lass es lieber > mit den uCs wieso bist du dann so aufgeregt? natürlich habe ich mir die Links angeschaut, aber habe nicht gefunden was du mit 100nF Abblocker gesagt hattest.. Wie ich auch schon oben geschrieben habe, bin noch Anfänger und werde nicht damit jetzt aufhören/aufgeben und danke für deine aufmunternde Worte!
Werner H. schrieb: > Du meinst wahrscheinlich kopieren? Portieren wäre das Umschreiben eines > Programms für einen anderen Controller. Vielen Dank Werner. Die Software ist schon auf einen uC drauf. Und jetzt muss ich die Software auf einen anderen uC (mit Datenflash) Portieren und schauen ob es dort auch funktioniert. Wie wäre es aber mit kopieren?
Dieter K. schrieb: > uC_anfängerin schrieb: >> ich bin sehr neu beim Programmieren > > Für Anfänger gut geeignet: "spruts PIC-Page", eine deutsche Einführung. > Mit jeder Suchmaschine zu finden. Vielen Dank, wirklich sehr hilfreiche Seite..
Volker S. schrieb: > Was lernen? In welcher Sprache willst du was programmieren? > Sprache vermutlich Assembler? Genau, die Sprache Assembler und alles zum Thema Mikrocontroller.
Werner H.
>einen Quarz brauchst du nicht.
ICD3 PDF:
*Target device must be running with an oscillator for the debugger to
function as a debugger.
friendo schrieb: > ICD3 PDF *Target device must be running with an oscillator ..... Schon mal was vom internen Oszillator gehört, da steht nichts von Quarz? Wo würdest du denn bei dem Sechsbeiner einen Quarz "dran machen"? Du solltest das Datenblatt des PIC10F202 lesen bevor du postest.
uC_anfängerin schrieb: > Die Software ist schon auf einen uC drauf. Und jetzt muss ich die > Software auf einen anderen uC (mit Datenflash) Portieren und schauen ob > es dort auch funktioniert. Hallo Anfängerin, Hast du nur den programmierten Controller? Oder hast du auch den Source-Code oder das HEX-File? uC_anfängerin schrieb: > die PIC Familie Die "PIC-Familie" ist sehr groß. Aktuell werden im Produkt-Selector von Microchip 968 PIC-Controller aufgelistet. Hinzu kommen noch die Controller die nicht mehr verfügbar sind. Es wäre sehr hilfreich, wenn die die genaue Bezeichnung der Controller angeben würdest. friendo schrieb: > ICD3 PDF: > *Target device must be running with an oscillator for the debugger to > function as a debugger. Es geht hier um das Programmieren/Auslesen eines PIC-Controllers. Nicht um das Debuggen. Bitte Regeln beachten.
uC_anfängerin schrieb: > Volker S. schrieb: > Was lernen? In welcher Sprache willst du was programmieren? > Sprache vermutlich Assembler? > > Genau, die Sprache Assembler und alles zum Thema Mikrocontroller. Alles zum Thema und dann so einen Winzling wie den 10F202 ;-) Schau mal da: http://www.gooligum.com.au/PIC-tutorials/baseline-PIC-tutorial
uC_anfängerin schrieb: > Wie schon oben im Betreff geschrieben ist, muss ich eine Software auf > einen anderen uC portieren, die PIC Familie ist. Was ist denn der Grund der Portierung? Arbeitest Du in einer Firma oder ist das Hobby? Was ist das für ein Projekt?
friendo schrieb: > ICD3 PDF: > *Target device must be running with an oscillator for the debugger to > function as a debugger. https://www.youtube.com/watch?v=5KT2BJzAwbU
Sprut hat ja tatsächlich auch ein Beispiel für den 10F202.Hast du vermutlich auch schon gesehen electronic/pic/programm/blink_10f/blink_10f.html Die Seite von Sprut ist super, aber leider nicht mehr so ganz aktuell. Es lohnt sich auf jeden Fall ein Blick in die Assembler-Templates für den jeweiligen PIC, die sich im Installationsordner der MCHP IDEs finden lassen sollten... Die Gooligum Tutorials müssten eigentlich auf dem aktuellen Stand sein, und aktuelle Tools verwenden.
John schrieb: > Es wäre sehr hilfreich, wenn die die genaue Bezeichnung der Controller > angeben würdest. Hättest du alles gelesen....10F202 > Es geht hier um das Programmieren/Auslesen eines PIC-Controllers. Nicht > um das Debuggen. Hier geht es offensichtlich ums Programmieren, nicht debuggen. > Bitte Regeln beachten. Statt den Schulmeister zu spielen besser vor dem posten den Treat vollständig lesen.
Werner H. schrieb: > Hättest du alles gelesen....10F202 Es geht um die Portierung des Programms vom PIC10F202 zum PIC10F202?
John schrieb: > Oder hast du auch den Source-Code oder das HEX-File? Ich habe auch den Quellcode. Es wurde als Controller der PIC10F202 im SOT23-6 Gehäuse verwendet. Jetzt muss ich als erstes Typ ändern und die Software auf PIC10F202 DIP-8 zum laufen bringen und gucken ob es soweit geht. Ich habe erst am Donnerstag damit angefangen mich zu beschäftigen. Genauere Informationen kann ich dann erst am Montag wieder geben.
Volker S. schrieb: > Die Gooligum Tutorials müssten eigentlich auf dem aktuellen Stand sein, > und aktuelle Tools verwenden. Vielen dank, schaue mir gleich an :)
Werner H. schrieb: > Hier geht es offensichtlich ums Programmieren, nicht debuggen. Ich hoffe, dass ich genug verständlich erkläre, was mein Problem ist :(
> Ich hoffe, dass ich genug verständlich erkläre, was mein Problem ist :(
Nein, nach wie vor unklar was du eigentlich willst
uC_anfängerin schrieb: > Ich habe auch den Quellcode. Es wurde als Controller der PIC10F202 im > SOT23-6 Gehäuse verwendet. > Jetzt muss ich als erstes Typ ändern und die Software auf PIC10F202 > DIP-8 zum laufen bringen und gucken ob es soweit geht. Da musst Du überhaupt nichts anpassen - die Gehäuseform hat keinerlei Einfluss auf die Programmierung! Der PIC im 8-Pin Gehäuse hat einfach nur zwei Pins mehr, die nichtmal belegt sind. Der Controller ist elektrisch exakt der gleiche.
Werner H. schrieb: > Pin1= PGD > Pin2= VSS > Pin3= PGC > Pin4= Bleibt frei > Pin5= VCC > Pin6= VPP Das ist die Pinbelegung für SOT-23 oder? Für DIP-8 wird dann so aussehen: > Pin5= PGD > Pin7= VSS > Pin4= PGC > Pin3= Bleibt frei > Pin2= VCC > Pin8= VPP stimmts? Werner H. schrieb: > Zwischen VCC und VSS 100nf, einen Quarz brauchst du nicht. und eine dumme frage :/ woher hast du diesen Wert? ich habe inzwischen im Datenblatt nachgeschaut, habe wieder nichts gefunden.
1N 4. schrieb: >> Ich hoffe, dass ich genug verständlich erkläre, was mein Problem > ist :( > > Nein, nach wie vor unklar was du eigentlich willst Sorry, Montag frage ich noch mal richtig nach.
Thomas E. schrieb: > uC_anfängerin schrieb: >> Ich habe auch den Quellcode. Es wurde als Controller der PIC10F202 im >> SOT23-6 Gehäuse verwendet. >> Jetzt muss ich als erstes Typ ändern und die Software auf PIC10F202 >> DIP-8 zum laufen bringen und gucken ob es soweit geht. > > Da musst Du überhaupt nichts anpassen - die Gehäuseform hat keinerlei > Einfluss auf die Programmierung! Der PIC im 8-Pin Gehäuse hat einfach > nur zwei Pins mehr, die nichtmal belegt sind. Der Controller ist > elektrisch exakt der gleiche. Okay, verstehe. Dann muss ich noch mal fragen was ich machen muss.. Falls ich aber den Code auf 10F202 DIP-8 laufen will, muss die Pins so angeschlossen werden: >> Pin5= PGD >> Pin7= VSS >> Pin4= PGC >> Pin3= Bleibt frei >> Pin2= VCC >> Pin8= VPP
uC_anfängerin schrieb: > Ja genau, es geht um ein Projekt. Ja genau, etwas Trollverdächtig für meinen Geschmack.
uC_anfängerin schrieb: > Okay, verstehe. Dann muss ich noch mal fragen was ich machen muss.. > Falls ich aber den Code auf 10F202 DIP-8 laufen will, muss die Pins so > angeschlossen werden: > >>> Pin5= PGD >>> Pin7= VSS >>> Pin4= PGC >>> Pin3= Bleibt frei >>> Pin2= VCC >>> Pin8= VPP siehe Anhang - Auszug aus dem Datenblatt... Rainer S. schrieb: > uC_anfängerin schrieb: >> Ja genau, es geht um ein Projekt. > > Ja genau, etwas Trollverdächtig für meinen Geschmack. 50/50...
uC_anfängerin schrieb: >> Zwischen VCC und VSS 100nf, einen Quarz brauchst du nicht. > > und eine dumme frage :/ woher hast du diesen Wert? ich habe inzwischen > im Datenblatt nachgeschaut, habe wieder nichts gefunden. 100nF (Typ des Kondensators: keramisch) ist der gebräuchliche Standardwert. Wird ganz allgemein bei Digitalschaltungen an jedem Versorgungsspannungs-Paar als sog. "Abblockkondensator"(<-google!) verbaut. Das ist schon so selbstverständlich, daß die Hersteller es oft schon nicht mehr explizit in die Datenblätter schreiben.
Thomas E. schrieb: > Das ist schon so selbstverständlich, daß die Hersteller es oft > schon nicht mehr explizit in die Datenblätter schreiben. Doch, steht im Datenblatt, Kap. 12.4 Timing Parameter Symbology and Load Conditions: > To ensure these oscillator frequency tolerances, VDD and VSS must be > capacitively decoupled as close to the device as possible. 0.1µF and > 0.01µF values in parallel are recommended.
John schrieb: > Es geht um die Portierung des Programms vom PIC10F202 zum PIC10F202? Portierung = umschreiben der Software für eine andere Plattform. Zb von Pic10fxxx auf Attinyxxx oder Pic12xxx usw. Hier in diesem Fall gehts um eine schnöde 1:1 Kopie, lediglich mit anderem Pinout. Nur weil ein ICD3 benutzt wird gehts nicht ums debuggen, mit dem Teil können die Chips auch geproggt werden.
Witkatz :. schrieb: > Doch, steht im Datenblatt, Kap. 12.4 Timing Parameter Symbology and Load > Conditions: >> To ensure these oscillator frequency tolerances, VDD and VSS must be >> capacitively decoupled as close to the device as possible. 0.1µF and >> 0.01µF values in parallel are recommended. Nein, es steht nicht im Datenblatt, daß für den Betrieb des Mikrocontrollers ein 100nF Kondensator parallel zu VDD und VSS erforderlich ist. Dein zitierter Satz sagt übersetzt: "Um diese (weiter oben spezifizierten) Frequenztoleranzen einzuhalten, müssen VDD und VSS kapazitiv so dicht wie möglich am Baustein entkoppelt werden. Es werden 0,1µF und 0,01µF parallelgeschaltet empfohlen" Wenn mir die Präzision der Oszillatorfrequenz egal ist, brauche ich den Rest des Satzes also erst gar nicht zu lesen.
Thomas E. schrieb: > 100nF (Typ des Kondensators: keramisch) ist der gebräuchliche > Standardwert. Wird ganz allgemein bei Digitalschaltungen an jedem > Versorgungsspannungs-Paar als sog. "Abblockkondensator"(<-google!) > verbaut. Das ist schon so selbstverständlich, daß die Hersteller es oft > schon nicht mehr explizit in die Datenblätter schreiben. Ah okay.. Da habe ich doch noch vieles zu lernen. Vielen vielen Dank für Deine ausführlichen und hilfreichen Information.
Hallo nochmal, ich habe richtig hinbekommen, wie die Verbindung mit PIC und ICD3 sein sollte. Jetzt wollte ich noch den PIC brennen. Allerdings bekomme ich Fehlermeldung beim Versuch zu brennen. Nachdem ich Hex File importiert habe, wurde auch erfolgreich geladen. Die Checksum hat sich auch geändert. Danach habe ich den Program Icon geklickt und kommt folgende Fehlermeldung: Programming... The following memory regions failed to program correctly: Program Memory Address: 00000000 Expected Value: 00000025 Received Value: 00000000 Programming failed Ist das vielleicht ein Kommunikationsfehler?
uC_anfängerin schrieb: > Ist das vielleicht ein Kommunikationsfehler? Kann es sein, dass der PIC extern mit Spannung versorgt werden muss?
Hast du auch im Menü "Configure/ select Device" den Pic10F202 ausgewählt?
Dieter K. schrieb: > Kann es sein, dass der PIC extern mit Spannung versorgt werden muss? Ich habe mit Oszi die Versorgungsspannung am Pin 2 gemessen und es kommt schon 5V an. Ob es jetzt extern versorgt werden muss, weiß ich leider nicht. Kann aber mal recherchieren.
Werner H. schrieb: > Hast du auch im Menü "Configure/ select Device" den Pic10F202 > ausgewählt? Ja das hatte ich schon ausgewählt. Sieht wie folgendes aus: Device: PIC10F202 Device Family: ALL
uC_anfängerin schrieb: > ich habe richtig hinbekommen, wie die Verbindung mit PIC und ICD3 sein > sollte. Jetzt wollte ich noch den PIC brennen. Offenbar nicht! Nochmals: http://ww1.microchip.com/downloads/en/DeviceDoc/DS-51765C.pdf
Erich schrieb: > Offenbar nicht! ich habe jetzt neuen drauf und ging beim programmieren einwandfrei aber wenn ich debuggen möchte kommt diese Meldung: ICD3Err0085: The target has invalid calibration data (fff). Aber trotz diesen Fehler könnte ich programmieren. Meinst du es hängt davon ab, dass ich falsch angeschlossen habe?
uC_anfängerin schrieb: > aber wenn ich debuggen möchte kommt diese Meldung: > > ICD3Err0085: The target has invalid calibration data (fff). Aua. Dieser kleine Pic hat keine direkte Debugmöglichkeit. Vgl. http://www.microchip.com/forums/m524002.aspx Vgl. http://www.microchip.com/forums/m958724.aspx Man brauche einen sogenannten "Header" anstelle des Bauteils. Hier den "AC162059" http://www.farnell.com/datasheets/1605550.pdf https://www.digikey.com/product-detail/en/microchip-technology/AC162059/AC162059-ND/1015410 Gruss
Erich schrieb: > Dieser kleine Pic hat keine direkte Debugmöglichkeit Danke auch an dich, es war sehr hilfreich! Dann muss ich erst ohne live Debugging leben :P
Hallo nochmal! ich habe nochmal ne Fehlermeldung, womit ich mich heute die ganze Zeit beschäftigt habe.. Ich habe den Quellcode die eigt zum PIC10f202 geschrieben war, so geändert, dass es auch mit PIC10F322 passt. Da habe ich die Konfigurationen erst angepasst. Soweit habe ich alle Fehlermeldungen behoben habe könnte erfolgreich builden. Nach dem ich mit icd3 angeschlossen habe, und noch nicht über Programmer-> Settings -> Power -> "Power target circuit from MPLAB ICD 3" gewählt habe kommt die Fehlermeldung ICD3Err0045: You must connect to a target device to use MPLAB ICD 3. Wenn ich aber "Power target circuit from MPLAB ICD 3" wähle kommt eine andere Fehlermeldung: ICD3Err0086: Target Device ID (00000000) does not match expected Device ID (00002980). If you experience persistent problems communicating, the ICD 3 test interface can be used to help diagnose the problem. Könnte mir jemand wieder helfen? Wo ist das Problem hier? Bei der Versorgungsspannung? Besten Dank im Voraus Gruß
> Könnte mir jemand wieder helfen? Wo ist das Problem hier? Bei der > Versorgungsspannung? Ja, sehr wahrscheinlich. Zeig mal deinen Aufbau. Wie wird der PIC versorgt wenn nicht vom PICKIT?
1N 4. schrieb: > versorgt wenn nicht vom PICKIT? Doch, es wird vom ICD3 versorgt also nicht extern. So ist der Aufbau: Pin5= PGD Pin7= VSS Pin4= PGC Pin3= Bleibt frei Pin2= VCC Pin8= VPP und am Versorgungsspannung Abblockkondensator. Soll ich ein Foto machen und mitteilen?
Hallo, probiere vielleicht mal, die Einstellung der Versorgungsspannung (Target VCC) auf einen kleineren Wert einzustellen, z.B. statt 5,0V nur 4,0 oder 4,5V. Hatte so ein Problem mal in Verbindung mit PICKit3, evtl. verhält sich ICD3 da ähnlich?
>Zeig mal deinen Aufbau.
Fehlt bisher.
Warum?
Wackelstecker in Steckboard ?
Drahtlängen > 20 cm ?
ICD3 connector - Anschlusskabel, gekreuzt oder 1:1 ?
Gruss
Thomas E. schrieb: > Hatte so ein Problem mal in Verbindung mit PICKit3 Erich schrieb: > Wackelstecker in Steckboard ? Ja, ich habe meinen Fehler gefunden! Damit ich PIC auf einem Steckbrett mit ICD3 anschließe, habe ich die pins von Socket RJ11 verlängert gehabt. Es war da ein schlechter Lötkontakt :/ Vielen dank aber für die Antworten! Gruß
Eine andere Frage (muss ich vllt einen neuen Beitrag im Forum erstellen?): Wenn ich Debugger-> Select tool-> "MPLAB Sim" wähle und mein Projekt simulieren möchte, stürzt der Programm nach paar Zeilen später ab. Was könnte der Grund sein? Benutze MPLAB IDE v8.92 PS: Ich weiß, frage zu viel aber lerne dadurch wirklich sehr vieles :) Freue mich schon auf alle Antworten.. Gruß Anfängerin
MPLAB-IDE is obsolet, da wirst du dich wohl mit MPLAB-X IDE anfreunden müssen. http://www.microchip.com/mplab/mplab-x-ide
Teo D. schrieb: > MPLAB-IDE is obsolet, Aber das Debuggen von ASM-Programmen mit MPLAB SIM geht damit normalerweise viel besser - zumindest für die Controller, die es noch in der alten IDE gibt. Ich habe schon öfter mal versucht, Assemblerprogramme im MPLAB-X Simulator zu debuggen - ist der absolute Krampf! Die IDE ist total unpraktisch, träge und unübersichtlich, vieles geht auch einfach nicht, was im MPLAB 8.x selbstverständlich war, z.B.: - Step Out aus Subroutinen oder ISR, - Variablen im Watch venünftig anzuzeigen (versch.Wortbreite, big oder little endian, Anzeige in gewünschem radix) - im Logic-Analysator Fenster mit 2 Cursorn die Zeit zwischen zwei Ereignissen messen usw.
:
Bearbeitet durch User
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.