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 ---
Forum général sur le langage C !

Modérateur : Jérémy

pre_chargement Eeprom PIC 18F27K42
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#11 Message par satinas » mar. 23 mai 2023 06:13

Bonjour à tous,
C'est pas si mal le C, Temps-x :-)
Un petit programme C qui convertit un fichier HEX en table MPLABX. Il produit un fichier MCH car c'est l'extension que MPLABX ajoute si on en spécifie pas. Le programme ne vérifie pas le fichier hex, il se contente de traiter les lignes data de 16 octets.
Je sais pas si c'est ce que tu voulais, cela m'a amusé de le faire. Il devrait tourner en fenêtre texte sur toutes les versions de Windows vu l'âge du compilateur utilisé.
HexToMch.zip
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

pre_chargement Eeprom PIC 18F27K42
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#12 Message par paulfjujo » mar. 23 mai 2023 09:48

bonjour à tous

Merci ! Satinas ...

OK sous win10 dans une fenetre DOS !
:!!: Attention : avec Norton qui d'office l'efface ..il faut insister et le restaurer ,valider.

Moulinette_HEX_to_Table_MPLABX.jpg


testé OK fichier HEX crée sous MikroC avec editeur Eeprom , mouliné en TABLE assimilable par MPLABX IDE

HEX_to_Table_import_MLPABX_OK.jpg



ensuite sous MPLABX IDE
production
.. set project configuration
.....customize
........ Pickit4
...........Cocher Preserve EEPROM MEMORY ! ===> BAD relecture eeprom => vierge
ou
Décoché Preserve EEPROM MEMORY ! ===> BAD idem ! ...relecture eeprom => vierge

le fait de lire le fichier table (*.MCH) et le transferer dans
Windows EE data memory .. data effectivement vues comme correctes
mais ça ne l'envoie pas dans le PIC !
Meme avec envoi seul de l'Eeeprom PIC via option Pickit4 => IDEM ..pas moyen de charger ce contenu ???
La relecture Eeprom donne Eeprom vierge (avec MPLABX IDE ) ....


test aussi avec
Pickit4 Program Options Erase all Before program cochée => décoché



Connecting to MPLAB PICkit 4

Currently loaded versions:
Application version...........00.09.46
Boot version..................01.00.00
Script version................00.05.58
Script build number...........abbfe90327
Tool pack version ............1.15.1688
Target voltage detected
Target device PIC18F27K42 found.
Device Revision Id = 0xa0010000

Erasing... <------------------------------------------------------------ remet quand meme FF dans l'eeprom ?

The following memory area(s) will be programmed:
configuration memory
EEData memory
User Id Memory

Programming/Verify complete


:furieux: c'est pas clair ! .. et ça ne marche pas !

pourquoi faire simple quand on peut faire compliqué !

je retourne sur mon Pickit4 minus pour charger le *.iHEX
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

pre_chargement Eeprom PIC 18F27K42
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#13 Message par satinas » mar. 23 mai 2023 15:39

IPE permet de ne programmer que l'eeprom après avoir chargé son contenu depuis un fichier HEX. En cochant les bonnes cases dans la config du PicKit3. Il faut cocher la case Preserve Program Memory et indiquer la plage d'adresse préservée. J'ai essayé aussi avec MPLABX, mais il me renvoie un message d'erreur disant que j'ai mal défini les paramètres, pas la peine de perdre plus de temps. D'autant plus que IPE m'a renvoyé la même erreur après. Sur IPE quand cela a marché, il a commencé par lire le programme, puis il a tout réécrit avec le nouveau contenu d'eeprom.
Bon, voilà le réglage pour IPE, écriture d'un fichier HEX dans l'eeprom sans toucher au programme dans le pic. Pour MPLABX, cela me semble normal de ne pas y arriver, il écrit le contenu de l'eeprom qui figure dans le code source. Il manque l'option menu idoine.

Réglage_IPE_write_eeprom_only.png

Une astuce, dans une fenêtre texte Windows, lorsqu'on saisit une commande, pour entrer le nom d'un fichier, avec la touche TAB on peut faire défiler tous les noms des fichiers du dossier courant. Cela marche aussi en cours de frappe du nom de fichier.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

pre_chargement Eeprom PIC 18F27K42
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#14 Message par paulfjujo » mar. 23 mai 2023 21:01

Pour MPLABX, cela me semble normal de ne pas y arriver, il écrit le contenu de l'eeprom qui figure dans le code source.
Il manque l'option menu idoine.


je ne vois pas le lien avec[ b] preserver le code[/b] pour charger l'eeprom


car il y a bien la coche Preserve EEPROM ... elle devrait servir à cà !
mais l'import d'une table ..... n'est pas encore dans le PIC !
c'est capillotracté cette affaire !

J'essaierai une derniere fois , avec ton test ,
sinon je laisse tomber l'EEPROM ... soit utiliser la FLASH ou une Eeprom I2C externe

la solution facile avec __EEPROM_DATA (......................); n' est malheureusement viable que pour
les premieres adresses Eeprom PIC , puisque demare à 0x0000
modulo 8 adresses ..
....puisqu'on ne peut pas definir justement l'adresse Eeprom
remplir une liste de 127 lignes de _EEPROM_DATA ......... pour arriver à mettre des datas en fond d'eeprom PIC ?

:furieux: C'est BOURIN tout ça!
Aide toi, le ciel ou FantasPic t'aidera

pre_chargement Eeprom PIC 18F27K42
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#15 Message par satinas » mer. 24 mai 2023 08:12

Bonjour,
As-tu lu cette réponse ? viewtopic.php?p=19839#p19839
On peut mettre des données en eeprom a une adresse précise, en C90 et seulement à partir d'une adresse paire d'après mes tests. En relisant avec IPE c'est bon, par contre PicKit Minus affiche un contenu d'eeprom incorrect :)
C'est la saison pour planter les tomates, et au moins ça ça marche.

pre_chargement Eeprom PIC 18F27K42
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#16 Message par paulfjujo » mer. 24 mai 2023 14:48

satinas a écrit :On peut mettre des données en eeprom a une adresse précise, en C90 et seulement


comme quoi, pourquoi évoluer vers C99 ?
le mieux est l'ennemi du bien !
Au final, je mets les datas en eeprom via le code ...et roule Albert ( pas le Petit Albert !)


satinas a écrit :C'est la saison pour planter les tomates, et au moins ça ça marche.


:!!: Esperons que tu auras assez d'eau pour les arroser,
quoiqu'il existe (peut etre encore) un moyen de les faire rougir !
Aide toi, le ciel ou FantasPic t'aidera

pre_chargement Eeprom PIC 18F27K42
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#17 Message par satinas » mer. 24 mai 2023 15:32

Pour C99, j'avais pas regardé :)

Code : Tout sélectionner

const unsigned char tab1   __at(0x310000) = 0x11;
const unsigned char tab2[] __at(0x310012) = {
  0x01, 0x02, 0x03, 0x04
};
const unsigned char tab3[] __at(0x3103FE) = { 91, 129 };
const unsigned char tab4[] __at(0x310400) = { 91, 129 };

Le plus drôle, la dernière ligne qui est en dehors de l'eeprom ne retourne pas de message d'erreur.
La limitation aux adresses paires doit être dûe au fait que dans pic-as l'eeprom est déclarée avec des mots de 2 octets, delta=2, cela m'avait surpris car dans le fichier hex il y a bien un octet par data, et la programmation se fait par octet.


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 19 invités