Forum: Mikrocontroller und Digitale Elektronik PIC16F1503 Debugging und andere Dinge.


von Christian S. (chrischa)


Lesenswert?

Hallo,

ich habe den im Titel genannten Chip und würde gern debuggen, was laut 
Microchip funktionieren sollte. Der Chip ist auf einem OLIMEX P14 und 
ich nutze als Programmer/Debugger das PICkit 3. Als 
"Entwicklungsumgebung" habe ich MPLAB IDE X.

Leider bekomme ich es nicht hin, dass ich irgendetwas debuggen kann. 
Bekomme immer den Hinweis das meine Config-Bits falsch sind
1
 
2
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_ON & BOREN_OFF);
3
4
__CONFIG(WRT_OFF & STVREN_OFF & LVP_OFF);

d.h. allgemein dieser Fehler:
1
 The target device is not ready for debugging. Please check your configuration bit settings and program the device before proceeding.

Wäre echt toll wenn Ihr mir irgendwie helfen könntet. - Da ich gerne 
etwas mit SPI machen würde, ist Debugging ein wichtiges Feature auf das 
ich nur sehr ungern verzichten würde...

Vielen Dank schon mal :-)
Christian

PS: Solltet ihr zufällig schon mal SPI mit diesem oder ähnlichem Chip 
gemacht haben, würde ich mich auch über Codebeispiele/Codeschnipsel 
freuen...

von Christian S. (chrischa)


Lesenswert?

Hat denn generell schon mal jemand mit diesem chip gearbeitet/ SPI 
gemacht etc.?

von Der Rächer der Transitormorde (Gast)


Lesenswert?

Christian Schramm schrieb:
> Leider bekomme ich es nicht hin, dass ich irgendetwas debuggen kann.
> Bekomme immer den Hinweis das meine Config-Bits falsch sind

Welcher Compiler? Schon mal gegoogelt z.B:

16F1503 config bit example?



> Hat denn generell schon mal jemand mit diesem chip gearbeitet/ SPI
> gemacht etc.?

Nö aber so sehr unterscheiden sich die Pics dann doch nicht.

von Chris B. (dekatz)


Lesenswert?

Der 16F1503 benötigt (wahrscheinlich - habe jetzt nicht alles 
durchforstet) einen "Debug header":

Zitat:
Header Information
Some 8-, 14- and 18-pin devices use small header boards with a special 
MCU for debugging. This special MCU has extra pins for PICkit 3 
communication and therefore allows the use of all pins on the part for 
the application. The header board is not used or needed for programming. 
However, when debugging these devices the header must be used. See the 
"Header Specification" document below or see a list of current devices 
that use headers here.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en538769

von Martin S. (drunkenmunky)


Lesenswert?

Zitat:
External debug header (coming soon) is needed for debug support


Also den Header gibt's noch nicht mal...

Wenn es nur für privat zuhause ist, nimm doch ein PIC16F1823 oder 
ähnliches. Für den benötigst du keinen Debug Header, ist schneller und 
hat auch noch nen Uart.

von Joachim .. (joachim_01)


Angehängte Dateien:

Lesenswert?

Ich hab mal mit nem MCP4922 und nem '595 Schieberegister an nem 18F97J60 
rumgespielt. Die Vorgehensweise ist eigentlich ziemlich einfach... 
Header einbinden, Pins konfigurieren und der Funktion übergeben; den 
Rest macht der PIC. Allerdings hatte ich mit zwei 
hintereinandergeschalteten Schieberegistern Probleme, ich mußte für 2x 
8bit ne Denkpause einfügen, denn irgendwie kam da der eingebaute 
Bitbanger im PIC nicht mit.
Ich hatte den Compiler von Hitech(?) verwendet, C18 sollte aber bis auf 
den Header genau gleich sein.

Der Code ist nur proof of concept, bitte also nicht hauen.

von John (Gast)


Lesenswert?

Teilenummer : AC244051  - PIC16F1509-ICE Processor Extension Pak

http://www.microchipdirect.com/productsearch.aspx?keywords=AC244051

von Christian S. (chrischa)


Lesenswert?

Martin S. schrieb:
> External debug header (coming soon) is needed for debug support
>
>
> Also den Header gibt's noch nicht mal...
>
> Wenn es nur für privat zuhause ist, nimm doch ein PIC16F1823 oder
> ähnliches. Für den benötigst du keinen Debug Header, ist schneller und
> hat auch noch nen Uart.

Jo, habe schon gemerkt, dass ich mir damit ein Ei gelegt habe und werde 
denke ich jetzt den pic16f1823 oder den pic16f610 nehmen... Allerdings 
wäre es schon cool wenn ich mein SPI Programm auch auf dem 1503 zum 
laufen bekommen würde.


An alle anderen: Danke für die vielen Antworten...
das mit dem Header selbst programmieren - ich werde es mal probieren =) 
- habe sowas noch nie gemacht. Bei problemen melde ich mich bei dir. ^^
Wenn ich auf dem 1503 debuggen will wird mir nichts anderes übrig 
bleiben... Sollte ich zu einem erfolgreichen Ergebnis kommen, werde ich 
es hier posten, damit die "Nachwelt" auch was davon hat =)

Noch eine Frage ist bei mir aufgetaucht: wisst Ihr ob es eine 
Möglichkeit gibt vom PC irgend etwas auf SPI zu schicken? Oder besser 
gesagt: könnt ihr mir was gutes empfehlen? - habe schon verschiedene 
Möglichkeiten gefunden:
unter anderem diesen Dongle hier für USB zu SPI/I²C: 
http://www.codemercs.com/iow56dg/ taugt der was? schon irgend jemand 
zufällig Erfahrungen?
Kann ich im Linux dann einfach die Karte als seriellen output definieren 
und da "Daten" drauf geben?

Vielen Dank schon mal wieder für eure Mühen =)

EDIT: SPI abschnitt angepasst und grobe Rechtschreibfehler behoben =)

von Der Rächer der Transitormorde (Gast)


Lesenswert?

http://www.ftdichip.com/Support/SoftwareExamples/MPSSE.htm

Die Chips sind weit verbreitet und m. E. sehr gut

von Joachim .. (joachim_01)


Lesenswert?

> wisst Ihr ob es eine Möglichkeit gibt vom PC irgend etwas auf SPI zu schicken?
Das selber zu schreiben ist nicht wirklich schwierig. Du mußt bloß ne 
Leitung hoch- und runterschalten ("takten") und synchron dazu die Bits 
auf der anderen Leitung setzen (MOSI). Das geht sogar am PC mit der CTS 
und RTS-Leitung. Im nächsten Lernschritt kannste dann das gefüllte 
Register deines Devices auf DTR (MISO) einlesen. Am uC, ohne dieses 
Seriell-Overhead-Gedöns gehts noch mal ne Ecke einfacher (obwohl's für 
die Express Edition genug Beispiele für die Serielle Schnittstelle 
gibt).
Just do it.

von Edson (Gast)


Lesenswert?

Der Rächer der Transitormorde schrieb:
> Nö aber so sehr unterscheiden sich die Pics dann doch nicht.

Doch, das tun sie mitunter und sollen das sogar. Jeder PIC ist ein 
Spezialist und kann sehr spezifische Eigenschaften haben, was sich in 
unterschiedlicher "Bedienung" niederschlagen kann. Also erst nachdenken, 
dann schreiben.

von Christian S. (chrischa)


Lesenswert?

Joachim ... schrieb:
>> wisst Ihr ob es eine Möglichkeit gibt vom PC irgend etwas auf SPI zu schicken?
> Das selber zu schreiben ist nicht wirklich schwierig. Du mußt bloß ne
> Leitung hoch- und runterschalten ("takten") und synchron dazu die Bits
> auf der anderen Leitung setzen (MOSI). Das geht sogar am PC mit der CTS
> und RTS-Leitung. Im nächsten Lernschritt kannste dann das gefüllte
> Register deines Devices auf DTR (MISO) einlesen. Am uC, ohne dieses
> Seriell-Overhead-Gedöns gehts noch mal ne Ecke einfacher (obwohl's für
> die Express Edition genug Beispiele für die Serielle Schnittstelle
> gibt).
> Just do it.

Schlussfolgere ich daraus richtig, dass ich dafür gar kein extra Gerät 
brauche, sondern nur auf RS232 Flanken "programmieren" kann? wichtig ist 
ja eigentlich nur dass es Taktsynchron ist, oder?
Geht das ganze auch mit einem usb-to-RS232? Ich dachte aber der RS232 
ist asynchron!?

von Bernd Wiegmann (Gast)


Lesenswert?

Hast du eine Lösung gefunden mit dem 16f1503 zu debuggen? Ich habe auch 
ein Gerät hier mit dem Controller und ich kann es programmieren aber 
beim debuggen bekomme ich auch immer den Fehler dass die configuration 
bits nicht in Ordnung sind.

Mir ist auch noch nicht so ganz klar warum so ein Header Board Sinn 
macht. Es sollen dabei beim Controller weniger Pins benutzt werden, aber 
bei der ISCP Schnittstelle zum PIC werden doch die gleichen verwendet 
wie zum Programmieren, oder habe ich das falsch gelesen?

Bernd

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Bernd Wiegmann schrieb:
> Ich habe auch
> ein Gerät hier mit dem Controller und ich kann es programmieren aber
> beim debuggen bekomme ich auch immer den Fehler dass die configuration
> bits nicht in Ordnung sind.

Wenn es einen Debug Header gibt dann braucht man den um die internen 
Debug Möglichkeiten zu nutzen.

Das macht aber nur Sinn wenn es unbedingt dieser oder jener Chip sein 
muss (meist aus Kostengründen in Massenprodukten) bei denen In-Curcuit 
debugging nötig ist. Alle anderen Fälle werden durch die Vielfalt von 
anderen Pics abgedeckt.

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.