version 0.1 :
11 juin 2017
rev ......
Le PIC
16(F) ou (L)1847 :
en connectique Dip18
Utilisé avec Fosc Interne =8Mhz ( sans PLL)
Available RAM: 1008 [bytes], Available ROM: 8192 [bytes])
Pinout
Hardware :
Lire les mots de configuration , MCU ID et
User ID. PIC16L1847
Datasheet DS41453C-page 47 (para 4.5)
Zone Utilisateur :
4.5 User ID
Four memory locations (8000h-8003h) are designated
as ID locations where the user can store checksum or
other code identification numbers. These locations are
readable and writable during normal execution.
Zone USER ID Locations 8000h..8003h:
Zone utilisateur accessible en Lecture ou Ecriture
permettant d' y enregistrer soit un code CRC checksum de controle
du fichier HEX application
soit un Numero d'Identification
USER ID location 8000h=FF3F
USER ID location 8001h=FF3F
USER ID location 8002h=FF3F
USER ID location 8003h=FF3F
ATTENTION :
Le mot de 14 bits ne permettra pas de stocker un Ascii
>3F dans le LSB du mot !
Numero Identification de Circuit et Indice
de Revision
Datasheet DS41453C-page 48 (para 4.7)
4.6 Device ID and Revision ID
The memory location 8006h is where the Device ID and
Revision ID are stored. The upper nine bits hold the
Device ID. The lower five bits hold the Revision ID.
Dans ce mot de 14 bits ,
Le Numero d'identification du circuit utilise les 9 bits de poids
fort
et l ' indice de revision les 4 bits LSB restant
La lecture se faisant en 2 fois un octet (8 bits) , il faut une
petite manip pour RECADRER ces infos
avec des decalages à gauche et à droite. pour reloger le tout
dans une variable (kl mot de donnée 16 bits)
k=(PROG_DATA_HI <<3) + (PROG_DATA_LO>>5
) ;
voir details dans le code C
ID location 8006h :
DEVICE ID =00A5 soit 10100101
ID Revision = 02 soit 00000010
PIC16LF1847 01 0100 101 (DEVICE (8:0) => 0xA5
PIC16F1847 01 0100 100 (DEVICE (8:0) => 0xA4
Configuration Bits
Datasshhet page 110 (para 11.5)
11.5 User ID, Device ID and
Configuration Word Access
Instead of accessing program memory or EEPROM
data memory, the User IDs, Device ID/Revision ID and
Configuration Words can be accessed when CFGS = 1
in the EECON1 register. This is the region that would be pointed
to by PC<15> = 1,
but not all addresses are accessible.
Les mots de configuration ,peuvent etre accessible , en dehors de
la zone classique EEPROM,
si le bit CFGS est mis à 1 , dans le registre EECON1
Mais TOUS ne sont pas accessibles en ecriture .. ou meme pas du
tout / ou reservés: ex 8004h, 8005h..
ID location 8007h :
Word Config1 =39E4 soit 00111001 11100100
ID location 8008h :
Word Config2 =1EFF
soit apres masquage des bits inutiles, car mot de 14 bits , et
certains bits non affectés *
16 03 soit 00010110 00000011
Detail des bits Mots de configuration
Etat visuele Pickit 2 apres relecture programme du PIC
et resultat dans fichier *Hex exporté.
Pickit2 Apres relecture du fichier contenu dans le PIC via la touche "Raed Device + export file" en bas à droite, On peut voir : En haut à gauche : User ID = P AUL en haut à droite :, les 2 mots de config Word 1 et Word 2: 39E4 et 1603 et la zone relue en debut de programme via la fonction mikroC FLASH_Read(adresse) |
![]() |
ON peut bien sur relire/verifier les mots de la zone programme
avec le bit CFGS=0
avec la bibliotheque MikroE Flash et la fonction FLASH_Read(adresse)
Ex:Lecture des 16 premiers mots programme
Adresse: 0000 -> 2A54
Adresse: 0001 -> 3FFF
Adresse: 0002 -> 3FFF
Adresse: 0003 -> 0023
Adresse: 0004 -> 189E
Adresse: 0005 -> 2808
Adresse: 0006 -> 0000
Adresse: 0007 -> 2803
Adresse: 0008 -> 0024
Adresse: 0009 -> 0826
Adresse: 000A -> 0023
dans le *.HEX , recupéré,capturé via relecture avec Pickit2 :
Relecture_16F1847_test_IDlocation.hex
Le Programme .. en debut
et en fond de fichier :
- config Bits
- User ID
:020000040000FA
:10000000542AFF3FFF3F23009E18082800000328C2
:100010002400260823009A00080022001D179D16C0
:100020009D171E1423009F1020009E0121000D1516
:10003000080012001E00F003031D1928F103031D20
:100040001928080022006C082000A00009302200B6
:100050006C0203183E282000200823009100920122
... etc ..
:10E1C000FF00FF00FF00FF00FF00FF00FF00FF0057
:10E1D000FF00FF00FF00FF00FF00FF00FF00FF0047
:10E1E000FF00FF00FF00FF00FF00FF00FF00FF0037
:10E1F000FF00FF00FF00FF00FF00FF00FF00FF0027
:020000040001F9
:04000E00E439FF1EB4
<----- E439 => 39E4 et FF1E -> 1EFF -> apres masquage
=> 1603
:020000040001F9
:080000005000412055204C2066
<---- 50 00 41 20 55 20 4C 20 66 => P A U L
:00000001FF
Display sur le terminal RS232 :
fichier Relecture_16F1847_test_IDlocation.hex
Le projet MikroC :
16F1847_test_ID_Locations.zip
source MikroC:
16F1847_test_ID_Locations_170608.c