Forum: Mikrocontroller und Digitale Elektronik PIC18F DEVICE ID auslesen


von Ingo S. (schicki)


Lesenswert?

Hallo Zusammen,

ich möchte eigentlich nur zu Testzwecken die Device ID und die Rev ID 
des Controllers auslesen. In google habe ich für den C18 Compiler ein 
Beispiel gefunden. Das lässt sich auch compilieren. Allerdings bekomme 
ich bei zwei PIC-Typen immer die gleichen Werte.

Device ID: 0x000  Device Rev: 0x00

Laut den Datenblättern für den PIC18F46K80 und den PIC18F97J60 kann das 
nicht sein.
1
    unsigned char dev1, dev2, rev;
2
    unsigned short devid;
3
 
4
    memcpypgm2ram((void *)&dev1, (rom void *)0x3FFFFE, 1);
5
    memcpypgm2ram((void *)&dev2, (rom void *)0x3FFFFF, 1);
6
    rev = dev1 & 0x01F;
7
    devid = ((unsigned short)dev2 << 3) | (dev1 >> 5);
8
    printf("Device ID: 0x%03X  Device Rev: 0x%02X\r\n", devid, rev);

Hat jemand von Euch diese Daten schon eimal ausgelesen?

Danke und Gruß
Ingo

: Bearbeitet durch User
von Stromverdichter (Gast)


Lesenswert?

kannst du dir mit dem Debugger den Flash ansehen?
Was steht denn in den Adressen 0x3FFFFE - 0x3FFFFF?
Darfst du da so einfach ran, oder musst du vorher noch Interrupts 
sperren?
Ich kenne die PICs noch nicht, denke aber das du hier die Lösung 
findest:
http://www.microchip.com/forums/m508293.aspx

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.