MPLAB Software Übertragung auf einen uC die PIC Familie

Gast #4983815
Lesenswert?

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ß
Gast #4983834
Lesenswert?

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.
#4984061
Lesenswert?

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.
Gast #4984661
Lesenswert?

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!
Gast #4984709
Lesenswert?

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?
Gast #4985005
Lesenswert?

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.
Angehängte Dateien:
#4985061
Lesenswert?

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.
#4985082
Lesenswert?

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.
Gast #4985582
Lesenswert?

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.
#4985665
Lesenswert?

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.
Gast #4985674
Lesenswert?

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.
Gast #4985687
Lesenswert?

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
Gast #4985705
Lesenswert?

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...
Angehängte Dateien:
#4985707
Lesenswert?

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.
#4985795
Lesenswert?

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.
#4985857
Lesenswert?

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.
#4986245
Lesenswert?

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.
Gast #4986580
Lesenswert?

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.
Gast #4987751
Lesenswert?

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?
Gast #4988410
Lesenswert?

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?
Gast #4988453
Lesenswert?

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
Gast #4991444
Lesenswert?

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ß
Gast #4992007
Lesenswert?

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?
Gast #4992472
Lesenswert?

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
#4992980
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren