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
pre_chargement Eeprom PIC 18F27K42
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é.
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é.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
pre_chargement Eeprom PIC 18F27K42
- paulfjujo
Expert- Messages : 2605
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous
Satinas ...
OK sous win10 dans une fenetre DOS !
Attention : avec Norton qui d'office l'efface ..il faut insister et le restaurer ,valider.
testé OK fichier HEX crée sous MikroC avec editeur Eeprom , mouliné en TABLE assimilable par MPLABX IDE
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
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
Satinas ...
OK sous win10 dans une fenetre DOS !
Attention : avec Norton qui d'office l'efface ..il faut insister et le restaurer ,valider.
testé OK fichier HEX crée sous MikroC avec editeur Eeprom , mouliné en TABLE assimilable par MPLABX IDE
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
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.
pre_chargement Eeprom PIC 18F27K42
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.
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.
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.
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
Expert- Messages : 2605
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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 ?
C'est BOURIN tout ça!
pre_chargement Eeprom PIC 18F27K42
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.
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
Expert- Messages : 2605
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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 !
pre_chargement Eeprom PIC 18F27K42
Pour C99, j'avais pas regardé :)
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.
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.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités