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ß
Welchen Controller verse desk Du denn? Genaue Bezeichnung bitte... Grüsse, Tommy.S
Sch... Sollte "verwendest" heißen, nicht "verse desk"... Blöde Autokorrektur...
Also bei meinem MPLAB gibt es sowohl den PIC12LF1501 als auch den PIC12F1501 zur Auswahl. Eventuell hast du ihn einfach übersehen?
Asche auf mein Haupt :) Herzlichen Dank. Bedeutet letztlich auch, dass L/F ungleiche DEVICE IDs haben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.