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 l'Assembleur !

Modérateur : mazertoc

Logiciels utilisés...
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#21 Message par paulfjujo » mer. 28 févr. 2018 15:11

bonjour,

Je veux bien te donner le fichier de données mais alors laisse moi le temps de le mettre
à la forme dont tu as besoin soit fichier texte avec 64 données séparé par ; par ligne et <CR>
à la fin et <EOF> pour le dernier


je t'ai proposé ce format par defaut ... sans connaitre ce que tu feras ensuite de ces donnees en EEPROM .
En principe lorsqu'on range des donnees dans une eeprom , c'est pour les utiliser dans une application.
Il est souvent necessaire aussi, de ranger les donnees en fonction de l'application.
Ce rangement peut etre BRUT , je lis un paquet , je range le paquet à la suite..

Tu n'a pas indiqué Le format de tes données dans ce fichier de 10Ko
1) toutes les donnees sont en binaire 1 byte=1 donnee , dans ce cas la separation par ";" n'est pas indispensable
2) les donnes sont en ascii et representent une valeur => format variable de 1 à 6 cars ( 1 , -32767, 65535)
donc separateur ";" indispensable pour pouvoir les recuperer dans le bon ordre , dans une application
avec un rangement rigoureusement** structuré.


:sifflotte: Mais, Je viens juste de verifier la datasheet de la 24LC512 ..
qui a une page buffer de 128 bytes
.. on peut donc aussi partir sur des lignes (paquets) de 128 datas ..<CR> au lieu de 64



** exemple : utilisation 24FC1026 Eeprom pour stocker un tracage GPS
ou la notion de modularité (32bytes) permet de bien repererer les infos.

STOCKAGE PARCOURS GPS sur
EEPROM de 1Mbit soit 128K (24LC1026) soit 131072 bytes
une trame KML fait 25 bytes dans mon cas .. restera toujours < 32 bytes
Si on utilise un tampon RAM de 128 Bytes, on peut stocker .. 4 trames modulo 32 bytes MAXI
on perd 28
et on a 1024 pages de 128 bytes .. 1024*4= 4096 Points de parcours. c'est déja pas mal
Avec une acquisition GPS à 4 sec => 4096 * 4 / 3600 => 4H30
La derniere page N° 1023, sera utilisee pour stoker la DATE et Heure de debut
et la DATE et HEURE de fin
Aide toi, le ciel ou FantasPic t'aidera

Logiciels utilisés...
jeanyves1976
Avatar de l’utilisateur
Débutant
Débutant
Messages : 39
Âge : 47
Enregistré en : janvier 2018
Localisation : Belgique

#22 Message par jeanyves1976 » jeu. 1 mars 2018 00:11

Bonjour à tous,

paulfjujo a écrit : je t'ai proposé ce format par defaut ... sans connaitre ce que tu feras ensuite de ces donnees en EEPROM .


Sur mon eeprom je viens juste placer des coordonnées (x, y). :roll:
Bon j'avoue que j'ai du bol en réalité j'ai 63 coordonnées soit 126 données donc je peux directement travailler par transfère de page de 128 ou 2x64...

paulfjujo a écrit : Tu n'a pas indiqué Le format de tes données dans ce fichier de 10Ko

Non en effet, bien que je travail avec des décimales, j'en n'avais sur des valeurs obligatoirement en hexa pour faire le fichier. Du coup j'ai tout convertis :sifflotte:
Mais au final idem, pas d'importance dec ou hex... car je ne suis pas sur à 100% de


paulfjujo a écrit : Mais, Je viens juste de verifier la datasheet de la 24LC512 ... (paquets) de 128 datas ..<CR> au lieu de 64

J'avais aussi jetté un oeil sur les datasheets, alors moi j'ai de dispo chez moi des 512k mais en théorie au final ce mes données tiennent sur une 256k et là du coup 64k par page.
128k ou 64k là n'est pas vraiment le problème j'adapterais en fonction de la mémoire que j'utiliserais au final :wink:
Pour le moment j'ai pris le parti de me simplifier la vie et de me faire un tableau de 128 x 122 lignes quitte a remplir avec des FF se dont je n'ai pas besoin réellement ce qui me fait remonter à 15616 octets puisque çà passe sur une 256k, le reste est non utilisé de toute façon.
Alors pk une eeprom de 256k et pas 128k... elle est moins chère :lol:

Logiciels utilisés...
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#23 Message par paulfjujo » jeu. 1 mars 2018 10:26

bonjour à tous,

... et là du coup 64k par page...

64 bytes ..

donc dans ton fichier excel , les donnees sont en ascii ( ne serait ce que pour les voir !)
mais tu peux aussi les afficher en hexa formaté 0xFF ou FF , de sorte que chaque data soit ensuite representée dans un fichier ,
par 2 characteres (taille fixe quelque soit la data)

Ce qui compte est la finalité du fichier qui sera à lire par le PIC
avec aucune ambiguité pour recuperer chaque data individuelle.
La ligne de 128 (maxi) donnees sera de taille fixe , si chaque data est en hexa sur 2 characteres (128x2)+128= 384 bytes avec separateur
ou 256 bytes sans separateur de data.

si elles sont en decimal 0; 10; 255; => sauvegarde excel en format CSV ( avec separateur ";")
de longueur variable. soit un maxi possible de (avec data>99 => 128x3 ) +128 x";" = 512 bytes !
(je suppose que toutes les data sont positives .. sinon -127 => 4 bytes)
un buffer RAM de 512 bytes est necessaire .

Au vu de la ram necessaire pour le buffer de reception ,
quel PIC comptes-tu utiliser ?
nota : on peut aussi morceller chaque ligne en paquet plus petit , modulo 64 ou modulo 32
si le PIC est trop petit.

Un detail : une liaison RS232/UART avec ligne CTS est quasiment indispensable..
pour mon appli programmateur, j'ai rajouté (hardware) cette lignes CTS sur un MAX232 (qui gerait deja TX et RX) .

Parmi les cordons USB/TLL RS232
cordon USB/LTTL avec 6 pins ..(0V,+5V,TX,RX,CTS,DTR) qui comporte donc le signal CTS
cordon USB/TTL avec que 4 pins ( 0V, +5V,TX,RX) SANS CTS ..

Sans cette ligne CTS, on doit pouvoir aussi gerer l'echange en mode protocole XON/XOFF (par programmme).

Des que j'aurai vu ton fichier excel à transmettre , ce sera plus clair pour moi.
Aide toi, le ciel ou FantasPic t'aidera

Logiciels utilisés...
jeanyves1976
Avatar de l’utilisateur
Débutant
Débutant
Messages : 39
Âge : 47
Enregistré en : janvier 2018
Localisation : Belgique

#24 Message par jeanyves1976 » ven. 2 mars 2018 20:23

Bonjour à tous,

paulfjujo, je te mets en pièces jointe le csv en 128bytes avec que des valeurs positives...
J'ai dût refaire mon fichier comme je n'avais pas fait attention pour certaine valeur hors plage et pas sur 2 digits "FF" :wink:
Pour le pic, j'avoue que je n'ai pas regardé à celui que j'allais utilisé une fois mon projet finalisé mais plutôt sur ceux que j'ai chez moi qui fonctionne en i2c soit 16F877A qui est beaucoup trop complet pour l'utilisation dont j'ai besoin. :-)
Par contre pas la moindre idée si le cable usb/rs232 que j'ai possède le cts et dtr ! :shock:
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Logiciels utilisés...
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#25 Message par paulfjujo » ven. 2 mars 2018 20:55

bonsoir,


Par contre pas la moindre idée si le cable usb/rs232 que j'ai possède le cts et dtr !


combien de pin coté TTL .. 4 pin pas de CTS DTR
6 Pins ..oui

je regrade le fichier demain ..

bonjour ,

vu le fichier ..
128 bytes de data => 386 bytes à lire
mais la taille RAM maxi du 16F877A est de 368 bytes .. pas de bol

soit prendre un PIC plus evolué genre 18F26K22 avec 3896 bytes de RAM !
soit on garde le 16F ,mais on redecoupe le fichier modulo 64 bytes => utilisera un buffer RAM de 386/2= 193 bytes
Aide toi, le ciel ou FantasPic t'aidera

Logiciels utilisés...
jeanyves1976
Avatar de l’utilisateur
Débutant
Débutant
Messages : 39
Âge : 47
Enregistré en : janvier 2018
Localisation : Belgique

#26 Message par jeanyves1976 » sam. 3 mars 2018 15:49

Bonjour à tous,

paulfjujo, je t'ai refait le fichier en 64 bytes... :wink:
Histoire de limiter les investissements :-)

Bonne journée 8-)
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Logiciels utilisés...
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#27 Message par paulfjujo » dim. 4 mars 2018 15:57

bonjour,

Ca ne change pas grand chose au probleme ..
:furieux: une vraie plaie ces 16F877 des qu'on a besoin de RAM !
avec 169 bytes en RAM dispo , des que j'augmente la taille d'un buffer au delà de 80 bytes
(zone ram utile dans les bank) => .. IRP bit à gerer ..
autant faire de l'assembleur !

IRP_bit_16F877_Problemo.jpg


une ligne de 64 data fait 191 bytes + CR + LF = 193 bytes , j'ai supprimé tous les LF .. 192 bytes
MikroC ne sait pas gerer tous seul les franchissement de bank RAM !
avec un buffer de reception de 64 bytes .. je peux lire une ligne en 4 fois !
3 fois avec la limite de 64 bytes , la 4em sur reception de CR
j'ai rajouté un code specifique sur la fin de derniere ligne DC3=0x13

Avec un 18F , la ligne complete pourrait etre lue en 1 seule fois , meme avec 128 datas par ligne ..

J'ai retrouvé une 24LC256 dans mes cartons ..

..à suivre
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Logiciels utilisés...
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#28 Message par Temps-x » dim. 4 mars 2018 18:32

Bonjour tout le forum,

paulfjujo a écrit :
Source du message autant faire de l'assembleur !


profites-en, tu es dans la section ASM :lol:

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Logiciels utilisés...
jeanyves1976
Avatar de l’utilisateur
Débutant
Débutant
Messages : 39
Âge : 47
Enregistré en : janvier 2018
Localisation : Belgique

#29 Message par jeanyves1976 » lun. 5 mars 2018 19:15

Bonjour à tous,

Temps-x :lol: oui c'est sur d'autant qu'il n'y a que çà que je connaissent...

paulfjujo, c'est la solution la plus simple que je cherche de toutes façon, si tu me dit que 10x plus simple avec un 18fxxx je ne suis pas contre ... :-D
Je n'en possède pas donc tu me proposerais lequel en gardant en tête que je l'utiliserais pour faire du dévelloppement donc un max de tout (I/O, mémoire,...) :lol: ? j'ai jetté un oeil sur la gamme, les 3/4 proposent une liaison i2c. :wink:

Merci :-)

Logiciels utilisés...
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#30 Message par paulfjujo » mar. 6 mars 2018 10:52

jeanyves1976 a écrit :...Je n'en possède pas donc tu me proposerais lequel en gardant en tête que je l'utiliserais pour faire du développement donc un max de tout (I/O, mémoire,...)


J'en ai déja beaucoup testé.. et ceux que je prefere sont :

le 18F26K223 en DIP28 ou en version DIP40 18F46K22 : tres confortable en RAM et ROM ..
et dispose de toute la panoplie UART1,UAR2,I2C1,I2C2,ou SPI1,SPI2 ,PWM,CCP1,CCP2,TIMERS....
sans avoir à gerer des PPS configuration de Pin programmables !

en DIP 8 , le 12F1840 ... petit mais costaud

en plus gros :
le 18F87J50 ou 18F47J53 sous forme de carte MikroE..

il y a aussi surement des PIC plus rescents .. à voir


en attendant avec le 16F877 , j'ai deja ce resultat
teste avec seulement 3 lignes du fichier



Mikroc pro 7.20 04/03/2018

IRDA board 16F877+ LCD2x16 Q=20Mhz
MikroC 16F877 IRDA board + EEPROM 24LC256 32Ko 05-03-2018

Test PIN CTS
Init I2C1 400Khz

Depuis le terminal, Envoyer le fichier *.csv ou *txt :
.. 10 sec pour valider l'envoi

64b3LHex.txt <-- ce fichier

Recu -> 64 bytes -> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.

Recu -> 64 bytes -> FFFFFFFF0111011201120213021302140215031503160317031803180319031A
FF
FF.FF.FF.01.11.01.12.01.12.02.13.02.13.02.14.02
15.03.15.03.16.03.17.03.18.03.18.03.19.03.1A.

Recu -> 1 bytes ->

Recu -> 64 bytes -> 031A031B031C031D031D031E031F021F022002210221012201230123FFFFFFFF
03.1A.03.1B.03.1C.03.1D.03.1D.03.1E.03.1F.02.1F.02
20.02.21.02.21.01.22.01.23.01.23.FF.FF.FF.FF.


Recu -> 64 bytes -> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.

Recu -> 1 bytes ->

Recu -> 64 bytes -> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.

Recu -> 64 bytes -> FFFFFFFF0111011101120213021302140315031503160317031703180319031A
FF
FF.FF.FF.01.11.01.11.01.12.02.13.02.13.02.14.03
15.03.15.03.16.03.17.03.17.03.18.03.19.03.1A.

Recu -> 1 bytes ->

DUMP EEPROM :

Page # : 0
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.01.11.01.12.01.12.02.13.02.13.02.14.02
15.03.15.03.16.03.17.03.18.03.18.03.19.03.1A.

Page # : 1
03.1A.03.1B.03.1C.03.1D.03.1D.03.1E.03.1F.02.1F.02
20.02.21.02.21.01.22.01.23.01.23.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.

Page # : 2
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.01.11.01.11.01.12.02.13.02.13.02.14.03
15.03.15.03.16.03.17.03.17.03.18.03.19.03.1A.

TERMINE
Total Bytes = 192 Nb de pages = 3


le fichier de test
FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;01;11;01;12;01;12;02;13;02;13;02;14;02;15;03;15;03;16;03;17;03;18;03;18;03;19;03;1A
03;1A;03;1B;03;1C;03;1D;03;1D;03;1E;03;1F;02;1F;02;20;02;21;02;21;01;22;01;23;01;23;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF
FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;FF;01;11;01;11;01;12;02;13;02;13;02;14;03;15;03;15;03;16;03;17;03;17;03;18;03;19;03;1A  


à suivre..

:sifflotte: C'est tout bon
Lecture du fichier complet OK
244 pages ecrites en eeprom ( 15616 bytes)

il est imperatif d'avoir une liaison RS23 , gerant la pin CTS ...
projet mikroC complet

File_To_24LC256_via_16F877.zip



7-Zip [64] 9.22 beta Copyright (c) 1999-2011 Igor Pavlov 2011-04-18

Listing archive: C:\_MikroC\_MesProjets_MikroC\_16F877_IRDA_Board\File_To_24LC256_via_16F877.zip

--
Path = C:\_MikroC\_MesProjets_MikroC\_16F877_IRDA_Board\File_To_24LC256_via_16F877.zip
Type = zip
Physical Size = 19638

Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2018-03-06 12:39:29 ....A 247 139 16F877_Irdaboard_File_To_24LC256_CTS.cfg
2018-03-06 13:24:14 ....A 15342 4930 16F877_Irdaboard_File_To_24LC256_CTS.hex
2018-03-06 12:39:29 ....A 1259 555 16F877_Irdaboard_File_To_24LC256_CTS.mcppi
2018-03-06 13:16:17 ....A 46850 3014 64bytesHex.txt
2018-03-06 13:18:27 ....A 52344 4345 Test_Relecture _24LC256_chargee_par_file_64bytesHex_180306.log
2018-03-06 13:24:11 ....A 18233 5479 _16F877_File_2_Eeeprom_24LC256_CTS_180307.c
------------------- ----- ------------ ------------ ------------------------
134275 18462 6 files, 0 folders


voir resultat dans est_Relecture _24LC256_chargee_par_file_64bytesHex_180306.log
une option de compilation dans le programme , permet de ne faire qu'une relecture EEPROM, c'est tout
//#define Test_DUMP_24LC256_244_pages

sur le fichier original à charger
j'ai juste rajouté une data FF sur la derniere ligne qui ne comportait que 63 datas
et le code DC3 = terminateur de fichier
fichier de 46857 bytes
244 lignes de 64 datas => 15616 bytes

je vais mettre tous les details de ce projet sur ma page web ..

Avec une 18F26K22 , la gestion d'un tampon ram aurait permit une ecriture ou lecture par page complete au lieu de byte par byte
et simplifié grandement tout cela.
et rajouter la gestoin d'une 24FC1026 128Kbytes..

Allez , le meme en ASM .. qui se jette à l'eau .
TempsX ?

un extrait ..


Mikro C Pro 7.20

Microchip IRDA Demo board 16F877 + LCD2x16 Q=20Mhz

Test PIN CTS
Init I2C1 400Khz

DUMP EEPROM :
Page # : 0

FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.01.11.01.12.01.12.02.13.02.13.02.14.02
15.03.15.03.16.03.17.03.18.03.18.03.19.03.1A.

Page # : 1

03.1A.03.1B.03.1C.03.1D.03.1D.03.1E.03.1F.02.1F.02
20.02.21.02.21.01.22.01.23.01.23.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.

Page # : 2
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.01.11.01.11.01.12.02.13.02.13.02.14.03
15.03.15.03.16.03.17.03.17.03.18.03.19.03.1A.

.. etc ..

Page # : 242

FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.01.11.01.12.01.12.02.13.02.14.02.14.02
15.03.16.03.16.03.17.03.18.03.18.03.19.03.1A.

Page # : 243
03.1A.03.1B.03.1C.03.1D.03.1D.03.1E.03.1F.02.1F.02
20.02.21.02.21.01.22.01.23.01.23.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF
FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.FF.D8.

derniere data = D8 .. car ligne de 63 datas au lieu de 64 ,
=> rajouté FF dans le fichier 64bytesHex.txt

TERMINE
Total Bytes = 15616 Nb de pages = 244

Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage ASM »

Qui est en ligne

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