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ß
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?
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?
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.
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?
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.
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 :(
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:> 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?
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
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?
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?
Thomas E. schrieb:> Hatte so ein Problem mal in Verbindung mit PICKit3Erich 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
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.