Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
mémoire flash HE
Bonjour
Quelqu'un aurait-il lu/écrit dans cette mémoire ?
Des astuces, des précautions, etc
Par exemple :
la zone HE est située dans les octets L des mots en mémoire programme, mais faut-il appliquer la procédure aux octets L et H de chaque adresse ?
Je suis en train d'y bidouiller, mais un retour d'expérience peut faire gagner du temps (et des cheveux . . .) !
Quelqu'un aurait-il lu/écrit dans cette mémoire ?
Des astuces, des précautions, etc
Par exemple :
la zone HE est située dans les octets L des mots en mémoire programme, mais faut-il appliquer la procédure aux octets L et H de chaque adresse ?
Je suis en train d'y bidouiller, mais un retour d'expérience peut faire gagner du temps (et des cheveux . . .) !
mémoire flash HE
La réponse à ta question est oui, PMADRH/L adresse les mots de la flash, et pour la partie HFE le mot est aussi de 14 bits mais seul l'octet bas est pris en compte. La partie HFE de la flash contient donc 128 octets de data utilisable et se lit/écrit de la même façon que le reste de la flash, sauf que PMDATH n'intervient pas.
Les mots de 14 bits (ou octets HFE) de la flash peuvent être lus un par un en spécifiant leur adresse dans PMADRH/L
Pour l'écriture on doit d'abord effacer un secteur de 32 mots en PMADRH/L, ensuite on remplit le latch de 32 mots , et on écrit.
On peut aussi écrire un ou plusieurs mots (ou octets HFE) dans des cases mémoire déjà effacées d'un secteur de la flash, je n'ai pas vu d'exemple dans le datasheet, c'est pourtant ce qui est intéressant pour la mémoire HFE. On ne charge dans le latch que les octets à modifier, le reste du latch est à 0xFF.
A côté de ça les 2 registres d'adressage indirect 16 bits FSR0 et FSR1 permettent d'accéder en R/W à la ram, et en lecture uniquement à la flash. De cette manière on ne lit que l'octet bas des mots de programme, et les octets de données HFE.
Adressage FSR 16F1719 : en 0x0000 32 banks ram, en 0x2000 ram linéaire 24*80 octets GPR, en 0x8000 octets bas flash et octets HFE. Il n'y a ainsi pas de limite à la taille des tableaux de données en ram/flash et des tableaux de variables en ram.
Les mots de 14 bits (ou octets HFE) de la flash peuvent être lus un par un en spécifiant leur adresse dans PMADRH/L
Pour l'écriture on doit d'abord effacer un secteur de 32 mots en PMADRH/L, ensuite on remplit le latch de 32 mots , et on écrit.
On peut aussi écrire un ou plusieurs mots (ou octets HFE) dans des cases mémoire déjà effacées d'un secteur de la flash, je n'ai pas vu d'exemple dans le datasheet, c'est pourtant ce qui est intéressant pour la mémoire HFE. On ne charge dans le latch que les octets à modifier, le reste du latch est à 0xFF.
A côté de ça les 2 registres d'adressage indirect 16 bits FSR0 et FSR1 permettent d'accéder en R/W à la ram, et en lecture uniquement à la flash. De cette manière on ne lit que l'octet bas des mots de programme, et les octets de données HFE.
Adressage FSR 16F1719 : en 0x0000 32 banks ram, en 0x2000 ram linéaire 24*80 octets GPR, en 0x8000 octets bas flash et octets HFE. Il n'y a ainsi pas de limite à la taille des tableaux de données en ram/flash et des tableaux de variables en ram.
mémoire flash HE
De cette manière on ne lit que l'octet bas des mots de programme,
C'est à ça que je pensais.
Il n'est donc pas nécessaire de lire PMDATH pour que le cycle lecture/effacement/écriture soit correct.
Je vais (essayer de . . .) débugger avec le pickit3, ce sera peut-être plus exact qu'avec le simulateur.
mémoire flash HE
- paulfjujo

Maître- Messages : 3259
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour
suite à un Test similaire ,mais en C sur un 16F
A noter qu'on peut stocker AUSSI un byte dans la partie haute du mot de 14bits
à condition que les datas (MSB) soient < 0x3F
exemple de test sur un 16F1619
stockage en HEF de :
abcdefghijkl0123456789ABCDEFGHIJ@KLMNOPQRSTUVWXYZ-abcdefgh
stockage possible aussi de datas entier 16bits tronqués en 14bits
soit 0 à 16383 ou +-8192
suite à un Test similaire ,mais en C sur un 16F
A noter qu'on peut stocker AUSSI un byte dans la partie haute du mot de 14bits
à condition que les datas (MSB) soient < 0x3F
exemple de test sur un 16F1619
stockage en HEF de :
abcdefghijkl0123456789ABCDEFGHIJ@KLMNOPQRSTUVWXYZ-abcdefgh
stockage possible aussi de datas entier 16bits tronqués en 14bits
soit 0 à 16383 ou +-8192
mémoire flash HE
Oui mais en dehors de l'octet L on n'est plus en HE.
En ratissant large on trouve (un peu) d'info sur l'utilisation du PSECT.
Pour la programmation du 16f1719 le LLM n'explique rien de plus que le contenu de la datasheet mais avec des erreurs.
Mais comme elles sont flagrantes ce n'est pas (trop) gênant. Mais il sait faire des phrases . . .
En ratissant large on trouve (un peu) d'info sur l'utilisation du PSECT.
Pour la programmation du 16f1719 le LLM n'explique rien de plus que le contenu de la datasheet mais avec des erreurs.
Mais comme elles sont flagrantes ce n'est pas (trop) gênant. Mais il sait faire des phrases . . .
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : KOHAI et 6 invités


