store
Description
Interface de base avec les mémoire externe RAM SPI et EEPROM SPI.
Le terme XRAM réfère à la mémoire RAM SPI 23LC1024.
Le terme EEPROM réfère à la mémoire EEPROM SPI 25LC1024.
Description
La RAM SPI 23LC1024 a une capacitée de 128Ko.
RAM>XR ( u1 u2 ud1 -- )
Transfert un bloc d'octets de la RAM du MCU vers la XRAM.
arguments:
u1 Adresse début bloc dans la XRAM.
u2 Nombre d'octets à transférer.
ud1 Entier double non signé, Adresse destination dans la XRAM.
retourne:
rien
XR>RAM ( u1 u2 ud1 -- )
Transfert un bloc d'octets de la XRAM vers la RAM du MCU.
arguments:
u1 Entier simple non signé, adresse début tampon RAM.
u2 Entier simple non signé, Nombre d'octets à transféréer.
ud1 Entier double non signé, adresse début du bloc dans la XRAM.
retourne:
rien
Description
l'EEPROM 25LC1024 a une capacité de 128Ko et est divisée en
512 rangées de 256 octets pour la commande EWRITE.
Il est possible de mette à jour 1 seul octet mais
on ne peut écrire qu'un maximum de
256 octets par commande EWRITE.
?WIP ( -- f )
Test le bit WRITE IN PROCESS de l'EEPROM et retourne son état.
arguments:
aucun
retourne:
f Indicateur Booléen, VRAI si une opération d'écriture est en cour.
WWIP ( -- )
Attend que l'opération d'écriture de l'EEPROM soit complétée.
arguments:
aucun
retourne:
rien
RAM>EE ( u1 n+ ud1 -- )
Enregistrement d'une plage RAM dans l'EEPROM
IMPORTANT:
la mémoire EEPROM est divisée en
rangées de 256 octets. Lorsque le pointeur
d'adresse atteint la fin d'une rangée il
revient au début de celle-ci. Donc si 'ud1'
pointe le début de la rangée un maximum de 256
octets peuvent-être écris avant l'écrasement
des premiers octets.
arguments:
u1 Entier simple, adresse 16 bits début bloc RAM
n+ Entier simple positif, nombre d'octets à enregistrer {1..256}
ud2 Entier double non signé, adresse destination dans l'EEPROM
retourne:
rien
EE>RAM ( u1 u2 ud -- )
Copie d'une plage EEPROM vers la mémoire RAM.
arguments:
u1 Entier simple non signé, adresse début tampon RAM.
u2 Entier simple non signé, nombre d'octets à copier.
ud Entier double non signé, adresse source dans l'EEPROM.
retourne:
rien
EPAGE ( -- n )
Valeur constante indiquant qu'il s'agit d'une opération d'effacement d'une page.
L'EEPROM peut-être effacée par page,secteur ou au complet.
arguments:
aucun
retourne:
n Consteante idenfiant cette opération.
ESECTOR ( -- n )
Valeur constante indiquant qu'il s'agit d'une opération d'effacement d'un secteur.
L'EEPROM peut-être effacée par page,secteur ou au complet.
arguments:
aucun
retourne:
n Constante idenfiant cette opération.
EALL ( -- n )
Valeur constante indiquant qu'il s'agit d'une opération d'effacement complet.
Toute l'EEPROM sera effacée.
arguments:
aucun
retourne:
n Consteante idenfiant cette opération.
EERASE ( EALL | n {EPAGE|ESECTOR} -- )
Efface une page, 1 secteur ou l'EEPROM au complet.
l'argument 'n' est requis que pour les opérations EPAGE ou ESECTOR.
arguments:
'n' Numéro de page {0..511} ou de secteur {0..3}
'op' Opération: {EPAGE|ESECTOR|EALL}
retourne:
rien
EEWRITE ( u1 ud -- )
Écriture d'un bloc RAM dans l'EEPROM externe.
L'écriture se fait par segment de 256 octets.
Un bloc compte 1024 octets.
arguments:
u1 Entier simple non signé, adresse RAM début du bloc.
ud Entier double non signé, adresse début dans l'EEPROM.
retourne:
rien
XRAM ( -- a-addr )
Retourne l'adresse du descripteur du périphérique RAM SPI.
arguments:
aucun
retourne:
a-addr Adresse du descripteur de périphérique XRAM.
EEPROM ( -- a-addr )
Retourne l'adresse du descripteur du périphérique EEPROM.
arguments:
aucun
retourne:
a-addr Adresse du descripteur de périphérique EEPROM
Index