Forum: Mikrocontroller und Digitale Elektronik PIC: MPLAB Controller Auswahl - L und/oder F


von Martin (Gast)


Lesenswert?

Hallo PICler,

ich habe einen Controller "F", ohne L.
MPLAB bietet zur Auswahl nur die "LF" Version.
Wenn ich diese Auswahl nehme, dann bekomme ich
beim Verbinden mit Debugger die Fehlermeldung "Target Device ID 
(0000022f0)
does not match expected Device ID (00002280)."

Nun, die genauen Nummern können davon abweichen, ich schreibe sie nach
Erinnerung. Aber Target Device ID ist nicht 0x00000000. Für mich sieht
es fast danach aus, dass ich statt "LF" nur "F" hätte nehmen sollen,
was aber nicht in MPLAB Liste gibt. Kann jemand das bestätigen?
Wie löse ich das Problem?

Gruß

von Tommy.S (Gast)


Lesenswert?

Welchen Controller verse desk Du denn? Genaue Bezeichnung bitte...

Grüsse,
Tommy.S

von Tommy.S (Gast)


Lesenswert?

Sch... Sollte "verwendest" heißen, nicht "verse desk"... Blöde 
Autokorrektur...

von Martin (Gast)


Lesenswert?

PIC12F1501 - ich denke, dass Problem ist vom exakten Typ eher 
unabhängig.

von Dominic A. (neo123)


Lesenswert?

Also bei meinem MPLAB gibt es sowohl den PIC12LF1501 als auch den 
PIC12F1501 zur Auswahl. Eventuell hast du ihn einfach übersehen?

von Martin (Gast)


Lesenswert?

Asche auf mein Haupt :) Herzlichen Dank.

Bedeutet letztlich auch, dass L/F ungleiche DEVICE IDs haben.

von Carsten (Gast)


Lesenswert?

Martin schrieb:
> PIC12F1501 - ich denke, dass Problem ist vom exakten Typ eher
> unabhängig.

Naja - Es liegt schon mit am µC...

Das Problem hat aber nichts mit der F bzw. LF Spezifikation zu tun. Das 
Problem ist das der kleine µC gar keine eigene Debug Hardware an Board 
hat. Das bedeutet wenn du einen Programm mit 12F1501 in der Schaltung 
debuggen willst brauchst du zwingend einen Debug Header (um 40 Euro).

Es ist im grunde auch logisch, denn während du debugst sind die drei 
Programmierleitungen ständig belegt und stehen der Schaltung nicht zur 
Verfügung. Damit würden beim 12F1501 nur noch ganze zwei IOs übrig 
bleiben.

Bei größeren µC kann man ja eher die Schalung so entwerfen das die drei 
Leitungen !MCLR, PGD & PGC für nichts anderes benutzt werden... Daher 
haben die neueren µC im großen Gehäuse die Debughardware schon mit auf 
dem DIE.

Um dieses Problem zu umgehen hat Microchip die "debug Header" Entworfen. 
Hierbei handelt es sich im Prinzip um den Prozessor in einem größeren 
Gehäuse. (und natürlich mit Debug Hardware On Chip). Die drei 
Programmierleitungen sind separat nach aussen geführt und die bei 
"normalvarianten" dafür vorgesehenen Pins bleiben voll benutzbar.

Für die kleinere µC ist dies wie schon geschrieben die einzighe 
Möglichkeit zu debuggen. Bei den größeren ist der Debug Optional um auch 
dann Debuggen zu können wenn man die drei Leitungen nicht extra 
freihalten kann.

Der Debug Header den du für deinen µC brauchst ist der AC244051
http://www.microchipdirect.com/ProductSearch.aspx?Keywords=AC244051

Dieser ist nicht nur für den 12F1501 sondern auch für weitere Ähnliche 
µC verwendbar. Ob und welchen Header du brauchst steht im übrigen bei 
der Bausteinauswahl im Fenster: Ist die "debugampel" für deinen 
Programmer auf Grün und steht da "NoHeader" so ist debuggen ohne HEader 
möglich. Hat man eine Version des µC im TQFP Gehäuse kann man die 
Schnittstelle oft auf die sonst unbelegten Pins legen so das man auch 
hier alle PNs benutzen kann auch wenn man im Debugmodus ist.

Steht da eine Typangabe wie Beispielsweise AC244051 findest du direkt 
dahinter in klammern dann noch die Info ob dieser HEader für das 
Debuggen dieses Bausteines nur Optional (Optional) oder zwingend (req.) 
ist.
Da hinter dem Headertyp beim 12F1501 das (req.) gesetzt ist geht leider 
nichts ohne den Header.

Als Alternative zu header könntest du dir den großen Bruder des kleinen 
8Pinners holen der auch ohne Header debugt werden kann. Das ist der 
16F1509. Den dann zum Debuggen mit einem Selbstgebauten Adapter 
benutzen. Du darfst halt nur das im Programm verwenden was der kleine 
auch hat. Und musst manuell noch schauen das du nicht zu viel speicher 
brauchst. Aber vom Prinzip geht das weil die Innereien die bei beiden 
vorhanden sind auch beide gleich sind. Bis halt auf den 
Programmspeicher.

Achja:
Noch einmal zur Device ID:
Die DebugHeader haben eine Andere Device ID als die normalen µC.
Wenn du bei einem µC der nur mit Header entwanzt werden kannst in den 
Debuggingmodus von MPLAB schaltet erwartet MPLAB auch NUR den 
DebugHeader.
Liest der dann die DeviceID vom "normalen" µC erkennt der die nicht an.

Umgekehrt ist das im Übrigen (zumindest bei einigen MPLAB Versionen) 
genauso. Wenn man im normalen Programmiermodus ist und man schließt den 
DebugHeader an wird auch hier ein Fehler gemeldet.

Deinen µC kannst du im Moment also nur "normal" Programmieren. Wenn du 
in den Programmiermodus gehst würde MPLAB deinen µC Problemlos erkennen 
wenn er dir jetzt auch schon eine sinnvolle DeviceId (also kein 0000 
oder 0xffff) zeigt.

Gruß
Carsten

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.